RCFilters UI: Display 'no results found' if... no results were found!
authorMoriel Schottlender <moriel@gmail.com>
Tue, 18 Apr 2017 00:06:47 +0000 (17:06 -0700)
committerMoriel Schottlender <moriel@gmail.com>
Tue, 18 Apr 2017 00:06:47 +0000 (17:06 -0700)
The "normal" operation of an OO.ui.MenuSelectWidget is to hide itself
if no results are found in the filtering process. However, we want
the menu to remain visible but display a 'no filters found' message
like it did before the migration to a MenuTagMultiselectWidget.

Bug: T163170
Change-Id: Iee7b07961b90ac514a4aa1f7c56019ecd7b4c3cc

resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterFloatingMenuSelectWidget.less
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterFloatingMenuSelectWidget.js

index 194b1b2..7602465 100644 (file)
@@ -4,6 +4,20 @@
        z-index: auto;
        max-width: 650px;
 
+       &.oo-ui-menuSelectWidget-invisible {
+               display: block;
+       }
+
+       &-noresults {
+               display: none;
+               padding: 0.5em;
+               color: #666;
+
+               .oo-ui-menuSelectWidget-invisible & {
+                       display: inline-block;
+               }
+       }
+
        &-body {
                max-height: 70vh;
        }
index ec85df9..748eea8 100644 (file)
                        }
                );
 
+               this.noResults = new OO.ui.LabelWidget( {
+                       label: mw.msg( 'rcfilters-filterlist-noresults' ),
+                       classes: [ 'mw-rcfilters-ui-filterFloatingMenuSelectWidget-noresults' ]
+               } );
+
                this.$element
                        .addClass( 'mw-rcfilters-ui-filterFloatingMenuSelectWidget' )
                        .append(
                                this.$body
-                                       .append( header.$element, this.$group )
+                                       .append( header.$element, this.$group, this.noResults.$element )
                        );
 
                if ( this.$footer ) {