1100CC

The current release of 1100CC is version 10.7. Version 10.8 is in development.

Changelog

Version 10.8

* Slider Module: The front-end carousel viewer has been redeveloped with a light-weight and yet more powerful implementation. The old JavaScript library has been removed.
* Front-end: MapScroller has been extended with support for multi-layer backgrounds. Layers have controls for opacity and dynamic attribution. Additional URL template attributes have been added to support various tile services (e.g. WMS/WMTS).
* Various fixes, modernisation, and overall streamlining.

Version 10.7

* JSON/Object Traversal: Extended the class TraverseJSON to be able to include custom text in a Path's collection using the special operator '+'. YAML is now a supported format to provide JSON-compatible syntax.
* File Archive: Improved the class FileArchive to dynamically write and read files and folders on-the-fly.
* Response HTML: Moved all interaction and transformation relating to (X)HTML to its own class HTMLDocument.
* .htaccess: Improved parsing of HOST to be able to control all its aspects through the alias map.
* Response: Added OUTPUT_CSV to be able to apply the dynamic processing of Response to CSV output as well. Improved location and header handling wherever requested within 1100CC.
* Various fixes, modernisation, and overall streamlining.

Version 10.6

* JSON/Object Traversal: Created new class TraverseJSON to traverse any JSON/Object(/Array) to collect and process specific values based on a given JSON Path. The syntax of a Path follows the baseline of JSON.
* Feed Module: Added a new Feed module to publish streams of information. A Feed Entry can have a short text, a media item, and the option to link to internal or external pages/URLs. A Feed can be ordered and has various layout/styling options using the 1100CC Tagging system.
* URI Translation: Extended the URI Translation service to transparently translate between dynamic or custom URIs and their native 1100CC URL counterparts.
* Sitemap: Implemented modular sitemap generation through the new GenerateSitemap class and related Job. Resulting URLs leverage URI Translation and are canonical-aware.
* Commands: Implemented the ability to dynamically merge multiple Commands (requests) into one request, with each retaining their own logic.
* Back-end: Added new class ParseXML2JSON to have full control over serialising XML to JSON.
* Various fixes, modernisation, and overall streamlining.

Version 10.5

* Front-end: Expanded class EmbedDocument into separate classes DocumentEmbedded and DocumentEmbedding to allow for dynamic loading of 1100CC documents in any website using the snippet DocumentEmbeddingListener.
* Data Exchange: Implemented the .1100CC file format. The ExchangePackage class is able to package and process any 1100CC data and processes as an .1100CC file.
* File Upload: Added support for Data URLs to FileGet.
* Mediator: Improved CLI API and Job locking/mutex procedures.
* Various fixes, modernisation, and overall streamlining.

Version 10.4

* Response: Switched the parseDelay/parsePost regular expressions for memory optimised ones.
* Response: Updated the output and render parameters by changing OUTPUT_HTML to OUTPUT_XML to be able to caputure all XML-based languages, added OUTPUT_JSONP for external legacy APIs. Added RENDER_XML next to RENDER_HTML to do additional language-specific rendering.
* JSON Streaming: Renamed StreamJSON to StreamJSONInput and can now pause and resume streams. Added StreamJSONOutput to parse and stream objects/arrays to JSON without limitations to complexitity. This is similar to the existing Response Streaming but aimed at resource output only (i.e. files).
* Back-end: Updated module command (HOME) relaying to be able to configure any kind of route for a request.
* Front-end: Added the ability to track and abort any kind of running request.
* File Upload: Added the possibility to regulate the client-side maximum upload file size.
* WebSocket Server & Service: Updated and extended the WebSocket related classes to be able to do elaborate data exchanges between server processes and client response.
* WebSocket Client: Added a client class, tailored to communicate with other 1100CC sockets.
* Documentation Module: Added a new Documentation module to create and publish layered documentations or guides through 1100CC.
* Slider Module: Added two new modes to the slider module: 'flow' (horizontal paralax-like interaction) and 'scroll' (full-screen scrolling).
* Back-end: Implemented a heat-based request throttle to be able to limit requests from spamming clients.
* Front-end: Datatables can be ordered by multiple columns at the same time.
* Front-end: Introducing a new class EmbedDocument to dynamically embed (iframe) other 1100CC sites as if they native to of the main document. This class would resize the parent document based on the embedded document flow and resize the embedded document based on the parent window size.
* Front-end: Developed class CaptureElementImage to capture multi-layer Canvas and SVG elements as a downloadable high-resolution image.
* Various fixes, modernisation, and overall streamlining.

Version 10.3

* Labels: Improved Labels parsing & printing. Changing and printing variables can now be done in a single call to getLabel.
* Jobs: Jobs are now tracked/run every second instead of by minute.
* SQL: Fixed uncaught MySQL Exceptions in DBMysql by turning them in a DBTrouble Exception, where they belong.
* Front-end: AutoCompleter in multi-mode can now also be sortable.
* Back-end: Added/streamlined various array functions arrParseRecursive/arrFilterRecursive/arrValuesRecursive/arrHasValuesRecursive/arrHasKeysRecursive/arrMergeValues.
* Various fixes, modernisation, and overall streamlining.

Source Code

Go to github.com/lab1100/1100cc to download the latest version of 1100CC.

License

1100CC - web application framework.
Copyright (C) 2019 LAB1100.

See http://lab1100.com/1100cc/release for the latest version of 1100CC and its license.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.