server/php/basic/public_html/static/lib/requirejs/require.js
author rougeronj
Tue, 22 Sep 2015 15:14:10 +0200
changeset 543 5f7bebdcfc0d
parent 495 444b80998255
child 598 eb4f4eceada0
permissions -rw-r--r--
Improve the way we init the view. The data loader send a "loaded" event, hooked by the scene.py and initializing the backbone.history and the view. We don't use redraw_active in save-once and full-json, because it was making the view initialization dependent of these file which are externals. Small fix to hide the "set saved view" button when there is only one view.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
/** vim: et:ts=4:sw=4:sts=4
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
     2
 * @license RequireJS 2.1.20 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * Available via the MIT or new BSD license.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 * see: http://github.com/jrburke/requirejs for details
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
//Not using strict: uneven strict support in browsers, #392, and causes
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
//problems with requirejs.exec()/transpiler plugins that may not be strict.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
/*jslint regexp: true, nomen: true, sloppy: true */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
/*global window, navigator, document, importScripts, setTimeout, opera */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
var requirejs, require, define;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
(function (global) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    var req, s, head, baseElement, dataMain, src,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        interactiveScript, currentlyAddingScript, mainScript, subPath,
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
    15
        version = '2.1.20',
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
        cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
        jsSuffixRegExp = /\.js$/,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
        currDirRegExp = /^\.\//,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        op = Object.prototype,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
        ostring = op.toString,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
        hasOwn = op.hasOwnProperty,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
        ap = Array.prototype,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        //PS3 indicates loaded and complete, but need to wait for complete
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
        //specifically. Sequence is 'loading', 'loaded', execution,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        // then 'complete'. The UA check is unfortunate, but not sure how
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        //to feature test w/o causing perf issues.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        readyRegExp = isBrowser && navigator.platform === 'PLAYSTATION 3' ?
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
                      /^complete$/ : /^(complete|loaded)$/,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
        defContextName = '_',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
        //Oh the tragedy, detecting opera. See the usage of isOpera for reason.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
        isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        contexts = {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        cfg = {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        globalDefQueue = [],
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
        useInteractive = false;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
    function isFunction(it) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        return ostring.call(it) === '[object Function]';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    function isArray(it) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        return ostring.call(it) === '[object Array]';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
     * Helper function for iterating over an array. If the func returns
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
     * a true value, it will break out of the loop.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
    function each(ary, func) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
        if (ary) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
            var i;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
            for (i = 0; i < ary.length; i += 1) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
                if (ary[i] && func(ary[i], i, ary)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
                    break;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
     * Helper function for iterating over an array backwards. If the func
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
     * returns a true value, it will break out of the loop.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
    function eachReverse(ary, func) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
        if (ary) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
            var i;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
            for (i = ary.length - 1; i > -1; i -= 1) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
                if (ary[i] && func(ary[i], i, ary)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
                    break;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
    function hasProp(obj, prop) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
        return hasOwn.call(obj, prop);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
    function getOwn(obj, prop) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
        return hasProp(obj, prop) && obj[prop];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
     * Cycles over properties in an object and calls a function for each
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
     * property value. If the function returns a truthy value, then the
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
     * iteration is stopped.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
    function eachProp(obj, func) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
        var prop;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
        for (prop in obj) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
            if (hasProp(obj, prop)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
                if (func(obj[prop], prop)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
                    break;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
     * Simple function to mix in properties from source into target,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
     * but only if target does not already have a property of the same name.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
    function mixin(target, source, force, deepStringMixin) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
        if (source) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
            eachProp(source, function (value, prop) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
                if (force || !hasProp(target, prop)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
                    if (deepStringMixin && typeof value === 'object' && value &&
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
                        !isArray(value) && !isFunction(value) &&
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
                        !(value instanceof RegExp)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
                        if (!target[prop]) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
                            target[prop] = {};
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
                        mixin(target[prop], value, force, deepStringMixin);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
                    } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
                        target[prop] = value;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
            });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
        return target;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
    //Similar to Function.prototype.bind, but the 'this' object is specified
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
    //first, since it is easier to read/figure out what 'this' will be.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
    function bind(obj, fn) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
        return function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
            return fn.apply(obj, arguments);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
        };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
    function scripts() {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
        return document.getElementsByTagName('script');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
    function defaultOnError(err) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
        throw err;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
    //Allow getting a global that is expressed in
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
    //dot notation, like 'a.b.c'.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
    function getGlobal(value) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
        if (!value) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
            return value;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
        var g = global;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
        each(value.split('.'), function (part) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
            g = g[part];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
        });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
        return g;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
     * Constructs an error with a pointer to an URL with more information.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
     * @param {String} id the error ID that maps to an ID on a web page.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
     * @param {String} message human readable error.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
     * @param {Error} [err] the original error, if there is one.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
     *
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
     * @returns {Error}
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
    function makeError(id, msg, err, requireModules) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
        var e = new Error(msg + '\nhttp://requirejs.org/docs/errors.html#' + id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
        e.requireType = id;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
        e.requireModules = requireModules;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
        if (err) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
            e.originalError = err;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
        return e;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
    if (typeof define !== 'undefined') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
        //If a define is already in play via another AMD loader,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
        //do not overwrite.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
        return;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
    if (typeof requirejs !== 'undefined') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
        if (isFunction(requirejs)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
            //Do not overwrite an existing requirejs instance.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
            return;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
        cfg = requirejs;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
        requirejs = undefined;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
    //Allow for a require config object
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
    if (typeof require !== 'undefined' && !isFunction(require)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
        //assume it is a config object.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
        cfg = require;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
        require = undefined;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
    function newContext(contextName) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
        var inCheckLoaded, Module, context, handlers,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
            checkLoadedTimeoutId,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
            config = {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
                //Defaults. Do not set a default for map
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
                //config to speed up normalize(), which
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
                //will run faster if there is no default.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
                waitSeconds: 7,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
                baseUrl: './',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
                paths: {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
                bundles: {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
                pkgs: {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
                shim: {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
                config: {}
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
            registry = {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
            //registry of just enabled modules, to speed
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
            //cycle breaking code when lots of modules
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
            //are registered, but not activated.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
            enabledRegistry = {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
            undefEvents = {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
            defQueue = [],
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
            defined = {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
            urlFetched = {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
            bundlesMap = {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
            requireCounter = 1,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
            unnormalizedCounter = 1;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
        /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
         * Trims the . and .. from an array of path segments.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
         * It will keep a leading path segment if a .. will become
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
         * the first path segment, to help with module name lookups,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
         * which act like paths, but can be remapped. But the end result,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
         * all paths that use this function should look normalized.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
         * NOTE: this method MODIFIES the input array.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
         * @param {Array} ary the array of path segments.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
         */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
        function trimDots(ary) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
            var i, part;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
            for (i = 0; i < ary.length; i++) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
                part = ary[i];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
                if (part === '.') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
                    ary.splice(i, 1);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
                    i -= 1;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
                } else if (part === '..') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
                    // If at the start, or previous value is still ..,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
                    // keep them so that when converted to a path it may
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
                    // still work when converted to a path, even though
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
                    // as an ID it is less than ideal. In larger point
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
                    // releases, may be better to just kick out an error.
489
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
   246
                    if (i === 0 || (i === 1 && ary[2] === '..') || ary[i - 1] === '..') {
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
                        continue;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
                    } else if (i > 0) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
                        ary.splice(i - 1, 2);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
                        i -= 2;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
        /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
         * Given a relative module name, like ./something, normalize it to
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
         * a real name that can be mapped to a path.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
         * @param {String} name the relative name
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
         * @param {String} baseName a real name that the name arg is relative
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
         * to.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
         * @param {Boolean} applyMap apply the map config to the value. Should
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
         * only be done if this normalization is for a dependency ID.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
         * @returns {String} normalized name
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
         */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
        function normalize(name, baseName, applyMap) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
            var pkgMain, mapValue, nameParts, i, j, nameSegment, lastIndex,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
                foundMap, foundI, foundStarMap, starI, normalizedBaseParts,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
                baseParts = (baseName && baseName.split('/')),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
                map = config.map,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
                starMap = map && map['*'];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
            //Adjust any relative paths.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
            if (name) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
                name = name.split('/');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
                lastIndex = name.length - 1;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
                // If wanting node ID compatibility, strip .js from end
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
                // of IDs. Have to do this here, and not in nameToUrl
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
                // because node allows either .js or non .js to map
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
                // to same file.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
                if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
                    name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
                // Starts with a '.' so need the baseName
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
                if (name[0].charAt(0) === '.' && baseParts) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
                    //Convert baseName to array, and lop off the last part,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
                    //so that . matches that 'directory' and not name of the baseName's
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
                    //module. For instance, baseName of 'one/two/three', maps to
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
                    //'one/two/three.js', but we want the directory, 'one/two' for
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
                    //this normalization.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
                    normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
                    name = normalizedBaseParts.concat(name);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
                trimDots(name);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
                name = name.join('/');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
            //Apply map config if available.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
            if (applyMap && map && (baseParts || starMap)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
                nameParts = name.split('/');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
                outerLoop: for (i = nameParts.length; i > 0; i -= 1) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
                    nameSegment = nameParts.slice(0, i).join('/');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
                    if (baseParts) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
                        //Find the longest baseName segment match in the config.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
                        //So, do joins on the biggest to smallest lengths of baseParts.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
                        for (j = baseParts.length; j > 0; j -= 1) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
                            mapValue = getOwn(map, baseParts.slice(0, j).join('/'));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
                            //baseName segment has config, find if it has one for
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
                            //this name.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
                            if (mapValue) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
                                mapValue = getOwn(mapValue, nameSegment);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
                                if (mapValue) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
                                    //Match, update name to the new value.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
                                    foundMap = mapValue;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
                                    foundI = i;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
                                    break outerLoop;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
                                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
                            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
                    //Check for a star map match, but just hold on to it,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
                    //if there is a shorter segment match later in a matching
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
                    //config, then favor over this star map.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
                    if (!foundStarMap && starMap && getOwn(starMap, nameSegment)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
                        foundStarMap = getOwn(starMap, nameSegment);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
                        starI = i;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
                if (!foundMap && foundStarMap) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
                    foundMap = foundStarMap;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
                    foundI = starI;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
                if (foundMap) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
                    nameParts.splice(0, foundI, foundMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
                    name = nameParts.join('/');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
            // If the name points to a package's name, use
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
            // the package main instead.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
            pkgMain = getOwn(config.pkgs, name);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
            return pkgMain ? pkgMain : name;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
        function removeScript(name) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
            if (isBrowser) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
                each(scripts(), function (scriptNode) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
                    if (scriptNode.getAttribute('data-requiremodule') === name &&
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
                            scriptNode.getAttribute('data-requirecontext') === context.contextName) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
                        scriptNode.parentNode.removeChild(scriptNode);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
                        return true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
                });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
        function hasPathFallback(id) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
            var pathConfig = getOwn(config.paths, id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
            if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
                //Pop off the first array value, since it failed, and
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
                //retry
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
                pathConfig.shift();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
                context.require.undef(id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
                //Custom require that does not do map translation, since
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
                //ID is "absolute", already mapped/resolved.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
                context.makeRequire(null, {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
                    skipMap: true
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
                })([id]);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
                return true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
        //Turns a plugin!resource to [plugin, resource]
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
        //with the plugin being undefined if the name
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
        //did not have a plugin prefix.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
        function splitPrefix(name) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
            var prefix,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
                index = name ? name.indexOf('!') : -1;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
            if (index > -1) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
                prefix = name.substring(0, index);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
                name = name.substring(index + 1, name.length);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
            return [prefix, name];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
        /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
         * Creates a module mapping that includes plugin prefix, module
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
         * name, and path. If parentModuleMap is provided it will
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
         * also normalize the name via require.normalize()
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
         *
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
         * @param {String} name the module name
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
         * @param {String} [parentModuleMap] parent module map
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
         * for the module name, used to resolve relative names.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
         * @param {Boolean} isNormalized: is the ID already normalized.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
         * This is true if this call is done for a define() module ID.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
         * @param {Boolean} applyMap: apply the map config to the ID.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
         * Should only be true if this map is for a dependency.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
         *
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
         * @returns {Object}
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
         */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
        function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
            var url, pluginModule, suffix, nameParts,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
                prefix = null,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
                parentName = parentModuleMap ? parentModuleMap.name : null,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
                originalName = name,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
                isDefine = true,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
                normalizedName = '';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
            //If no name, then it means it is a require call, generate an
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
            //internal name.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
            if (!name) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
                isDefine = false;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
                name = '_@r' + (requireCounter += 1);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
            nameParts = splitPrefix(name);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
            prefix = nameParts[0];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
            name = nameParts[1];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
            if (prefix) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
                prefix = normalize(prefix, parentName, applyMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
                pluginModule = getOwn(defined, prefix);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   436
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
            //Account for relative paths if there is a base name.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
            if (name) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
                if (prefix) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
                    if (pluginModule && pluginModule.normalize) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   441
                        //Plugin is loaded, use its normalize method.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   442
                        normalizedName = pluginModule.normalize(name, function (name) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
                            return normalize(name, parentName, applyMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
                        });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
                    } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
                        // If nested plugin references, then do not try to
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
                        // normalize, as it will not normalize correctly. This
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
                        // places a restriction on resourceIds, and the longer
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
                        // term solution is not to normalize until plugins are
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   450
                        // loaded and all normalizations to allow for async
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
                        // loading of a loader plugin. But for now, fixes the
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   452
                        // common uses. Details in #1131
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
                        normalizedName = name.indexOf('!') === -1 ?
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
                                         normalize(name, parentName, applyMap) :
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
                                         name;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   456
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   457
                } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   458
                    //A regular module.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
                    normalizedName = normalize(name, parentName, applyMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
                    //Normalized name may be a plugin ID due to map config
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
                    //application in normalize. The map config values must
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
                    //already be normalized, so do not need to redo that part.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
                    nameParts = splitPrefix(normalizedName);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
                    prefix = nameParts[0];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
                    normalizedName = nameParts[1];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
                    isNormalized = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
                    url = context.nameToUrl(normalizedName);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
            //If the id is a plugin id that cannot be determined if it needs
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
            //normalization, stamp it with a unique ID so two matching relative
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
            //ids that may conflict can be separate.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   476
            suffix = prefix && !pluginModule && !isNormalized ?
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   477
                     '_unnormalized' + (unnormalizedCounter += 1) :
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   478
                     '';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   479
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   480
            return {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   481
                prefix: prefix,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   482
                name: normalizedName,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   483
                parentMap: parentModuleMap,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   484
                unnormalized: !!suffix,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   485
                url: url,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   486
                originalName: originalName,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   487
                isDefine: isDefine,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   488
                id: (prefix ?
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   489
                        prefix + '!' + normalizedName :
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   490
                        normalizedName) + suffix
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   491
            };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   492
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   493
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   494
        function getModule(depMap) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   495
            var id = depMap.id,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   496
                mod = getOwn(registry, id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   497
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   498
            if (!mod) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   499
                mod = registry[id] = new context.Module(depMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   500
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   501
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   502
            return mod;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   503
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   504
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   505
        function on(depMap, name, fn) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   506
            var id = depMap.id,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   507
                mod = getOwn(registry, id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   508
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   509
            if (hasProp(defined, id) &&
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   510
                    (!mod || mod.defineEmitComplete)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   511
                if (name === 'defined') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   512
                    fn(defined[id]);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   513
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   514
            } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   515
                mod = getModule(depMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   516
                if (mod.error && name === 'error') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   517
                    fn(mod.error);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   518
                } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   519
                    mod.on(name, fn);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   520
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   521
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   522
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   523
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   524
        function onError(err, errback) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   525
            var ids = err.requireModules,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   526
                notified = false;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   527
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   528
            if (errback) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   529
                errback(err);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   530
            } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   531
                each(ids, function (id) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   532
                    var mod = getOwn(registry, id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   533
                    if (mod) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   534
                        //Set error on module, so it skips timeout checks.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   535
                        mod.error = err;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   536
                        if (mod.events.error) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   537
                            notified = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   538
                            mod.emit('error', err);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   539
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   540
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   541
                });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   542
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   543
                if (!notified) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   544
                    req.onError(err);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   545
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   546
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   547
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   548
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   549
        /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   550
         * Internal method to transfer globalQueue items to this context's
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   551
         * defQueue.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   552
         */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   553
        function takeGlobalQueue() {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   554
            //Push all the globalDefQueue items into the context's defQueue
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   555
            if (globalDefQueue.length) {
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
   556
                each(globalDefQueue, function(queueItem) {
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
   557
                    var id = queueItem[0];
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
   558
                    if (typeof id === 'string') {
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
   559
                        context.defQueueMap[id] = true;
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
   560
                    }
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
   561
                    defQueue.push(queueItem);
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
   562
                });
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   563
                globalDefQueue = [];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   564
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   565
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   566
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   567
        handlers = {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   568
            'require': function (mod) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   569
                if (mod.require) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   570
                    return mod.require;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   571
                } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   572
                    return (mod.require = context.makeRequire(mod.map));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   573
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   574
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   575
            'exports': function (mod) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   576
                mod.usingExports = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   577
                if (mod.map.isDefine) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   578
                    if (mod.exports) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   579
                        return (defined[mod.map.id] = mod.exports);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   580
                    } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   581
                        return (mod.exports = defined[mod.map.id] = {});
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   582
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   583
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   584
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   585
            'module': function (mod) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   586
                if (mod.module) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   587
                    return mod.module;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   588
                } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   589
                    return (mod.module = {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   590
                        id: mod.map.id,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   591
                        uri: mod.map.url,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   592
                        config: function () {
489
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
   593
                            return getOwn(config.config, mod.map.id) || {};
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   594
                        },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   595
                        exports: mod.exports || (mod.exports = {})
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   596
                    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   597
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   598
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   599
        };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   600
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   601
        function cleanRegistry(id) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   602
            //Clean up machinery used for waiting modules.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   603
            delete registry[id];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   604
            delete enabledRegistry[id];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   605
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   606
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   607
        function breakCycle(mod, traced, processed) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   608
            var id = mod.map.id;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   609
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   610
            if (mod.error) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   611
                mod.emit('error', mod.error);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   612
            } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   613
                traced[id] = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   614
                each(mod.depMaps, function (depMap, i) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   615
                    var depId = depMap.id,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   616
                        dep = getOwn(registry, depId);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   617
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   618
                    //Only force things that have not completed
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   619
                    //being defined, so still in the registry,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   620
                    //and only if it has not been matched up
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   621
                    //in the module already.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   622
                    if (dep && !mod.depMatched[i] && !processed[depId]) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   623
                        if (getOwn(traced, depId)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   624
                            mod.defineDep(i, defined[depId]);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   625
                            mod.check(); //pass false?
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   626
                        } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   627
                            breakCycle(dep, traced, processed);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   628
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   629
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   630
                });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   631
                processed[id] = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   632
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   633
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   634
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   635
        function checkLoaded() {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   636
            var err, usingPathFallback,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   637
                waitInterval = config.waitSeconds * 1000,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   638
                //It is possible to disable the wait interval by using waitSeconds of 0.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   639
                expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   640
                noLoads = [],
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   641
                reqCalls = [],
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   642
                stillLoading = false,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   643
                needCycleCheck = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   644
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   645
            //Do not bother if this call was a result of a cycle break.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   646
            if (inCheckLoaded) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   647
                return;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   648
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   649
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   650
            inCheckLoaded = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   651
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   652
            //Figure out the state of all the modules.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   653
            eachProp(enabledRegistry, function (mod) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   654
                var map = mod.map,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   655
                    modId = map.id;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   656
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   657
                //Skip things that are not enabled or in error state.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   658
                if (!mod.enabled) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   659
                    return;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   660
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   661
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   662
                if (!map.isDefine) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   663
                    reqCalls.push(mod);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   664
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   665
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   666
                if (!mod.error) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   667
                    //If the module should be executed, and it has not
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   668
                    //been inited and time is up, remember it.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   669
                    if (!mod.inited && expired) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   670
                        if (hasPathFallback(modId)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   671
                            usingPathFallback = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   672
                            stillLoading = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   673
                        } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   674
                            noLoads.push(modId);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   675
                            removeScript(modId);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   676
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   677
                    } else if (!mod.inited && mod.fetched && map.isDefine) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   678
                        stillLoading = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   679
                        if (!map.prefix) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   680
                            //No reason to keep looking for unfinished
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   681
                            //loading. If the only stillLoading is a
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   682
                            //plugin resource though, keep going,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   683
                            //because it may be that a plugin resource
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   684
                            //is waiting on a non-plugin cycle.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   685
                            return (needCycleCheck = false);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   686
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   687
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   688
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   689
            });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   690
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   691
            if (expired && noLoads.length) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   692
                //If wait time expired, throw error of unloaded modules.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   693
                err = makeError('timeout', 'Load timeout for modules: ' + noLoads, null, noLoads);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   694
                err.contextName = context.contextName;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   695
                return onError(err);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   696
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   697
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   698
            //Not expired, check for a cycle.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   699
            if (needCycleCheck) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   700
                each(reqCalls, function (mod) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   701
                    breakCycle(mod, {}, {});
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   702
                });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   703
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   704
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   705
            //If still waiting on loads, and the waiting load is something
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   706
            //other than a plugin resource, or there are still outstanding
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   707
            //scripts, then just try back later.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   708
            if ((!expired || usingPathFallback) && stillLoading) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   709
                //Something is still waiting to load. Wait for it, but only
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   710
                //if a timeout is not already in effect.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   711
                if ((isBrowser || isWebWorker) && !checkLoadedTimeoutId) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   712
                    checkLoadedTimeoutId = setTimeout(function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   713
                        checkLoadedTimeoutId = 0;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   714
                        checkLoaded();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   715
                    }, 50);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   716
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   717
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   718
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   719
            inCheckLoaded = false;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   720
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   721
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   722
        Module = function (map) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   723
            this.events = getOwn(undefEvents, map.id) || {};
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   724
            this.map = map;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   725
            this.shim = getOwn(config.shim, map.id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   726
            this.depExports = [];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   727
            this.depMaps = [];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   728
            this.depMatched = [];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   729
            this.pluginMaps = {};
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   730
            this.depCount = 0;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   731
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   732
            /* this.exports this.factory
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   733
               this.depMaps = [],
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   734
               this.enabled, this.fetched
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   735
            */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   736
        };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   737
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   738
        Module.prototype = {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   739
            init: function (depMaps, factory, errback, options) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   740
                options = options || {};
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   741
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   742
                //Do not do more inits if already done. Can happen if there
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   743
                //are multiple define calls for the same module. That is not
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   744
                //a normal, common case, but it is also not unexpected.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   745
                if (this.inited) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   746
                    return;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   747
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   748
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   749
                this.factory = factory;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   750
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   751
                if (errback) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   752
                    //Register for errors on this module.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   753
                    this.on('error', errback);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   754
                } else if (this.events.error) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   755
                    //If no errback already, but there are error listeners
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   756
                    //on this module, set up an errback to pass to the deps.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   757
                    errback = bind(this, function (err) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   758
                        this.emit('error', err);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   759
                    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   760
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   761
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   762
                //Do a copy of the dependency array, so that
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   763
                //source inputs are not modified. For example
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   764
                //"shim" deps are passed in here directly, and
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   765
                //doing a direct modification of the depMaps array
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   766
                //would affect that config.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   767
                this.depMaps = depMaps && depMaps.slice(0);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   768
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   769
                this.errback = errback;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   770
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   771
                //Indicate this module has be initialized
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   772
                this.inited = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   773
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   774
                this.ignore = options.ignore;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   775
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   776
                //Could have option to init this module in enabled mode,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   777
                //or could have been previously marked as enabled. However,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   778
                //the dependencies are not known until init is called. So
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   779
                //if enabled previously, now trigger dependencies as enabled.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   780
                if (options.enabled || this.enabled) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   781
                    //Enable this module and dependencies.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   782
                    //Will call this.check()
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   783
                    this.enable();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   784
                } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   785
                    this.check();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   786
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   787
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   788
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   789
            defineDep: function (i, depExports) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   790
                //Because of cycles, defined callback for a given
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   791
                //export can be called more than once.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   792
                if (!this.depMatched[i]) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   793
                    this.depMatched[i] = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   794
                    this.depCount -= 1;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   795
                    this.depExports[i] = depExports;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   796
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   797
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   798
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   799
            fetch: function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   800
                if (this.fetched) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   801
                    return;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   802
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   803
                this.fetched = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   804
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   805
                context.startTime = (new Date()).getTime();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   806
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   807
                var map = this.map;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   808
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   809
                //If the manager is for a plugin managed resource,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   810
                //ask the plugin to load it now.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   811
                if (this.shim) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   812
                    context.makeRequire(this.map, {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   813
                        enableBuildCallback: true
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   814
                    })(this.shim.deps || [], bind(this, function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   815
                        return map.prefix ? this.callPlugin() : this.load();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   816
                    }));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   817
                } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   818
                    //Regular dependency.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   819
                    return map.prefix ? this.callPlugin() : this.load();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   820
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   821
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   822
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   823
            load: function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   824
                var url = this.map.url;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   825
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   826
                //Regular dependency.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   827
                if (!urlFetched[url]) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   828
                    urlFetched[url] = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   829
                    context.load(this.map.id, url);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   830
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   831
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   832
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   833
            /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   834
             * Checks if the module is ready to define itself, and if so,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   835
             * define it.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   836
             */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   837
            check: function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   838
                if (!this.enabled || this.enabling) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   839
                    return;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   840
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   841
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   842
                var err, cjsModule,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   843
                    id = this.map.id,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   844
                    depExports = this.depExports,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   845
                    exports = this.exports,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   846
                    factory = this.factory;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   847
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   848
                if (!this.inited) {
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
   849
                    // Only fetch if not already in the defQueue.
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
   850
                    if (!hasProp(context.defQueueMap, id)) {
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
   851
                        this.fetch();
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
   852
                    }
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   853
                } else if (this.error) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   854
                    this.emit('error', this.error);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   855
                } else if (!this.defining) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   856
                    //The factory could trigger another require call
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   857
                    //that would result in checking this module to
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   858
                    //define itself again. If already in the process
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   859
                    //of doing that, skip this work.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   860
                    this.defining = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   861
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   862
                    if (this.depCount < 1 && !this.defined) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   863
                        if (isFunction(factory)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   864
                            //If there is an error listener, favor passing
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   865
                            //to that instead of throwing an error. However,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   866
                            //only do it for define()'d  modules. require
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   867
                            //errbacks should not be called for failures in
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   868
                            //their callbacks (#699). However if a global
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   869
                            //onError is set, use that.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   870
                            if ((this.events.error && this.map.isDefine) ||
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   871
                                req.onError !== defaultOnError) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   872
                                try {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   873
                                    exports = context.execCb(id, factory, depExports, exports);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   874
                                } catch (e) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   875
                                    err = e;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   876
                                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   877
                            } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   878
                                exports = context.execCb(id, factory, depExports, exports);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   879
                            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   880
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   881
                            // Favor return value over exports. If node/cjs in play,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   882
                            // then will not have a return value anyway. Favor
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   883
                            // module.exports assignment over exports object.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   884
                            if (this.map.isDefine && exports === undefined) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   885
                                cjsModule = this.module;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   886
                                if (cjsModule) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   887
                                    exports = cjsModule.exports;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   888
                                } else if (this.usingExports) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   889
                                    //exports already set the defined value.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   890
                                    exports = this.exports;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   891
                                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   892
                            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   893
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   894
                            if (err) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   895
                                err.requireMap = this.map;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   896
                                err.requireModules = this.map.isDefine ? [this.map.id] : null;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   897
                                err.requireType = this.map.isDefine ? 'define' : 'require';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   898
                                return onError((this.error = err));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   899
                            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   900
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   901
                        } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   902
                            //Just a literal value
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   903
                            exports = factory;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   904
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   905
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   906
                        this.exports = exports;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   907
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   908
                        if (this.map.isDefine && !this.ignore) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   909
                            defined[id] = exports;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   910
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   911
                            if (req.onResourceLoad) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   912
                                req.onResourceLoad(context, this.map, this.depMaps);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   913
                            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   914
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   915
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   916
                        //Clean up
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   917
                        cleanRegistry(id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   918
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   919
                        this.defined = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   920
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   921
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   922
                    //Finished the define stage. Allow calling check again
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   923
                    //to allow define notifications below in the case of a
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   924
                    //cycle.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   925
                    this.defining = false;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   926
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   927
                    if (this.defined && !this.defineEmitted) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   928
                        this.defineEmitted = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   929
                        this.emit('defined', this.exports);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   930
                        this.defineEmitComplete = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   931
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   932
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   933
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   934
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   935
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   936
            callPlugin: function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   937
                var map = this.map,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   938
                    id = map.id,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   939
                    //Map already normalized the prefix.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   940
                    pluginMap = makeModuleMap(map.prefix);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   941
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   942
                //Mark this as a dependency for this plugin, so it
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   943
                //can be traced for cycles.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   944
                this.depMaps.push(pluginMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   945
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   946
                on(pluginMap, 'defined', bind(this, function (plugin) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   947
                    var load, normalizedMap, normalizedMod,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   948
                        bundleId = getOwn(bundlesMap, this.map.id),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   949
                        name = this.map.name,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   950
                        parentName = this.map.parentMap ? this.map.parentMap.name : null,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   951
                        localRequire = context.makeRequire(map.parentMap, {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   952
                            enableBuildCallback: true
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   953
                        });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   954
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   955
                    //If current map is not normalized, wait for that
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   956
                    //normalized name to load instead of continuing.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   957
                    if (this.map.unnormalized) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   958
                        //Normalize the ID if the plugin allows it.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   959
                        if (plugin.normalize) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   960
                            name = plugin.normalize(name, function (name) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   961
                                return normalize(name, parentName, true);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   962
                            }) || '';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   963
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   964
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   965
                        //prefix and name should already be normalized, no need
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   966
                        //for applying map config again either.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   967
                        normalizedMap = makeModuleMap(map.prefix + '!' + name,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   968
                                                      this.map.parentMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   969
                        on(normalizedMap,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   970
                            'defined', bind(this, function (value) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   971
                                this.init([], function () { return value; }, null, {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   972
                                    enabled: true,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   973
                                    ignore: true
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   974
                                });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   975
                            }));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   976
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   977
                        normalizedMod = getOwn(registry, normalizedMap.id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   978
                        if (normalizedMod) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   979
                            //Mark this as a dependency for this plugin, so it
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   980
                            //can be traced for cycles.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   981
                            this.depMaps.push(normalizedMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   982
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   983
                            if (this.events.error) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   984
                                normalizedMod.on('error', bind(this, function (err) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   985
                                    this.emit('error', err);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   986
                                }));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   987
                            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   988
                            normalizedMod.enable();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   989
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   990
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   991
                        return;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   992
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   993
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   994
                    //If a paths config, then just load that file instead to
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   995
                    //resolve the plugin, as it is built into that paths layer.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   996
                    if (bundleId) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   997
                        this.map.url = context.nameToUrl(bundleId);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   998
                        this.load();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   999
                        return;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1000
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1001
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1002
                    load = bind(this, function (value) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1003
                        this.init([], function () { return value; }, null, {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1004
                            enabled: true
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1005
                        });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1006
                    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1007
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1008
                    load.error = bind(this, function (err) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1009
                        this.inited = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1010
                        this.error = err;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1011
                        err.requireModules = [id];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1012
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1013
                        //Remove temp unnormalized modules for this module,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1014
                        //since they will never be resolved otherwise now.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1015
                        eachProp(registry, function (mod) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1016
                            if (mod.map.id.indexOf(id + '_unnormalized') === 0) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1017
                                cleanRegistry(mod.map.id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1018
                            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1019
                        });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1020
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1021
                        onError(err);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1022
                    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1023
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1024
                    //Allow plugins to load other code without having to know the
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1025
                    //context or how to 'complete' the load.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1026
                    load.fromText = bind(this, function (text, textAlt) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1027
                        /*jslint evil: true */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1028
                        var moduleName = map.name,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1029
                            moduleMap = makeModuleMap(moduleName),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1030
                            hasInteractive = useInteractive;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1031
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1032
                        //As of 2.1.0, support just passing the text, to reinforce
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1033
                        //fromText only being called once per resource. Still
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1034
                        //support old style of passing moduleName but discard
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1035
                        //that moduleName in favor of the internal ref.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1036
                        if (textAlt) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1037
                            text = textAlt;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1038
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1039
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1040
                        //Turn off interactive script matching for IE for any define
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1041
                        //calls in the text, then turn it back on at the end.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1042
                        if (hasInteractive) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1043
                            useInteractive = false;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1044
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1045
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1046
                        //Prime the system by creating a module instance for
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1047
                        //it.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1048
                        getModule(moduleMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1049
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1050
                        //Transfer any config to this other module.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1051
                        if (hasProp(config.config, id)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1052
                            config.config[moduleName] = config.config[id];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1053
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1054
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1055
                        try {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1056
                            req.exec(text);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1057
                        } catch (e) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1058
                            return onError(makeError('fromtexteval',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1059
                                             'fromText eval for ' + id +
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1060
                                            ' failed: ' + e,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1061
                                             e,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1062
                                             [id]));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1063
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1064
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1065
                        if (hasInteractive) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1066
                            useInteractive = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1067
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1068
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1069
                        //Mark this as a dependency for the plugin
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1070
                        //resource
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1071
                        this.depMaps.push(moduleMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1072
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1073
                        //Support anonymous modules.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1074
                        context.completeLoad(moduleName);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1075
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1076
                        //Bind the value of that module to the value for this
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1077
                        //resource ID.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1078
                        localRequire([moduleName], load);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1079
                    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1080
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1081
                    //Use parentName here since the plugin's name is not reliable,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1082
                    //could be some weird string with no path that actually wants to
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1083
                    //reference the parentName's path.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1084
                    plugin.load(map.name, localRequire, load, config);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1085
                }));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1086
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1087
                context.enable(pluginMap, this);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1088
                this.pluginMaps[pluginMap.id] = pluginMap;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1089
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1090
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1091
            enable: function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1092
                enabledRegistry[this.map.id] = this;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1093
                this.enabled = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1094
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1095
                //Set flag mentioning that the module is enabling,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1096
                //so that immediate calls to the defined callbacks
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1097
                //for dependencies do not trigger inadvertent load
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1098
                //with the depCount still being zero.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1099
                this.enabling = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1100
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1101
                //Enable each dependency
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1102
                each(this.depMaps, bind(this, function (depMap, i) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1103
                    var id, mod, handler;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1104
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1105
                    if (typeof depMap === 'string') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1106
                        //Dependency needs to be converted to a depMap
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1107
                        //and wired up to this module.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1108
                        depMap = makeModuleMap(depMap,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1109
                                               (this.map.isDefine ? this.map : this.map.parentMap),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1110
                                               false,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1111
                                               !this.skipMap);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1112
                        this.depMaps[i] = depMap;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1113
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1114
                        handler = getOwn(handlers, depMap.id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1115
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1116
                        if (handler) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1117
                            this.depExports[i] = handler(this);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1118
                            return;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1119
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1120
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1121
                        this.depCount += 1;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1122
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1123
                        on(depMap, 'defined', bind(this, function (depExports) {
489
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1124
                            if (this.undefed) {
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1125
                                return;
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1126
                            }
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1127
                            this.defineDep(i, depExports);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1128
                            this.check();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1129
                        }));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1130
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1131
                        if (this.errback) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1132
                            on(depMap, 'error', bind(this, this.errback));
489
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1133
                        } else if (this.events.error) {
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1134
                            // No direct errback on this module, but something
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1135
                            // else is listening for errors, so be sure to
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1136
                            // propagate the error correctly.
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1137
                            on(depMap, 'error', bind(this, function(err) {
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1138
                                this.emit('error', err);
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1139
                            }));
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1140
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1141
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1142
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1143
                    id = depMap.id;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1144
                    mod = registry[id];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1145
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1146
                    //Skip special modules like 'require', 'exports', 'module'
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1147
                    //Also, don't call enable if it is already enabled,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1148
                    //important in circular dependency cases.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1149
                    if (!hasProp(handlers, id) && mod && !mod.enabled) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1150
                        context.enable(depMap, this);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1151
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1152
                }));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1153
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1154
                //Enable each plugin that is used in
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1155
                //a dependency
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1156
                eachProp(this.pluginMaps, bind(this, function (pluginMap) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1157
                    var mod = getOwn(registry, pluginMap.id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1158
                    if (mod && !mod.enabled) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1159
                        context.enable(pluginMap, this);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1160
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1161
                }));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1162
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1163
                this.enabling = false;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1164
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1165
                this.check();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1166
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1167
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1168
            on: function (name, cb) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1169
                var cbs = this.events[name];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1170
                if (!cbs) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1171
                    cbs = this.events[name] = [];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1172
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1173
                cbs.push(cb);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1174
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1175
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1176
            emit: function (name, evt) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1177
                each(this.events[name], function (cb) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1178
                    cb(evt);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1179
                });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1180
                if (name === 'error') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1181
                    //Now that the error handler was triggered, remove
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1182
                    //the listeners, since this broken Module instance
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1183
                    //can stay around for a while in the registry.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1184
                    delete this.events[name];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1185
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1186
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1187
        };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1188
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1189
        function callGetModule(args) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1190
            //Skip modules already defined.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1191
            if (!hasProp(defined, args[0])) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1192
                getModule(makeModuleMap(args[0], null, true)).init(args[1], args[2]);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1193
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1194
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1195
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1196
        function removeListener(node, func, name, ieName) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1197
            //Favor detachEvent because of IE9
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1198
            //issue, see attachEvent/addEventListener comment elsewhere
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1199
            //in this file.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1200
            if (node.detachEvent && !isOpera) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1201
                //Probably IE. If not it will throw an error, which will be
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1202
                //useful to know.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1203
                if (ieName) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1204
                    node.detachEvent(ieName, func);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1205
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1206
            } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1207
                node.removeEventListener(name, func, false);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1208
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1209
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1210
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1211
        /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1212
         * Given an event from a script node, get the requirejs info from it,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1213
         * and then removes the event listeners on the node.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1214
         * @param {Event} evt
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1215
         * @returns {Object}
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1216
         */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1217
        function getScriptData(evt) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1218
            //Using currentTarget instead of target for Firefox 2.0's sake. Not
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1219
            //all old browsers will be supported, but this one was easy enough
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1220
            //to support and still makes sense.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1221
            var node = evt.currentTarget || evt.srcElement;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1222
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1223
            //Remove the listeners once here.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1224
            removeListener(node, context.onScriptLoad, 'load', 'onreadystatechange');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1225
            removeListener(node, context.onScriptError, 'error');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1226
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1227
            return {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1228
                node: node,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1229
                id: node && node.getAttribute('data-requiremodule')
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1230
            };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1231
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1232
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1233
        function intakeDefines() {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1234
            var args;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1235
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1236
            //Any defined modules in the global queue, intake them now.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1237
            takeGlobalQueue();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1238
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1239
            //Make sure any remaining defQueue items get properly processed.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1240
            while (defQueue.length) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1241
                args = defQueue.shift();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1242
                if (args[0] === null) {
489
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1243
                    return onError(makeError('mismatch', 'Mismatched anonymous define() module: ' +
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1244
                        args[args.length - 1]));
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1245
                } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1246
                    //args are id, deps, factory. Should be normalized by the
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1247
                    //define() function.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1248
                    callGetModule(args);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1249
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1250
            }
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  1251
            context.defQueueMap = {};
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1252
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1253
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1254
        context = {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1255
            config: config,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1256
            contextName: contextName,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1257
            registry: registry,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1258
            defined: defined,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1259
            urlFetched: urlFetched,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1260
            defQueue: defQueue,
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  1261
            defQueueMap: {},
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1262
            Module: Module,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1263
            makeModuleMap: makeModuleMap,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1264
            nextTick: req.nextTick,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1265
            onError: onError,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1266
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1267
            /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1268
             * Set a configuration for the context.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1269
             * @param {Object} cfg config object to integrate.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1270
             */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1271
            configure: function (cfg) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1272
                //Make sure the baseUrl ends in a slash.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1273
                if (cfg.baseUrl) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1274
                    if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1275
                        cfg.baseUrl += '/';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1276
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1277
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1278
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1279
                //Save off the paths since they require special processing,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1280
                //they are additive.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1281
                var shim = config.shim,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1282
                    objs = {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1283
                        paths: true,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1284
                        bundles: true,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1285
                        config: true,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1286
                        map: true
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1287
                    };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1288
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1289
                eachProp(cfg, function (value, prop) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1290
                    if (objs[prop]) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1291
                        if (!config[prop]) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1292
                            config[prop] = {};
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1293
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1294
                        mixin(config[prop], value, true, true);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1295
                    } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1296
                        config[prop] = value;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1297
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1298
                });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1299
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1300
                //Reverse map the bundles
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1301
                if (cfg.bundles) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1302
                    eachProp(cfg.bundles, function (value, prop) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1303
                        each(value, function (v) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1304
                            if (v !== prop) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1305
                                bundlesMap[v] = prop;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1306
                            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1307
                        });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1308
                    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1309
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1310
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1311
                //Merge shim
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1312
                if (cfg.shim) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1313
                    eachProp(cfg.shim, function (value, id) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1314
                        //Normalize the structure
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1315
                        if (isArray(value)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1316
                            value = {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1317
                                deps: value
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1318
                            };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1319
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1320
                        if ((value.exports || value.init) && !value.exportsFn) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1321
                            value.exportsFn = context.makeShimExports(value);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1322
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1323
                        shim[id] = value;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1324
                    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1325
                    config.shim = shim;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1326
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1327
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1328
                //Adjust packages if necessary.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1329
                if (cfg.packages) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1330
                    each(cfg.packages, function (pkgObj) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1331
                        var location, name;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1332
489
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1333
                        pkgObj = typeof pkgObj === 'string' ? {name: pkgObj} : pkgObj;
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1334
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1335
                        name = pkgObj.name;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1336
                        location = pkgObj.location;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1337
                        if (location) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1338
                            config.paths[name] = pkgObj.location;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1339
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1340
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1341
                        //Save pointer to main module ID for pkg name.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1342
                        //Remove leading dot in main, so main paths are normalized,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1343
                        //and remove any trailing .js, since different package
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1344
                        //envs have different conventions: some use a module name,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1345
                        //some use a file name.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1346
                        config.pkgs[name] = pkgObj.name + '/' + (pkgObj.main || 'main')
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1347
                                     .replace(currDirRegExp, '')
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1348
                                     .replace(jsSuffixRegExp, '');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1349
                    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1350
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1351
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1352
                //If there are any "waiting to execute" modules in the registry,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1353
                //update the maps for them, since their info, like URLs to load,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1354
                //may have changed.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1355
                eachProp(registry, function (mod, id) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1356
                    //If module already has init called, since it is too
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1357
                    //late to modify them, and ignore unnormalized ones
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1358
                    //since they are transient.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1359
                    if (!mod.inited && !mod.map.unnormalized) {
489
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1360
                        mod.map = makeModuleMap(id, null, true);
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1361
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1362
                });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1363
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1364
                //If a deps array or a config callback is specified, then call
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1365
                //require with those args. This is useful when require is defined as a
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1366
                //config object before require.js is loaded.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1367
                if (cfg.deps || cfg.callback) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1368
                    context.require(cfg.deps || [], cfg.callback);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1369
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1370
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1371
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1372
            makeShimExports: function (value) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1373
                function fn() {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1374
                    var ret;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1375
                    if (value.init) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1376
                        ret = value.init.apply(global, arguments);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1377
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1378
                    return ret || (value.exports && getGlobal(value.exports));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1379
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1380
                return fn;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1381
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1382
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1383
            makeRequire: function (relMap, options) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1384
                options = options || {};
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1385
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1386
                function localRequire(deps, callback, errback) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1387
                    var id, map, requireMod;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1388
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1389
                    if (options.enableBuildCallback && callback && isFunction(callback)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1390
                        callback.__requireJsBuild = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1391
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1392
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1393
                    if (typeof deps === 'string') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1394
                        if (isFunction(callback)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1395
                            //Invalid call
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1396
                            return onError(makeError('requireargs', 'Invalid require call'), errback);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1397
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1398
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1399
                        //If require|exports|module are requested, get the
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1400
                        //value for them from the special handlers. Caveat:
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1401
                        //this only works while module is being defined.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1402
                        if (relMap && hasProp(handlers, deps)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1403
                            return handlers[deps](registry[relMap.id]);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1404
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1405
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1406
                        //Synchronous access to one module. If require.get is
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1407
                        //available (as in the Node adapter), prefer that.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1408
                        if (req.get) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1409
                            return req.get(context, deps, relMap, localRequire);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1410
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1411
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1412
                        //Normalize module name, if it contains . or ..
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1413
                        map = makeModuleMap(deps, relMap, false, true);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1414
                        id = map.id;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1415
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1416
                        if (!hasProp(defined, id)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1417
                            return onError(makeError('notloaded', 'Module name "' +
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1418
                                        id +
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1419
                                        '" has not been loaded yet for context: ' +
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1420
                                        contextName +
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1421
                                        (relMap ? '' : '. Use require([])')));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1422
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1423
                        return defined[id];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1424
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1425
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1426
                    //Grab defines waiting in the global queue.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1427
                    intakeDefines();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1428
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1429
                    //Mark all the dependencies as needing to be loaded.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1430
                    context.nextTick(function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1431
                        //Some defines could have been added since the
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1432
                        //require call, collect them.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1433
                        intakeDefines();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1434
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1435
                        requireMod = getModule(makeModuleMap(null, relMap));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1436
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1437
                        //Store if map config should be applied to this require
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1438
                        //call for dependencies.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1439
                        requireMod.skipMap = options.skipMap;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1440
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1441
                        requireMod.init(deps, callback, errback, {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1442
                            enabled: true
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1443
                        });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1444
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1445
                        checkLoaded();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1446
                    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1447
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1448
                    return localRequire;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1449
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1450
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1451
                mixin(localRequire, {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1452
                    isBrowser: isBrowser,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1453
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1454
                    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1455
                     * Converts a module name + .extension into an URL path.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1456
                     * *Requires* the use of a module name. It does not support using
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1457
                     * plain URLs like nameToUrl.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1458
                     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1459
                    toUrl: function (moduleNamePlusExt) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1460
                        var ext,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1461
                            index = moduleNamePlusExt.lastIndexOf('.'),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1462
                            segment = moduleNamePlusExt.split('/')[0],
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1463
                            isRelative = segment === '.' || segment === '..';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1464
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1465
                        //Have a file extension alias, and it is not the
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1466
                        //dots from a relative path.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1467
                        if (index !== -1 && (!isRelative || index > 1)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1468
                            ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1469
                            moduleNamePlusExt = moduleNamePlusExt.substring(0, index);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1470
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1471
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1472
                        return context.nameToUrl(normalize(moduleNamePlusExt,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1473
                                                relMap && relMap.id, true), ext,  true);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1474
                    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1475
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1476
                    defined: function (id) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1477
                        return hasProp(defined, makeModuleMap(id, relMap, false, true).id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1478
                    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1479
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1480
                    specified: function (id) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1481
                        id = makeModuleMap(id, relMap, false, true).id;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1482
                        return hasProp(defined, id) || hasProp(registry, id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1483
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1484
                });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1485
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1486
                //Only allow undef on top level require calls
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1487
                if (!relMap) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1488
                    localRequire.undef = function (id) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1489
                        //Bind any waiting define() calls to this context,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1490
                        //fix for #408
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1491
                        takeGlobalQueue();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1492
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1493
                        var map = makeModuleMap(id, relMap, true),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1494
                            mod = getOwn(registry, id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1495
489
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1496
                        mod.undefed = true;
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1497
                        removeScript(id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1498
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1499
                        delete defined[id];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1500
                        delete urlFetched[map.url];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1501
                        delete undefEvents[id];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1502
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1503
                        //Clean queued defines too. Go backwards
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1504
                        //in array so that the splices do not
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1505
                        //mess up the iteration.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1506
                        eachReverse(defQueue, function(args, i) {
489
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1507
                            if (args[0] === id) {
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1508
                                defQueue.splice(i, 1);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1509
                            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1510
                        });
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  1511
                        delete context.defQueueMap[id];
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1512
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1513
                        if (mod) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1514
                            //Hold on to listeners in case the
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1515
                            //module will be attempted to be reloaded
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1516
                            //using a different config.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1517
                            if (mod.events.defined) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1518
                                undefEvents[id] = mod.events;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1519
                            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1520
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1521
                            cleanRegistry(id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1522
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1523
                    };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1524
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1525
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1526
                return localRequire;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1527
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1528
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1529
            /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1530
             * Called to enable a module if it is still in the registry
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1531
             * awaiting enablement. A second arg, parent, the parent module,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1532
             * is passed in for context, when this method is overridden by
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1533
             * the optimizer. Not shown here to keep code compact.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1534
             */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1535
            enable: function (depMap) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1536
                var mod = getOwn(registry, depMap.id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1537
                if (mod) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1538
                    getModule(depMap).enable();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1539
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1540
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1541
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1542
            /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1543
             * Internal method used by environment adapters to complete a load event.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1544
             * A load event could be a script load or just a load pass from a synchronous
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1545
             * load call.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1546
             * @param {String} moduleName the name of the module to potentially complete.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1547
             */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1548
            completeLoad: function (moduleName) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1549
                var found, args, mod,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1550
                    shim = getOwn(config.shim, moduleName) || {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1551
                    shExports = shim.exports;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1552
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1553
                takeGlobalQueue();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1554
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1555
                while (defQueue.length) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1556
                    args = defQueue.shift();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1557
                    if (args[0] === null) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1558
                        args[0] = moduleName;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1559
                        //If already found an anonymous module and bound it
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1560
                        //to this name, then this is some other anon module
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1561
                        //waiting for its completeLoad to fire.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1562
                        if (found) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1563
                            break;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1564
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1565
                        found = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1566
                    } else if (args[0] === moduleName) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1567
                        //Found matching define call for this script!
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1568
                        found = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1569
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1570
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1571
                    callGetModule(args);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1572
                }
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  1573
                context.defQueueMap = {};
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1574
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1575
                //Do this after the cycle of callGetModule in case the result
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1576
                //of those calls/init calls changes the registry.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1577
                mod = getOwn(registry, moduleName);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1578
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1579
                if (!found && !hasProp(defined, moduleName) && mod && !mod.inited) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1580
                    if (config.enforceDefine && (!shExports || !getGlobal(shExports))) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1581
                        if (hasPathFallback(moduleName)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1582
                            return;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1583
                        } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1584
                            return onError(makeError('nodefine',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1585
                                             'No define call for ' + moduleName,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1586
                                             null,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1587
                                             [moduleName]));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1588
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1589
                    } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1590
                        //A script that does not call define(), so just simulate
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1591
                        //the call for it.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1592
                        callGetModule([moduleName, (shim.deps || []), shim.exportsFn]);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1593
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1594
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1595
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1596
                checkLoaded();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1597
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1598
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1599
            /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1600
             * Converts a module name to a file path. Supports cases where
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1601
             * moduleName may actually be just an URL.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1602
             * Note that it **does not** call normalize on the moduleName,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1603
             * it is assumed to have already been normalized. This is an
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1604
             * internal API, not a public one. Use toUrl for the public API.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1605
             */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1606
            nameToUrl: function (moduleName, ext, skipExt) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1607
                var paths, syms, i, parentModule, url,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1608
                    parentPath, bundleId,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1609
                    pkgMain = getOwn(config.pkgs, moduleName);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1610
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1611
                if (pkgMain) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1612
                    moduleName = pkgMain;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1613
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1614
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1615
                bundleId = getOwn(bundlesMap, moduleName);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1616
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1617
                if (bundleId) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1618
                    return context.nameToUrl(bundleId, ext, skipExt);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1619
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1620
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1621
                //If a colon is in the URL, it indicates a protocol is used and it is just
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1622
                //an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?)
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1623
                //or ends with .js, then assume the user meant to use an url and not a module id.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1624
                //The slash is important for protocol-less URLs as well as full paths.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1625
                if (req.jsExtRegExp.test(moduleName)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1626
                    //Just a plain path, not module name lookup, so just return it.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1627
                    //Add extension if it is included. This is a bit wonky, only non-.js things pass
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1628
                    //an extension, this method probably needs to be reworked.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1629
                    url = moduleName + (ext || '');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1630
                } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1631
                    //A module that needs to be converted to a path.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1632
                    paths = config.paths;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1633
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1634
                    syms = moduleName.split('/');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1635
                    //For each module name segment, see if there is a path
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1636
                    //registered for it. Start with most specific name
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1637
                    //and work up from it.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1638
                    for (i = syms.length; i > 0; i -= 1) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1639
                        parentModule = syms.slice(0, i).join('/');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1640
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1641
                        parentPath = getOwn(paths, parentModule);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1642
                        if (parentPath) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1643
                            //If an array, it means there are a few choices,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1644
                            //Choose the one that is desired
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1645
                            if (isArray(parentPath)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1646
                                parentPath = parentPath[0];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1647
                            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1648
                            syms.splice(0, i, parentPath);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1649
                            break;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1650
                        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1651
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1652
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1653
                    //Join the path parts together, then figure out if baseUrl is needed.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1654
                    url = syms.join('/');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1655
                    url += (ext || (/^data\:|\?/.test(url) || skipExt ? '' : '.js'));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1656
                    url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1657
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1658
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1659
                return config.urlArgs ? url +
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1660
                                        ((url.indexOf('?') === -1 ? '?' : '&') +
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1661
                                         config.urlArgs) : url;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1662
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1663
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1664
            //Delegates to req.load. Broken out as a separate function to
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1665
            //allow overriding in the optimizer.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1666
            load: function (id, url) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1667
                req.load(context, id, url);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1668
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1669
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1670
            /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1671
             * Executes a module callback function. Broken out as a separate function
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1672
             * solely to allow the build system to sequence the files in the built
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1673
             * layer in the right sequence.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1674
             *
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1675
             * @private
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1676
             */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1677
            execCb: function (name, callback, args, exports) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1678
                return callback.apply(exports, args);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1679
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1680
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1681
            /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1682
             * callback for script loads, used to check status of loading.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1683
             *
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1684
             * @param {Event} evt the event from the browser for the script
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1685
             * that was loaded.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1686
             */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1687
            onScriptLoad: function (evt) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1688
                //Using currentTarget instead of target for Firefox 2.0's sake. Not
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1689
                //all old browsers will be supported, but this one was easy enough
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1690
                //to support and still makes sense.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1691
                if (evt.type === 'load' ||
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1692
                        (readyRegExp.test((evt.currentTarget || evt.srcElement).readyState))) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1693
                    //Reset interactive script so a script node is not held onto for
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1694
                    //to long.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1695
                    interactiveScript = null;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1696
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1697
                    //Pull out the name of the module and the context.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1698
                    var data = getScriptData(evt);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1699
                    context.completeLoad(data.id);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1700
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1701
            },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1702
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1703
            /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1704
             * Callback for script errors.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1705
             */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1706
            onScriptError: function (evt) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1707
                var data = getScriptData(evt);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1708
                if (!hasPathFallback(data.id)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1709
                    return onError(makeError('scripterror', 'Script error for: ' + data.id, evt, [data.id]));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1710
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1711
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1712
        };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1713
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1714
        context.require = context.makeRequire();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1715
        return context;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1716
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1717
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1718
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1719
     * Main entry point.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1720
     *
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1721
     * If the only argument to require is a string, then the module that
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1722
     * is represented by that string is fetched for the appropriate context.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1723
     *
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1724
     * If the first argument is an array, then it will be treated as an array
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1725
     * of dependency string names to fetch. An optional function callback can
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1726
     * be specified to execute when all of those dependencies are available.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1727
     *
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1728
     * Make a local req variable to help Caja compliance (it assumes things
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1729
     * on a require that are not standardized), and to give a short
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1730
     * name for minification/local scope use.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1731
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1732
    req = requirejs = function (deps, callback, errback, optional) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1733
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1734
        //Find the right context, use default
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1735
        var context, config,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1736
            contextName = defContextName;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1737
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1738
        // Determine if have config object in the call.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1739
        if (!isArray(deps) && typeof deps !== 'string') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1740
            // deps is a config object
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1741
            config = deps;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1742
            if (isArray(callback)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1743
                // Adjust args if there are dependencies
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1744
                deps = callback;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1745
                callback = errback;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1746
                errback = optional;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1747
            } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1748
                deps = [];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1749
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1750
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1751
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1752
        if (config && config.context) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1753
            contextName = config.context;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1754
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1755
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1756
        context = getOwn(contexts, contextName);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1757
        if (!context) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1758
            context = contexts[contextName] = req.s.newContext(contextName);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1759
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1760
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1761
        if (config) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1762
            context.configure(config);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1763
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1764
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1765
        return context.require(deps, callback, errback);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1766
    };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1767
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1768
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1769
     * Support require.config() to make it easier to cooperate with other
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1770
     * AMD loaders on globally agreed names.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1771
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1772
    req.config = function (config) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1773
        return req(config);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1774
    };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1775
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1776
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1777
     * Execute something after the current tick
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1778
     * of the event loop. Override for other envs
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1779
     * that have a better solution than setTimeout.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1780
     * @param  {Function} fn function to execute later.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1781
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1782
    req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1783
        setTimeout(fn, 4);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1784
    } : function (fn) { fn(); };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1785
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1786
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1787
     * Export require as a global, but only if it does not already exist.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1788
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1789
    if (!require) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1790
        require = req;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1791
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1792
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1793
    req.version = version;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1794
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1795
    //Used to filter out dependencies that are already paths.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1796
    req.jsExtRegExp = /^\/|:|\?|\.js$/;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1797
    req.isBrowser = isBrowser;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1798
    s = req.s = {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1799
        contexts: contexts,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1800
        newContext: newContext
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1801
    };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1802
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1803
    //Create default context.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1804
    req({});
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1805
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1806
    //Exports some context-sensitive methods on global require.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1807
    each([
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1808
        'toUrl',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1809
        'undef',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1810
        'defined',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1811
        'specified'
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1812
    ], function (prop) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1813
        //Reference from contexts instead of early binding to default context,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1814
        //so that during builds, the latest instance of the default context
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1815
        //with its config gets used.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1816
        req[prop] = function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1817
            var ctx = contexts[defContextName];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1818
            return ctx.require[prop].apply(ctx, arguments);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1819
        };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1820
    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1821
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1822
    if (isBrowser) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1823
        head = s.head = document.getElementsByTagName('head')[0];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1824
        //If BASE tag is in play, using appendChild is a problem for IE6.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1825
        //When that browser dies, this can be removed. Details in this jQuery bug:
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1826
        //http://dev.jquery.com/ticket/2709
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1827
        baseElement = document.getElementsByTagName('base')[0];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1828
        if (baseElement) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1829
            head = s.head = baseElement.parentNode;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1830
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1831
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1832
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1833
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1834
     * Any errors that require explicitly generates will be passed to this
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1835
     * function. Intercept/override it if you want custom error handling.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1836
     * @param {Error} err the error object.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1837
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1838
    req.onError = defaultOnError;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1839
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1840
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1841
     * Creates the node for the load command. Only used in browser envs.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1842
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1843
    req.createNode = function (config, moduleName, url) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1844
        var node = config.xhtml ?
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1845
                document.createElementNS('http://www.w3.org/1999/xhtml', 'html:script') :
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1846
                document.createElement('script');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1847
        node.type = config.scriptType || 'text/javascript';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1848
        node.charset = 'utf-8';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1849
        node.async = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1850
        return node;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1851
    };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1852
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1853
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1854
     * Does the request to load a module for the browser case.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1855
     * Make this a separate function to allow other environments
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1856
     * to override it.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1857
     *
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1858
     * @param {Object} context the require context to find state.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1859
     * @param {String} moduleName the name of the module.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1860
     * @param {Object} url the URL to the module.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1861
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1862
    req.load = function (context, moduleName, url) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1863
        var config = (context && context.config) || {},
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1864
            node;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1865
        if (isBrowser) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1866
            //In the browser so use a script tag
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1867
            node = req.createNode(config, moduleName, url);
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  1868
            if (config.onNodeCreated) {
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  1869
                config.onNodeCreated(node, config, moduleName, url);
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  1870
            }
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1871
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1872
            node.setAttribute('data-requirecontext', context.contextName);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1873
            node.setAttribute('data-requiremodule', moduleName);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1874
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1875
            //Set up load listener. Test attachEvent first because IE9 has
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1876
            //a subtle issue in its addEventListener and script onload firings
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1877
            //that do not match the behavior of all other browsers with
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1878
            //addEventListener support, which fire the onload event for a
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1879
            //script right after the script execution. See:
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1880
            //https://connect.microsoft.com/IE/feedback/details/648057/script-onload-event-is-not-fired-immediately-after-script-execution
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1881
            //UNFORTUNATELY Opera implements attachEvent but does not follow the script
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1882
            //script execution mode.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1883
            if (node.attachEvent &&
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1884
                    //Check if node.attachEvent is artificially added by custom script or
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1885
                    //natively supported by browser
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1886
                    //read https://github.com/jrburke/requirejs/issues/187
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1887
                    //if we can NOT find [native code] then it must NOT natively supported.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1888
                    //in IE8, node.attachEvent does not have toString()
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1889
                    //Note the test for "[native code" with no closing brace, see:
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1890
                    //https://github.com/jrburke/requirejs/issues/273
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1891
                    !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) &&
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1892
                    !isOpera) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1893
                //Probably IE. IE (at least 6-8) do not fire
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1894
                //script onload right after executing the script, so
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1895
                //we cannot tie the anonymous define call to a name.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1896
                //However, IE reports the script as being in 'interactive'
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1897
                //readyState at the time of the define call.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1898
                useInteractive = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1899
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1900
                node.attachEvent('onreadystatechange', context.onScriptLoad);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1901
                //It would be great to add an error handler here to catch
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1902
                //404s in IE9+. However, onreadystatechange will fire before
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1903
                //the error handler, so that does not help. If addEventListener
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1904
                //is used, then IE will fire error before load, but we cannot
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1905
                //use that pathway given the connect.microsoft.com issue
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1906
                //mentioned above about not doing the 'script execute,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1907
                //then fire the script load event listener before execute
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1908
                //next script' that other browsers do.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1909
                //Best hope: IE10 fixes the issues,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1910
                //and then destroys all installs of IE 6-9.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1911
                //node.attachEvent('onerror', context.onScriptError);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1912
            } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1913
                node.addEventListener('load', context.onScriptLoad, false);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1914
                node.addEventListener('error', context.onScriptError, false);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1915
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1916
            node.src = url;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1917
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1918
            //For some cache cases in IE 6-8, the script executes before the end
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1919
            //of the appendChild execution, so to tie an anonymous define
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1920
            //call to the module name (which is stored on the node), hold on
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1921
            //to a reference to this node, but clear after the DOM insertion.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1922
            currentlyAddingScript = node;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1923
            if (baseElement) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1924
                head.insertBefore(node, baseElement);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1925
            } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1926
                head.appendChild(node);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1927
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1928
            currentlyAddingScript = null;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1929
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1930
            return node;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1931
        } else if (isWebWorker) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1932
            try {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1933
                //In a web worker, use importScripts. This is not a very
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1934
                //efficient use of importScripts, importScripts will block until
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1935
                //its script is downloaded and evaluated. However, if web workers
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1936
                //are in play, the expectation that a build has been done so that
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1937
                //only one script needs to be loaded anyway. This may need to be
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1938
                //reevaluated if other use cases become common.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1939
                importScripts(url);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1940
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1941
                //Account for anonymous modules
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1942
                context.completeLoad(moduleName);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1943
            } catch (e) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1944
                context.onError(makeError('importscripts',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1945
                                'importScripts failed for ' +
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1946
                                    moduleName + ' at ' + url,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1947
                                e,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1948
                                [moduleName]));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1949
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1950
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1951
    };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1952
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1953
    function getInteractiveScript() {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1954
        if (interactiveScript && interactiveScript.readyState === 'interactive') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1955
            return interactiveScript;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1956
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1957
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1958
        eachReverse(scripts(), function (script) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1959
            if (script.readyState === 'interactive') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1960
                return (interactiveScript = script);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1961
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1962
        });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1963
        return interactiveScript;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1964
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1965
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1966
    //Look for a data-main script attribute, which could also adjust the baseUrl.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1967
    if (isBrowser && !cfg.skipDataMain) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1968
        //Figure out baseUrl. Get it from the script tag with require.js in it.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1969
        eachReverse(scripts(), function (script) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1970
            //Set the 'head' where we can append children by
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1971
            //using the script's parent.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1972
            if (!head) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1973
                head = script.parentNode;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1974
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1975
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1976
            //Look for a data-main attribute to set main script for the page
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1977
            //to load. If it is there, the path to data main becomes the
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1978
            //baseUrl, if it is not already set.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1979
            dataMain = script.getAttribute('data-main');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1980
            if (dataMain) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1981
                //Preserve dataMain in case it is a path (i.e. contains '?')
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1982
                mainScript = dataMain;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1983
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1984
                //Set final baseUrl if there is not already an explicit one.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1985
                if (!cfg.baseUrl) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1986
                    //Pull off the directory of data-main for use as the
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1987
                    //baseUrl.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1988
                    src = mainScript.split('/');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1989
                    mainScript = src.pop();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1990
                    subPath = src.length ? src.join('/')  + '/' : './';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1991
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1992
                    cfg.baseUrl = subPath;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1993
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1994
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1995
                //Strip off any trailing .js since mainScript is now
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1996
                //like a module name.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1997
                mainScript = mainScript.replace(jsSuffixRegExp, '');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1998
489
7f25a4453865 update renkan server deploiement
ymh <ymh.work@gmail.com>
parents: 488
diff changeset
  1999
                //If mainScript is still a path, fall back to dataMain
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2000
                if (req.jsExtRegExp.test(mainScript)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2001
                    mainScript = dataMain;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2002
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2003
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2004
                //Put the data-main script in the files to load.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2005
                cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [mainScript];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2006
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2007
                return true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2008
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2009
        });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2010
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2011
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2012
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2013
     * The function that handles definitions of modules. Differs from
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2014
     * require() in that a string for the module should be the first argument,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2015
     * and the function to execute after dependencies are loaded should
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2016
     * return a value to define the module corresponding to the first argument's
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2017
     * name.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2018
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2019
    define = function (name, deps, callback) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2020
        var node, context;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2021
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2022
        //Allow for anonymous modules
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2023
        if (typeof name !== 'string') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2024
            //Adjust args appropriately
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2025
            callback = deps;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2026
            deps = name;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2027
            name = null;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2028
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2029
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2030
        //This module may not have dependencies
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2031
        if (!isArray(deps)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2032
            callback = deps;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2033
            deps = null;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2034
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2035
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2036
        //If no name, and callback is a function, then figure out if it a
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2037
        //CommonJS thing with dependencies.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2038
        if (!deps && isFunction(callback)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2039
            deps = [];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2040
            //Remove comments from the callback string,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2041
            //look for require calls, and pull them into the dependencies,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2042
            //but only if there are function args.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2043
            if (callback.length) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2044
                callback
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2045
                    .toString()
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2046
                    .replace(commentRegExp, '')
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2047
                    .replace(cjsRequireRegExp, function (match, dep) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2048
                        deps.push(dep);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2049
                    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2050
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2051
                //May be a CommonJS thing even without require calls, but still
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2052
                //could use exports, and module. Avoid doing exports and module
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2053
                //work though if it just needs require.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2054
                //REQUIRES the function to expect the CommonJS variables in the
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2055
                //order listed below.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2056
                deps = (callback.length === 1 ? ['require'] : ['require', 'exports', 'module']).concat(deps);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2057
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2058
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2059
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2060
        //If in IE 6-8 and hit an anonymous define() call, do the interactive
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2061
        //work.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2062
        if (useInteractive) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2063
            node = currentlyAddingScript || getInteractiveScript();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2064
            if (node) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2065
                if (!name) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2066
                    name = node.getAttribute('data-requiremodule');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2067
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2068
                context = contexts[node.getAttribute('data-requirecontext')];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2069
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2070
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2071
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2072
        //Always save off evaluating the def call until the script onload handler.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2073
        //This allows multiple modules to be in a file without prematurely
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2074
        //tracing dependencies, and allows for anonymous module support,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2075
        //where the module name is not known until the script onload event
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2076
        //occurs. If no context, use the global queue, and get it processed
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2077
        //in the onscript load callback.
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  2078
        if (context) {
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  2079
            context.defQueue.push([name, deps, callback]);
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  2080
            context.defQueueMap[name] = true;
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  2081
        } else {
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  2082
            globalDefQueue.push([name, deps, callback]);
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 489
diff changeset
  2083
        }
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2084
    };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2085
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2086
    define.amd = {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2087
        jQuery: true
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2088
    };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2089
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2090
    /**
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2091
     * Executes the text. Normally just uses eval, but can be modified
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2092
     * to use a better, environment-specific call. Only used for transpiling
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2093
     * loader plugins, not for plain JS modules.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2094
     * @param {String} text the text to execute/evaluate.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2095
     */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2096
    req.exec = function (text) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2097
        /*jslint evil: true */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2098
        return eval(text);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2099
    };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2100
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2101
    //Set up with config info.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2102
    req(cfg);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2103
}(this));