[MediaWiki-commits] [Gerrit] mediawiki/core[master]: RCFilters UI: Destroy CapsuleItemWidget when it is removed

2017-02-13 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/337208 )

Change subject: RCFilters UI: Destroy CapsuleItemWidget when it is removed
..


RCFilters UI: Destroy CapsuleItemWidget when it is removed

The widget is recreated when an item is reinserted, so we should
clean up the external elements it creates (like the popup) and
disconnect from events.

Bug: T157852
Change-Id: I8e6eaac7b1a3062d156d4c0b5b912d1a6bfae7de
---
M resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CapsuleItemWidget.js
M 
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js
2 files changed, 29 insertions(+), 0 deletions(-)

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



diff --git 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CapsuleItemWidget.js 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CapsuleItemWidget.js
index 525f718..40d31c5 100644
--- a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CapsuleItemWidget.js
+++ b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CapsuleItemWidget.js
@@ -107,4 +107,16 @@
mw.rcfilters.ui.CapsuleItemWidget.prototype.onCapsuleRemovedByUser = 
function () {
this.controller.updateFilter( this.model.getName(), false );
};
+
+   /**
+* Remove and destroy external elements of this widget
+*/
+   mw.rcfilters.ui.CapsuleItemWidget.prototype.destroy = function () {
+   // Destroy the popup
+   this.popup.$element.detach();
+
+   // Disconnect events
+   this.model.disconnect( this );
+   this.closeButton.disconnect( this );
+   };
 }( mediaWiki, jQuery ) );
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 56303d5..9bb1a98 100644
--- 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js
+++ 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js
@@ -230,4 +230,21 @@
this.menu.selectItem();
this.menu.highlightItem();
};
+
+   /**
+* @inheritdoc
+*/
+   mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.removeItems = 
function ( items ) {
+   // Parent call
+   
mw.rcfilters.ui.FilterCapsuleMultiselectWidget.parent.prototype.removeItems.call(
 this, items );
+
+   // Destroy the item widget when it is removed
+   // This is done because we re-add items by recreating them, 
rather than hiding them
+   // and items include popups, that will just continue to be 
created and appended
+   // unnecessarily.
+   items.forEach( function ( widget ) {
+   widget.destroy();
+   } );
+   };
+
 }( mediaWiki, jQuery ) );

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I8e6eaac7b1a3062d156d4c0b5b912d1a6bfae7de
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Mooeypoo 
Gerrit-Reviewer: Catrope 
Gerrit-Reviewer: Mooeypoo 
Gerrit-Reviewer: jenkins-bot <>

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


[MediaWiki-commits] [Gerrit] mediawiki/core[master]: RCFilters UI: Destroy CapsuleItemWidget when it is removed

2017-02-10 Thread Mooeypoo (Code Review)
Mooeypoo has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/337208 )

Change subject: RCFilters UI: Destroy CapsuleItemWidget when it is removed
..

RCFilters UI: Destroy CapsuleItemWidget when it is removed

The widget is recreated when an item is reinserted, so we should
clean up the external elements it creates (like the popup) and
disconnect from events.

Bug: T157852
Change-Id: I8e6eaac7b1a3062d156d4c0b5b912d1a6bfae7de
---
M resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CapsuleItemWidget.js
M 
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js
2 files changed, 30 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/08/337208/1

diff --git 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CapsuleItemWidget.js 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CapsuleItemWidget.js
index 525f718..ab8ce03 100644
--- a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CapsuleItemWidget.js
+++ b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CapsuleItemWidget.js
@@ -107,4 +107,17 @@
mw.rcfilters.ui.CapsuleItemWidget.prototype.onCapsuleRemovedByUser = 
function () {
this.controller.updateFilter( this.model.getName(), false );
};
+
+   /**
+* Remove and destroy external elements of this widget
+*/
+   mw.rcfilters.ui.CapsuleItemWidget.prototype.destroy = function () {
+   // Destroy the popup
+   this.popup.toggle( false );
+   this.popup.$element.detach();
+
+   // Disconnect events
+   this.model.disconnect( this );
+   this.closeButton.disconnect( this );
+   };
 }( mediaWiki, jQuery ) );
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 56303d5..9bb1a98 100644
--- 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js
+++ 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js
@@ -230,4 +230,21 @@
this.menu.selectItem();
this.menu.highlightItem();
};
+
+   /**
+* @inheritdoc
+*/
+   mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.removeItems = 
function ( items ) {
+   // Parent call
+   
mw.rcfilters.ui.FilterCapsuleMultiselectWidget.parent.prototype.removeItems.call(
 this, items );
+
+   // Destroy the item widget when it is removed
+   // This is done because we re-add items by recreating them, 
rather than hiding them
+   // and items include popups, that will just continue to be 
created and appended
+   // unnecessarily.
+   items.forEach( function ( widget ) {
+   widget.destroy();
+   } );
+   };
+
 }( mediaWiki, jQuery ) );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8e6eaac7b1a3062d156d4c0b5b912d1a6bfae7de
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Mooeypoo 

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