jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/348652 )

Change subject: RCFilters UI: Select tag when filter item is selected
......................................................................


RCFilters UI: Select tag when filter item is selected

Retain the selection behavior from previous versions, and synchronize
the selection of the filter item in the menu with the tag items
in the MenuTagMultiselectWidget.

Bug: T163138
Change-Id: I548a1fca65372c697e24b77d928d56b18f4df1c5
---
M resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagItemWidget.js
M 
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
2 files changed, 32 insertions(+), 0 deletions(-)

Approvals:
  Catrope: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagItemWidget.js 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagItemWidget.js
index cfffc65..f79e013 100644
--- 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagItemWidget.js
+++ 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagItemWidget.js
@@ -18,6 +18,7 @@
 
                this.controller = controller;
                this.model = model;
+               this.selected = false;
 
                mw.rcfilters.ui.FilterTagItemWidget.parent.call( this, 
$.extend( {
                        data: this.model.getName(),
@@ -162,6 +163,15 @@
        };
 
        /**
+        * Get the selected state of this widget
+        *
+        * @return {boolean} Tag is selected
+        */
+       mw.rcfilters.ui.FilterTagItemWidget.prototype.isSelected = function () {
+               return this.selected;
+       };
+
+       /**
         * Get item name
         *
         * @return {string} Filter name
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 8e26271..6fd3585 100644
--- 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
+++ 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
@@ -137,6 +137,7 @@
                } else {
                        // Clear selection
                        this.getMenu().selectItem( null );
+                       this.selectTag( null );
                }
        };
 
@@ -207,6 +208,9 @@
        mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.onMenuChoose = 
function ( item ) {
                this.controller.toggleFilterSelect( item.model.getName() );
 
+               // Select the tag if it exists, or reset selection otherwise
+               this.selectTag( this.getItemFromData( item.model.getName() ) );
+
                this.focus();
        };
 
@@ -248,6 +252,7 @@
                
mw.rcfilters.ui.FilterTagMultiselectWidget.parent.prototype.onTagSelect.call( 
this, tagItem );
 
                this.menu.selectItem( menuOption );
+               this.selectTag( tagItem );
 
                // Scroll to the item
                if ( oldInputValue ) {
@@ -265,6 +270,23 @@
        };
 
        /**
+        * Select a tag by reference. This is what OO.ui.SelectWidget is doing.
+        * If no items are given, reset selection from all.
+        *
+        * @param {mw.rcfilters.ui.FilterTagItemWidget} [item] Tag to select,
+        *  omit to deselect all
+        */
+       mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.selectTag = 
function ( item ) {
+               var i, len, selected;
+
+               for ( i = 0, len = this.items.length; i < len; i++ ) {
+                       selected = this.items[ i ] === item;
+                       if ( this.items[ i ].isSelected() !== selected ) {
+                               this.items[ i ].toggleSelected( selected );
+                       }
+               }
+       };
+       /**
         * @inheritdoc
         */
        mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.onTagRemove = 
function ( tagItem ) {

-- 
To view, visit https://gerrit.wikimedia.org/r/348652
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I548a1fca65372c697e24b77d928d56b18f4df1c5
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Mooeypoo <mor...@gmail.com>
Gerrit-Reviewer: Catrope <r...@wikimedia.org>
Gerrit-Reviewer: Jack Phoenix <j...@countervandalism.net>
Gerrit-Reviewer: TTO <at.li...@live.com.au>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to