Merge "Revert "Adding sanity check to Title::isRedirect().""
[lhc/web/wiklou.git] / includes / logging / LogEventsList.php
index 8ff4678..f59848d 100644 (file)
@@ -26,6 +26,7 @@
 class LogEventsList {
        const NO_ACTION_LINK = 1;
        const NO_EXTRA_USER_LINKS = 2;
+       const USE_REVDEL_CHECKBOXES = 3;
 
        /**
         * @var Skin
@@ -383,7 +384,7 @@ class LogEventsList {
                if( self::typeAction( $row, 'move', 'move', 'move' ) && !empty( $paramArray[0] ) ) {
                        $destTitle = Title::newFromText( $paramArray[0] );
                        if( $destTitle ) {
-                               $revert = '(' . Linker::link(
+                               $revert = Linker::link(
                                        SpecialPage::getTitleFor( 'Movepage' ),
                                        $this->message['revertmove'],
                                        array(),
@@ -394,7 +395,8 @@ class LogEventsList {
                                                'wpMovetalk' => 0
                                        ),
                                        array( 'known', 'noclasses' )
-                               ) . ')';
+                               );
+                               $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                        }
                // Show undelete link
                } elseif( self::typeAction( $row, array( 'delete', 'suppress' ), 'delete', 'deletedhistory' ) ) {
@@ -403,17 +405,17 @@ class LogEventsList {
                        } else {
                                $viewdeleted = $this->message['undeletelink'];
                        }
-                       $revert = '(' . Linker::link(
+                       $revert = Linker::link(
                                SpecialPage::getTitleFor( 'Undelete' ),
                                $viewdeleted,
                                array(),
                                array( 'target' => $title->getPrefixedDBkey() ),
                                array( 'known', 'noclasses' )
-                        ) . ')';
+                        );
+                       $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                // Show unblock/change block link
                } elseif( self::typeAction( $row, array( 'block', 'suppress' ), array( 'block', 'reblock' ), 'block' ) ) {
-                       $revert = '(' .
-                               Linker::link(
+                       $revert = Linker::link(
                                        SpecialPage::getTitleFor( 'Unblock', $row->log_title ),
                                        $this->message['unblocklink'],
                                        array(),
@@ -427,12 +429,11 @@ class LogEventsList {
                                        array(),
                                        array(),
                                        'known'
-                               ) .
-                               ')';
+                               );
+                               $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                // Show change protection link
                } elseif( self::typeAction( $row, 'protect', array( 'modify', 'protect', 'unprotect' ) ) ) {
-                       $revert .= ' (' .
-                               Linker::link( $title,
+                       $revert .= Linker::link( $title,
                                        $this->message['hist'],
                                        array(),
                                        array(
@@ -448,10 +449,10 @@ class LogEventsList {
                                                array( 'action' => 'protect' ),
                                                'known' );
                        }
-                       $revert .= ')';
+                       $revert = ' ' . wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                // Show unmerge link
                } elseif( self::typeAction( $row, 'merge', 'merge', 'mergehistory' ) ) {
-                       $revert = '(' . Linker::link(
+                       $revert = Linker::link(
                                SpecialPage::getTitleFor( 'MergeHistory' ),
                                $this->message['revertmerge'],
                                array(),
@@ -461,7 +462,8 @@ class LogEventsList {
                                        'mergepoint' => $paramArray[1]
                                ),
                                array( 'known', 'noclasses' )
-                       ) . ')';
+                       );
+                       $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                // If an edit was hidden from a page give a review link to the history
                } elseif( self::typeAction( $row, array( 'delete', 'suppress' ), 'revision', 'deletedhistory' ) ) {
                        $revert = RevisionDeleter::getLogLinks( $title, $paramArray,
@@ -473,7 +475,7 @@ class LogEventsList {
                                // $paramArray[1] is a CSV of the IDs
                                $query = $paramArray[0];
                                // Link to each hidden object ID, $paramArray[1] is the url param
-                               $revert = '(' . Linker::link(
+                               $revert = Linker::link(
                                        $revdel,
                                        $this->message['revdel-restore'],
                                        array(),
@@ -483,7 +485,8 @@ class LogEventsList {
                                                'ids' => $query
                                        ),
                                        array( 'known', 'noclasses' )
-                               ) . ')';
+                               );
+                               $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                        }
                // Do nothing. The implementation is handled by the hook modifiying the passed-by-ref parameters.
                } else {
@@ -502,27 +505,32 @@ class LogEventsList {
         */
        private function getShowHideLinks( $row ) {
                global $wgUser;
-               if( ( $this->flags & self::NO_ACTION_LINK ) // we don't want to see the links
+               if( ( $this->flags == self::NO_ACTION_LINK ) // we don't want to see the links
                        || $row->log_type == 'suppress' ) { // no one can hide items from the suppress log
                        return '';
                }
                $del = '';
-               // Don't show useless link to people who cannot hide revisions
+               // Don't show useless checkbox to people who cannot hide revisions
                if( $wgUser->isAllowed( 'deletedhistory' ) ) {
                        if( $row->log_deleted || $wgUser->isAllowed( 'deleterevision' ) ) {
                                $canHide = $wgUser->isAllowed( 'deleterevision' );
-                               // If event was hidden from sysops
-                               if( !self::userCan( $row, LogPage::DELETED_RESTRICTED ) ) {
-                                       $del = Linker::revDeleteLinkDisabled( $canHide );
+                               if ( $this->flags & self::USE_REVDEL_CHECKBOXES ) { // Show checkboxes instead of links.
+                                       if ( !self::userCan( $row, LogPage::DELETED_RESTRICTED ) ) { // If event was hidden from sysops
+                                               $del = Xml::check( 'deleterevisions', false, array( 'disabled' => 'disabled' ) );
+                                       } else {
+                                               $del = Xml::check( 'showhiderevisions', false, array( 'name' => 'ids[' . $row->log_id . ']' ) );
+                                       }
                                } else {
-                                       $target = SpecialPage::getTitleFor( 'Log', $row->log_type );
-                                       $query = array(
-                                               'target' => $target->getPrefixedDBkey(),
-                                               'type'   => 'logging',
-                                               'ids'    => $row->log_id,
-                                       );
-                                       $del = Linker::revDeleteLink( $query,
-                                               self::isDeleted( $row, LogPage::DELETED_RESTRICTED ), $canHide );
+                                       if ( !self::userCan( $row, LogPage::DELETED_RESTRICTED ) ) { // If event was hidden from sysops
+                                               $del = Linker::revDeleteLinkDisabled( $canHide );
+                                       } else {
+                                               $query = array(
+                                                       'target' => SpecialPage::getTitleFor( 'Log', $row->log_type )->getPrefixedDBkey(),
+                                                       'type'   => 'logging',
+                                                       'ids'    => $row->log_id,
+                                               );
+                                               $del = Linker::revDeleteLink( $query, self::isDeleted( $row, LogPage::DELETED_RESTRICTED ), $canHide );
+                                       }
                                }
                        }
                }