Page move undo feature
authorTim Starling <tstarling@users.mediawiki.org>
Sun, 3 Apr 2005 15:18:51 +0000 (15:18 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Sun, 3 Apr 2005 15:18:51 +0000 (15:18 +0000)
includes/SpecialLog.php
includes/SpecialMovepage.php
languages/Language.php

index 9725ba7..4a04482 100644 (file)
@@ -283,9 +283,21 @@ class LogViewer {
                $userLink = $this->skin->makeLinkObj( $user, htmlspecialchars( $s->user_name ) );
                $comment = $this->skin->commentBlock( $s->log_comment );
                $paramArray = LogPage::extractParams( $s->log_params );
-               
+               $revert = '';
+               if ( $s->log_type == 'move' && isset( $paramArray[0] ) ) {
+                       $specialTitle = Title::makeTitle( NS_SPECIAL, 'Movepage' );
+                       $destTitle = Title::newFromText( $paramArray[0] );
+                       if ( $destTitle ) {
+                               $revert = '(' . $this->skin->makeKnownLinkObj( $specialTitle, wfMsg( 'revertmove' ),
+                                       'wpOldTitle=' . urlencode( $destTitle->getPrefixedDBkey() ) . 
+                                       '&wpNewTitle=' . urlencode( $title->getPrefixedDBkey() ) .
+                                       '&wpReason=' . urlencode( wfMsgForContent( 'revertmove' ) ) .
+                                       '&wpMovetalk=0' ) . ')';
+                       }
+               }
+
                $action = LogPage::actionText( $s->log_type, $s->log_action, $title, $this->skin, $paramArray, true );
-               $out = "<li>$time $userLink $action $comment</li>\n";
+               $out = "<li>$time $userLink $action $comment $revert</li>\n";
                return $out;
        }
        
index 0f9e5ec..fc52580 100644 (file)
@@ -46,12 +46,14 @@ function wfSpecialMovepage() {
  */
 class MovePageForm {
        var $oldTitle, $newTitle, $reason; # Text input
+       var $moveTalk;
                
        function MovePageForm() {
                global $wgRequest;
                $this->oldTitle = $wgRequest->getText( 'wpOldTitle', $wgRequest->getVal( 'target' ) );
                $this->newTitle = $wgRequest->getText( 'wpNewTitle' );
                $this->reason = $wgRequest->getText( 'wpReason' );
+               $this->moveTalk = $wgRequest->getBool( 'wpMovetalk', true );
        }
        
        function showForm( $err ) {
@@ -96,6 +98,13 @@ class MovePageForm {
                        $wgOut->setSubtitle( wfMsg( 'formerror' ) );
                        $wgOut->addHTML( '<p class="error">'.$err."</p>\n" );
                }
+
+               if ( $this->moveTalk ) {
+                       $moveTalkChecked = " checked='checked'";
+               } else {
+                       $moveTalkChecked = '';
+               }
+               
                $wgOut->addHTML( "
 <form id=\"movepage\" method=\"post\" action=\"{$action}\">
        <table border='0'>
@@ -121,7 +130,7 @@ class MovePageForm {
                        $wgOut->addHTML( "
                <tr>
                        <td align='right'>
-                               <input type='checkbox' name=\"wpMovetalk\" checked='checked' value=\"1\" />
+                               <input type='checkbox' name=\"wpMovetalk\"{$moveTalkChecked} value=\"1\" />
                        </td>
                        <td>{$movetalk}</td>
                </tr>" );
index 9135ad2..0b10bd2 100644 (file)
@@ -1587,6 +1587,7 @@ title. Please merge them manually.',
 'movelogpage' => 'Move log',
 'movelogpagetext' => 'Below is a list of page moved.',
 'movereason'   => 'Reason',
+'revertmove'   => 'revert',
 
 # Export