| Index: branches/MwEmbedStandAlone/mwEmbed.js |
| — | — | @@ -309,8 +309,12 @@ |
| 310 | 310 | * @param {Function} callback Function called once loading is complete |
| 311 | 311 | * |
| 312 | 312 | */ |
| 313 | | - load: function( loadRequest, instanceCallback ) { |
| | 313 | + load: function( loadRequest, instanceCallback ) { |
| 314 | 314 | //mw.log("mw.load:: " + loadRequest ); |
| | 315 | + |
| | 316 | + // Throw out any loadRequests that are not strings |
| | 317 | + loadRequest = this.cleanLoadRequest( loadRequest ); |
| | 318 | + |
| 315 | 319 | // Ensure the callback is only called once per load instance |
| 316 | 320 | var callback = function(){ |
| 317 | 321 | //mw.log( 'instanceCallback::running callback: ' + instanceCallback ); |
| — | — | @@ -320,8 +324,8 @@ |
| 321 | 325 | instanceCallback( loadRequest ); |
| 322 | 326 | instanceCallback = null; |
| 323 | 327 | } |
| 324 | | - } |
| 325 | | - |
| | 328 | + } |
| | 329 | + |
| 326 | 330 | // Check for empty loadRequest ( directly return the callback ) |
| 327 | 331 | if( mw.isEmpty( loadRequest ) ) { |
| 328 | 332 | mw.log( 'Empty load request: ( ' + loadRequest + ' ) ' ); |
| — | — | @@ -394,8 +398,26 @@ |
| 395 | 399 | } |
| 396 | 400 | return false; |
| 397 | 401 | }, |
| 398 | | - |
| | 402 | + |
| 399 | 403 | /** |
| | 404 | + * Clean the loadRequest ( throw out any non-string items ) |
| | 405 | + */ |
| | 406 | + cleanLoadRequest: function( loadRequest ){ |
| | 407 | + var cleanRequest = []; |
| | 408 | + if( typeof loadRequest == 'string' ) |
| | 409 | + return loadRequest; |
| | 410 | + for( var i =0;i < loadRequest.length; i++ ){ |
| | 411 | + if( typeof loadRequest[i] == 'object' ) { |
| | 412 | + cleanRequest[i] = this.cleanLoadRequest( loadRequest[i] ); |
| | 413 | + } else if( typeof loadRequest[i] == 'string' ){ |
| | 414 | + cleanRequest[i] = $j.trim( loadRequest[i] ); |
| | 415 | + } else{ |
| | 416 | + // bad request type skip |
| | 417 | + } |
| | 418 | + } |
| | 419 | + return cleanRequest; |
| | 420 | + }, |
| | 421 | + /** |
| 400 | 422 | * Load a set of scripts. |
| 401 | 423 | * Will issue many load requests or package the request for the resource loader |
| 402 | 424 | * |
| — | — | @@ -579,8 +601,7 @@ |
| 580 | 602 | */ |
| 581 | 603 | runModuleLoadQueue: function(){ |
| 582 | 604 | var _this = this; |
| 583 | | - mw.log( "mw.runModuleLoadQueue:: " ); |
| 584 | | - var cat = _this.moduleLoadQueue; |
| | 605 | + mw.log( "mw.runModuleLoadQueue:: " ); |
| 585 | 606 | var runModuleFunctionQueue = function(){ |
| 586 | 607 | // Run all the callbacks |
| 587 | 608 | for( var moduleName in _this.moduleLoadQueue ){ |
| — | — | @@ -616,7 +637,7 @@ |
| 617 | 638 | // ( in IE we have to wait until its "ready" since it does not follow dom order ) |
| 618 | 639 | var moduleResourceList = this.getFlatModuleResourceList( moduleName ); |
| 619 | 640 | // Build the sharedResourceList |
| 620 | | - for( var i in moduleResourceList ){ |
| | 641 | + for( var i=0; i < moduleResourceList.length; i++ ){ |
| 621 | 642 | var moduleResource = moduleResourceList[i]; |
| 622 | 643 | // Check if already in the full resource list if so add to shared. |
| 623 | 644 | if( fullResourceList[ moduleResource ] ){ |
| — | — | @@ -630,13 +651,13 @@ |
| 631 | 652 | } |
| 632 | 653 | |
| 633 | 654 | // Local module request set ( stores the actual request we will make after grouping shared resources |
| 634 | | - var moduleRequestSet = []; |
| | 655 | + var moduleRequestSet = {}; |
| 635 | 656 | |
| 636 | 657 | // Only add non-shared to respective modules load requests |
| 637 | 658 | for( var moduleName in this.moduleLoadQueue ) { |
| 638 | 659 | moduleRequestSet[ moduleName ] = []; |
| 639 | 660 | var moduleResourceList = this.getFlatModuleResourceList( moduleName ); |
| 640 | | - for( var i in moduleResourceList ){ |
| | 661 | + for( var i =0; i < moduleResourceList.length; i++ ){ |
| 641 | 662 | var moduleResource = moduleResourceList[i]; |
| 642 | 663 | if( $j.inArray( moduleResource, sharedResourceList ) == -1 ){ |
| 643 | 664 | moduleRequestSet[ moduleName ].push( moduleResource ); |
| — | — | @@ -666,11 +687,11 @@ |
| 667 | 688 | |
| 668 | 689 | // Load the shared resources |
| 669 | 690 | mw.load( sharedResourceList, function(){ |
| 670 | | - mw.log("Shared Resources loaded"); |
| | 691 | + //mw.log("Shared Resources loaded"); |
| 671 | 692 | // xxx check if we are in "IE" and dependencies need to be loaded "first" |
| 672 | 693 | sharedResourceLoadDone = true; |
| 673 | 694 | checkModulesDone(); |
| 674 | | - }); |
| | 695 | + }); |
| 675 | 696 | // Load all module Request Set |
| 676 | 697 | for( var moduleName in moduleRequestSet ){ |
| 677 | 698 | localLoadCallInstance( moduleName, moduleRequestSet[ moduleName ] ); |
| Index: branches/MwEmbedStandAlone/modules/TimedText/loader.js |
| — | — | @@ -71,10 +71,9 @@ |
| 72 | 72 | |
| 73 | 73 | // Add timed text items if flag set. |
| 74 | 74 | // its oky if we merge in multiple times the loader can handle it |
| 75 | | - if( mwLoadTimedTextFlag ) { |
| | 75 | + if( mwLoadTimedTextFlag ) { |
| 76 | 76 | $j.merge( classRequest, mwTimedTextRequestSet ); |
| 77 | 77 | } |
| 78 | | - |
| 79 | 78 | } ); |
| 80 | 79 | |
| 81 | 80 | |
| Index: branches/MwEmbedStandAlone/modules/AddMedia/tests/Firefogg_GUI.html |
| — | — | @@ -28,9 +28,9 @@ |
| 29 | 29 | langKey = 'en'; |
| 30 | 30 | } |
| 31 | 31 | |
| 32 | | - document.write( '<script type="text/javascript" src="../../../ResourceLoader.php?class=window.jQuery,mwEmbed,mw.style.mwCommon&uselang=' + langKey + '"><\/script>' ); |
| | 32 | + document.write( '<script type="text/javascript" src="../../../ResourceLoader.php?class=window.jQuery,mwEmbed,mw.style.mwCommon&uselang=' + langKey + '&debug=true"><\/script>' ); |
| 33 | 33 | </script> |
| 34 | | - <!-- <script type="text/javascript" src="../../../mwEmbed.js?debug=true"></script> --> |
| | 34 | + <!-- <script type="text/javascript" src="../../../mwEmbed.js?debug=true"></script> --> |
| 35 | 35 | <style type="text/css" media="all"> |
| 36 | 36 | body { |
| 37 | 37 | margin: 0; |