New mediawiki.page modules
authorKrinkle <krinkle@users.mediawiki.org>
Wed, 22 Jun 2011 21:27:12 +0000 (21:27 +0000)
committerKrinkle <krinkle@users.mediawiki.org>
Wed, 22 Jun 2011 21:27:12 +0000 (21:27 +0000)
First step towards cleaning up mw.util.init and removing bugus dependancies on mediawiki.util which are just added there in order to load them on every page and do something on-load.

Introducing mediawiki.page.startup (in the head) and mediawiki.page.ready (on the bottom)

Moved the following to them:
* document.ready from jquery.cient
 -- Shouldn't have been in the plugin itself in the first place
* jquery.placeholder
* jquery.makeCollapsible
* mediawiki.action.view.tablesorting
* jquery.checkboxShiftClick

(This also solves part of bug 26799)

includes/OutputPage.php
resources/Resources.php
resources/jquery/jquery.client.js
resources/mediawiki.action/mediawiki.action.view.tablesorting.js [deleted file]
resources/mediawiki.page/mediawiki.page.ready.js [new file with mode: 0644]
resources/mediawiki.page/mediawiki.page.startup.js [new file with mode: 0644]
resources/mediawiki/mediawiki.util.js
tests/qunit/index.html

index 48ee31d..36b17ab 100644 (file)
@@ -2359,7 +2359,12 @@ $templates
                        $wgUseAjax, $wgAjaxWatch, $wgEnableMWSuggest;
 
                // Add base resources
-               $this->addModules( array( 'mediawiki.user', 'mediawiki.util', 'mediawiki.action.view.tablesorting' ) );
+               $this->addModules( array(
+                       'mediawiki.user',
+                       'mediawiki.util',
+                       'mediawiki.page.startup',
+                       'mediawiki.page.ready',
+               ) );
                if ( $wgIncludeLegacyJavaScript ){
                        $this->addModules( 'mediawiki.legacy.wikibits' );
                }
index 25c13ce..38965c5 100644 (file)
@@ -448,16 +448,28 @@ return array(
                        'jquery.cookie',
                ),
        ),
+       'mediawiki.page.startup' => array(
+               'scripts' => 'resources/mediawiki.page/mediawiki.page.startup.js',
+               'dependencies' => array(
+                       'jquery.client',
+               ),
+               'position' => 'top',
+       ),
+       'mediawiki.page.ready' => array(
+               'scripts' => 'resources/mediawiki.page/mediawiki.page.ready.js',
+               'dependencies' => array(
+                       'jquery.checkboxShiftClick',
+                       'jquery.makeCollapsible',
+                       'jquery.placeholder',
+               ),
+       ),
        'mediawiki.util' => array(
                'scripts' => 'resources/mediawiki/mediawiki.util.js',
                'dependencies' => array(
-                       'jquery.checkboxShiftClick',
                        'jquery.client',
                        'jquery.cookie',
                        'jquery.messageBox',
-                       'jquery.makeCollapsible',
                        'jquery.mwPrototypes',
-                       'jquery.placeholder',
                ),
        ),
        'mediawiki.libs.jpegmeta' => array(
@@ -482,9 +494,6 @@ return array(
                'scripts' => 'resources/mediawiki.action/mediawiki.action.view.metadata.js',
                'messages' => array( 'metadata-expand', 'metadata-collapse' ),
        ),
-       'mediawiki.action.view.tablesorting' => array(
-               'scripts' => 'resources/mediawiki.action/mediawiki.action.view.tablesorting.js',
-       ),
        'mediawiki.action.watch.ajax' => array(
                'scripts' => 'resources/mediawiki.action/mediawiki.action.watch.ajax.js',
                'messages' => array(
index 2681b60..c6edff5 100644 (file)
                        return true;
                }
        };
-
-       $( document ).ready( function() {
-               var profile = $.client.profile();
-               $( 'html' )
-                       .addClass( 'client-' + profile.name )
-                       .addClass( 'client-' + profile.name + '-' + profile.versionBase )
-                       .addClass( 'client-' + profile.layout )
-                       .addClass( 'client-' + profile.platform );
-       } );
-
 } )( jQuery );
