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 <eeggles...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits