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

Reply via email to