*/
use MediaWiki\MediaWikiServices;
-use Wikimedia\Rdbms\ResultWrapper;
+use Wikimedia\Rdbms\IResultWrapper;
use Wikimedia\Rdbms\FakeResultWrapper;
/**
protected static $savedQueriesPreferenceName = 'rcfilters-saved-queries';
protected static $daysPreferenceName = 'rcdays'; // Use general RecentChanges preference
protected static $limitPreferenceName = 'rcfilters-limit'; // Use RCFilters-specific preference
+ protected static $collapsedPreferenceName = 'rcfilters-rc-collapsed';
private $watchlistFilterGroupDefinition;
$reviewStatus = $this->getFilterGroup( 'reviewStatus' );
if ( $reviewStatus !== null ) {
// Conditional on feature being available and rights
- $hidePatrolled = $reviewStatus->getFilter( 'hidepatrolled' );
- $hidePatrolled->setDefault( $user->getBoolOption( 'hidepatrolled' ) );
+ if ( $user->getBoolOption( 'hidepatrolled' ) ) {
+ $reviewStatus->setDefault( 'unpatrolled' );
+ $legacyReviewStatus = $this->getFilterGroup( 'legacyReviewStatus' );
+ $legacyHidePatrolled = $legacyReviewStatus->getFilter( 'hidepatrolled' );
+ $legacyHidePatrolled->setDefault( true );
+ }
}
$changeType = $this->getFilterGroup( 'changeType' );
}
}
- /**
- * Get all custom filters
- *
- * @return array Map of filter URL param names to properties (msg/default)
- */
- protected function getCustomFilters() {
- if ( $this->customFilters === null ) {
- $this->customFilters = parent::getCustomFilters();
- Hooks::run( 'SpecialRecentChangesFilters', [ $this, &$this->customFilters ], '1.23' );
- }
-
- return $this->customFilters;
- }
-
/**
* Process $par and put options found in $opts. Used when including the page.
*
/**
* Build and output the actual changes list.
*
- * @param ResultWrapper $rows Database rows
+ * @param IResultWrapper $rows Database rows
* @param FormOptions $opts
*/
public function outputChangesList( $rows, $opts ) {
* @param FormOptions $opts Unused
*/
function setTopText( FormOptions $opts ) {
- global $wgContLang;
-
$message = $this->msg( 'recentchangestext' )->inContentLanguage();
if ( !$message->isDisabled() ) {
+ $contLang = MediaWikiServices::getInstance()->getContentLanguage();
// Parse the message in this weird ugly way to preserve the ability to include interlanguage
// links in it (T172461). In the future when T66969 is resolved, perhaps we can just use
// $message->parse() instead. This code is copied from Message::parseText().
// Message class sets the interface flag to false when parsing in a language different than
// user language, and this is wiki content language
/*interface*/false,
- $wgContLang
+ $contLang
);
$content = $parserOutput->getText( [
'enableSectionEditLinks' => false,
$this->getOutput()->addParserOutputMetadata( $parserOutput );
$langAttributes = [
- 'lang' => $wgContLang->getHtmlCode(),
- 'dir' => $wgContLang->getDir(),
+ 'lang' => $contLang->getHtmlCode(),
+ 'dir' => $contLang->getDir(),
];
$topLinksAttributes = [ 'class' => 'mw-recentchanges-toplinks' ];
*
* @deprecated since 1.31
*
- * @param ResultWrapper &$rows Database rows
+ * @param IResultWrapper &$rows Database rows
* @param FormOptions $opts
*/
function filterByCategories( &$rows, FormOptions $opts ) {