Index: trunk/extensions/UsabilityInitiative/UsabilityInitiative.hooks.php |
— | — | @@ -44,13 +44,14 @@ |
45 | 45 | 'no_js2' => array( |
46 | 46 | 'raw' => array( |
47 | 47 | array( 'src' => 'js/js2/jquery-1.3.2.js', 'version' => '1.3.2' ), |
48 | | - array( 'src' => 'js/js2/js2.js', 'version' => 3 ), |
| 48 | + array( 'src' => 'js/js2/jquery-ui-1.7.2.js', 'version' => '1.7.2y' ), |
| 49 | + array( 'src' => 'js/js2/js2.js', 'version' => 4 ), |
49 | 50 | ), |
50 | 51 | 'combined' => array( |
51 | | - array( 'src' => 'js/js2.combined.js', 'version' => 6 ), |
| 52 | + array( 'src' => 'js/js2.combined.js', 'version' => 7 ), |
52 | 53 | ), |
53 | 54 | 'minified' => array( |
54 | | - array( 'src' => 'js/js2.combined.min.js', 'version' => 6 ), |
| 55 | + array( 'src' => 'js/js2.combined.min.js', 'version' => 7 ), |
55 | 56 | ), |
56 | 57 | ), |
57 | 58 | // Core functionality of extension |
— | — | @@ -66,17 +67,14 @@ |
67 | 68 | array( 'src' => 'js/plugins/jquery.textSelection.js', 'version' => 16 ), |
68 | 69 | array( 'src' => 'js/plugins/jquery.wikiEditor.js', 'version' => 12 ), |
69 | 70 | array( 'src' => 'js/plugins/jquery.wikiEditor.toolbar.js', 'version' => 12 ), |
70 | | - array( 'src' => 'js/plugins/jquery.wikiEditor.dialogs.js', 'version' => 4 ), |
| 71 | + array( 'src' => 'js/plugins/jquery.wikiEditor.dialogs.js', 'version' => 5 ), |
71 | 72 | array( 'src' => 'js/plugins/jquery.wikiEditor.toc.js', 'version' => 19 ), |
72 | | - // FIXME: jQuery UI doesn't belong here, should move to no_js2 |
73 | | - // once we figure out how to do jQuery UI properly in JS2 |
74 | | - array( 'src' => 'js/js2/jquery-ui-1.7.2.js', 'version' => '1.7.2y' ), |
75 | 73 | ), |
76 | 74 | 'combined' => array( |
77 | | - array( 'src' => 'js/plugins.combined.js', 'version' => 42 ), |
| 75 | + array( 'src' => 'js/plugins.combined.js', 'version' => 43 ), |
78 | 76 | ), |
79 | 77 | 'minified' => array( |
80 | | - array( 'src' => 'js/plugins.combined.min.js', 'version' => 42 ), |
| 78 | + array( 'src' => 'js/plugins.combined.min.js', 'version' => 43 ), |
81 | 79 | ), |
82 | 80 | ), |
83 | 81 | ); |
Index: trunk/extensions/UsabilityInitiative/EditToolbar/EditToolbar.js |
— | — | @@ -839,7 +839,9 @@ |
840 | 840 | $j(this).text( gM( $j(this).attr( 'rel' ) ) ); |
841 | 841 | }); |
842 | 842 | // Build tabs |
843 | | - $j( '#edittoolbar-link-tabs' ).tabs(); |
| 843 | + mvJsLoader.doLoad( [ '$j.ui', '$j.ui.tabs' ], function() { |
| 844 | + $j( '#edittoolbar-link-tabs' ).tabs(); |
| 845 | + }); |
844 | 846 | // Automatically copy the value of the internal link page title field to the link text field unless the user |
845 | 847 | // has changed the link text field - this is a convience thing since most link texts are going to be the |
846 | 848 | // the same as the page title |
Index: trunk/extensions/UsabilityInitiative/EditToolbar/EditToolbar.php |
— | — | @@ -19,7 +19,7 @@ |
20 | 20 | /* Configuration */ |
21 | 21 | |
22 | 22 | // Bump the version number every time you change any of the .css/.js files |
23 | | -$wgEditToolbarStyleVersion = 56; |
| 23 | +$wgEditToolbarStyleVersion = 57; |
24 | 24 | |
25 | 25 | // Set this to true to simply override the stock toolbar for everyone |
26 | 26 | $wgEditToolbarGlobalEnable = false; |
Index: trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.dialogs.js |
— | — | @@ -43,60 +43,63 @@ |
44 | 44 | $.wikiEditor.modules.dialogs.modules[module] = config[module]; |
45 | 45 | } |
46 | 46 | // Build out modules immediately |
47 | | - for ( module in $.wikiEditor.modules.dialogs.modules ) { |
48 | | - var module = $.wikiEditor.modules.dialogs.modules[module]; |
49 | | - // Only create the dialog if it doesn't exist yet |
50 | | - if ( $( '#' + module.id ).size() == 0 ) { |
51 | | - var configuration = module.dialog; |
52 | | - // Add some stuff to configuration |
53 | | - configuration.bgiframe = true; |
54 | | - configuration.autoOpen = false; |
55 | | - configuration.modal = true; |
56 | | - configuration.title = $.wikiEditor.autoMsg( module, 'title' ); |
57 | | - // Transform messages in keys |
58 | | - // Stupid JS won't let us do stuff like |
59 | | - // foo = { gM ('bar'): baz } |
60 | | - configuration.newButtons = {}; |
61 | | - for ( msg in configuration.buttons ) |
62 | | - configuration.newButtons[gM( msg )] = configuration.buttons[msg]; |
63 | | - configuration.buttons = configuration.newButtons; |
64 | | - // Create the dialog <div> |
65 | | - $( '<div /> ' ) |
66 | | - .attr( 'id', module.id ) |
67 | | - .html( module.html ) |
68 | | - .data( 'context', context ) |
69 | | - .appendTo( $( 'body' ) ) |
70 | | - .each( module.init ) |
71 | | - .dialog( configuration ) |
72 | | - .bind( 'dialogopen', $.wikiEditor.modules.dialogs.fn.resize ) |
73 | | - .find( '.ui-tabs' ).bind( 'tabsshow', function() { |
74 | | - $(this).closest( '.ui-dialog-content' ).each( |
75 | | - $.wikiEditor.modules.dialogs.fn.resize ); |
| 47 | + mvJsLoader.doLoad( ['$j.ui', '$j.ui.dialog', '$j.ui.draggable', '$j.ui.resizable' ], function() { |
| 48 | + for ( module in $.wikiEditor.modules.dialogs.modules ) { |
| 49 | + var module = $.wikiEditor.modules.dialogs.modules[module]; |
| 50 | + // Only create the dialog if it doesn't exist yet |
| 51 | + if ( $( '#' + module.id ).size() == 0 ) { |
| 52 | + var configuration = module.dialog; |
| 53 | + // Add some stuff to configuration |
| 54 | + configuration.bgiframe = true; |
| 55 | + configuration.autoOpen = false; |
| 56 | + configuration.modal = true; |
| 57 | + configuration.title = $.wikiEditor.autoMsg( module, 'title' ); |
| 58 | + // Transform messages in keys |
| 59 | + // Stupid JS won't let us do stuff like |
| 60 | + // foo = { gM ('bar'): baz } |
| 61 | + configuration.newButtons = {}; |
| 62 | + for ( msg in configuration.buttons ) |
| 63 | + configuration.newButtons[gM( msg )] = configuration.buttons[msg]; |
| 64 | + configuration.buttons = configuration.newButtons; |
| 65 | + // Create the dialog <div> |
| 66 | + $( '<div /> ' ) |
| 67 | + .attr( 'id', module.id ) |
| 68 | + .html( module.html ) |
| 69 | + .data( 'context', context ) |
| 70 | + .appendTo( $( 'body' ) ) |
| 71 | + .each( module.init ) |
| 72 | + .dialog( configuration ) |
| 73 | + .bind( 'dialogopen', $.wikiEditor.modules.dialogs.fn.resize ) |
| 74 | + .find( '.ui-tabs' ).bind( 'tabsshow', function() { |
| 75 | + $(this).closest( '.ui-dialog-content' ).each( |
| 76 | + $.wikiEditor.modules.dialogs.fn.resize ); |
| 77 | + }); |
| 78 | + |
| 79 | + // Add tabindexes to dialog form elements |
| 80 | + // Find the highest tabindex in use |
| 81 | + var maxTI = 0; |
| 82 | + $j( '[tabindex]' ).each( function() { |
| 83 | + var ti = parseInt( $j(this).attr( 'tabindex' ) ); |
| 84 | + if ( ti > maxTI ) |
| 85 | + maxTI = ti; |
76 | 86 | }); |
77 | | - |
78 | | - // Add tabindexes to dialog form elements |
79 | | - // Find the highest tabindex in use |
80 | | - var maxTI = 0; |
81 | | - $j( '[tabindex]' ).each( function() { |
82 | | - var ti = parseInt( $j(this).attr( 'tabindex' ) ); |
83 | | - if ( ti > maxTI ) |
84 | | - maxTI = ti; |
85 | | - }); |
86 | | - |
87 | | - var tabIndex = maxTI + 1; |
88 | | - $j( '.ui-dialog input, .ui-dialog button' ) |
89 | | - .not( '[tabindex]' ) |
90 | | - .each( function() { |
91 | | - $j(this).attr( 'tabindex', tabIndex++ ); |
92 | | - }); |
| 87 | + |
| 88 | + var tabIndex = maxTI + 1; |
| 89 | + $j( '.ui-dialog input, .ui-dialog button' ) |
| 90 | + .not( '[tabindex]' ) |
| 91 | + .each( function() { |
| 92 | + $j(this).attr( 'tabindex', tabIndex++ ); |
| 93 | + }); |
| 94 | + } |
93 | 95 | } |
94 | | - } |
| 96 | + }); |
95 | 97 | }, |
96 | 98 | |
97 | 99 | /** |
98 | 100 | * Resize a dialog so its contents fit |
99 | 101 | * |
100 | 102 | * Usage: dialog.each( resize ); or dialog.bind( 'blah', resize ); |
| 103 | + * NOTE: This function assumes $j.ui.dialog has already been loaded |
101 | 104 | */ |
102 | 105 | resize: function() { |
103 | 106 | var wrapper = $(this).closest( '.ui-dialog' ); |
Index: trunk/extensions/UsabilityInitiative/js/js2.combined.js |
— | — | @@ -9503,4 +9503,7 @@ |
9504 | 9504 | */ |
9505 | 9505 | function js2AddOnloadHook( func ) { |
9506 | 9506 | $j(document).ready( func ); |
9507 | | -} |
\ No newline at end of file |
| 9507 | +} |
| 9508 | + |
| 9509 | +// Define a dummy mvJsLoader.doLoad() function |
| 9510 | +mvJsLoader = { doLoad: function( deps, callback ) { callback(); } }; |
\ No newline at end of file |
Index: trunk/extensions/UsabilityInitiative/js/js2.combined.min.js |
— | — | @@ -778,4 +778,5 @@ |
779 | 779 | return $.datepicker['_'+options+'Datepicker'].apply($.datepicker,[this[0]].concat(otherArgs));return this.each(function(){typeof options=='string'?$.datepicker['_'+options+'Datepicker'].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options);});};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.2";window.DP_jQuery=$;})(jQuery);if(!gMsg)var gMsg={};function loadGM(msgSet){for(var i in msgSet){gMsg[i]=msgSet[i];}} |
780 | 780 | function gM(key,args){var ms='';if(key in gMsg){ms=gMsg[key];if(typeof args=='object'||typeof args=='array'){for(var v in args){var rep='\$'+(parseInt(v)+1);ms=ms.replace(rep,args[v]);}}else if(typeof args=='string'||typeof args=='number'){ms=ms.replace(/\$1/,args);} |
781 | 781 | return ms;}else{return'['+key+']';}} |
782 | | -$j=jQuery.noConflict();function js2AddOnloadHook(func){$j(document).ready(func);} |
\ No newline at end of file |
| 782 | +$j=jQuery.noConflict();function js2AddOnloadHook(func){$j(document).ready(func);} |
| 783 | +mvJsLoader={doLoad:function(deps,callback){callback();}}; |
\ No newline at end of file |
Index: trunk/extensions/UsabilityInitiative/js/plugins.combined.js |
— | — | @@ -1424,60 +1424,63 @@ |
1425 | 1425 | $.wikiEditor.modules.dialogs.modules[module] = config[module]; |
1426 | 1426 | } |
1427 | 1427 | // Build out modules immediately |
1428 | | - for ( module in $.wikiEditor.modules.dialogs.modules ) { |
1429 | | - var module = $.wikiEditor.modules.dialogs.modules[module]; |
1430 | | - // Only create the dialog if it doesn't exist yet |
1431 | | - if ( $( '#' + module.id ).size() == 0 ) { |
1432 | | - var configuration = module.dialog; |
1433 | | - // Add some stuff to configuration |
1434 | | - configuration.bgiframe = true; |
1435 | | - configuration.autoOpen = false; |
1436 | | - configuration.modal = true; |
1437 | | - configuration.title = $.wikiEditor.autoMsg( module, 'title' ); |
1438 | | - // Transform messages in keys |
1439 | | - // Stupid JS won't let us do stuff like |
1440 | | - // foo = { gM ('bar'): baz } |
1441 | | - configuration.newButtons = {}; |
1442 | | - for ( msg in configuration.buttons ) |
1443 | | - configuration.newButtons[gM( msg )] = configuration.buttons[msg]; |
1444 | | - configuration.buttons = configuration.newButtons; |
1445 | | - // Create the dialog <div> |
1446 | | - $( '<div /> ' ) |
1447 | | - .attr( 'id', module.id ) |
1448 | | - .html( module.html ) |
1449 | | - .data( 'context', context ) |
1450 | | - .appendTo( $( 'body' ) ) |
1451 | | - .each( module.init ) |
1452 | | - .dialog( configuration ) |
1453 | | - .bind( 'dialogopen', $.wikiEditor.modules.dialogs.fn.resize ) |
1454 | | - .find( '.ui-tabs' ).bind( 'tabsshow', function() { |
1455 | | - $(this).closest( '.ui-dialog-content' ).each( |
1456 | | - $.wikiEditor.modules.dialogs.fn.resize ); |
| 1428 | + mvJsLoader.doLoad( ['$j.ui', '$j.ui.dialog', '$j.ui.draggable', '$j.ui.resizable' ], function() { |
| 1429 | + for ( module in $.wikiEditor.modules.dialogs.modules ) { |
| 1430 | + var module = $.wikiEditor.modules.dialogs.modules[module]; |
| 1431 | + // Only create the dialog if it doesn't exist yet |
| 1432 | + if ( $( '#' + module.id ).size() == 0 ) { |
| 1433 | + var configuration = module.dialog; |
| 1434 | + // Add some stuff to configuration |
| 1435 | + configuration.bgiframe = true; |
| 1436 | + configuration.autoOpen = false; |
| 1437 | + configuration.modal = true; |
| 1438 | + configuration.title = $.wikiEditor.autoMsg( module, 'title' ); |
| 1439 | + // Transform messages in keys |
| 1440 | + // Stupid JS won't let us do stuff like |
| 1441 | + // foo = { gM ('bar'): baz } |
| 1442 | + configuration.newButtons = {}; |
| 1443 | + for ( msg in configuration.buttons ) |
| 1444 | + configuration.newButtons[gM( msg )] = configuration.buttons[msg]; |
| 1445 | + configuration.buttons = configuration.newButtons; |
| 1446 | + // Create the dialog <div> |
| 1447 | + $( '<div /> ' ) |
| 1448 | + .attr( 'id', module.id ) |
| 1449 | + .html( module.html ) |
| 1450 | + .data( 'context', context ) |
| 1451 | + .appendTo( $( 'body' ) ) |
| 1452 | + .each( module.init ) |
| 1453 | + .dialog( configuration ) |
| 1454 | + .bind( 'dialogopen', $.wikiEditor.modules.dialogs.fn.resize ) |
| 1455 | + .find( '.ui-tabs' ).bind( 'tabsshow', function() { |
| 1456 | + $(this).closest( '.ui-dialog-content' ).each( |
| 1457 | + $.wikiEditor.modules.dialogs.fn.resize ); |
| 1458 | + }); |
| 1459 | + |
| 1460 | + // Add tabindexes to dialog form elements |
| 1461 | + // Find the highest tabindex in use |
| 1462 | + var maxTI = 0; |
| 1463 | + $j( '[tabindex]' ).each( function() { |
| 1464 | + var ti = parseInt( $j(this).attr( 'tabindex' ) ); |
| 1465 | + if ( ti > maxTI ) |
| 1466 | + maxTI = ti; |
1457 | 1467 | }); |
1458 | | - |
1459 | | - // Add tabindexes to dialog form elements |
1460 | | - // Find the highest tabindex in use |
1461 | | - var maxTI = 0; |
1462 | | - $j( '[tabindex]' ).each( function() { |
1463 | | - var ti = parseInt( $j(this).attr( 'tabindex' ) ); |
1464 | | - if ( ti > maxTI ) |
1465 | | - maxTI = ti; |
1466 | | - }); |
1467 | | - |
1468 | | - var tabIndex = maxTI + 1; |
1469 | | - $j( '.ui-dialog input, .ui-dialog button' ) |
1470 | | - .not( '[tabindex]' ) |
1471 | | - .each( function() { |
1472 | | - $j(this).attr( 'tabindex', tabIndex++ ); |
1473 | | - }); |
| 1468 | + |
| 1469 | + var tabIndex = maxTI + 1; |
| 1470 | + $j( '.ui-dialog input, .ui-dialog button' ) |
| 1471 | + .not( '[tabindex]' ) |
| 1472 | + .each( function() { |
| 1473 | + $j(this).attr( 'tabindex', tabIndex++ ); |
| 1474 | + }); |
| 1475 | + } |
1474 | 1476 | } |
1475 | | - } |
| 1477 | + }); |
1476 | 1478 | }, |
1477 | 1479 | |
1478 | 1480 | /** |
1479 | 1481 | * Resize a dialog so its contents fit |
1480 | 1482 | * |
1481 | 1483 | * Usage: dialog.each( resize ); or dialog.bind( 'blah', resize ); |
| 1484 | + * NOTE: This function assumes $j.ui.dialog has already been loaded |
1482 | 1485 | */ |
1483 | 1486 | resize: function() { |
1484 | 1487 | var wrapper = $(this).closest( '.ui-dialog' ); |
Index: trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js |
— | — | @@ -90,9 +90,9 @@ |
91 | 91 | if(typeof data=='string'){callModuleApi(data,'create',{});}else if(typeof data=='object'){for(module in data){if(typeof module=='string'){callModuleApi(module,'create',data[module]);}}}}};for(module in $.wikiEditor.modules){if('api'in $.wikiEditor.modules[module]){for(call in $.wikiEditor.modules[module].api){if(!(call in context.api)){context.api[call]=$.wikiEditor.modules[module].api[call];}}}}} |
92 | 92 | if(arguments.length>0&&typeof arguments[0]=='object'){context.api.addModule(context,arguments[0]);}else{arguments=$.makeArray(arguments);if(arguments.length>0){var call=arguments.shift();if(call in context.api){context.api[call](context,arguments[0]==undefined?{}:arguments[0]);}}} |
93 | 93 | return $(this).data('wikiEditor-context',context);};})(jQuery);RegExp.escape=function(s){return s.replace(/([.*+?^${}()|\/\\[\]])/g,'\\$1');};(function($){$.wikiEditor.modules.dialogs={api:{addDialog:function(context,data){$.wikiEditor.modules.dialogs.fn.create(context,{'modules':data})},openDialog:function(context,data){if(data.dialog in $.wikiEditor.modules.dialogs.modules){$('#'+$.wikiEditor.modules.dialogs.modules[data.dialog].id).dialog('open');}},closeDialog:function(context,data){if(data.dialog in $.wikiEditor.modules.dialogs.modules){$('#'+$.wikiEditor.modules.dialogs.modules[data.dialog].id).dialog('close');}}},fn:{create:function(context,config){for(module in config){$.wikiEditor.modules.dialogs.modules[module]=config[module];} |
94 | | -for(module in $.wikiEditor.modules.dialogs.modules){var module=$.wikiEditor.modules.dialogs.modules[module];if($('#'+module.id).size()==0){var configuration=module.dialog;configuration.bgiframe=true;configuration.autoOpen=false;configuration.modal=true;configuration.title=$.wikiEditor.autoMsg(module,'title');configuration.newButtons={};for(msg in configuration.buttons) |
| 94 | +mvJsLoader.doLoad(['$j.ui','$j.ui.dialog','$j.ui.draggable','$j.ui.resizable'],function(){for(module in $.wikiEditor.modules.dialogs.modules){var module=$.wikiEditor.modules.dialogs.modules[module];if($('#'+module.id).size()==0){var configuration=module.dialog;configuration.bgiframe=true;configuration.autoOpen=false;configuration.modal=true;configuration.title=$.wikiEditor.autoMsg(module,'title');configuration.newButtons={};for(msg in configuration.buttons) |
95 | 95 | configuration.newButtons[gM(msg)]=configuration.buttons[msg];configuration.buttons=configuration.newButtons;$('<div /> ').attr('id',module.id).html(module.html).data('context',context).appendTo($('body')).each(module.init).dialog(configuration).bind('dialogopen',$.wikiEditor.modules.dialogs.fn.resize).find('.ui-tabs').bind('tabsshow',function(){$(this).closest('.ui-dialog-content').each($.wikiEditor.modules.dialogs.fn.resize);});var maxTI=0;$j('[tabindex]').each(function(){var ti=parseInt($j(this).attr('tabindex'));if(ti>maxTI) |
96 | | -maxTI=ti;});var tabIndex=maxTI+1;$j('.ui-dialog input, .ui-dialog button').not('[tabindex]').each(function(){$j(this).attr('tabindex',tabIndex++);});}}},resize:function(){var wrapper=$(this).closest('.ui-dialog');var oldWidth=wrapper.width();var oldHidden=$(this).find('*').not(':visible');oldHidden.each(function(){$(this).data('oldstyle',$(this).attr('style'));});oldHidden.show();var oldWS=$(this).css('white-space');$(this).css('white-space','nowrap');if(wrapper.width()<=$(this).get(0).scrollWidth){$(this).width($(this).get(0).scrollWidth);wrapper.width(wrapper.get(0).scrollWidth);$(this).dialog({'width':wrapper.width()});wrapper.css('left',parseInt(wrapper.css('left'))- |
| 96 | +maxTI=ti;});var tabIndex=maxTI+1;$j('.ui-dialog input, .ui-dialog button').not('[tabindex]').each(function(){$j(this).attr('tabindex',tabIndex++);});}}});},resize:function(){var wrapper=$(this).closest('.ui-dialog');var oldWidth=wrapper.width();var oldHidden=$(this).find('*').not(':visible');oldHidden.each(function(){$(this).data('oldstyle',$(this).attr('style'));});oldHidden.show();var oldWS=$(this).css('white-space');$(this).css('white-space','nowrap');if(wrapper.width()<=$(this).get(0).scrollWidth){$(this).width($(this).get(0).scrollWidth);wrapper.width(wrapper.get(0).scrollWidth);$(this).dialog({'width':wrapper.width()});wrapper.css('left',parseInt(wrapper.css('left'))- |
97 | 97 | (wrapper.width()-oldWidth)/2);} |
98 | 98 | $(this).css('white-space',oldWS);oldHidden.each(function(){$(this).attr('style',$(this).data('oldstyle'));});}},'modules':{}};})(jQuery);(function($){$.wikiEditor.modules.toolbar={api:{addToToolbar:function(context,data){for(type in data){switch(type){case'sections':var $sections=context.modules.$toolbar.find('div.sections');var $tabs=context.modules.$toolbar.find('div.tabs');for(section in data[type]){if(section=='main'){context.modules.$toolbar.prepend($.wikiEditor.modules.toolbar.fn.buildSection(context,section,data[type][section]));continue;} |
99 | 99 | $sections.append($.wikiEditor.modules.toolbar.fn.buildSection(context,section,data[type][section]));$tabs.append($.wikiEditor.modules.toolbar.fn.buildTab(context,section,data[type][section]));$section=$sections.find('.section:visible');if($section.size()){$sections.animate({'height':$section.outerHeight()},'fast');}} |
Index: trunk/extensions/UsabilityInitiative/js/js2/js2.js |
— | — | @@ -50,4 +50,7 @@ |
51 | 51 | */ |
52 | 52 | function js2AddOnloadHook( func ) { |
53 | 53 | $j(document).ready( func ); |
54 | | -} |
\ No newline at end of file |
| 54 | +} |
| 55 | + |
| 56 | +// Define a dummy mvJsLoader.doLoad() function |
| 57 | +mvJsLoader = { doLoad: function( deps, callback ) { callback(); } }; |
\ No newline at end of file |