From 5c499174ce08b993a0d72ae3a94d7acb7a5c2765 Mon Sep 17 00:00:00 2001 From: Stephane Bisson Date: Thu, 21 Sep 2017 16:17:22 -0400 Subject: [PATCH] RCFilters: Make 'lastRevision' filter include non-rev types Make 'lastRevision' filter behave like its predecessor (expanded) by including the non-rev types (RC_LOG and others added via hook). Bug: T176328 Change-Id: I2312fd536716f0b07637ed4caf225650a4ffe70c --- .../specialpage/ChangesListSpecialPage.php | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/includes/specialpage/ChangesListSpecialPage.php b/includes/specialpage/ChangesListSpecialPage.php index dd0dd92a98..d3be680e4d 100644 --- a/includes/specialpage/ChangesListSpecialPage.php +++ b/includes/specialpage/ChangesListSpecialPage.php @@ -84,6 +84,9 @@ abstract class ChangesListSpecialPage extends SpecialPage { public function __construct( $name, $restriction ) { parent::__construct( $name, $restriction ); + $nonRevisionTypes = [ RC_LOG ]; + Hooks::run( 'SpecialWatchlistGetNonRevisionTypes', [ &$nonRevisionTypes ] ); + $this->filterGroupDefinitions = [ [ 'name' => 'registration', @@ -322,8 +325,14 @@ abstract class ChangesListSpecialPage extends SpecialPage { 'description' => 'rcfilters-filter-lastrevision-description', 'default' => false, 'queryCallable' => function ( $specialClassName, $ctx, $dbr, &$tables, &$fields, &$conds, - &$query_options, &$join_conds ) { - $conds[] = 'rc_this_oldid <> page_latest'; + &$query_options, &$join_conds ) use ( $nonRevisionTypes ) { + $conds[] = $dbr->makeList( + [ + 'rc_this_oldid <> page_latest', + 'rc_type' => $nonRevisionTypes, + ], + LIST_OR + ); }, 'cssClassSuffix' => 'last', 'isRowApplicableCallable' => function ( $ctx, $rc ) { @@ -336,8 +345,14 @@ abstract class ChangesListSpecialPage extends SpecialPage { 'description' => 'rcfilters-filter-previousrevision-description', 'default' => false, 'queryCallable' => function ( $specialClassName, $ctx, $dbr, &$tables, &$fields, &$conds, - &$query_options, &$join_conds ) { - $conds[] = 'rc_this_oldid = page_latest'; + &$query_options, &$join_conds ) use ( $nonRevisionTypes ) { + $conds[] = $dbr->makeList( + [ + 'rc_this_oldid = page_latest', + 'rc_type' => $nonRevisionTypes, + ], + LIST_OR + ); }, 'cssClassSuffix' => 'previous', 'isRowApplicableCallable' => function ( $ctx, $rc ) { -- 2.20.1