Merge "Integrate module 'jquery.checkboxShiftClick' into 'mediawiki.page.ready'"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sat, 14 Sep 2019 23:54:48 +0000 (23:54 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sat, 14 Sep 2019 23:54:48 +0000 (23:54 +0000)
resources/Resources.php
resources/src/jquery/jquery.checkboxShiftClick.js [deleted file]
resources/src/mediawiki.page.ready.js [deleted file]
resources/src/mediawiki.page.ready/checkboxShift.js [new file with mode: 0644]
resources/src/mediawiki.page.ready/ready.js [new file with mode: 0644]

index 180ed65..bcbe96d 100644 (file)
@@ -163,7 +163,10 @@ return [
                'targets' => [ 'mobile', 'desktop' ],
        ],
        'jquery.checkboxShiftClick' => [
-               'scripts' => 'resources/src/jquery/jquery.checkboxShiftClick.js',
+               'deprecated' => 'Please use "mediawiki.page.ready" instead.',
+               'dependencies' => [
+                       'mediawiki.page.ready',
+               ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'jquery.chosen' => [
@@ -1663,9 +1666,11 @@ return [
                ]
        ],
        'mediawiki.page.ready' => [
-               'scripts' => 'resources/src/mediawiki.page.ready.js',
+               'scripts' => [
+                       'resources/src/mediawiki.page.ready/checkboxShift.js',
+                       'resources/src/mediawiki.page.ready/ready.js',
+               ],
                'dependencies' => [
-                       'jquery.checkboxShiftClick',
                        'mediawiki.util',
                        'mediawiki.notify',
                        'mediawiki.api'
diff --git a/resources/src/jquery/jquery.checkboxShiftClick.js b/resources/src/jquery/jquery.checkboxShiftClick.js
deleted file mode 100644 (file)
index 435e23f..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * @class jQuery.plugin.checkboxShiftClick
- */
-( function () {
-
-       /**
-        * Enable checkboxes to be checked or unchecked in a row by clicking one,
-        * holding shift and clicking another one.
-        *
-        * @return {jQuery}
-        * @chainable
-        */
-       $.fn.checkboxShiftClick = function () {
-               var prevCheckbox = null,
-                       $box = this;
-               // When our boxes are clicked..
-               $box.on( 'click', function ( e ) {
-                       // And one has been clicked before...
-                       if ( prevCheckbox !== null && e.shiftKey ) {
-                               // Check or uncheck this one and all in-between checkboxes,
-                               // except for disabled ones
-                               $box
-                                       .slice(
-                                               Math.min( $box.index( prevCheckbox ), $box.index( e.target ) ),
-                                               Math.max( $box.index( prevCheckbox ), $box.index( e.target ) ) + 1
-                                       )
-                                       .filter( function () {
-                                               return !this.disabled;
-                                       } )
-                                       .prop( 'checked', !!e.target.checked );
-                       }
-                       // Either way, update the prevCheckbox variable to the one clicked now
-                       prevCheckbox = e.target;
-               } );
-               return $box;
-       };
-
-       /**
-        * @class jQuery
-        * @mixins jQuery.plugin.checkboxShiftClick
-        */
-
-}() );
diff --git a/resources/src/mediawiki.page.ready.js b/resources/src/mediawiki.page.ready.js
deleted file mode 100644 (file)
index 0e59da6..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-( function () {
-       mw.hook( 'wikipage.content' ).add( function ( $content ) {
-               var $sortable, $collapsible;
-
-               $collapsible = $content.find( '.mw-collapsible' );
-               if ( $collapsible.length ) {
-                       // Preloaded by Skin::getDefaultModules()
-                       mw.loader.using( 'jquery.makeCollapsible', function () {
-                               $collapsible.makeCollapsible();
-                       } );
-               }
-
-               $sortable = $content.find( 'table.sortable' );
-               if ( $sortable.length ) {
-                       // Preloaded by Skin::getDefaultModules()
-                       mw.loader.using( 'jquery.tablesorter', function () {
-                               $sortable.tablesorter();
-                       } );
-               }
-
-               // Run jquery.checkboxShiftClick
-               $content.find( 'input[type="checkbox"]:not(.noshiftselect)' ).checkboxShiftClick();
-       } );
-
-       // Things outside the wikipage content
-       $( function () {
-               var $nodes;
-
-               // Add accesskey hints to the tooltips
-               $( '[accesskey]' ).updateTooltipAccessKeys();
-
-               $nodes = $( '.catlinks[data-mw="interface"]' );
-               if ( $nodes.length ) {
-                       /**
-                        * Fired when categories are being added to the DOM
-                        *
-                        * It is encouraged to fire it before the main DOM is changed (when $content
-                        * is still detached).  However, this order is not defined either way, so you
-                        * should only rely on $content itself.
-                        *
-                        * This includes the ready event on a page load (including post-edit loads)
-                        * and when content has been previewed with LivePreview.
-                        *
-                        * @event wikipage_categories
-                        * @member mw.hook
-                        * @param {jQuery} $content The most appropriate element containing the content,
-                        *   such as .catlinks
-                        */
-                       mw.hook( 'wikipage.categories' ).fire( $nodes );
-               }
-
-               $( '#t-print a' ).on( 'click', function ( e ) {
-                       window.print();
-                       e.preventDefault();
-               } );
-
-               // Turn logout to a POST action
-               $( '#pt-logout a' ).on( 'click', function ( e ) {
-                       var api = new mw.Api(),
-                               returnUrl = $( '#pt-logout a' ).attr( 'href' );
-                       mw.notify(
-                               mw.message( 'logging-out-notify' ),
-                               { tag: 'logout', autoHide: false }
-                       );
-                       api.postWithToken( 'csrf', {
-                               action: 'logout'
-                       } ).then(
-                               function () {
-                                       location.href = returnUrl;
-                               },
-                               function ( e ) {
-                                       mw.notify(
-                                               mw.message( 'logout-failed', e ),
-                                               { type: 'error', tag: 'logout', autoHide: false }
-                                       );
-                               }
-                       );
-                       e.preventDefault();
-               } );
-       } );
-
-}() );
diff --git a/resources/src/mediawiki.page.ready/checkboxShift.js b/resources/src/mediawiki.page.ready/checkboxShift.js
new file mode 100644 (file)
index 0000000..435e23f
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+ * @class jQuery.plugin.checkboxShiftClick
+ */
+( function () {
+
+       /**
+        * Enable checkboxes to be checked or unchecked in a row by clicking one,
+        * holding shift and clicking another one.
+        *
+        * @return {jQuery}
+        * @chainable
+        */
+       $.fn.checkboxShiftClick = function () {
+               var prevCheckbox = null,
+                       $box = this;
+               // When our boxes are clicked..
+               $box.on( 'click', function ( e ) {
+                       // And one has been clicked before...
+                       if ( prevCheckbox !== null && e.shiftKey ) {
+                               // Check or uncheck this one and all in-between checkboxes,
+                               // except for disabled ones
+                               $box
+                                       .slice(
+                                               Math.min( $box.index( prevCheckbox ), $box.index( e.target ) ),
+                                               Math.max( $box.index( prevCheckbox ), $box.index( e.target ) ) + 1
+                                       )
+                                       .filter( function () {
+                                               return !this.disabled;
+                                       } )
+                                       .prop( 'checked', !!e.target.checked );
+                       }
+                       // Either way, update the prevCheckbox variable to the one clicked now
+                       prevCheckbox = e.target;
+               } );
+               return $box;
+       };
+
+       /**
+        * @class jQuery
+        * @mixins jQuery.plugin.checkboxShiftClick
+        */
+
+}() );
diff --git a/resources/src/mediawiki.page.ready/ready.js b/resources/src/mediawiki.page.ready/ready.js
new file mode 100644 (file)
index 0000000..0e59da6
--- /dev/null
@@ -0,0 +1,82 @@
+( function () {
+       mw.hook( 'wikipage.content' ).add( function ( $content ) {
+               var $sortable, $collapsible;
+
+               $collapsible = $content.find( '.mw-collapsible' );
+               if ( $collapsible.length ) {
+                       // Preloaded by Skin::getDefaultModules()
+                       mw.loader.using( 'jquery.makeCollapsible', function () {
+                               $collapsible.makeCollapsible();
+                       } );
+               }
+
+               $sortable = $content.find( 'table.sortable' );
+               if ( $sortable.length ) {
+                       // Preloaded by Skin::getDefaultModules()
+                       mw.loader.using( 'jquery.tablesorter', function () {
+                               $sortable.tablesorter();
+                       } );
+               }
+
+               // Run jquery.checkboxShiftClick
+               $content.find( 'input[type="checkbox"]:not(.noshiftselect)' ).checkboxShiftClick();
+       } );
+
+       // Things outside the wikipage content
+       $( function () {
+               var $nodes;
+
+               // Add accesskey hints to the tooltips
+               $( '[accesskey]' ).updateTooltipAccessKeys();
+
+               $nodes = $( '.catlinks[data-mw="interface"]' );
+               if ( $nodes.length ) {
+                       /**
+                        * Fired when categories are being added to the DOM
+                        *
+                        * It is encouraged to fire it before the main DOM is changed (when $content
+                        * is still detached).  However, this order is not defined either way, so you
+                        * should only rely on $content itself.
+                        *
+                        * This includes the ready event on a page load (including post-edit loads)
+                        * and when content has been previewed with LivePreview.
+                        *
+                        * @event wikipage_categories
+                        * @member mw.hook
+                        * @param {jQuery} $content The most appropriate element containing the content,
+                        *   such as .catlinks
+                        */
+                       mw.hook( 'wikipage.categories' ).fire( $nodes );
+               }
+
+               $( '#t-print a' ).on( 'click', function ( e ) {
+                       window.print();
+                       e.preventDefault();
+               } );
+
+               // Turn logout to a POST action
+               $( '#pt-logout a' ).on( 'click', function ( e ) {
+                       var api = new mw.Api(),
+                               returnUrl = $( '#pt-logout a' ).attr( 'href' );
+                       mw.notify(
+                               mw.message( 'logging-out-notify' ),
+                               { tag: 'logout', autoHide: false }
+                       );
+                       api.postWithToken( 'csrf', {
+                               action: 'logout'
+                       } ).then(
+                               function () {
+                                       location.href = returnUrl;
+                               },
+                               function ( e ) {
+                                       mw.notify(
+                                               mw.message( 'logout-failed', e ),
+                                               { type: 'error', tag: 'logout', autoHide: false }
+                                       );
+                               }
+                       );
+                       e.preventDefault();
+               } );
+       } );
+
+}() );