File: src/js/RAMP/RAMP-starter.js
- /*global location, $, document */
-
- /**
- *
- *
- * @module RAMP
- */
-
- /**
- * RAMPStarter class.
- * Performs initial configuration of the dojo config object specifying path to the RAMP modules, detecting locale, and loading the {{#crossLink "Bootstrapper"}}{{/crossLink}} module.
- * pipe the locale to dojo.
- *
- * @class RAMPStarter
- * @static
- */
-
- //required to get draw bar to show in French
- var RAMP,
- jsFolderPath = "js/",
- pathname = location.pathname.replace(/\/[^/]+$/, "") + "/",
- jsPrefix = pathname + jsFolderPath,
- htmlNode = $("html"),
- dojoConfig;
-
- /**
- * RAMP global class.
- * A general globally available class to hold any RAMP global data. Currently houses any plugins which are not loaded via AMD.
- *
- * @class RAMP
- */
- RAMP = {
- /**
- * Contains a URL that points to the application configuration (JSON format) if it's hosted on a web service.
- * This is not required if the application has a JSON config file in the website's folder
- * @property configServiceURL
- * @type String
- */
- configServiceURL: "http://sncr01wbingsdv1.ncr.int.ec.gc.ca:8000/v1/",
- // FIXME move the config service URL out of this file since it is now minified and appended to lib.js in the build
-
- /**
- * The RAMP application config, it should be treated as read only by all modules other than globalStorage and bootstrapper
- *
- * @property config
- * @type Object
- */
- config: {},
-
- /**
- * A registry of plugins for RAMP code to reference, these should be loaded and registered by bootstrapper.js
- *
- * @property plugins
- * @type Object
- */
- plugins: {
- featureInfoParser: {},
- projectionLookup: {}
- },
-
- /**
- * A temporary solution to state management. Will be changed
- *
- * @property state
- * @type Object
- */
- state: {
- ui: {
- sidePanelOpened: true,
- fullscreen: false,
- wmsQuery: true
- }
- },
-
- /**
- * Store global flags. Should only contain boolean entries.
- *
- * @property flags
- * @type Object
- */
- flags: {},
-
- /**
- * Scripts to be loaded after dojo config is prepared. Loaded in order (works around an IE9 issue).
- *
- * @property scripts
- * @type array
- */
- scripts: ['http://js.arcgis.com/3.13/', jsPrefix + 'lib/wet-boew/js/wet-boew.js', jsPrefix + 'RAMP/bootstrapper.js']
- };
-
- var importScript = (function (oHead) {
- 'use strict';
-
- function loadError (oError) {
- throw new URIError("The script " + oError.target.src + " is not accessible.");
- }
-
- return function (sSrc, fOnload) {
- var oScript = document.createElement("script");
- oScript.type = "text\/javascript";
- oScript.onerror = loadError;
- if (fOnload) { oScript.onload = fOnload; }
- oHead.appendChild(oScript);
- oScript.src = sSrc;
- };
-
- })(document.head || document.getElementsByTagName("head")[0]);
-
- dojoConfig = {
- parseOnLoad: false,
- locale: htmlNode.attr("lang"),
- async: true,
- packages: [
- {
- name: "ramp",
- location: jsPrefix + "RAMP/Modules"
- },
- {
- name: "utils",
- location: jsPrefix + "RAMP/Utils"
- },
- {
- name: "tools",
- location: jsPrefix + "RAMP/Tools/"
- }
- ],
- fullPluginPath: jsPrefix + 'plugins/'
- };
-
- (function loadRampScripts(scripts) {
- 'use strict';
- if (scripts.length === 0) { return; }
- importScript(scripts[0], function () { loadRampScripts(scripts.slice(1)); });
- })(RAMP.scripts);
-
-