diff --git a/includes/specials/SpecialRevisionDelete.php b/includes/specials/SpecialRevisionDelete.php index 750e2c3dc31..7f7f865c1f3 100644 --- a/includes/specials/SpecialRevisionDelete.php +++ b/includes/specials/SpecialRevisionDelete.php @@ -436,10 +436,19 @@ class SpecialRevisionDelete extends UnlistedSpecialPage { // Show form if the user can submit if ( $this->mIsAllowed ) { + $suppressAllowed = $this->permissionManager + ->userHasRight( $this->getUser(), 'suppressrevision' ); $out->addModules( [ 'mediawiki.special.revisionDelete' ] ); $out->addModuleStyles( [ 'mediawiki.special', 'mediawiki.interface.helpers.styles' ] ); + $dropDownReason = $this->msg( 'revdelete-reason-dropdown' )->inContentLanguage()->text(); + // Add additional specific reasons for suppress + if ( $suppressAllowed ) { + $dropDownReason .= "\n" . $this->msg( 'revdelete-reason-dropdown-suppress' ) + ->inContentLanguage()->text(); + } + $form = Xml::openElement( 'form', [ 'method' => 'post', 'action' => $this->getPageTitle()->getLocalURL( [ 'action' => 'submit' ] ), 'id' => 'mw-revdel-form-revisions' ] ) . @@ -452,7 +461,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage { '' . '' . Xml::listDropDown( 'wpRevDeleteReasonList', - $this->msg( 'revdelete-reason-dropdown' )->inContentLanguage()->text(), + $dropDownReason, $this->msg( 'revdelete-reasonotherlist' )->inContentLanguage()->text(), $this->getRequest()->getText( 'wpRevDeleteReasonList', 'other' ), 'wpReasonDropDown' ) . @@ -490,7 +499,18 @@ class SpecialRevisionDelete extends UnlistedSpecialPage { ->getPermissionManager() ->userHasRight( $this->getUser(), 'editinterface' ) ) { - $link = $this->getLinkRenderer()->makeKnownLink( + $link = ''; + $linkRenderer = $this->getLinkRenderer(); + if ( $suppressAllowed ) { + $link .= $linkRenderer->makeKnownLink( + $this->msg( 'revdelete-reason-dropdown-suppress' )->inContentLanguage()->getTitle(), + $this->msg( 'revdelete-edit-reasonlist-suppress' )->text(), + [], + [ 'action' => 'edit' ] + ); + $link .= $this->msg( 'pipe-separator' )->escaped(); + } + $link .= $linkRenderer->makeKnownLink( $this->msg( 'revdelete-reason-dropdown' )->inContentLanguage()->getTitle(), $this->msg( 'revdelete-edit-reasonlist' )->text(), [], diff --git a/languages/i18n/en.json b/languages/i18n/en.json index 92d1d9cb3a1..fe96a08a24b 100644 --- a/languages/i18n/en.json +++ b/languages/i18n/en.json @@ -918,10 +918,12 @@ "revdelete-no-change": "Warning: The item dated $2, $1 already had the requested visibility settings.", "revdelete-concurrent-change": "Error modifying the item dated $2, $1: Its status appears to have been changed by someone else while you attempted to modify it.\nPlease check the logs.", "revdelete-only-restricted": "Error hiding the item dated $2, $1: You cannot suppress items from view by administrators without also selecting one of the other visibility options.", - "revdelete-reason-dropdown": "*Common delete reasons\n** Copyright violation\n** Inappropriate comment or personal information\n** Inappropriate username\n** Potentially libelous information", + "revdelete-reason-dropdown": "*Common delete reasons\n** Copyright violation\n** Inappropriate comment\n** Inappropriate username\n** Potentially libelous information", + "revdelete-reason-dropdown-suppress": "*Common suppress reasons\n** Inappropriate personal information", "revdelete-otherreason": "Other/additional reason:", "revdelete-reasonotherlist": "Other reason", "revdelete-edit-reasonlist": "Edit delete reasons", + "revdelete-edit-reasonlist-suppress": "Edit suppress reasons", "revdelete-offender": "Revision author:", "suppressionlog": "Suppression log", "suppressionlogtext": "Below is a list of deletions and blocks involving content hidden from administrators.\nSee the [[Special:BlockList|block list]] for the list of currently operational bans and blocks.", diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json index cca7eb93ecd..09bb7f2e59c 100644 --- a/languages/i18n/qqq.json +++ b/languages/i18n/qqq.json @@ -1131,9 +1131,11 @@ "revdelete-concurrent-change": "{{RevisionDelete}}\nParameters:\n* $1 - a date\n* $2 - a time\n{{Related|Revdelete}}", "revdelete-only-restricted": "{{RevisionDelete}}\nParameters:\n*$1 - date\n*$2 - time\n{{Related|Revdelete}}", "revdelete-reason-dropdown": "{{RevisionDelete}}\nUsed as item list for dropdown.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n\nSee also:\n* {{msg-mw|Revdelete-legend|legend for the form}}\n* {{msg-mw|Revdelete-log|label for dropdown}}\n* {{msg-mw|Revdelete-reasonotherlist|item in dropdown}}\n* {{msg-mw|Revdelete-otherreason|label for input box}}\n* {{msg-mw|Revdelete-submit|submit button}}", + "revdelete-reason-dropdown-suppress": "{{RevisionDelete}}\nUsed as item list for dropdown.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n\nSee also:\n* {{msg-mw|Revdelete-legend|legend for the form}}\n* {{msg-mw|Revdelete-log|label for dropdown}}\n* {{msg-mw|Revdelete-reasonotherlist|item in dropdown}}\n* {{msg-mw|Revdelete-otherreason|label for input box}}\n* {{msg-mw|Revdelete-submit|submit button}}", "revdelete-otherreason": "{{Identical|Other/additional reason}}\n{{RevisionDelete}}\nUsed as label for input box.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n\nSee also:\n* {{msg-mw|Revdelete-legend|legend for the form}}\n* {{msg-mw|Revdelete-log|label for dropdown}}\n* {{msg-mw|Revdelete-reason-dropdown|item list for dropdown|notext=1}}\n* {{msg-mw|Revdelete-reasonotherlist|item in dropdown}}\n* {{msg-mw|Revdelete-submit|submit button}}", "revdelete-reasonotherlist": "{{RevisionDelete}}\nUsed as an item in dropdown.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\nSee also:\n* {{msg-mw|Revdelete-legend|legend for the form}}\n* {{msg-mw|Revdelete-log|label for dropdown}}\n* {{msg-mw|Revdelete-reason-dropdown|item list for dropdown|notext=1}}\n* {{msg-mw|Revdelete-otherreason|label for input box}}\n* {{msg-mw|Revdelete-submit|submit button}}\n{{Identical|Other reason}}", "revdelete-edit-reasonlist": "{{Identical|Edit delete reasons}}\n{{RevisionDelete}}\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]", + "revdelete-edit-reasonlist-suppress": "{{RevisionDelete}}\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]", "revdelete-offender": "Used as label for input box in the form.", "suppressionlog": "{{doc-logpage}}\n\nTitle of the suppression log. Shown in the drop down menu at [[Special:log]] and as header of [[Special:log/suppress]].", "suppressionlogtext": "Description text of the suppression log. Shown at top of [[Special:log/suppress]].",