mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-23 14:06:52 +00:00
ve.collab: Create BetaFeature
Change-Id: I36b8361f4fce8d690841e9048498bd5d52131942
This commit is contained in:
parent
2359b587ed
commit
b3853721c8
|
@ -108,6 +108,10 @@
|
||||||
"VisualEditorRebaserURL": {
|
"VisualEditorRebaserURL": {
|
||||||
"value": false
|
"value": false
|
||||||
},
|
},
|
||||||
|
"VisualEditorEnableCollabBeta": {
|
||||||
|
"description": "Enable the experimental ve.collab beta feature.",
|
||||||
|
"value": false
|
||||||
|
},
|
||||||
"VisualEditorShowBetaWelcome": {
|
"VisualEditorShowBetaWelcome": {
|
||||||
"value": true
|
"value": true
|
||||||
},
|
},
|
||||||
|
@ -222,6 +226,7 @@
|
||||||
"TextSlotDiffRendererTablePrefix": "VisualEditorHooks",
|
"TextSlotDiffRendererTablePrefix": "VisualEditorHooks",
|
||||||
"EditPage::showEditForm:fields": "VisualEditorHooks",
|
"EditPage::showEditForm:fields": "VisualEditorHooks",
|
||||||
"GetPreferences": "VisualEditorHooks",
|
"GetPreferences": "VisualEditorHooks",
|
||||||
|
"GetBetaFeaturePreferences": "VisualEditorHooks",
|
||||||
"ListDefinedTags": "VisualEditorHooks",
|
"ListDefinedTags": "VisualEditorHooks",
|
||||||
"MakeGlobalVariablesScript": "VisualEditorHooks",
|
"MakeGlobalVariablesScript": "VisualEditorHooks",
|
||||||
"OutputPageBodyAttributes": "VisualEditorHooks",
|
"OutputPageBodyAttributes": "VisualEditorHooks",
|
||||||
|
@ -2741,6 +2746,7 @@
|
||||||
"DefaultUserOptions": {
|
"DefaultUserOptions": {
|
||||||
"visualeditor-autodisable": 0,
|
"visualeditor-autodisable": 0,
|
||||||
"visualeditor-betatempdisable": 0,
|
"visualeditor-betatempdisable": 0,
|
||||||
|
"visualeditor-collab": 0,
|
||||||
"visualeditor-editor": "visualeditor",
|
"visualeditor-editor": "visualeditor",
|
||||||
"visualeditor-enable": 0,
|
"visualeditor-enable": 0,
|
||||||
"visualeditor-hidebetawelcome": 0,
|
"visualeditor-hidebetawelcome": 0,
|
||||||
|
|
|
@ -333,6 +333,10 @@
|
||||||
"visualeditor-preference-tabs-prefer-ve": "Always give me the visual editor if possible",
|
"visualeditor-preference-tabs-prefer-ve": "Always give me the visual editor if possible",
|
||||||
"visualeditor-preference-tabs-prefer-wt": "Always give me the source editor",
|
"visualeditor-preference-tabs-prefer-wt": "Always give me the source editor",
|
||||||
"visualeditor-preference-tabs-remember-last": "Remember my last editor",
|
"visualeditor-preference-tabs-remember-last": "Remember my last editor",
|
||||||
|
"visualeditor-preference-collab-label": "Collaborative editing",
|
||||||
|
"visualeditor-preference-collab-description": "Invite other users to join your edit session in the visual editor.",
|
||||||
|
"visualeditor-preference-collab-info-link": "//mediawiki.org/wiki/VisualEditor/Real-time_collaboration",
|
||||||
|
"visualeditor-preference-collab-discussion-link": "//mediawiki.org/wiki/VisualEditor/Talk:Real-time_collaboration",
|
||||||
"visualeditor-quick-access-characters.json": "null",
|
"visualeditor-quick-access-characters.json": "null",
|
||||||
"visualeditor-rebase-client-export": "Export",
|
"visualeditor-rebase-client-export": "Export",
|
||||||
"visualeditor-rebase-client-export-start": "Export…",
|
"visualeditor-rebase-client-export-start": "Export…",
|
||||||
|
|
|
@ -354,6 +354,10 @@
|
||||||
"visualeditor-preference-tabs-prefer-ve": "Used in [[Special:Preferences]].\n\nUsed as label for a radio button to have VisualEditor be the preferred editor. Shown together with the following buttons, so consider formulating them consistently:\n* {{msg-mw|Visualeditor-preference-tabs-multi-tab}}\n* {{msg-mw|Visualeditor-preference-tabs-prefer-wt}}\n* {{msg-mw|Visualeditor-preference-tabs-remember-last}}",
|
"visualeditor-preference-tabs-prefer-ve": "Used in [[Special:Preferences]].\n\nUsed as label for a radio button to have VisualEditor be the preferred editor. Shown together with the following buttons, so consider formulating them consistently:\n* {{msg-mw|Visualeditor-preference-tabs-multi-tab}}\n* {{msg-mw|Visualeditor-preference-tabs-prefer-wt}}\n* {{msg-mw|Visualeditor-preference-tabs-remember-last}}",
|
||||||
"visualeditor-preference-tabs-prefer-wt": "Used in [[Special:Preferences]].\n\nUsed as label for a radio button to have the wikitext editor be the preferred editor. Shown together with the following buttons, so consider formulating them consistently:\n* {{msg-mw|Visualeditor-preference-tabs-multi-tab}}\n* {{msg-mw|Visualeditor-preference-tabs-prefer-ve}}\n* {{msg-mw|Visualeditor-preference-tabs-remember-last}}",
|
"visualeditor-preference-tabs-prefer-wt": "Used in [[Special:Preferences]].\n\nUsed as label for a radio button to have the wikitext editor be the preferred editor. Shown together with the following buttons, so consider formulating them consistently:\n* {{msg-mw|Visualeditor-preference-tabs-multi-tab}}\n* {{msg-mw|Visualeditor-preference-tabs-prefer-ve}}\n* {{msg-mw|Visualeditor-preference-tabs-remember-last}}",
|
||||||
"visualeditor-preference-tabs-remember-last": "Used in [[Special:Preferences]].\n\nUsed as label for a radio button to have VisualEditor remember whether it was the last editor or not. Shown together with the following buttons, so consider formulating them consistently:\n* {{msg-mw|Visualeditor-preference-tabs-multi-tab}}\n* {{msg-mw|Visualeditor-preference-tabs-prefer-ve}}\n* {{msg-mw|Visualeditor-preference-tabs-prefer-wt}}",
|
"visualeditor-preference-tabs-remember-last": "Used in [[Special:Preferences]].\n\nUsed as label for a radio button to have VisualEditor remember whether it was the last editor or not. Shown together with the following buttons, so consider formulating them consistently:\n* {{msg-mw|Visualeditor-preference-tabs-multi-tab}}\n* {{msg-mw|Visualeditor-preference-tabs-prefer-ve}}\n* {{msg-mw|Visualeditor-preference-tabs-prefer-wt}}",
|
||||||
|
"visualeditor-preference-collab-label": "Used in [[Special:Preferences]].\n\nUsed as label for checkbox to enable collaborative editing.\n\nThe description for this checkbox is {{msg-mw|visualeditor-preference-collab-description}}",
|
||||||
|
"visualeditor-preference-collab-description": "Used in [[Special:Preferences]].\n\nUsed as description for the checkbox to enable collaborative editing.\n\nThe label for this checkbox is {{msg-mw|visualeditor-preference-collab-label}}.",
|
||||||
|
"visualeditor-preference-collab-info-link": "{{optional|Used on [[Special:Preferences]] as a link to a page where users can learn about this Beta Feature. Defaults to a page on MediaWiki.org.}}",
|
||||||
|
"visualeditor-preference-collab-discussion-link": "{{optional|Used on [[Special:Preferences]] as a link to a page where users can discuss this Beta Feature. Defaults to a page on MediaWiki.org.}}",
|
||||||
"visualeditor-quick-access-characters.json": "{{notranslate}}\n{{ignored}}\nJSON object mapping character labels to actual characters that can be inserted using the special character inserter.",
|
"visualeditor-quick-access-characters.json": "{{notranslate}}\n{{ignored}}\nJSON object mapping character labels to actual characters that can be inserted using the special character inserter.",
|
||||||
"visualeditor-rebase-client-export": "Label for button to export a document\n{{Identical|Export}}",
|
"visualeditor-rebase-client-export": "Label for button to export a document\n{{Identical|Export}}",
|
||||||
"visualeditor-rebase-client-export-start": "Label for button to start a process to export a document\n\nSee also:\n* {{msg-mw|visualeditor-rebase-client-export}}",
|
"visualeditor-rebase-client-export-start": "Label for button to start a process to export a document\n\nSee also:\n* {{msg-mw|visualeditor-rebase-client-export}}",
|
||||||
|
|
43
images/betafeatures-icon-collab-ltr.svg
Normal file
43
images/betafeatures-icon-collab-ltr.svg
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="264" height="162" version="1.1" viewBox="0 0 264 162" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<defs>
|
||||||
|
<clipPath id="jagged-edge">
|
||||||
|
<path d="M0 0v152l12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10V0z"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g clip-path="url(#jagged-edge)" fill="#eaecf0">
|
||||||
|
<path id="background" d="M0 0h264v162H0" fill="#fff"/>
|
||||||
|
<path id="logo" d="M11 22c0-8 6-14 14-14s14 6 14 14-6 14-14 14-14-6-14-14M38 45v-5H13v5h25"/>
|
||||||
|
<path id="sidebar" d="M38 163V58H13v106h25"/>
|
||||||
|
<path id="personal-tools" d="M233 5h26v6h-26V5zm-24 0h22v6h-22zm-24 0h22v6h-22zm-23 0h13v6h-13zm15 0h6v6h-6zm-23 0h6v6h-6z"/>
|
||||||
|
<path id="search-input" d="m258 16v4h-92v-4h92m1-1h-94v6h94v-6z"/>
|
||||||
|
<path id="search-icon" d="m168 17h2v2h-2z"/>
|
||||||
|
<path id="article" d="M252 162V29H48v133z"/>
|
||||||
|
<path id="border" d="M0 0v162h264V0zm1 1h262v150.533l-11 9.166-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-11-9.167z"/>
|
||||||
|
<path d="m48.083 29h204.08v20.75h-204.08z" fill="#cdd1d6"/>
|
||||||
|
<path d="m59 58.333h54v6h-54z" fill="#c8ccd1"/>
|
||||||
|
<path d="M240 70.334h-39v30h39zm-26.348 13.043h1.403l8.7 8.604 4.725-2.833 7.117 5.943v.025H204.45z" fill="#a2a9b1" opacity=".412"/>
|
||||||
|
<path d="M59 34.333h25v10H59v-10zm33.5 0h10v10h-10zm17 0h10v10h-10z" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(0 -3.9153)" stroke-linecap="round" stroke-width="4.0828">
|
||||||
|
<g stroke="#ccc">
|
||||||
|
<path d="m61.006 76.662h31.982"/>
|
||||||
|
<path d="m101.83 76.662h29.941"/>
|
||||||
|
<path d="m140.62 76.662h49.674"/>
|
||||||
|
</g>
|
||||||
|
<path d="m61.006 86.272h93.905" stroke="#ffcb33"/>
|
||||||
|
<path d="m163.08 86.272h27.219" stroke="#ccc"/>
|
||||||
|
<path d="m61.006 95.881h57.84" stroke="#e857c8"/>
|
||||||
|
<g stroke="#ccc">
|
||||||
|
<path d="m127.69 95.881h62.603"/>
|
||||||
|
<path d="m61.006 105.49h11.568"/>
|
||||||
|
<path d="m81.42 105.49h53.077"/>
|
||||||
|
</g>
|
||||||
|
<path d="m143.34 105.49h46.952" stroke="#00af89"/>
|
||||||
|
<g stroke="#ccc">
|
||||||
|
<path d="m61.006 115.1h177.16"/>
|
||||||
|
<path d="m61.006 124.71h46.272"/>
|
||||||
|
<path d="m116.12 124.71h121.48"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
42
images/betafeatures-icon-collab-rtl.svg
Normal file
42
images/betafeatures-icon-collab-rtl.svg
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="264" height="162" version="1.1" viewBox="0 0 264 162" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<defs>
|
||||||
|
<clipPath id="jagged-edge">
|
||||||
|
<path d="M0 0v152l12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10 12 10 12-10V0z"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g transform="matrix(-1 0 0 1 264 0)" clip-path="url(#jagged-edge)" fill="#eaecf0">
|
||||||
|
<path id="background" d="M0 0h264v162H0" fill="#fff"/>
|
||||||
|
<path id="logo" d="M11 22c0-8 6-14 14-14s14 6 14 14-6 14-14 14-14-6-14-14M38 45v-5H13v5h25"/>
|
||||||
|
<path id="sidebar" d="M38 163V58H13v106h25"/>
|
||||||
|
<path id="personal-tools" d="M233 5h26v6h-26V5zm-24 0h22v6h-22zm-24 0h22v6h-22zm-23 0h13v6h-13zm15 0h6v6h-6zm-23 0h6v6h-6z"/>
|
||||||
|
<path id="search-input" d="m258 16v4h-92v-4h92m1-1h-94v6h94v-6z"/>
|
||||||
|
<path id="search-icon" d="m168 17h2v2h-2z"/>
|
||||||
|
<path id="article" d="M252 162V29H48v133z"/>
|
||||||
|
<path id="border" d="M0 0v162h264V0zm1 1h262v150.533l-11 9.166-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-12-10-12 10-11-9.167z"/>
|
||||||
|
<path d="m48.083 29h204.08v20.75h-204.08z" fill="#cdd1d6"/>
|
||||||
|
<path d="M240 70.334h-39v30h39zm-26.348 13.043h1.403l8.7 8.604 4.725-2.833 7.117 5.943v.025H204.45z" fill="#a2a9b1" opacity=".412"/>
|
||||||
|
<path d="M59 34.333h25v10H59v-10zm33.5 0h10v10h-10zm17 0h10v10h-10z" fill="#fff"/>
|
||||||
|
<g transform="translate(0 -3.9153)" stroke-linecap="round" stroke-width="4.0828">
|
||||||
|
<g stroke="#ccc">
|
||||||
|
<path d="m61.006 76.662h31.982"/>
|
||||||
|
<path d="m101.83 76.662h29.941"/>
|
||||||
|
<path d="m140.62 76.662h49.674"/>
|
||||||
|
</g>
|
||||||
|
<path d="m61.006 86.272h93.905" stroke="#ffcb33"/>
|
||||||
|
<path d="m163.08 86.272h27.219" stroke="#ccc"/>
|
||||||
|
<path d="m61.006 95.881h57.84" stroke="#e857c8"/>
|
||||||
|
<g stroke="#ccc">
|
||||||
|
<path d="m127.69 95.881h62.603"/>
|
||||||
|
<path d="m61.006 105.49h11.568"/>
|
||||||
|
<path d="m81.42 105.49h53.077"/>
|
||||||
|
</g>
|
||||||
|
<path d="m143.34 105.49h46.952" stroke="#00af89"/>
|
||||||
|
<g stroke="#ccc">
|
||||||
|
<path d="m61.006 115.1h177.16"/>
|
||||||
|
<path d="m61.006 124.71h46.272"/>
|
||||||
|
<path d="m116.12 124.71h121.48"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -25,6 +25,7 @@ use MediaWiki\ChangeTags\Hook\ListDefinedTagsHook;
|
||||||
use MediaWiki\Diff\Hook\DifferenceEngineViewHeaderHook;
|
use MediaWiki\Diff\Hook\DifferenceEngineViewHeaderHook;
|
||||||
use MediaWiki\Diff\Hook\TextSlotDiffRendererTablePrefixHook;
|
use MediaWiki\Diff\Hook\TextSlotDiffRendererTablePrefixHook;
|
||||||
use MediaWiki\EditPage\EditPage;
|
use MediaWiki\EditPage\EditPage;
|
||||||
|
use MediaWiki\Extension\BetaFeatures\Hooks\GetBetaFeaturePreferencesHook;
|
||||||
use MediaWiki\Hook\BeforeInitializeHook;
|
use MediaWiki\Hook\BeforeInitializeHook;
|
||||||
use MediaWiki\Hook\BeforePageDisplayHook;
|
use MediaWiki\Hook\BeforePageDisplayHook;
|
||||||
use MediaWiki\Hook\CustomEditorHook;
|
use MediaWiki\Hook\CustomEditorHook;
|
||||||
|
@ -68,6 +69,7 @@ class Hooks implements
|
||||||
DifferenceEngineViewHeaderHook,
|
DifferenceEngineViewHeaderHook,
|
||||||
EditPage__showEditForm_fieldsHook,
|
EditPage__showEditForm_fieldsHook,
|
||||||
GetPreferencesHook,
|
GetPreferencesHook,
|
||||||
|
GetBetaFeaturePreferencesHook,
|
||||||
ListDefinedTagsHook,
|
ListDefinedTagsHook,
|
||||||
MakeGlobalVariablesScriptHook,
|
MakeGlobalVariablesScriptHook,
|
||||||
OutputPageBodyAttributesHook,
|
OutputPageBodyAttributesHook,
|
||||||
|
@ -153,8 +155,11 @@ class Hooks implements
|
||||||
] );
|
] );
|
||||||
$output->addModuleStyles( [ 'ext.visualEditor.desktopArticleTarget.noscript' ] );
|
$output->addModuleStyles( [ 'ext.visualEditor.desktopArticleTarget.noscript' ] );
|
||||||
}
|
}
|
||||||
// Joining a collab session
|
if (
|
||||||
if ( $output->getRequest()->getVal( 'collabSession' ) ) {
|
$services->getUserOptionsLookup()->getOption( $skin->getUser(), 'visualeditor-collab' ) ||
|
||||||
|
// Joining a collab session
|
||||||
|
$output->getRequest()->getVal( 'collabSession' )
|
||||||
|
) {
|
||||||
$output->addModules( 'ext.visualEditor.collab' );
|
$output->addModules( 'ext.visualEditor.collab' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1045,6 +1050,37 @@ class Hooks implements
|
||||||
$preferences['visualeditor-findAndReplace-word'] = $api;
|
$preferences['visualeditor-findAndReplace-word'] = $api;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handler for the GetBetaFeaturePreferences hook, to add and hide user beta preferences as configured
|
||||||
|
*
|
||||||
|
* @param User $user
|
||||||
|
* @param array &$preferences
|
||||||
|
*/
|
||||||
|
public function onGetBetaFeaturePreferences( User $user, array &$preferences ) {
|
||||||
|
$services = MediaWikiServices::getInstance();
|
||||||
|
$veConfig = $services->getConfigFactory()->makeConfig( 'visualeditor' );
|
||||||
|
|
||||||
|
if ( $veConfig->get( 'VisualEditorEnableCollabBeta' ) ) {
|
||||||
|
$coreConfig = RequestContext::getMain()->getConfig();
|
||||||
|
$iconpath = $coreConfig->get( 'ExtensionAssetsPath' ) . '/VisualEditor/images';
|
||||||
|
|
||||||
|
$preferences['visualeditor-collab'] = [
|
||||||
|
'version' => '1.0',
|
||||||
|
'label-message' => 'visualeditor-preference-collab-label',
|
||||||
|
'desc-message' => 'visualeditor-preference-collab-description',
|
||||||
|
'screenshot' => [
|
||||||
|
'ltr' => "$iconpath/betafeatures-icon-collab-ltr.svg",
|
||||||
|
'rtl' => "$iconpath/betafeatures-icon-collab-rtl.svg",
|
||||||
|
],
|
||||||
|
'info-message' => 'visualeditor-preference-collab-info-link',
|
||||||
|
'discussion-message' => 'visualeditor-preference-collab-discussion-link',
|
||||||
|
'requirements' => [
|
||||||
|
'javascript' => true
|
||||||
|
]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements the PreferencesFormPreSave hook, to remove the 'autodisable' flag
|
* Implements the PreferencesFormPreSave hook, to remove the 'autodisable' flag
|
||||||
* when the user it was set on explicitly enables VE.
|
* when the user it was set on explicitly enables VE.
|
||||||
|
|
Loading…
Reference in a new issue