source: Dev/trunk/src/client/dojo/_base/config.js @ 529

Last change on this file since 529 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 7.9 KB
Line 
1define(["../has", "require"], function(has, require){
2        // module:
3        //              dojo/_base/config
4
5/*=====
6return {
7        // summary:
8        //              This module defines the user configuration during bootstrap.
9        // description:
10        //              By defining user configuration as a module value, an entire configuration can be specified in a build,
11        //              thereby eliminating the need for sniffing and or explicitly setting in the global variable dojoConfig.
12        //              Also, when multiple instances of dojo exist in a single application, each will necessarily be located
13        //              at an unique absolute module identifier as given by the package configuration. Implementing configuration
14        //              as a module allows for specifying unique, per-instance configurations.
15        // example:
16        //              Create a second instance of dojo with a different, instance-unique configuration (assume the loader and
17        //              dojo.js are already loaded).
18        //              |       // specify a configuration that creates a new instance of dojo at the absolute module identifier "myDojo"
19        //              |       require({
20        //              |               packages:[{
21        //              |                       name:"myDojo",
22        //              |                       location:".", //assume baseUrl points to dojo.js
23        //              |               }]
24        //              |       });
25        //              |
26        //              |       // specify a configuration for the myDojo instance
27        //              |       define("myDojo/config", {
28        //              |               // normal configuration variables go here, e.g.,
29        //              |               locale:"fr-ca"
30        //              |       });
31        //              |
32        //              |       // load and use the new instance of dojo
33        //              |       require(["myDojo"], function(dojo){
34        //              |               // dojo is the new instance of dojo
35        //              |               // use as required
36        //              |       });
37
38        // isDebug: Boolean
39        //              Defaults to `false`. If set to `true`, ensures that Dojo provides
40        //              extended debugging feedback via Firebug. If Firebug is not available
41        //              on your platform, setting `isDebug` to `true` will force Dojo to
42        //              pull in (and display) the version of Firebug Lite which is
43        //              integrated into the Dojo distribution, thereby always providing a
44        //              debugging/logging console when `isDebug` is enabled. Note that
45        //              Firebug's `console.*` methods are ALWAYS defined by Dojo. If
46        //              `isDebug` is false and you are on a platform without Firebug, these
47        //              methods will be defined as no-ops.
48        isDebug: false,
49
50        // locale: String
51        //              The locale to assume for loading localized resources in this page,
52        //              specified according to [RFC 3066](http://www.ietf.org/rfc/rfc3066.txt).
53        //              Must be specified entirely in lowercase, e.g. `en-us` and `zh-cn`.
54        //              See the documentation for `dojo.i18n` and `dojo.requireLocalization`
55        //              for details on loading localized resources. If no locale is specified,
56        //              Dojo assumes the locale of the user agent, according to `navigator.userLanguage`
57        //              or `navigator.language` properties.
58        locale: undefined,
59
60        // extraLocale: Array
61        //              No default value. Specifies additional locales whose
62        //              resources should also be loaded alongside the default locale when
63        //              calls to `dojo.requireLocalization()` are processed.
64        extraLocale: undefined,
65
66        // baseUrl: String
67        //              The directory in which `dojo.js` is located. Under normal
68        //              conditions, Dojo auto-detects the correct location from which it
69        //              was loaded. You may need to manually configure `baseUrl` in cases
70        //              where you have renamed `dojo.js` or in which `<base>` tags confuse
71        //              some browsers (e.g. IE 6). The variable `dojo.baseUrl` is assigned
72        //              either the value of `djConfig.baseUrl` if one is provided or the
73        //              auto-detected root if not. Other modules are located relative to
74        //              this path. The path should end in a slash.
75        baseUrl: undefined,
76
77        // modulePaths: [deprecated] Object
78        //              A map of module names to paths relative to `dojo.baseUrl`. The
79        //              key/value pairs correspond directly to the arguments which
80        //              `dojo.registerModulePath` accepts. Specifying
81        //              `djConfig.modulePaths = { "foo": "../../bar" }` is the equivalent
82        //              of calling `dojo.registerModulePath("foo", "../../bar");`. Multiple
83        //              modules may be configured via `djConfig.modulePaths`.
84        modulePaths: {},
85
86        // addOnLoad: Function|Array
87        //              Adds a callback via dojo/ready. Useful when Dojo is added after
88        //              the page loads and djConfig.afterOnLoad is true. Supports the same
89        //              arguments as dojo/ready. When using a function reference, use
90        //              `djConfig.addOnLoad = function(){};`. For object with function name use
91        //              `djConfig.addOnLoad = [myObject, "functionName"];` and for object with
92        //              function reference use
93        //              `djConfig.addOnLoad = [myObject, function(){}];`
94        addOnLoad: null,
95
96        // parseOnLoad: Boolean
97        //              Run the parser after the page is loaded
98        parseOnLoad: false,
99
100        // require: String[]
101        //              An array of module names to be loaded immediately after dojo.js has been included
102        //              in a page.
103        require: [],
104
105        // defaultDuration: Number
106        //              Default duration, in milliseconds, for wipe and fade animations within dijits.
107        //              Assigned to dijit.defaultDuration.
108        defaultDuration: 200,
109
110        // dojoBlankHtmlUrl: String
111        //              Used by some modules to configure an empty iframe. Used by dojo/io/iframe and
112        //              dojo/back, and dijit/popup support in IE where an iframe is needed to make sure native
113        //              controls do not bleed through the popups. Normally this configuration variable
114        //              does not need to be set, except when using cross-domain/CDN Dojo builds.
115        //              Save dojo/resources/blank.html to your domain and set `djConfig.dojoBlankHtmlUrl`
116        //              to the path on your domain your copy of blank.html.
117        dojoBlankHtmlUrl: undefined,
118
119        // ioPublish: Boolean?
120        //              Set this to true to enable publishing of topics for the different phases of
121        //              IO operations. Publishing is done via dojo/topic.publish(). See dojo/main.__IoPublish for a list
122        //              of topics that are published.
123        ioPublish: false,
124
125        // useCustomLogger: Anything?
126        //              If set to a value that evaluates to true such as a string or array and
127        //              isDebug is true and Firebug is not available or running, then it bypasses
128        //              the creation of Firebug Lite allowing you to define your own console object.
129        useCustomLogger: undefined,
130
131        // transparentColor: Array
132        //              Array containing the r, g, b components used as transparent color in dojo.Color;
133        //              if undefined, [255,255,255] (white) will be used.
134        transparentColor: undefined,
135       
136        // deps: Function|Array
137        //              Defines dependencies to be used before the loader has been loaded.
138        //              When provided, they cause the loader to execute require(deps, callback)
139        //              once it has finished loading. Should be used with callback.
140        deps: undefined,
141       
142        // callback: Function|Array
143        //              Defines a callback to be used when dependencies are defined before
144        //              the loader has been loaded. When provided, they cause the loader to
145        //              execute require(deps, callback) once it has finished loading.
146        //              Should be used with deps.
147        callback: undefined,
148       
149        // deferredInstrumentation: Boolean
150        //              Whether deferred instrumentation should be loaded or included
151        //              in builds.
152        deferredInstrumentation: true,
153
154        // useDeferredInstrumentation: Boolean|String
155        //              Whether the deferred instrumentation should be used.
156        //
157        //              * `"report-rejections"`: report each rejection as it occurs.
158        //              * `true` or `1` or `"report-unhandled-rejections"`: wait 1 second
159        //                      in an attempt to detect unhandled rejections.
160        useDeferredInstrumentation: "report-unhandled-rejections"
161};
162=====*/
163
164        var result = {};
165        if(has("dojo-config-api")){
166                // must be the dojo loader; take a shallow copy of require.rawConfig
167                var src = require.rawConfig, p;
168                for(p in src){
169                        result[p] = src[p];
170                }
171        }else{
172                var adviseHas = function(featureSet, prefix, booting){
173                        for(p in featureSet){
174                                p!="has" && has.add(prefix + p, featureSet[p], 0, booting);
175                        }
176                };
177                result = has("dojo-loader") ?
178                        // must be a built version of the dojo loader; all config stuffed in require.rawConfig
179                        require.rawConfig :
180                        // a foreign loader
181                        this.dojoConfig || this.djConfig || {};
182                adviseHas(result, "config", 1);
183                adviseHas(result.has, "", 1);
184        }
185
186        if(!result.locale && typeof navigator != "undefined"){
187                // Default locale for browsers.
188                result.locale = (navigator.language || navigator.userLanguage).toLowerCase();
189        }
190
191        return result;
192});
193
Note: See TracBrowser for help on using the repository browser.