From 112bec5c0e9b5d56ac27ea0d01be77dc57aaddc3 Mon Sep 17 00:00:00 2001 From: mhutti1 Date: Tue, 15 Dec 2015 20:17:47 +0100 Subject: [PATCH] Show change tags on Special:RevisionDelete RevDelRevisionItem.php has been modifed to display tags and RevDelREvisionList.php has been modifed to request tag data its database query. Bug: T109041 Change-Id: Icaae790b7d21a6670c692d11e25c6db7b7325530 --- .../revisiondelete/RevDelRevisionItem.php | 20 +++++++++++- .../revisiondelete/RevDelRevisionList.php | 32 ++++++++++++++----- 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/includes/revisiondelete/RevDelRevisionItem.php b/includes/revisiondelete/RevDelRevisionItem.php index 17e1fd18ed..e52d07cd24 100644 --- a/includes/revisiondelete/RevDelRevisionItem.php +++ b/includes/revisiondelete/RevDelRevisionItem.php @@ -147,6 +147,10 @@ class RevDelRevisionItem extends RevDelItem { } } + /** + * @return string A HTML
  • element representing this revision, showing + * change tags and everything + */ public function getHTML() { $difflink = $this->list->msg( 'parentheses' ) ->rawParams( $this->getDiffLink() )->escaped(); @@ -156,8 +160,22 @@ class RevDelRevisionItem extends RevDelItem { if ( $this->isDeleted() ) { $revlink = "$revlink"; } + $content = "$difflink $revlink $userlink $comment"; + $attribs = array(); + $tags = $this->getTags(); + if ( $tags ) { + list( $tagSummary, $classes ) = ChangeTags::formatSummaryRow( $tags, 'revisiondelete' ); + $content .= " $tagSummary"; + $attribs['class'] = implode( ' ', $classes ); + } + return Xml::tags( 'li', $attribs, $content ); + } - return "
  • $difflink $revlink $userlink $comment
  • "; + /** + * @return string Comma-separated list of tags + */ + public function getTags() { + return $this->row->ts_tags; } public function getApiData( ApiResult $result ) { diff --git a/includes/revisiondelete/RevDelRevisionList.php b/includes/revisiondelete/RevDelRevisionList.php index 4a0fff8746..ebce50411a 100644 --- a/includes/revisiondelete/RevDelRevisionList.php +++ b/includes/revisiondelete/RevDelRevisionList.php @@ -59,20 +59,36 @@ class RevDelRevisionList extends RevDelList { */ public function doQuery( $db ) { $ids = array_map( 'intval', $this->ids ); - $live = $db->select( - array( 'revision', 'page', 'user' ), - array_merge( Revision::selectFields(), Revision::selectUserFields() ), - array( + $queryInfo = array( + 'tables' => array( 'revision', 'user' ), + 'fields' => array_merge( Revision::selectFields(), Revision::selectUserFields() ), + 'conds' => array( 'rev_page' => $this->title->getArticleID(), 'rev_id' => $ids, ), - __METHOD__, - array( 'ORDER BY' => 'rev_id DESC' ), - array( + 'options' => array( 'ORDER BY' => 'rev_id DESC' ), + 'join_conds' => array( 'page' => Revision::pageJoinCond(), - 'user' => Revision::userJoinCond() ) + 'user' => Revision::userJoinCond(), + ), + ); + ChangeTags::modifyDisplayQuery( + $queryInfo['tables'], + $queryInfo['fields'], + $queryInfo['conds'], + $queryInfo['join_conds'], + $queryInfo['options'], + '' ); + $live = $db->select( + $queryInfo['tables'], + $queryInfo['fields'], + $queryInfo['conds'], + __METHOD__, + $queryInfo['options'], + $queryInfo['join_conds'] + ); if ( $live->numRows() >= count( $ids ) ) { // All requested revisions are live, keeps things simple! return $live; -- 2.20.1