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 <[email protected]>
Gerrit-Reviewer: Ssmith <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits