Ejegg has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/327397 )
Change subject: WIP clean up subscriptions and timers
......................................................................
WIP clean up subscriptions and timers
Bug: T152722
Change-Id: I7c04e294da52cd832f49e32eaa4935e517182055
---
M src/app/widgetBase.js
1 file changed, 16 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/dash
refs/changes/97/327397/1
diff --git a/src/app/widgetBase.js b/src/app/widgetBase.js
index ae2539b..1ee0bd0 100644
--- a/src/app/widgetBase.js
+++ b/src/app/widgetBase.js
@@ -14,6 +14,10 @@
var self = this;
+ // Things to clean up when the widget is removed
+ self.disposables = [];
+ self.timers = [];
+
self.retrievedResults = ko.observable();
self.queryStringSQL = ko.observable('This widget hasn\'t
been set up yet!');
self.tempConfig = ko.observable();
@@ -351,10 +355,21 @@
}, 50 );
return;
}
- parent[member].subscribe( callback );
+ self.disposables.push( parent[member].subscribe(
callback ) );
callback();
};
+ self.dispose = function() {
+ ko.utils.arrayForEach( this.disposables, function(
disposable ) {
+ if ( disposable && disposable.dispose ) {
+ disposable.dispose();
+ }
+ } );
+ ko.utils.arrayForEach( this.timers, function( timer ) {
+ window.clearTimeout( timer );
+ } );
+ };
+
return this;
}
--
To view, visit https://gerrit.wikimedia.org/r/327397
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7c04e294da52cd832f49e32eaa4935e517182055
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/dash
Gerrit-Branch: master
Gerrit-Owner: Ejegg <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits