icCube Web Reporting Local Settings

The optional file ic3report-config.js allows for configuring the 3rd-party libraries actually loaded by the application as well as several other features (e.g., request parameters compression). The files ic3report-local.css and ic3report-local.js allows for adding CSS and JS code that is shared by all the reports. Those files are located within the ic3-report/app-local directory. Note that re-installing the Web Reporting will have no impact on these files.


These files can be either edited from within the Docs application or via the Web Reporting application itself provided that the user has sufficient privileges.


This file contains the function ic3config() that is called first before anything else is loaded by the icCube Javascript loader. It receives an options parameter; for a detailed field description, please check with your Javascript debugger. For example, it contains a libs field with the following boolean fields:

        amCharts: true,
        GoogleViz: true,
        GoogleMaps: true,
        TinyMCE: true

The function has the opportunity to set as false the libraries not required. For example, the following code is removing Google Visualization:

        function ic3config(options) {

	        options.libs.GoogleViz = false;


We already bundled all mandatory external libraries into a single file, but still there is an opportunity to exclude any library from loading or change their sources.

        function ic3config(options) {

            options.customLibraries.jquery        = 'https://code.jquery.com/jquery-2.2.4.min.js';

            options.customLibraries.jshint        = false;


Large request (string) parameters are possibly compressed (e.g., snapshot, data to format, large MDX query). This is configured via the options.request object:

        function ic3config(options) {

            // e.g., disable compression
            options.request.compress          = false /* default is true */;

            // e.g., change the min-length (char count) of parameters being compressed
            options.request.compressMinLength = 2048 /* default is 4096 */;


In order to provide better user experience, we provided caching of large data requests. Still it could be configured via options object

        function ic3config(options) {

            // e.g., enable cache
            options.request.cache.enabled = true; /* default is true */;

            // e.g., change maximum cache size in MBs
            options.request.cache.maxSize = 20; /* default is 10 */;

            // e.g., change frequency of server check if schema has changed to 30 sec
            options.request.cache.schemaChangeCheckFrequency = 30000; /* default is 60000 */;

Besides caching, we have developed report backup system.

        function ic3config(options) {

            // e.g., enable backup
            options.backup.enabled = true; /* default is true */;

            // e.g., change report backup interval in seconds
            options.request.interval = 60; /* default is 300 */;


This file is loaded once all libraries and the icCube Web Reporting code has been loaded. You can add additional JS code within this file. If you need to include other JS files, use the function ic3bootstrapLocal() that is being called by the framework if present.

icCube is using $script.js (https://github.com/ded/script.js) as its asynchronous JS loader. The introduction page of $script.js is giving an exhaustive list of usages; you might as well have a look to the ic3bootstrap.js file for actual usages in icCube.

Within the ic3bootstrapLocal() function do not forget to call the callback passed as parameter once the additional libraries have been loaded; the framework is waiting on this call to continue the processing of the report.


If ic3report-local.css is not enough and you need to include alternate CSS files you can use the ic3css() function that is similar to $script() function described above. See ic3bootstrap.js for several usages.

Alternate Locations

The default location of these files are within the icCube Docs. repository : ic3-report/app-local. Nevertheless, when configuring the Web Reporting to use an alternate location of the Web Reporting application as for example in the icCube's live tutorial, it is more likely that this location is not suitable. For that purpose, the ic3ready() function is accepting a path as second parameter to define this location.