• Jump To … +
    app.js ifCondHelper.js localizationHelper.js menuHelper.js sortByHelper.js titleHelper.js utils.js main.js defaultModel.js examsModel.js giaModel.js populationModel.js souModel.js examsModule.js mainPack.js populationModule.js souModule.js chartView.js defaultView.js tableView.js
  • main.js

  • ¶
    /*global define, require, document, window, $ */
    /*jslint nomen: true, debug: true, bitwise: true */
    
    /**
     * @name Elasticnode widgets
     * @description Main widget file: config & initialization
     * @author Anton Golub <mailbox@antongolub.ru>
     * @copyright 2014
     * @license MIT
     * @version 0.0.1
     * @class main
     */
    
    
    
    (function () {
        "use strict";
  • ¶

    Provides feature detection to load zepto or jquery

        var modern = document.querySelector &&
            window.localStorage &&
            window.addEventListener;
  • ¶

    modern = false;

        require.config({
            map: {
                '*': {
                    'jquery': 'framework'
                }
            },
  • ¶

    baseUrl: ‘js/‘,

            paths: {
  • ¶

    Bower components

                framework: modern ?
                        [
                            "//cdn.jsdelivr.net/zepto/1.1.3/zepto.min",
                            "//cdnjs.cloudflare.com/ajax/libs/zepto/1.1.3/zepto.min",
                            "../../../bower_components/zepto/zepto"
                        ] :
                        [
                            "//yandex.st/jquery/1.11.0/jquery.min",
                            "//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min",
                            "../../../bower_components/jquery/dist/jquery.min"
                        ],
    
                backbone: [
                    "//yandex.st/backbone/1.1.2/backbone-min",
                    "//cdn.jsdelivr.net/backbonejs/1.1.2/backbone-min",
                    "//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min",
                    "../../../bower_components/backbone/backbone"
                ],
                underscore: [
                    "//yandex.st/underscore/1.6.0/underscore-min",
                    "//cdn.jsdelivr.net/underscorejs/1.6.0/underscore-min",
                    "../../../bower_components/underscore/underscore"
                ],
                handlebars: [
  • ¶

    “//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.3.0/handlebars.min”, “//cdn.jsdelivr.net/handlebarsjs/1.3.0/handlebars.min”,

                    "../../../bower_components/handlebars/handlebars"
                ],
                highcharts: [
  • ¶

    “//cdn.jsdelivr.net/highcharts/4.0.1/highcharts”,

                    "//cdnjs.cloudflare.com/ajax/libs/highcharts/4.0.1/highcharts",
                    "../../../bower_components/highcharts/highcharts"
                ],
                hcadapter: [
                    "//cdn.jsdelivr.net/highcharts/4.0.1/adapters/standalone-framework",
                    "//cdnjs.cloudflare.com/ajax/libs/highcharts/4.0.1/adapters/standalone-framework",
                    "../../../bower_components/highcharts/adapters/standalone-framework"
                ],
                l10n: "../../../bower_components/l10n/l10n",
                sortable: "../../../bower_components/sortable/js/sortable",
  • ¶

    Rjs plugins

                text: "../../../bower_components/requirejs-text/text",
                css: "../../../bower_components/require-css/css",
  • ¶

    App components

                assets: "../app/assets",
                views: "../app/views",
                models: "../app/models",
                templates: "../app/templates",
                localization: "../app/localization",
                styles: "../../sass",
    
                utils: "../app/assets/utils",
  • ¶

    Aggregated module path

                modules: '../app/modules',
  • ¶

    App instance

                App: '../app/app'
            },
            shim: {
                framework: {
                    exports: "$"
                },
                underscore: {
                    exports: "_"
                },
                handlebars: {
                    exports: "Handlebars"
                },
                highcharts: {
                    deps: ["framework", "hcadapter"], //[modern ? "hcadapter" : "framework"],
                    exports: "Highcharts"
                },
                backbone: {
                    deps: ['underscore', "framework"],
                    exports: "Backbone"
                },
                l10n: {
                    exports: "l10n"
                }
            }
        });
    }());
  • ¶

    Widget class init

    define(["App"], function (enw) {
        "use strict";
        var cb,
            cbArray = window.enwCallback;
        window.Enw = enw;
    
        if (Object.prototype.toString.call(cbArray) === '[object Array]') {
            while (cbArray.length) {
                cb = cbArray.pop();
                try {
                    cb();
                } catch (e) {}
            }
        }
    });
    /*
    
  • ¶

    Dirty build hack

    define("js/app/main", ["main"]);
    define("js/app/main-cdn", ["main"]);
    define("js/app/main-singlefile", ["main"]);*/