Addshore has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/323384

Change subject: User preference to disable the Extension
......................................................................

User preference to disable the Extension

Bug: T151452
Change-Id: I35a50a411006dca6919a50ba2d0c5f2e8bc1b2e9
(cherry picked from commit 0d4323c4a1ab8254bf271dfae4e8eff625414a0a)
---
M RevisionSlider.hooks.php
M extension.json
M i18n/en.json
M i18n/qqq.json
4 files changed, 25 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/RevisionSlider 
refs/changes/84/323384/1

diff --git a/RevisionSlider.hooks.php b/RevisionSlider.hooks.php
index 8135ed2..9f9a623 100644
--- a/RevisionSlider.hooks.php
+++ b/RevisionSlider.hooks.php
@@ -30,6 +30,14 @@
                }
 
                /**
+                * If the user is logged in and has explictly requested to 
disable the extension don't load.
+                */
+               $user = $diff->getUser();
+               if ( !$user->isAnon() && $user->getBoolOption( 
'revisionslider-disable' ) ) {
+                       return true;
+               }
+
+               /**
                 * Do not show the RevisionSlider when revisions from two 
different pages are being compared
                 */
                if ( !$oldRev->getTitle()->equals( $newRev->getTitle() ) ) {
@@ -46,7 +54,7 @@
                        $timeOffset = 0;
                }
 
-               $autoExpand = $diff->getUser()->getBoolOption( 
'userjs-revslider-autoexpand' );
+               $autoExpand = $user->getBoolOption( 
'userjs-revslider-autoexpand' );
 
                $out = RequestContext::getMain()->getOutput();
                $out->addModules( 'ext.RevisionSlider.init' );
@@ -164,4 +172,15 @@
 
                return true;
        }
+
+       public static function onGetPreferences( User $user, array 
&$preferences ) {
+               $preferences['revisionslider-disable'] = [
+                       'type' => 'toggle',
+                       'label-message' => 'revisionslider-preference-disable',
+                       'section' => 'rendering/diffs',
+                       'default' => $user->getBoolOption( 
'revisionslider-disable' ),
+               ];
+
+               return true;
+       }
 }
diff --git a/extension.json b/extension.json
index ed1e8af..89020b2 100644
--- a/extension.json
+++ b/extension.json
@@ -253,6 +253,9 @@
                "GetBetaFeaturePreferences": [
                        "RevisionSliderHooks::getBetaFeaturePreferences"
                ],
+               "GetPreferences": [
+                       "RevisionSliderHooks::onGetPreferences"
+               ],
                "ResourceLoaderTestModules": [
                        "RevisionSliderHooks::onResourceLoaderTestModules"
                ]
diff --git a/i18n/en.json b/i18n/en.json
index 48dd3d1..b9d91d8 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -5,6 +5,7 @@
         ]
     },
     "revisionslider": "RevisionSlider",
+    "revisionslider-preference-disable": "Don't show the RevisionSlider",
     "revisionslider-desc": "Shows a slider allowing selecting and comparing of 
revisions on a diff page",
     "revisionslider-beta-feature-message": "Revision slider",
     "revisionslider-beta-feature-description": "Show a revision slider when 
comparing two revisions of a page.",
diff --git a/i18n/qqq.json b/i18n/qqq.json
index b528277..954415f 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -7,6 +7,7 @@
                ]
        },
        "revisionslider": "RevisionSlider, see 
https://www.mediawiki.org/wiki/Extension:RevisionSlider";,
+       "revisionslider-preference-disable": "Label for the user preference 
that disables the RevisionSlider",
        "revisionslider-desc": 
"{{desc|name=RevisionSlider|url=https://www.mediawiki.org/wiki/Extension:RevisionSlider}}";,
        "revisionslider-beta-feature-message": "Label for the RevisionSlider 
Beta Feature.",
        "revisionslider-beta-feature-description": "Description for the 
RevisionSlider Beta Feature, describing the feature that will be enabled.",

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I35a50a411006dca6919a50ba2d0c5f2e8bc1b2e9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/RevisionSlider
Gerrit-Branch: wmf/1.29.0-wmf.3
Gerrit-Owner: Addshore <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to