From: petarpetkovic Date: Wed, 1 Nov 2017 18:55:31 +0000 (+0100) Subject: Make filter area togglable X-Git-Tag: 1.31.0-rc.0~1616^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22upgrade%22%2C%22reinstall=non%22%29%20.%20%22?a=commitdiff_plain;h=b1395ccb0b3ba8a6bf0617cb5f24b6528b2d3886;p=lhc%2Fweb%2Fwiklou.git Make filter area togglable - Close and open the dropdown filter menu when a user clicks on the active filter area. - Fix inaccessible menu when user clicks on browser scrollbar while dropdown filter menu is visible. Bug: T176954 Change-Id: Id1c0c5078d80064a432b3db0f42775d0c00cdd85 --- 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 a2ce20eaf9..0d39cd0167 100644 --- a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js +++ b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js @@ -285,6 +285,8 @@ mw.rcfilters.ui.FilterTagMultiselectWidget.parent.prototype.onMenuToggle.call( this ); if ( isVisible ) { + this.focus(); + mw.hook( 'RcFilters.popup.open' ).fire(); if ( !this.getMenu().getSelectedItem() ) { @@ -294,6 +296,8 @@ setTimeout( function () { this.getMenu().scrollToTop(); }.bind( this ), 0 ); } } else { + this.blur(); + // Clear selection this.selectTag( null ); @@ -337,6 +341,17 @@ this.input.$input.blur(); }; + /** + * @inheritdoc + */ + mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.onMouseDown = function ( e ) { + if ( !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT ) { + this.menu.toggle(); + + return false; + } + }; + /** * @inheritdoc */