From: cenarium Date: Sun, 14 Jun 2015 18:00:52 +0000 (+0200) Subject: Avoid muliple cache calls to explicitly defined tags X-Git-Tag: 1.31.0-rc.0~11083^2 X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=commitdiff_plain;h=f827d5a261c2960da566fdf2cc86ebbd1e7896bf;p=lhc%2Fweb%2Fwiklou.git Avoid muliple cache calls to explicitly defined tags This avoids muliple cache calls to explicitly defined tags by calling the showTagEditUI of ChangeTags only once in logs and histories. Change-Id: I2e36dbd96d3fcca06de0bf418bc6dc294d8d18d3 --- diff --git a/includes/actions/HistoryAction.php b/includes/actions/HistoryAction.php index f4f2a2a18c..a81adf99ce 100644 --- a/includes/actions/HistoryAction.php +++ b/includes/actions/HistoryAction.php @@ -368,6 +368,9 @@ class HistoryPager extends ReverseChronologicalPager { */ protected $parentLens; + /** @var bool Whether to show the tag editing UI */ + protected $showTagEditUI; + /** * @param HistoryAction $historyPage * @param string $year @@ -381,6 +384,7 @@ class HistoryPager extends ReverseChronologicalPager { $this->tagFilter = $tagFilter; $this->getDateCond( $year, $month ); $this->conds = $conds; + $this->showTagEditUI = ChangeTags::showTagEditingUI( $this->getUser() ); } // For hook compatibility... @@ -504,7 +508,7 @@ class HistoryPager extends ReverseChronologicalPager { if ( $user->isAllowed( 'deleterevision' ) ) { $actionButtons .= $this->getRevisionButton( 'revisiondelete', 'showhideselectedversions' ); } - if ( ChangeTags::showTagEditingUI( $user ) ) { + if ( $this->showTagEditUI ) { $actionButtons .= $this->getRevisionButton( 'editchangetags', 'history-edit-tags' ); } if ( $actionButtons ) { @@ -631,14 +635,13 @@ class HistoryPager extends ReverseChronologicalPager { $del = ''; $user = $this->getUser(); $canRevDelete = $user->isAllowed( 'deleterevision' ); - $showTagEditUI = ChangeTags::showTagEditingUI( $user ); // Show checkboxes for each revision, to allow for revision deletion and // change tags - if ( $canRevDelete || $showTagEditUI ) { + if ( $canRevDelete || $this->showTagEditUI ) { $this->preventClickjacking(); // If revision was hidden from sysops and we don't need the checkbox // for anything else, disable it - if ( !$showTagEditUI && !$rev->userCan( Revision::DELETED_RESTRICTED, $user ) ) { + if ( !$this->showTagEditUI && !$rev->userCan( Revision::DELETED_RESTRICTED, $user ) ) { $del = Xml::check( 'deleterevisions', false, array( 'disabled' => 'disabled' ) ); // Otherwise, enable the checkbox... } else { diff --git a/includes/logging/LogEventsList.php b/includes/logging/LogEventsList.php index dfe31365af..1b56584f85 100644 --- a/includes/logging/LogEventsList.php +++ b/includes/logging/LogEventsList.php @@ -35,6 +35,11 @@ class LogEventsList extends ContextSource { */ protected $mDefaultQuery; + /** + * @var bool + */ + protected $showTagEditUI; + /** * Constructor. * The first two parameters used to be $skin and $out, but now only a context @@ -55,6 +60,7 @@ class LogEventsList extends ContextSource { } $this->flags = $flags; + $this->showTagEditUI = ChangeTags::showTagEditingUI( $this->getUser() ); } /** @@ -348,7 +354,7 @@ class LogEventsList extends ContextSource { $user = $this->getUser(); // If change tag editing is available to this user, return the checkbox - if ( $this->flags & self::USE_CHECKBOXES && ChangeTags::showTagEditingUI( $user ) ) { + if ( $this->flags & self::USE_CHECKBOXES && $this->showTagEditUI ) { return Xml::check( 'showhiderevisions', false,