jenkins-bot has submitted this change and it was merged.

Change subject: History: Simplify checkboxes script on History pages
......................................................................


History: Simplify checkboxes script on History pages

This should reduce the amount of variables constructed and also switches
to a class based implementation, which allows us to do the same with
fewer calls touching the DOM.

Not supported by IE6.

Bug: 51561
Change-Id: I4596b3667f990ef1d8c7ca753e1d80fe285d5614
---
M resources/Resources.php
A resources/src/mediawiki.action/mediawiki.action.history.css
M resources/src/mediawiki.action/mediawiki.action.history.js
3 files changed, 23 insertions(+), 33 deletions(-)

Approvals:
  Bartosz Dziewoński: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/Resources.php b/resources/Resources.php
index ac83302..ea7d397 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -1024,6 +1024,7 @@
        ),
        'mediawiki.action.history' => array(
                'scripts' => 
'resources/src/mediawiki.action/mediawiki.action.history.js',
+               'styles' => 
'resources/src/mediawiki.action/mediawiki.action.history.css',
                'group' => 'mediawiki.action.history',
        ),
        'mediawiki.action.history.diff' => array(
diff --git a/resources/src/mediawiki.action/mediawiki.action.history.css 
b/resources/src/mediawiki.action/mediawiki.action.history.css
new file mode 100644
index 0000000..603a965
--- /dev/null
+++ b/resources/src/mediawiki.action/mediawiki.action.history.css
@@ -0,0 +1,4 @@
+#pagehistory li.before input[name="oldid"],
+#pagehistory li.after input[name="diff"] {
+       visibility: hidden;
+}
diff --git a/resources/src/mediawiki.action/mediawiki.action.history.js 
b/resources/src/mediawiki.action/mediawiki.action.history.js
index 8aa5a1f..ac48c59 100644
--- a/resources/src/mediawiki.action/mediawiki.action.history.js
+++ b/resources/src/mediawiki.action/mediawiki.action.history.js
@@ -12,54 +12,39 @@
         * @param e {jQuery.Event}
         */
        function updateDiffRadios() {
-               var diffLi = false, // the li where the diff radio is checked
-                       oldLi = false; // the li where the oldid radio is 
checked
+               var nextState = 'before',
+                       $li,
+                       $inputs,
+                       $oldidRadio,
+                       $diffRadio;
 
                if ( !$lis.length ) {
                        return true;
                }
 
                $lis
-               .removeClass( 'selected' )
                .each( function () {
-                       var     $li = $( this ),
-                               $inputs = $li.find( 'input[type="radio"]' ),
-                               $oldidRadio = $inputs.filter( '[name="oldid"]' 
).eq( 0 ),
-                               $diffRadio = $inputs.filter( '[name="diff"]' 
).eq( 0 );
+                       $li = $( this );
+                       $inputs = $li.find( 'input[type="radio"]' );
+                       $oldidRadio = $inputs.filter( '[name="oldid"]' ).eq( 0 
);
+                       $diffRadio = $inputs.filter( '[name="diff"]' ).eq( 0 );
+
+                       $li.removeClass( 'selected between before after' );
 
                        if ( !$oldidRadio.length || !$diffRadio.length ) {
                                return true;
                        }
 
                        if ( $oldidRadio.prop( 'checked' ) ) {
-                               oldLi = true;
-                               $li.addClass( 'selected' );
-                               $oldidRadio.css( 'visibility', 'visible' );
-                               $diffRadio.css( 'visibility', 'hidden' );
-
+                               $li.addClass( 'selected after' );
+                               nextState = 'after';
                        } else if ( $diffRadio.prop( 'checked' ) ) {
-                               diffLi = true;
-                               $li.addClass( 'selected' );
-                               $oldidRadio.css( 'visibility', 'hidden' );
-                               $diffRadio.css( 'visibility', 'visible' );
-
-                       // This list item has neither checked
+                               $li.addClass( 'selected ' + nextState );
+                               nextState = 'between';
                        } else {
-                               // We're below the selected radios
-                               if ( diffLi && oldLi ) {
-                                       $oldidRadio.css( 'visibility', 
'visible' );
-                                       $diffRadio.css( 'visibility', 'hidden' 
);
-
-                               // We're between the selected radios
-                               } else if ( diffLi ) {
-                                       $diffRadio.css( 'visibility', 'visible' 
);
-                                       $oldidRadio.css( 'visibility', 
'visible' );
-
-                               // We're above the selected radios
-                               } else {
-                                       $diffRadio.css( 'visibility', 'visible' 
);
-                                       $oldidRadio.css( 'visibility', 'hidden' 
);
-                               }
+                               // This list item has neither checked
+                               // apply the appropriate class following the 
previous item.
+                               $li.addClass( nextState );
                        }
                } );
 

-- 
To view, visit https://gerrit.wikimedia.org/r/133709
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I4596b3667f990ef1d8c7ca753e1d80fe285d5614
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: TheDJ <hartman.w...@gmail.com>
Gerrit-Reviewer: Bartosz Dziewoński <matma....@gmail.com>
Gerrit-Reviewer: Edokter <er...@darcoury.nl>
Gerrit-Reviewer: Jack Phoenix <j...@countervandalism.net>
Gerrit-Reviewer: Krinkle <krinklem...@gmail.com>
Gerrit-Reviewer: TheDJ <hartman.w...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to