Mooeypoo has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/339794 )
Change subject: RCFilters UI: Scroll the capsule to the top of the screen ...................................................................... RCFilters UI: Scroll the capsule to the top of the screen When the popup shows up, scroll the capsule widget to the top of the screen. Change-Id: I5366a8a0918bda0aabe1c97db252278c36a89347 --- M resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js 1 file changed, 28 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/94/339794/1 diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js index 50b7d15..eab70dd 100644 --- a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js +++ b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js @@ -11,6 +11,8 @@ * @param {OO.ui.InputWidget} filterInput A filter input that focuses the capsule widget * @param {Object} config Configuration object * @cfg {jQuery} [$overlay] A jQuery object serving as overlay for popups + * @cfg {number} [topScrollOffset] An offset from the top of the scrollable container, when + * scrolling the entire capsule to the top. */ mw.rcfilters.ui.FilterCapsuleMultiselectWidget = function MwRcfiltersUiFilterCapsuleMultiselectWidget( controller, model, filterInput, config ) { var title = new OO.ui.LabelWidget( { @@ -29,8 +31,9 @@ this.controller = controller; this.model = model; - this.filterInput = filterInput; + + this.topScrollOffset = config.topScrollOffset || 10; this.resetButton = new OO.ui.ButtonWidget( { icon: 'trash', @@ -51,6 +54,8 @@ itemUpdate: 'onModelItemUpdate', highlightChange: 'onModelHighlightChange' } ); + this.popup.connect( this, { toggle: 'onPopupToggle' } ); + // Add the filterInput as trigger this.filterInput.$input .on( 'focus', this.focus.bind( this ) ); @@ -163,6 +168,28 @@ }; /** + * Respond to popup toggle event + * + * @param {boolean} isVisible Popup is visible + */ + mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.onPopupToggle = function ( isVisible ) { + if ( isVisible ) { + this.scrollToTop(); + } + }; + + /** + * Scroll the capsule to the top of the screen + */ + mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.scrollToTop = function () { + var container = OO.ui.Element.static.getClosestScrollableContainer( this.$element[ 0 ], 'y' ); + + $( container ).animate( { + scrollTop: this.$element.offset().top - this.topScrollOffset + } ); + }; + + /** * Reevaluate the restore state for the widget between setting to defaults and clearing all filters */ mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.reevaluateResetRestoreState = function () { -- To view, visit https://gerrit.wikimedia.org/r/339794 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5366a8a0918bda0aabe1c97db252278c36a89347 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Mooeypoo <mor...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits