if ( ( $config->get( 'EnotifWatchlist' ) || $config->get( 'ShowUpdatedMarker' ) )
&& $request->getVal( 'reset' )
&& $request->wasPosted()
+ && $user->matchEditToken( $request->getVal( 'token' ) )
) {
$user->clearAllNotifications();
$output->redirect( $this->getPageTitle()->getFullURL( $opts->getChangedValues() ) );
/**
* @inheritdoc
*/
- protected function registerFiltersFromDefinitions( array $definition ) {
- foreach ( $definition as $groupName => &$groupDefinition ) {
- foreach ( $groupDefinition['filters'] as &$filterDefinition ) {
- if ( isset( $filterDefinition['showHideSuffix'] ) ) {
- $filterDefinition['showHide'] = 'wl' . $filterDefinition['showHideSuffix'];
- }
- }
+ protected function transformFilterDefinition( array $filterDefinition ) {
+ if ( isset( $filterDefinition['showHideSuffix'] ) ) {
+ $filterDefinition['showHide'] = 'wl' . $filterDefinition['showHideSuffix'];
}
- parent::registerFiltersFromDefinitions( $definition );
+ return $filterDefinition;
}
/**
$hideLiu->setDefault( $user->getBoolOption( 'watchlisthideliu' ) );
$reviewStatus = $this->getFilterGroup( 'reviewStatus' );
- $hidePatrolled = $reviewStatus->getFilter( 'hidepatrolled' );
- $hidePatrolled->setDefault( $user->getBoolOption( 'watchlisthidepatrolled' ) );
+ if ( $reviewStatus !== null ) {
+ // Conditional on feature being available and rights
+ $hidePatrolled = $reviewStatus->getFilter( 'hidepatrolled' );
+ $hidePatrolled->setDefault( $user->getBoolOption( 'watchlisthidepatrolled' ) );
+ }
$authorship = $this->getFilterGroup( 'authorship' );
$hideMyself = $authorship->getFilter( 'hidemyself' );
$changeType = $this->getFilterGroup( 'changeType' );
$hideCategorization = $changeType->getFilter( 'hidecategorization' );
- $hideCategorization->setDefault( $user->getBoolOption( 'watchlisthidecategorization' ) );
+ if ( $hideCategorization !== null ) {
+ // Conditional on feature being available
+ $hideCategorization->setDefault( $user->getBoolOption( 'watchlisthidecategorization' ) );
+ }
}
/**
* @inheritdoc
*/
protected function buildQuery( &$tables, &$fields, &$conds, &$query_options,
- &$join_conds, FormOptions $opts ) {
-
+ &$join_conds, FormOptions $opts
+ ) {
$dbr = $this->getDB();
parent::buildQuery( $tables, $fields, $conds, $query_options, $join_conds,
$opts );
* @inheritdoc
*/
protected function doMainQuery( $tables, $fields, $conds, $query_options,
- $join_conds, FormOptions $opts ) {
-
+ $join_conds, FormOptions $opts
+ ) {
$dbr = $this->getDB();
$user = $this->getUser();
'id' => 'mw-watchlist-resetbutton' ] ) . "\n" .
Xml::submitButton( $this->msg( 'enotif_reset' )->text(),
[ 'name' => 'mw-watchlist-reset-submit' ] ) . "\n" .
+ Html::hidden( 'token', $user->getEditToken() ) . "\n" .
Html::hidden( 'reset', 'all' ) . "\n";
foreach ( $nondefaults as $key => $value ) {
$form .= Html::hidden( $key, $value ) . "\n";