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

Change subject: Add user preference for non-beta disabling
......................................................................


Add user preference for non-beta disabling

Change-Id: I3f581975cfdf33bc15b8a4b23549c6401b4bfb87
(cherry picked from commit b0b1446f5b27021674a7ad6e97c03b9577093713)
---
M MultimediaViewer.i18n.php
M MultimediaViewer.php
M MultimediaViewerHooks.php
3 files changed, 28 insertions(+), 6 deletions(-)

Approvals:
  MarkTraceur: Looks good to me, but someone else must approve
  Siebrand: Looks good to me, but someone else must approve
  Gergő Tisza: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/MultimediaViewer.i18n.php b/MultimediaViewer.i18n.php
index 47744f4..eb88de6 100644
--- a/MultimediaViewer.i18n.php
+++ b/MultimediaViewer.i18n.php
@@ -30,6 +30,7 @@
        'multimediaviewer-desc-nil' => 'No description available.',
        'multimediaviewer-pref' => 'Media Viewer',
        'multimediaviewer-pref-desc' => 'Improve your multimedia viewing 
experience with this new tool. It displays images in larger size on pages that 
have thumbnails. Images are shown in a nicer fullscreen interface overlay, and 
can also be viewed in full-size.',
+       'multimediaviewer-optin-pref' => 'Enable new media viewing experience',
        'multimediaviewer-file-page' => 'Go to corresponding file page',
        'multimediaviewer-repository' => 'Learn more on $1',
        'multimediaviewer-repository-local' => 'Learn more',
@@ -121,6 +122,7 @@
        'multimediaviewer-desc-nil' => 'Text to be used when no description is 
available.',
        'multimediaviewer-pref' => 'Preference title',
        'multimediaviewer-pref-desc' => 'Description of preference',
+       'multimediaviewer-optin-pref' => 'Label for non-beta preference.',
        'multimediaviewer-file-page' => 'Text for a link to the file page for 
an image.',
        'multimediaviewer-repository' => 'Link to the repository where the 
image is hosted. Parameters:
 * $1 - the display name of that site
diff --git a/MultimediaViewer.php b/MultimediaViewer.php
index 6cfee60..809d4e9 100644
--- a/MultimediaViewer.php
+++ b/MultimediaViewer.php
@@ -25,7 +25,7 @@
 call_user_func( function() {
        global $wgExtensionMessagesFiles, $wgResourceModules, 
$wgExtensionFunctions, $wgMediaViewerIsInBeta,
                $wgAutoloadClasses, $wgHooks, $wgExtensionCredits, 
$wgNetworkPerformanceSamplingFactor,
-               $wgEnableMediaViewerForLoggedInUsersOnly;
+               $wgEnableMediaViewerForLoggedInUsersOnly, $wgDefaultUserOptions;
 
        /** @var int|bool: If set, records image load network performance once 
per this many requests. False if unset. **/
        $wgNetworkPerformanceSamplingFactor = false;
@@ -665,6 +665,9 @@
                $wgHooks['GetBetaFeaturePreferences'][] = 
'MultimediaViewerHooks::getBetaPreferences';
        }
 
+       $wgDefaultUserOptions['multimediaviewer-enable'] = true;
+
+       $wgHooks['GetPreferences'][] = 'MultimediaViewerHooks::getPreferences';
        $wgHooks['BeforePageDisplay'][] = 
'MultimediaViewerHooks::getModulesForArticle';
        $wgHooks['CategoryPageView'][] = 
'MultimediaViewerHooks::getModulesForCategory';
        $wgHooks['ResourceLoaderGetConfigVars'][] = 
'MultimediaViewerHooks::resourceLoaderGetConfigVars';
diff --git a/MultimediaViewerHooks.php b/MultimediaViewerHooks.php
index 18e9657..d102fbf 100644
--- a/MultimediaViewerHooks.php
+++ b/MultimediaViewerHooks.php
@@ -38,12 +38,18 @@
 
                if ( $wgMediaViewerIsInBeta && class_exists( 'BetaFeatures' ) ) 
{
                        return BetaFeatures::isFeatureEnabled( $user, 
'multimedia-viewer' );
-               } else if ( $wgEnableMediaViewerForLoggedInUsersOnly ) {
-                       return $user->isLoggedIn();
-               } else {
-                       // Default to enabling for everyone.
-                       return true;
                }
+
+               if ( $user->getOption( 'multimediaviewer-enable' ) ) {
+                       if ( $wgEnableMediaViewerForLoggedInUsersOnly ) {
+                               return $user->isLoggedIn();
+                       } else {
+                               // Default to enabling for everyone.
+                               return true;
+                       }
+               }
+
+               return false;
        }
 
        /**
@@ -112,6 +118,17 @@
                return true;
        }
 
+       // Adds a default-enabled preference to gate the feature on non-beta 
sites
+       public static function getPreferences( $user, &$prefs ) {
+               $prefs['multimediaviewer-enable'] = array(
+                       'type' => 'toggle',
+                       'label-message' => 'multimediaviewer-optin-pref',
+                       'section' => 'rendering/files',
+               );
+
+               return true;
+       }
+
        /**
         * Export variables used in both PHP and JS to keep DRY
         * @param array $vars

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I3f581975cfdf33bc15b8a4b23549c6401b4bfb87
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/MultimediaViewer
Gerrit-Branch: master
Gerrit-Owner: MarkTraceur <[email protected]>
Gerrit-Reviewer: Brian Wolff <[email protected]>
Gerrit-Reviewer: GergÅ‘ Tisza <[email protected]>
Gerrit-Reviewer: MarkTraceur <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to