diff --git a/resources/mediawiki.action/mediawiki.action.view.tablesorting.js b/resources/mediawiki.action/mediawiki.action.view.tablesorting.js
deleted file mode 100644 (file)
index 09aefc0..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-// Lazy load jquery.tablesorter
-
-( function( $ ) {
-       if ( $( 'table.sortable' ).length ) {
-               mw.loader.using( 'jquery.tablesorter', function() {
-                       $( 'table.sortable' ).tablesorter(); 
-               } );
-       }
-} )( jQuery );
\ No newline at end of file
diff --git a/resources/mediawiki.page/mediawiki.page.ready.js b/resources/mediawiki.page/mediawiki.page.ready.js
new file mode 100644 (file)
index 0000000..c9f4ad4
--- /dev/null
@@ -0,0 +1,21 @@
+jQuery( document ).ready( function( $ ) {
+
+       /* Emulate placeholder if not supported by browser */
+       if ( !( 'placeholder' in document.createElement( 'input' ) ) ) {
+               $( 'input[placeholder]' ).placeholder();
+       }
+
+       /* Enable makeCollapse */
+       $( '.mw-collapsible' ).makeCollapsible();
+
+       /* Lazy load jquery.tablesorter */
+       if ( $( 'table.sortable' ).length ) {
+               mw.loader.using( 'jquery.tablesorter', function() {
+                       $( 'table.sortable' ).tablesorter();
+               });
+       }
+
+       /* Enable CheckboxShiftClick */
+       $( 'input[type=checkbox]:not(.noshiftselect)' ).checkboxShiftClick();
+
+} );
diff --git a/resources/mediawiki.page/mediawiki.page.startup.js b/resources/mediawiki.page/mediawiki.page.startup.js
new file mode 100644 (file)
index 0000000..0a8cabf
--- /dev/null
@@ -0,0 +1,13 @@
+( function( $ ) {
+
+       /* Client profile classes for <html> */
+
+       var prof = $.client.profile();
+       $( 'html' ).addClass(
+               'client-' + prof.name
+               + ' client-' + prof.name + '-' + prof.versionBase
+               + ' client-' + prof.layout
+               + ' client-' + prof.platform
+       );
+
+} )( jQuery );
index 4eb3224..1f4d95f 100644 (file)
                                                mw.util.tooltipAccessKeyPrefix = 'alt-shift-';
                                        }
 
-                                       /* Enable CheckboxShiftClick */
-                                       $( 'input[type=checkbox]:not(.noshiftselect)' ).checkboxShiftClick();
-
-                                       /* Emulate placeholder if not supported by browser */
-                                       if ( !( 'placeholder' in document.createElement( 'input' ) ) ) {
-                                               $( 'input[placeholder]' ).placeholder();
-                                       }
-
                                        /* Fill $content var */
                                        if ( $( '#bodyContent' ).length ) {
                                                // Vector, Monobook, Chick etc.
@@ -86,9 +78,6 @@
                                                mw.util.$content = $( '#content' );
                                        }
 
-                                       /* Enable makeCollapse */
-                                       $( '.mw-collapsible' ).makeCollapsible();
-
                                        /* Table of Contents toggle */
                                        var     $tocContainer = $( '#toc' ),
                                                $tocTitle = $( '#toctitle' ),
index a5a0200..e380423 100644 (file)
        <script src="../../resources/jquery/jquery.js"></script>
        <script src="../../resources/mediawiki/mediawiki.js"></script>
 
-       <!-- MW: mediawiki.user|mediawiki.util -->
-       <script src="../../resources/mediawiki/mediawiki.user.js"></script>
-               <script src="../../resources/jquery/jquery.checkboxShiftClick.js"></script>
+       <!-- MW: mediawiki.page.startup -->
+       <script src="../../resources/mediawiki.page/mediawiki.page.startup.js"></script>
                <script src="../../resources/jquery/jquery.client.js"></script>
+
+       <!-- MW: mediawiki.user|mediawiki.util|mediawiki.page.ready -->
+       <script src="../../resources/mediawiki/mediawiki.user.js"></script>
                <script src="../../resources/jquery/jquery.cookie.js"></script>
+       <script src="../../resources/mediawiki/mediawiki.util.js"></script>
                <script src="../../resources/jquery/jquery.messageBox.js"></script>
-               <script src="../../resources/jquery/jquery.makeCollapsible.js"></script>
                <script src="../../resources/jquery/jquery.mwPrototypes.js"></script>
+       <script src="../../resources/mediawiki.page/mediawiki.page.ready.js"></script>
+               <script src="../../resources/jquery/jquery.checkboxShiftClick.js"></script>
+               <script src="../../resources/jquery/jquery.makeCollapsible.js"></script>
                <script src="../../resources/jquery/jquery.placeholder.js"></script>
-               <script src="../../resources/jquery/jquery.tablesorter.js"></script>
-       <script src="../../resources/mediawiki/mediawiki.util.js"></script>
 
        <!-- MW: user.options -->
        <script>