From: Alex Monk Date: Tue, 15 May 2012 00:45:05 +0000 (+0100) Subject: Show revdel links instead of checkboxes on pages where there is no multiple log entry... X-Git-Tag: 1.31.0-rc.0~23455^2 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=0e765f8405c3ec1b428994d3149599a7132ae07b Show revdel links instead of checkboxes on pages where there is no multiple log entry revdel form. Change-Id: Ie061ee5b77a39c13628bfdb73f09cb3fa97dd090 --- diff --git a/includes/logging/LogEventsList.php b/includes/logging/LogEventsList.php index ef633358dd..f59848de03 100644 --- a/includes/logging/LogEventsList.php +++ b/includes/logging/LogEventsList.php @@ -26,6 +26,7 @@ class LogEventsList { const NO_ACTION_LINK = 1; const NO_EXTRA_USER_LINKS = 2; + const USE_REVDEL_CHECKBOXES = 3; /** * @var Skin @@ -504,20 +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 = Xml::check( 'deleterevisions', false, array( 'disabled' => 'disabled' ) ); + 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 { - $del = Xml::check( 'showhiderevisions', false, array( 'name' => 'ids[' . $row->log_id . ']' ) ); + 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 ); + } } } } diff --git a/includes/specials/SpecialLog.php b/includes/specials/SpecialLog.php index 177b34de4e..7a3f40758c 100644 --- a/includes/specials/SpecialLog.php +++ b/includes/specials/SpecialLog.php @@ -131,7 +131,7 @@ class SpecialLog extends SpecialPage { private function show( FormOptions $opts, array $extraConds ) { # Create a LogPager item to get the results and a LogEventsList item to format them... - $loglist = new LogEventsList( $this->getSkin(), $this->getOutput(), 0 ); + $loglist = new LogEventsList( $this->getSkin(), $this->getOutput(), LogEventsList::USE_REVDEL_CHECKBOXES ); $pager = new LogPager( $loglist, $opts->getValue( 'type' ), $opts->getValue( 'user' ), $opts->getValue( 'page' ), $opts->getValue( 'pattern' ), $extraConds, $opts->getValue( 'year' ), $opts->getValue( 'month' ), $opts->getValue( 'tagfilter' ) );