RCFilters: Don't grey out results area when initializing, unless there's a default...
[lhc/web/wiklou.git] / includes / specialpage / ChangesListSpecialPage.php
index 98b7aa1..dd0dd92 100644 (file)
@@ -32,6 +32,12 @@ use Wikimedia\Rdbms\IDatabase;
  * @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;
 
@@ -602,6 +608,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                                'wgStructuredChangeFiltersEnableExperimentalViews',
                                $experimentalStructuredChangeFilters
                        );
+
                        $out->addJsConfigVars(
                                'wgRCFiltersChangeTags',
                                $this->buildChangeTagList()
@@ -616,6 +623,21 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                                        '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' );
                }