From 16fcdd9381f97bef9fc468663913baf237effe83 Mon Sep 17 00:00:00 2001 From: Huji Date: Sat, 4 Oct 2008 18:10:15 +0000 Subject: [PATCH] (bug 10323) Special:Undelete should have "inverse selection" button --- RELEASE-NOTES | 1 + includes/specials/SpecialUndelete.php | 21 +++++++++++++++++---- languages/messages/MessagesEn.php | 1 + maintenance/language/messages.inc | 1 + 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index bbfd5e3928..39e513e2b4 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -239,6 +239,7 @@ The following extensions are migrated into MediaWiki 1.14: * (bug 15196) Free external links should be numbered in a localised manner * (bug 15388) Title of Special:PrefixIndex * Links with no title but a curid parameter now use the curid to pick a page +* (bug 10323) Special:Undelete should have "inverse selection" button === API changes in 1.14 === diff --git a/includes/specials/SpecialUndelete.php b/includes/specials/SpecialUndelete.php index 810b007771..5b7ed52ae3 100644 --- a/includes/specials/SpecialUndelete.php +++ b/includes/specials/SpecialUndelete.php @@ -576,7 +576,7 @@ class PageArchive { * @ingroup SpecialPage */ class UndeleteForm { - var $mAction, $mTarget, $mTimestamp, $mRestore, $mTargetObj; + var $mAction, $mTarget, $mTimestamp, $mRestore, $mInvert, $mTargetObj; var $mTargetTimestamp, $mAllowed, $mComment; function UndeleteForm( $request, $par = "" ) { @@ -591,6 +591,7 @@ class UndeleteForm { $posted = $request->wasPosted() && $wgUser->matchEditToken( $request->getVal( 'wpEditToken' ) ); $this->mRestore = $request->getCheck( 'restore' ) && $posted; + $this->mInvert = $request->getCheck( 'invert' ) && $posted; $this->mPreview = $request->getCheck( 'preview' ) && $posted; $this->mDiff = $request->getCheck( 'diff' ); $this->mComment = $request->getText( 'wpComment' ); @@ -611,7 +612,7 @@ class UndeleteForm { } else { $this->mTargetObj = NULL; } - if( $this->mRestore ) { + if( $this->mRestore || $this->mInvert ) { $timestamps = array(); $this->mFileVersions = array(); foreach( $_REQUEST as $key => $val ) { @@ -668,6 +669,9 @@ class UndeleteForm { if( $this->mRestore && $this->mAction == "submit" ) { return $this->undelete(); } + if( $this->mInvert && $this->mAction == "submit" ) { + return $this->showHistory( ); + } return $this->showHistory(); } @@ -909,7 +913,7 @@ class UndeleteForm { $store->stream( $key ); } - private function showHistory() { + private function showHistory( ) { global $wgLang, $wgUser, $wgOut; $sk = $wgUser->getSkin(); @@ -1012,6 +1016,7 @@ class UndeleteForm { " . Xml::submitButton( wfMsg( 'undeletebtn' ), array( 'name' => 'restore', 'id' => 'mw-undelete-submit' ) ) . Xml::element( 'input', array( 'type' => 'reset', 'value' => wfMsg( 'undeletereset' ), 'id' => 'mw-undelete-reset' ) ) . + Xml::submitButton( wfMsg( 'undeleteinvert' ), array( 'name' => 'invert', 'id' => 'mw-undelete-invert' ) ) . " " . $unsuppressBox . @@ -1077,7 +1082,15 @@ class UndeleteForm { $stxt = ''; $ts = wfTimestamp( TS_MW, $row->ar_timestamp ); if( $this->mAllowed ) { - $checkBox = Xml::check( "ts$ts" ); + if( $this->mInvert){ + if( in_array( $ts, $this->mTargetTimestamp ) ) { + $checkBox = Xml::check( "ts$ts"); + } else { + $checkBox = Xml::check( "ts$ts", true ); + } + } else { + $checkBox = Xml::check( "ts$ts" ); + } $titleObj = SpecialPage::getTitleFor( "Undelete" ); $pageLink = $this->getPageLink( $rev, $titleObj, $ts, $sk ); # Last link diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 300c52bf1c..7c81fffa91 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -2403,6 +2403,7 @@ You may have a bad link, or the revision may have been restored or removed from 'undeletebtn' => 'Restore', 'undeletelink' => 'restore', 'undeletereset' => 'Reset', +'undeleteinvert' => 'Invert selection', 'undeletecomment' => 'Comment:', 'undeletedarticle' => 'restored "[[$1]]"', 'undeletedrevisions' => '{{PLURAL:$1|1 revision|$1 revisions}} restored', diff --git a/maintenance/language/messages.inc b/maintenance/language/messages.inc index 86c354fd62..60933a8bfd 100644 --- a/maintenance/language/messages.inc +++ b/maintenance/language/messages.inc @@ -1613,6 +1613,7 @@ $wgMessageStructure = array( 'undeletebtn', 'undeletelink', 'undeletereset', + 'undeleteinvert', 'undeletecomment', 'undeletedarticle', 'undeletedrevisions', -- 2.20.1