Ejegg has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/198265

Change subject: Fix widget loader tracking on board switch
......................................................................

Fix widget loader tracking on board switch

Regenerate list of tracking observables whenever displayedBoard
changes.  TODO: turn displayedBoard.widgets into an observable array
and track changes that way.

Change-Id: I838ddff5dd48ebc3be1f8d7cb12704e7fa792a5d
---
M src/components/boards/generic-board/generic-board.js
1 file changed, 15 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/dash 
refs/changes/65/198265/1

diff --git a/src/components/boards/generic-board/generic-board.js 
b/src/components/boards/generic-board/generic-board.js
index 5d28730..fe9da85 100644
--- a/src/components/boards/generic-board/generic-board.js
+++ b/src/components/boards/generic-board/generic-board.js
@@ -14,17 +14,25 @@
         self.sharedContext = {};
 
         self.displayedBoard = params.displayedBoard;
-        self.widgetLoads = [];
-        $.each( self.displayedBoard().widgets, function( i, widget ) {
-            widget.dataLoading = ko.observable( false );
-            self.widgetLoads.push( widget.dataLoading );
-        } );
+        self.widgetLoads = ko.observableArray([]);
+               function setWidgetLoads() {
+                       self.widgetLoads.removeAll();
+                       $.each( self.displayedBoard().widgets, function( i, 
widget ) {
+                               widget.dataLoading = ko.observable( false );
+                               self.widgetLoads.push( widget.dataLoading );
+                       } );
+               }
+               setWidgetLoads();
+               self.displayedBoard.subscribe( setWidgetLoads );
 
         //This will return true if any child widget is loading
         self.dataLoading = ko.computed( function() {
-            var i, widgetCount = self.widgetLoads.length;
+            var i,
+                               loads = self.widgetLoads(),
+                               widgetCount = loads.length;
+
             for ( i = 0; i < widgetCount; i++ ) {
-                if ( self.widgetLoads[i]() === true ) {
+                if ( loads[i]() === true ) {
                     $('#loadingModal').modal('show'); //todo: knockout-style!
                     return true;
                 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I838ddff5dd48ebc3be1f8d7cb12704e7fa792a5d
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

Reply via email to