*/
use MediaWiki\MediaWikiServices;
+use Wikimedia\Rdbms\ResultWrapper;
/**
* A special page that lists last changes made to the wiki
$panel[] = $form;
$panelString = implode( "\n", $panel );
- $this->getOutput()->addHTML(
- Xml::fieldset(
- $this->msg( 'recentchanges-legend' )->text(),
- $panelString,
- [ 'class' => 'rcoptions' ]
- )
+ $rcoptions = Xml::fieldset(
+ $this->msg( 'recentchanges-legend' )->text(),
+ $panelString,
+ [ 'class' => 'rcoptions' ]
);
+ // Insert a placeholder for RCFilters
+ if ( $this->getUser()->getOption( 'rcenhancedfilters' ) ) {
+ $rcfilterContainer = Html::element(
+ 'div',
+ [ 'class' => 'rcfilters-container' ]
+ );
+
+ // Wrap both with rcfilters-head
+ $this->getOutput()->addHTML(
+ Html::rawElement(
+ 'div',
+ [ 'class' => 'rcfilters-head' ],
+ $rcfilterContainer . $rcoptions
+ )
+ );
+ } else {
+ $this->getOutput()->addHTML( $rcoptions );
+ }
+
$this->setBottomText( $opts );
}
parent::addModules();
$out = $this->getOutput();
$out->addModules( 'mediawiki.special.recentchanges' );
- if ( $this->getUser()->getOption(
- 'rcenhancedfilters',
- /*default=*/ null,
- /*ignoreHidden=*/ true
- )
- ) {
+ if ( $this->getUser()->getOption( 'rcenhancedfilters' ) ) {
$out->addModules( 'mediawiki.rcfilters.filters.ui' );
+ $out->addModuleStyles( 'mediawiki.rcfilters.filters.base.styles' );
}
}
$title = new HtmlArmor( '<strong>' . htmlspecialchars( $title ) . '</strong>' );
}
- return $this->getLinkRenderer()->makeKnownLink( $this->getPageTitle(), $title, [], $params );
+ return $this->getLinkRenderer()->makeKnownLink( $this->getPageTitle(), $title, [
+ 'data-params' => json_encode( $override ),
+ 'data-keys' => implode( ',', array_keys( $override ) ),
+ ], $params );
}
/**
function filterOnUserExperienceLevel( &$tables, &$conds, &$join_conds, $opts ) {
global $wgLearnerEdits,
- $wgExperiencedUserEdits,
- $wgLearnerMemberSince,
- $wgExperiencedUserMemberSince;
+ $wgExperiencedUserEdits,
+ $wgLearnerMemberSince,
+ $wgExperiencedUserMemberSince;
$selectedExpLevels = explode( ',', strtolower( $opts['userExpLevel'] ) );
// remove values that are not recognized