Phedenskog has uploaded a new change for review.

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

Change subject: Prepare for collectors to return promises
......................................................................

Prepare for collectors to return promises

Lets take promises from the collectors so that we later on can do
things async inside the collectors (fetching images etc).

Change-Id: I672e81a265cbe8d00fe5ce1baa04abaf8485918d
---
M modules/ext.PerformanceInspector.startup.js
1 file changed, 26 insertions(+), 16 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/PerformanceInspector 
refs/changes/16/284816/1

diff --git a/modules/ext.PerformanceInspector.startup.js 
b/modules/ext.PerformanceInspector.startup.js
index 9fd9098..f88ed87 100644
--- a/modules/ext.PerformanceInspector.startup.js
+++ b/modules/ext.PerformanceInspector.startup.js
@@ -25,27 +25,37 @@
                                ).done( function () {
                                        var views = [],
                                                summary = {},
-                                               windowManager = new 
OO.ui.WindowManager();
+                                               windowManager = new 
OO.ui.WindowManager(),
+                                               promises = [];
                                        // for each collector object collect 
summary and view data and
                                        // pass it on to the dialog
                                        
mw.performanceInspector.collectors.forEach( function ( collector ) {
-                                               var data = collector();
-                                               if ( data.view ) {
-                                                       views.push( data.view );
-                                                       Object.keys( 
data.summary ).forEach( function ( summaryItem ) {
-                                                               summary[ 
summaryItem ] = data.summary[ summaryItem ];
-                                                       } );
-                                               }
+                                               promises.push( collector() );
                                        } );
-                                       piDialog = new 
mw.performanceInspector.dialog.PiDialog( {
-                                                       size: 'larger'
-                                               },
-                                               summary,
-                                               views );
+                                       $.when.apply( $, promises ).done( 
function () {
+                                               var result = arguments,
+                                               summaryItems;
+                                               for ( i = 0; i < result.length; 
i++ ) {
+                                                       if ( result[ i ].view ) 
{
+                                                               views.push( 
result[ i ].view );
+                                                               summaryItems = 
Object.keys( result[ i ].summary );
+                                                               for ( j = 0; j 
< summaryItems.length; j++ ) {
+                                                                       
summary[ summaryItems[ j ] ] = result[ i ].summary[ summaryItems[ j ] ];
+                                                               }
+                                                       }
+                                               }
 
-                                       $( 'body' ).append( 
windowManager.$element );
-                                       windowManager.addWindows( [ piDialog ] 
);
-                                       windowManager.openWindow( piDialog );
+                                               piDialog = new 
mw.performanceInspector.dialog.PiDialog( {
+                                                               size: 'larger'
+                                                       },
+                                                       summary,
+                                                       views );
+
+                                               $( 'body' ).append( 
windowManager.$element );
+                                               windowManager.addWindows( [ 
piDialog ] );
+                                               windowManager.openWindow( 
piDialog );
+                                       } );
+
                                } );
                        } );
                }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I672e81a265cbe8d00fe5ce1baa04abaf8485918d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/PerformanceInspector
Gerrit-Branch: master
Gerrit-Owner: Phedenskog <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to