Ssmith has submitted this change and it was merged. 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, 23 insertions(+), 10 deletions(-) Approvals: Ssmith: Looks good to me, approved diff --git a/src/components/boards/generic-board/generic-board.js b/src/components/boards/generic-board/generic-board.js index 5d28730..282a82d 100644 --- a/src/components/boards/generic-board/generic-board.js +++ b/src/components/boards/generic-board/generic-board.js @@ -14,25 +14,38 @@ 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 ) { - $('#loadingModal').modal('show'); //todo: knockout-style! + if ( loads[i]() === true ) { return true; } } - $('#loadingModal').modal('hide'); //todo: knockout-style! return false; - } ); + } ).extend( { throttle: 10 } ); // don't flip too often + self.dataLoading.subscribe( function( value ) { + if ( value ) { + $('#loadingModal').modal('show'); //todo: knockout-style! + } else { + $('#loadingModal').modal('hide'); //todo: knockout-style! + } + } ); // Get the date self.displayDate = ko.observable( moment().format( timeFormat ) ); -- To view, visit https://gerrit.wikimedia.org/r/198265 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I838ddff5dd48ebc3be1f8d7cb12704e7fa792a5d Gerrit-PatchSet: 2 Gerrit-Project: wikimedia/fundraising/dash Gerrit-Branch: master Gerrit-Owner: Ejegg <eeggles...@wikimedia.org> Gerrit-Reviewer: Ssmith <ssm...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits