* @ingroup SpecialPage
*/
abstract class ChangesListSpecialPage extends SpecialPage {
+ /**
+ * Preference name for saved queries. Subclasses that use saved queries should override this.
+ * @var string
+ */
+ protected static $savedQueriesPreferenceName;
+
/** @var string */
protected $rcSubpage;
'wgStructuredChangeFiltersEnableExperimentalViews',
$experimentalStructuredChangeFilters
);
+
$out->addJsConfigVars(
'wgRCFiltersChangeTags',
$this->buildChangeTagList()
'daysDefault' => $this->getDefaultDays(),
]
);
+
+ if ( static::$savedQueriesPreferenceName ) {
+ $savedQueries = FormatJson::decode(
+ $this->getUser()->getOption( static::$savedQueriesPreferenceName )
+ );
+ if ( $savedQueries && isset( $savedQueries->default ) ) {
+ // If there is a default saved query, show a loading spinner,
+ // since the frontend is going to reload the results
+ $out->addBodyClasses( 'mw-rcfilters-ui-loading' );
+ }
+ $out->addJsConfigVars(
+ 'wgStructuredChangeFiltersSavedQueriesPreferenceName',
+ static::$savedQueriesPreferenceName
+ );
+ }
} else {
$out->addBodyClasses( 'mw-rcfilters-disabled' );
}