Merge "RCFilters: Emphasize UI when saved query is loaded"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 19 Jul 2017 02:52:26 +0000 (02:52 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 19 Jul 2017 02:52:26 +0000 (02:52 +0000)
1  2 
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js

                                // Clear the input
                                this.input.setValue( '' );
                        }
 +
 +                      // Log filter grouping
 +                      this.controller.trackFilterGroupings( 'filtermenu' );
                }
  
                this.input.setIcon( isVisible ? 'search' : 'menu' );
                                !this.isEmpty() &&
                                !this.matchingQuery
                        );
+                       if ( this.matchingQuery ) {
+                               this.emphasize();
+                       }
                }
        };
  
         * @param {mw.rcfilters.dm.FilterItem} item Filter item model
         */
        mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.onModelItemUpdate = function ( item ) {
 +              if ( item.getGroupModel().isHidden() ) {
 +                      return;
 +              }
 +
                if (
                        item.isSelected() ||
                        (
                }
        };
  
+       mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.emphasize = function () {
+               if (
+                       !this.$handle.hasClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-animate' )
+               ) {
+                       this.$handle
+                               .addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-emphasize' )
+                               .addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-animate' );
+                       setTimeout( function () {
+                               this.$handle
+                                       .removeClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-emphasize' );
+                               setTimeout( function () {
+                                       this.$handle
+                                               .removeClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-animate' );
+                               }.bind( this ), 1000 );
+                       }.bind( this ), 500 );
+               }
+       };
        /**
         * Scroll the element to top within its container
         *
                        this.controller
                );
  
 +              this.numChangesWidget = new mw.rcfilters.ui.ChangesLimitButtonWidget(
 +                      this.controller,
 +                      this.model,
 +                      {
 +                              $overlay: this.$overlay
 +                      }
 +              );
 +
 +              this.dateWidget = new mw.rcfilters.ui.DateButtonWidget(
 +                      this.controller,
 +                      this.model,
 +                      {
 +                              $overlay: this.$overlay
 +                      }
 +              );
 +
                // Initialize
                this.$element
                        .addClass( 'mw-rcfilters-ui-filterWrapperWidget' );
                        this.$element.append(
                                this.savedLinksListWidget.$element
                        );
                }
  
                $bottom = $( '<div>' )
 -                      .addClass( 'mw-rcfilters-ui-filterWrapperWidget-bottom' );
 +                      .addClass( 'mw-rcfilters-ui-filterWrapperWidget-bottom' )
 +                      .append(
 +                              this.numChangesWidget.$element,
 +                              this.dateWidget.$element
 +                      );
  
 -              if ( mw.config.get( 'wgStructuredChangeFiltersEnableLiveUpdate' ) ) {
 +              if (
 +                      mw.config.get( 'wgStructuredChangeFiltersEnableLiveUpdate' ) ||
 +                      // Allow users to enable live update with ?liveupdate=1
 +                      new mw.Uri().query.liveupdate
 +              ) {
                        $bottom.append( this.liveUpdateButton.$element );
                }