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