diff options
author | Benaka Moorthi <benaka.moorthi@gmail.com> | 2013-08-27 03:30:56 +0400 |
---|---|---|
committer | Benaka Moorthi <benaka.moorthi@gmail.com> | 2013-08-27 03:30:56 +0400 |
commit | ed0f3d20d7ff4dc8ef4057cd4c7e608314ce3f69 (patch) | |
tree | a0685a3a973159c63bed373e9f0621c72215f893 /plugins/CoreHome/javascripts/require.js | |
parent | f1193c901eadee1e910af3e28e9a28e9397b2aae (diff) |
Refs #4100, #4041, #4077, add minimal UI module inclusion/creation function and use for SeriesPicker. Also includes a documentation correction for SeriesPicker.
Diffstat (limited to 'plugins/CoreHome/javascripts/require.js')
-rw-r--r-- | plugins/CoreHome/javascripts/require.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/plugins/CoreHome/javascripts/require.js b/plugins/CoreHome/javascripts/require.js new file mode 100644 index 0000000000..87c847c6b2 --- /dev/null +++ b/plugins/CoreHome/javascripts/require.js @@ -0,0 +1,40 @@ +/** + * Piwik - Web Analytics + * + * Module creation & inclusion for Piwik. + * + * @link http://www.jqplot.com + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +(function (window) { + + var MODULE_SPLIT_REGEX = /[\/.\\]/; + + /** + * Returns a module for its ID. Empty modules are created if they does not exist. + * + * Modules are currently stored in the window object. + * + * @param {String} moduleId e.g. 'piwik/UserCountryMap' or 'myPlugin/Widgets/FancySchmancyThing'. + * The following characters can be used to separate individual modules: + * '/', '.' or '\'. + * @return {Object} The module object. + */ + window.require = function (moduleId) { + var parts = moduleId.split(MODULE_SPLIT_REGEX); + + // TODO: we use window objects for backwards compatibility. when rest of Piwik is rewritten to use + // require, we can switch simply holding the modules in a private variable. + var currentModule = window; + for (var i = 0; i != parts.length; ++i) { + var part = parts[i]; + + currentModule[part] = currentModule[part] || {}; + currentModule = currentModule[part]; + } + return currentModule; + }; + +})(window);
\ No newline at end of file |