Alex Monk has uploaded a new change for review.

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

Change subject: [WIP] autodisable preference
......................................................................

[WIP] autodisable preference

Not fully tested, etc.

Change-Id: I1ce5e6c92055e30fdc82bc912a767e913b190ef6
---
M VisualEditor.hooks.php
M extension.json
M modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
3 files changed, 30 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/49/230949/1

diff --git a/VisualEditor.hooks.php b/VisualEditor.hooks.php
index 0a822d8..587ef98 100644
--- a/VisualEditor.hooks.php
+++ b/VisualEditor.hooks.php
@@ -104,7 +104,8 @@
                // Exit if the user doesn't have VE enabled
                if (
                        !$skin->getUser()->getOption( 'visualeditor-enable' ) ||
-                       $skin->getUser()->getOption( 
'visualeditor-betatempdisable' )
+                       $skin->getUser()->getOption( 
'visualeditor-betatempdisable' ) ||
+                       $skin->getUser()->getOption( 'visualeditor-autodisable' 
)
                ) {
                        return true;
                }
@@ -245,7 +246,8 @@
                // Exit if the user doesn't have VE enabled
                if (
                        !$skin->getUser()->getOption( 'visualeditor-enable' ) ||
-                       $skin->getUser()->getOption( 
'visualeditor-betatempdisable' )
+                       $skin->getUser()->getOption( 
'visualeditor-betatempdisable' ) ||
+                       $skin->getUser()->getOption( 'visualeditor-autodisable' 
)
                ) {
                        return true;
                }
@@ -318,7 +320,7 @@
                                ->get( 'VisualEditorAvailableNamespaces' );
                        $onNamespaces = array_keys( array_filter( $namespaces ) 
);
 
-                       $preferences['visualeditor-enable'] = array(
+                       $enablePreference = array(
                                'type' => 'toggle',
                                'label-message' => array(
                                        'visualeditor-preference-enable',
@@ -330,11 +332,18 @@
                                ),
                                'section' => 'editing/editor'
                        );
+                       if ( $user->getOption( 'visualeditor-autodisable' ) ) {
+                               $enablePreference['default'] = false;
+                       }
+                       $preferences['visualeditor-enable'] = $enablePreference;
                }
                $preferences['visualeditor-betatempdisable'] = array(
                        'type' => 'toggle',
                        'label-message' => 
'visualeditor-preference-betatempdisable',
                        'section' => 'editing/editor'
+               );
+               $preferences['visualeditor-autodisable'] = array(
+                       'type' => 'api'
                );
                $preferences['visualeditor-hidebetawelcome'] = array(
                        'type' => 'api'
@@ -365,6 +374,16 @@
                );
        }
 
+       public static function onPreferencesFormPreSave( $data, $form, $user, 
&$result ) {
+               if (
+                       $user->getOption( 'visualeditor-autodisable' ) &&
+                       $user->getOption( 'visualeditor-enable' )
+               ) {
+                       $user->setOption( 'visualeditor-autodisable', false );
+                       $user->setOption( 'visualeditor-enable', true );
+               }
+       }
+
        /**
         * Implements the ListDefinedTags and ChangeTagsListActive hooks, to 
populate
         * core Special:Tags with the change tags in use by VisualEditor.
diff --git a/extension.json b/extension.json
index 3995366..7000a61 100644
--- a/extension.json
+++ b/extension.json
@@ -137,6 +137,9 @@
                "GetPreferences": [
                        "VisualEditorHooks::onGetPreferences"
                ],
+               "PreferencesFormPreSave": [
+                       "VisualEditorHooks::onPreferencesFormPreSave"
+               ],
                "ListDefinedTags": [
                        "VisualEditorHooks::onListDefinedTags"
                ],
@@ -1575,7 +1578,8 @@
                "visualeditor-betatempdisable": 0,
                "visualeditor-enable-experimental": 0,
                "visualeditor-enable-language": 0,
-               "visualeditor-hidebetawelcome": 0
+               "visualeditor-hidebetawelcome": 0,
+               "visualeditor-autodisable": 0
        },
        "ExtensionFunctions": [
                "VisualEditorHooks::onSetup"
diff --git a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js 
b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
index 357ce10..fe5b70c 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
@@ -532,6 +532,7 @@
        // Cast "0" (T89513)
        enable = Number( mw.user.options.get( 'visualeditor-enable' ) );
        tempdisable = Number( mw.user.options.get( 
'visualeditor-betatempdisable' ) );
+       autodisable = Number( mw.user.options.get( 'visualeditor-autodisable' ) 
);
 
        userPrefEnabled = (
                // Allow disabling for anonymous users separately from changing 
the
@@ -540,7 +541,8 @@
 
                // User has 'visualeditor-enable' preference enabled (for alpha 
opt-in)
                // User has 'visualeditor-betatempdisable' preference disabled
-               enable && !tempdisable
+               // User has 'visualeditor-autodisable' preference disabled
+               enable && !tempdisable && !autodisable
        );
 
        // Whether VisualEditor should be available for the current user, page, 
wiki, mediawiki skin,

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1ce5e6c92055e30fdc82bc912a767e913b190ef6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Alex Monk <[email protected]>

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

Reply via email to