mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/DiscussionTools
synced 2024-11-23 16:06:53 +00:00
Add beta feature preference
Bug: T245539 Change-Id: I8bb2c10255a13c291bc97c591612cadaf0e4339f
This commit is contained in:
parent
f75137ecc1
commit
2577d5aa28
|
@ -184,6 +184,7 @@
|
||||||
"BeforePageDisplay": [
|
"BeforePageDisplay": [
|
||||||
"DiscussionToolsHooks::onBeforePageDisplay"
|
"DiscussionToolsHooks::onBeforePageDisplay"
|
||||||
],
|
],
|
||||||
|
"GetBetaFeaturePreferences": "DiscussionToolsHooks::onGetBetaPreferences",
|
||||||
"ListDefinedTags": "DiscussionToolsHooks::onListDefinedTags",
|
"ListDefinedTags": "DiscussionToolsHooks::onListDefinedTags",
|
||||||
"ChangeTagsListActive": "DiscussionToolsHooks::onListDefinedTags",
|
"ChangeTagsListActive": "DiscussionToolsHooks::onListDefinedTags",
|
||||||
"RecentChange_save": "DiscussionToolsHooks::onRecentChangeSave"
|
"RecentChange_save": "DiscussionToolsHooks::onRecentChangeSave"
|
||||||
|
@ -193,6 +194,10 @@
|
||||||
"value": true,
|
"value": true,
|
||||||
"description": "Enable DiscussionTools on talk pages."
|
"description": "Enable DiscussionTools on talk pages."
|
||||||
},
|
},
|
||||||
|
"DiscussionToolsBeta": {
|
||||||
|
"value": false,
|
||||||
|
"description": "Make DiscussionTools a BetaFeature."
|
||||||
|
},
|
||||||
"DiscussionToolsUseVisualEditor": {
|
"DiscussionToolsUseVisualEditor": {
|
||||||
"value": false,
|
"value": false,
|
||||||
"description": "Use VisualEditor for editing replies (both visual and wikitext)."
|
"description": "Use VisualEditor for editing replies (both visual and wikitext)."
|
||||||
|
|
|
@ -5,6 +5,10 @@
|
||||||
"discussiontools": "Discussion tools",
|
"discussiontools": "Discussion tools",
|
||||||
"discussiontools-defaultsummary-reply": "Reply",
|
"discussiontools-defaultsummary-reply": "Reply",
|
||||||
"discussiontools-desc": "Tools to enhance discussion pages.",
|
"discussiontools-desc": "Tools to enhance discussion pages.",
|
||||||
|
"discussiontools-preference-label": "Discussion tools",
|
||||||
|
"discussiontools-preference-description": "Enable a new workflow for [//www.mediawiki.org/wiki/Talk_pages_project/replying replying to specific comments] on talk pages.\n\nPlease note that over time new tools for interacting with talk pages will be added.\n\nUpdates about these features will be posted on the [//www.mediawiki.org/wiki/Talk_pages_project/Updates talk pages project's updates page].",
|
||||||
|
"discussiontools-preference-info-link": "\/\/mediawiki.org\/wiki\/Talk_pages_project",
|
||||||
|
"discussiontools-preference-discussion-link": "\/\/mediawiki.org\/wiki\/Talk:Talk_pages_project",
|
||||||
"discussiontools-replylink": "Reply",
|
"discussiontools-replylink": "Reply",
|
||||||
"discussiontools-replywidget-anon-warning": "<strong>You are not logged in.</strong> To receive attribution with your name instead of your IP address, you can [$1 log in] or [$2 create an account].",
|
"discussiontools-replywidget-anon-warning": "<strong>You are not logged in.</strong> To receive attribution with your name instead of your IP address, you can [$1 log in] or [$2 create an account].",
|
||||||
"discussiontools-replywidget-cancel": "Cancel",
|
"discussiontools-replywidget-cancel": "Cancel",
|
||||||
|
|
|
@ -9,6 +9,10 @@
|
||||||
"discussiontools": "{{name}}",
|
"discussiontools": "{{name}}",
|
||||||
"discussiontools-defaultsummary-reply": "Default edit summary for a reply.\n\n'''Note that this is a noun (''a reply''), not a verb (''to reply''). Alternatively you can use a paste tense verb if that's more natural in your language.'''",
|
"discussiontools-defaultsummary-reply": "Default edit summary for a reply.\n\n'''Note that this is a noun (''a reply''), not a verb (''to reply''). Alternatively you can use a paste tense verb if that's more natural in your language.'''",
|
||||||
"discussiontools-desc": "{{desc\n| name = DiscussionTools\n| url = https://www.mediawiki.org/wiki/Extension:DiscussionTools\n}}",
|
"discussiontools-desc": "{{desc\n| name = DiscussionTools\n| url = https://www.mediawiki.org/wiki/Extension:DiscussionTools\n}}",
|
||||||
|
"discussiontools-preference-description": "Used in [[Special:Preferences]].\n\nUsed as description for the checkbox to enable discussion tools.\n\nThe label for this checkbox is {{msg-mw|discussiontools-preference-label}}.",
|
||||||
|
"discussiontools-preference-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.}}",
|
||||||
|
"discussiontools-preference-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.}}",
|
||||||
|
"discussiontools-preference-label": "Used in [[Special:Preferences]].\n\nUsed as label for checkbox to enable discussion tools.\n\nThe description for this checkbox is: {{msg-mw|discussiontools-preference-description}}",
|
||||||
"discussiontools-replylink": "Label for the reply link added after each comment.",
|
"discussiontools-replylink": "Label for the reply link added after each comment.",
|
||||||
"discussiontools-replywidget-anon-warning": "Warning message to be displayed when anonymous user starts writing a new topic or reply.\n* $1 is a URL to log in.\n* $2 is a URL to register an account.",
|
"discussiontools-replywidget-anon-warning": "Warning message to be displayed when anonymous user starts writing a new topic or reply.\n* $1 is a URL to log in.\n* $2 is a URL to register an account.",
|
||||||
"discussiontools-replywidget-cancel": "Label for the cancel button in the reply widget",
|
"discussiontools-replywidget-cancel": "Label for the cancel button in the reply widget",
|
||||||
|
|
31
images/betafeatures-icon-DiscussionTools-ltr.svg
Normal file
31
images/betafeatures-icon-DiscussionTools-ltr.svg
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg version="1.1" viewBox="0 0 264 162" xmlns="http://www.w3.org/2000/svg" width="264" height="162">
|
||||||
|
<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 0h264v162h-264" fill="#fff"/>
|
||||||
|
<path id="logo" d="m11 22c0-8 6-14 14-14s14 6 14 14-6 14-14 14-14-6-14-14m27 23v-5h-25v5h25"/>
|
||||||
|
<path id="sidebar" d="m38 163v-105h-25v106h25"/>
|
||||||
|
<path id="personal-tools" d="m233 5h26v6h-26zm-24 0h22v6h-22zm-24 0h22v6h-22zm-23 0h13v6h-13zm15 0h6v6h-6zm-23 0h6v6h-6z"/>
|
||||||
|
<g id="search">
|
||||||
|
<path id="input" d="m258 16v4h-92v-4h92m1-1h-94v6h94z"/>
|
||||||
|
<path id="icon" d="m168 17h2v2h-2z"/>
|
||||||
|
</g>
|
||||||
|
<path id="article" d="m252 162v-133h-204v133z"/>
|
||||||
|
<path id="border" d="m0 0v162h264v-162zm1 1h262v150.53l-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-9z"/>
|
||||||
|
</g>
|
||||||
|
<path d="m60.828 43.534h179.14v3h-179.14zm0 10h179.14v3h-179.14zm0 10h52.137v3h-52.137z" fill="#c8ccd1" stroke-width="1.1562"/>
|
||||||
|
<path d="m80.172 73.534h159.79v3h-159.79zm0 10h46.507v3h-46.507z" fill="#c8ccd1" stroke-width="1.092"/>
|
||||||
|
<g>
|
||||||
|
<g fill-rule="evenodd">
|
||||||
|
<rect x="131.03" y="81.763" width="19.94" height="6.9046" color="#000000" fill="#36c"/>
|
||||||
|
<rect x="91.77" y="93.329" width="147.2" height="34.549" color="#000000" fill="#fff" stroke="#36c" stroke-width="2"/>
|
||||||
|
<rect x="214.92" y="133.01" width="25.045" height="8.6724" color="#000000" fill="#36c"/>
|
||||||
|
</g>
|
||||||
|
<path d="m99.143 100.61h132.18v3h-132.18zm0 10h38.469v3h-38.469z" fill="#7a818e" stroke-width=".99317"/>
|
||||||
|
<rect x="117.03" y="61.763" width="19.94" height="6.9046" color="#000000" fill="#36c" fill-rule="evenodd"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
31
images/betafeatures-icon-DiscussionTools-rtl.svg
Normal file
31
images/betafeatures-icon-DiscussionTools-rtl.svg
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg version="1.1" viewBox="0 0 264 162" xmlns="http://www.w3.org/2000/svg" width="264" height="162">
|
||||||
|
<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 0h264v162h-264" fill="#fff"/>
|
||||||
|
<path id="logo" d="m11 22c0-8 6-14 14-14s14 6 14 14-6 14-14 14-14-6-14-14m27 23v-5h-25v5h25"/>
|
||||||
|
<path id="sidebar" d="m38 163v-105h-25v106h25"/>
|
||||||
|
<path id="personal-tools" d="m233 5h26v6h-26zm-24 0h22v6h-22zm-24 0h22v6h-22zm-23 0h13v6h-13zm15 0h6v6h-6zm-23 0h6v6h-6z"/>
|
||||||
|
<g id="search">
|
||||||
|
<path id="input" d="m258 16v4h-92v-4h92m1-1h-94v6h94z"/>
|
||||||
|
<path id="icon" d="m168 17h2v2h-2z"/>
|
||||||
|
</g>
|
||||||
|
<path id="article" d="m252 162v-133h-204v133z"/>
|
||||||
|
<path id="border" d="m0 0v162h264v-162zm1 1h262v150.53l-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-9z"/>
|
||||||
|
</g>
|
||||||
|
<path d="m203.17 43.534h-179.14v3h179.14zm0 10h-179.14v3h179.14zm0 10h-52.137v3h52.137z" fill="#c8ccd1" stroke-width="1.1562"/>
|
||||||
|
<path d="m183.83 73.534h-159.79v3h159.79zm0 10h-46.507v3h46.507z" fill="#c8ccd1" stroke-width="1.092"/>
|
||||||
|
<g>
|
||||||
|
<g fill-rule="evenodd">
|
||||||
|
<rect transform="scale(-1,1)" x="-132.97" y="81.763" width="19.94" height="6.9046" color="#000000" fill="#36c"/>
|
||||||
|
<rect transform="scale(-1,1)" x="-172.23" y="93.329" width="147.2" height="34.549" color="#000000" fill="#fff" stroke="#36c" stroke-width="2"/>
|
||||||
|
<rect transform="scale(-1,1)" x="-49.079" y="133.01" width="25.045" height="8.6724" color="#000000" fill="#36c"/>
|
||||||
|
</g>
|
||||||
|
<path d="m164.86 100.61h-132.18v3h132.18zm0 10h-38.469v3h38.469z" fill="#7a818e" stroke-width=".99317"/>
|
||||||
|
<rect transform="scale(-1,1)" x="-146.97" y="61.763" width="19.94" height="6.9046" color="#000000" fill="#36c" fill-rule="evenodd"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2 KiB |
|
@ -50,6 +50,11 @@ class DiscussionToolsHooks {
|
||||||
$title = $output->getTitle();
|
$title = $output->getTitle();
|
||||||
$actionName = Action::getActionName( $output->getContext() );
|
$actionName = Action::getActionName( $output->getContext() );
|
||||||
$req = $output->getRequest();
|
$req = $output->getRequest();
|
||||||
|
$user = $skin->getUser();
|
||||||
|
$enabled = $dtConfig->get( 'DiscussionToolsEnable' ) && (
|
||||||
|
!$dtConfig->get( 'DiscussionToolsBeta' ) ||
|
||||||
|
$user->getOption( 'discussiontools-betaenable' )
|
||||||
|
);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
// Don't show on edit pages
|
// Don't show on edit pages
|
||||||
|
@ -61,7 +66,7 @@ class DiscussionToolsHooks {
|
||||||
// Query parameter to load on any wikitext page for testing
|
// Query parameter to load on any wikitext page for testing
|
||||||
$req->getVal( 'dtenable' ) ||
|
$req->getVal( 'dtenable' ) ||
|
||||||
// If configured, load on all talk pages
|
// If configured, load on all talk pages
|
||||||
( $dtConfig->get( 'DiscussionToolsEnable' ) && $title->isTalkPage() )
|
( $enabled && $title->isTalkPage() )
|
||||||
// TODO: Allow non talk pages to be treated as talk pages
|
// TODO: Allow non talk pages to be treated as talk pages
|
||||||
// using a magic word.
|
// using a magic word.
|
||||||
)
|
)
|
||||||
|
@ -72,6 +77,40 @@ class DiscussionToolsHooks {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handler for the GetBetaPreferences hook, to add and hide user beta preferences as configured
|
||||||
|
*
|
||||||
|
* @param User $user The user object
|
||||||
|
* @param array &$preferences Their preferences object
|
||||||
|
*/
|
||||||
|
public static function onGetBetaPreferences( User $user, array &$preferences ) {
|
||||||
|
$coreConfig = RequestContext::getMain()->getConfig();
|
||||||
|
$iconpath = $coreConfig->get( 'ExtensionAssetsPath' ) . '/DiscussionTools/images';
|
||||||
|
|
||||||
|
$dtConfig = MediaWikiServices::getInstance()->getConfigFactory()
|
||||||
|
->makeConfig( 'discussiontools' );
|
||||||
|
|
||||||
|
if (
|
||||||
|
$dtConfig->get( 'DiscussionToolsEnable' ) &&
|
||||||
|
$dtConfig->get( 'DiscussionToolsBeta' )
|
||||||
|
) {
|
||||||
|
$preferences['discussiontools-betaenable'] = [
|
||||||
|
'version' => '1.0',
|
||||||
|
'label-message' => 'discussiontools-preference-label',
|
||||||
|
'desc-message' => 'discussiontools-preference-description',
|
||||||
|
'screenshot' => [
|
||||||
|
'ltr' => "$iconpath/betafeatures-icon-DiscussionTools-ltr.svg",
|
||||||
|
'rtl' => "$iconpath/betafeatures-icon-DiscussionTools-rtl.svg",
|
||||||
|
],
|
||||||
|
'info-message' => 'discussiontools-preference-info-link',
|
||||||
|
'discussion-message' => 'discussiontools-preference-discussion-link',
|
||||||
|
'requirements' => [
|
||||||
|
'javascript' => true
|
||||||
|
]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements the ListDefinedTags and ChangeTagsListActive hooks, to
|
* Implements the ListDefinedTags and ChangeTagsListActive hooks, to
|
||||||
* populate core Special:Tags with the change tags in use by DiscussionTools.
|
* populate core Special:Tags with the change tags in use by DiscussionTools.
|
||||||
|
|
Loading…
Reference in a new issue