MtDu has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/330880 )
Change subject: Add a reason field to Special:PageLanguage and
ApiSetPageLanguage
......................................................................
Add a reason field to Special:PageLanguage and ApiSetPageLanguage
Most MediaWiki actions allow a user to enter a comment/reason for taking the
action.
This is logged in the change log. However, currently, both ApiSetPageLanguage
and Special:PageLanguage do not do thi.
This patch fixes this issue.
Bug: T154644
Change-Id: I6ae021086e1ec4440d6b2894a1b85d62eb36e172
---
M includes/api/ApiSetPageLanguage.php
M includes/api/i18n/en.json
M includes/api/i18n/qqq.json
M includes/specials/SpecialPageLanguage.php
M languages/i18n/en.json
M languages/i18n/qqq.json
6 files changed, 22 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/80/330880/1
diff --git a/includes/api/ApiSetPageLanguage.php
b/includes/api/ApiSetPageLanguage.php
index 3f03c02..1a4a10b 100755
--- a/includes/api/ApiSetPageLanguage.php
+++ b/includes/api/ApiSetPageLanguage.php
@@ -84,7 +84,8 @@
$this,
$titleObj,
$params['lang'],
- $params['tags'] ?: []
+ $params['tags'] ?: [],
+ $params['reason'] ?: ''
);
if ( !$status->isOK() ) {
@@ -121,6 +122,7 @@
),
ApiBase::PARAM_REQUIRED => true,
],
+ 'reason' => null,
'tags' => [
ApiBase::PARAM_TYPE => 'tags',
ApiBase::PARAM_ISMULTI => true,
diff --git a/includes/api/i18n/en.json b/includes/api/i18n/en.json
index 9915d39..1385097 100644
--- a/includes/api/i18n/en.json
+++ b/includes/api/i18n/en.json
@@ -1360,6 +1360,7 @@
"apihelp-setpagelanguage-param-title": "Title of the page whose
language you wish to change. Cannot be used together with <var>$1pageid</var>.",
"apihelp-setpagelanguage-param-pageid": "Page ID of the page whose
language you wish to change. Cannot be used together with <var>$1title</var>.",
"apihelp-setpagelanguage-param-lang": "Language code of the language to
change the page to. Use <kbd>default</kbd> to reset the page to the wiki's
default content language.",
+ "apihelp-setpagelanguage-param-reason": "Reason for the change.",
"apihelp-setpagelanguage-param-tags": "Change tags to apply to the log
entry resulting from this action.",
"apihelp-setpagelanguage-example-language": "Change the language of
<kbd>Main Page</kbd> to Basque.",
"apihelp-setpagelanguage-example-default": "Change the language of the
page with ID 123 to the wiki's default content language.",
diff --git a/includes/api/i18n/qqq.json b/includes/api/i18n/qqq.json
index c6b14cd..cab2a3e 100644
--- a/includes/api/i18n/qqq.json
+++ b/includes/api/i18n/qqq.json
@@ -1268,6 +1268,7 @@
"apihelp-setpagelanguage-param-title":
"{{doc-apihelp-param|setpagelanguage|title}}",
"apihelp-setpagelanguage-param-pageid":
"{{doc-apihelp-param|setpagelanguage|pageid}}",
"apihelp-setpagelanguage-param-lang":
"{{doc-apihelp-param|setpagelanguage|lang}}",
+ "apihelp-setpagelanguage-param-reason":
"{{doc-apihelp-param|setpagelanguage|reason}}",
"apihelp-setpagelanguage-param-tags":
"{{doc-apihelp-param|setpagelanguage|tags}}",
"apihelp-setpagelanguage-example-language":
"{{doc-apihelp-example|setpagelanguage}}",
"apihelp-setpagelanguage-example-default":
"{{doc-apihelp-example|setpagelanguage}}",
diff --git a/includes/specials/SpecialPageLanguage.php
b/includes/specials/SpecialPageLanguage.php
index 8546a08..fa44dd9 100644
--- a/includes/specials/SpecialPageLanguage.php
+++ b/includes/specials/SpecialPageLanguage.php
@@ -89,6 +89,12 @@
'default' => $this->getConfig()->get( 'LanguageCode' ),
];
+ // Allow user to enter a comment explaining the change
+ $page['reason'] = [
+ 'type' => 'text',
+ 'label-message' => 'pagelang-reason'
+ ];
+
return $page;
}
@@ -132,7 +138,12 @@
// Url to redirect to after the operation
$this->goToUrl = $title->getFullURL();
- return self::changePageLanguage( $this->getContext(), $title,
$newLanguage );
+ return self::changePageLanguage(
+ $this->getContext(),
+ $title,
+ $newLanguage,
+ $data['reason'] ?: ''
+ );
}
/**
@@ -140,10 +151,11 @@
* @param Title $title
* @param string $newLanguage Language code
* @param array $tags Change tags to apply to the log entry
+ * @param string $reason Reason for the change
* @return Status
*/
public static function changePageLanguage( IContextSource $context,
Title $title,
- $newLanguage, array $tags = [] ) {
+ $newLanguage, array $tags = [], $reason ) {
// Get the default language for the wiki
$defLang = $context->getConfig()->get( 'LanguageCode' );
@@ -219,6 +231,7 @@
$entry->setTarget( $title );
$entry->setParameters( $logParams );
$entry->setTags( $tags );
+ $entry->setComment( $reason );
$logid = $entry->insert();
$entry->publish( $logid );
diff --git a/languages/i18n/en.json b/languages/i18n/en.json
index 076ce40..4131777 100644
--- a/languages/i18n/en.json
+++ b/languages/i18n/en.json
@@ -4063,6 +4063,7 @@
"pagelang-language": "Language",
"pagelang-use-default": "Use default language",
"pagelang-select-lang": "Select language",
+ "pagelang-reason": "Reason",
"pagelang-submit": "Submit",
"pagelang-nonexistent-page": "The page $1 does not exist.",
"pagelang-unchanged-language": "The page $1 is already set to language
$2.",
diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json
index bf23a1b..78a0f9c 100644
--- a/languages/i18n/qqq.json
+++ b/languages/i18n/qqq.json
@@ -4247,6 +4247,7 @@
"pagelang-language": "Language selector label for
Special:PageLanguage\n{{Identical|Language}}",
"pagelang-use-default": "Radio label for selector on
Special:PageLanguage for default language",
"pagelang-select-lang": "Radio label for selector on
Special:PageLanguage for language selection\n{{Identical|Select language}}",
+ "pagelang-reason": "Input label for reason on
Special:PageLanguage\n\n{{Identical|Reason}}",
"pagelang-submit": "Submit button label for Special:PageLanguage
form\n{{Identical|Submit}}",
"pagelang-nonexistent-page": "Error message shown when the page the
user is trying to change the language on does not exist.\n\nParameters:\n* $1 -
the title of the nonexistent page",
"pagelang-unchanged-language": "Error message shown when the language
the user is trying to change the page to and the current language the page is
in are the same.\n\nParameters:\n* $1 - the title of the target page\n* $2 -
the current language of the page",
--
To view, visit https://gerrit.wikimedia.org/r/330880
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6ae021086e1ec4440d6b2894a1b85d62eb36e172
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: MtDu <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits