Added group functionality to ResourceLoaderModule objects. Also fixed a bug that...
[lhc/web/wiklou.git] / resources / mediawiki / mediawiki.js
index 282c52a..14be5c7 100644 (file)
@@ -99,7 +99,8 @@ window.mediaWiki = new ( function( $ ) {
                                        return results;
                                } else if ( typeof selection === 'string' ) {
                                        if ( typeof values[selection] === 'undefined' ) {
-                                               return 'fallback' in options !== 'undefined' ? options.fallback : null;
+                                               return typeof options === 'object' && 'fallback' in options ?
+                                                       options.fallback : '<' + selection + '>';
                                        } else {
                                                if ( typeof parser === 'function' ) {
                                                        return parser( values[selection], options );
@@ -540,7 +541,7 @@ window.mediaWiki = new ( function( $ ) {
                 * Registers a module, letting the system know about it and it's dependencies. loader.js files contain calls
                 * to this function.
                 */
-               this.register = function( module, version, dependencies, status ) {
+               this.register = function( module, version, dependencies, group ) {
                        // Allow multiple registration
                        if ( typeof module === 'object' ) {
                                for ( var m = 0; m < module.length; m++ ) {
@@ -556,12 +557,13 @@ window.mediaWiki = new ( function( $ ) {
                        if ( typeof module !== 'string' ) {
                                throw new Error( 'module must be a string, not a ' + typeof module );
                        }
-                       if ( typeof registry[module] !== 'undefined' && typeof status === 'undefined' ) {
+                       if ( typeof registry[module] !== 'undefined' ) {
                                throw new Error( 'module already implemeneted: ' + module );
                        }
                        // List the module as registered
                        registry[module] = {
-                               'state': typeof status === 'string' ? status : 'registered',
+                               'state': 'registered',
+                               'group': typeof group === 'string' ? group : null,
                                'dependencies': [],
                                'version': typeof version !== 'undefined' ? parseInt( version ) : 0
                        };
@@ -727,6 +729,18 @@ window.mediaWiki = new ( function( $ ) {
                        }
                };
                
+               /**
+                * Gets the version of a module
+                * 
+                * @param string module name of module to get version for
+                */
+               this.version = function( module ) {
+                       if ( module in registry && 'version' in registry[module] ) {
+                               return formatVersionNumber( registry[module].version );
+                       }
+                       return null;
+               }
+               
                /* Cache document ready status */
                
                $(document).ready( function() { ready = true; } );