From: Moriel Schottlender Date: Fri, 28 Jul 2017 07:28:40 +0000 (-0700) Subject: RCFilters: Trim input text before evaluation X-Git-Tag: 1.31.0-rc.0~2553^2 X-Git-Url: http://git.cyclocoop.org/%24dirpuce/puce%24spip_lang_rtl.gif?a=commitdiff_plain;h=d34731d131426aead32eec6d1b4136b1de7d810d;p=lhc%2Fweb%2Fwiklou.git RCFilters: Trim input text before evaluation Make sure that trailing and leading spaces don't affect searching and view switches. Bug: T168225 Change-Id: I2379c7848887ef2cb2cafa9c3cfef8cbe5ed6a62 --- diff --git a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js index 4ea1e03625..57e618cc28 100644 --- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js +++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js @@ -810,7 +810,7 @@ items = this.getFiltersByView( view ); // Normalize so we can search strings regardless of case and view - query = query.toLowerCase(); + query = query.trim().toLowerCase(); if ( view !== 'default' ) { query = query.substr( 1 ); } diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js index ac22258b33..c4d5877d83 100644 --- a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js +++ b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js @@ -238,7 +238,11 @@ * @param {string} value Value of the input */ mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.onInputChange = function ( value ) { - var view = this.model.getViewByTrigger( value.substr( 0, 1 ) ); + var view; + + value = value.trim(); + + view = this.model.getViewByTrigger( value.substr( 0, 1 ) ); this.controller.switchView( view ); }; @@ -286,7 +290,7 @@ // Clear input if the only thing in the input is the prefix if ( - this.input.getValue() === this.model.getViewTrigger( this.model.getCurrentView() ) + this.input.getValue().trim() === this.model.getViewTrigger( this.model.getCurrentView() ) ) { // Clear the input this.input.setValue( '' ); @@ -350,7 +354,7 @@ */ mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.updateElementsForView = function () { var view = this.model.getCurrentView(), - inputValue = this.input.getValue(), + inputValue = this.input.getValue().trim(), inputView = this.model.getViewByTrigger( inputValue.substr( 0, 1 ) ); if ( inputView !== 'default' ) { @@ -469,7 +473,7 @@ mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.onTagSelect = function ( tagItem ) { var widget = this, menuOption = this.menu.getItemFromModel( tagItem.getModel() ), - oldInputValue = this.input.getValue(); + oldInputValue = this.input.getValue().trim(); this.menu.setUserSelecting( true );