Robmoen has uploaded a new change for review.

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

Change subject: M.deferredArray, a place for all async loading things to live
......................................................................

M.deferredArray, a place for all async loading things to live

Introduce M.deferredArray so other things can wait for asycn things
to load.  Example use case: Positioning an element after a
BannerImage is loaded.

Change-Id: I9c5dbab0b7583fe7668b8a9873eddf566cfd92e2
---
M includes/Resources.php
A javascripts/deferred.js
M javascripts/modules/bannerImage/BannerImage.js
3 files changed, 22 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend 
refs/changes/79/197979/1

diff --git a/includes/Resources.php b/includes/Resources.php
index 9970126..ac27c27 100644
--- a/includes/Resources.php
+++ b/includes/Resources.php
@@ -151,6 +151,14 @@
                        'javascripts/modules.js',
                ),
        ),
+       'mobile.deferred' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.modules',
+               ),
+               'scripts' => array(
+                       'javascripts/deferred.js',
+               ),
+       ),
        'mobile.oo' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
                        'mobile.modules',
@@ -1566,6 +1574,7 @@
                        'mobile.mainMenu',
                        'mobile.browser',
                        'mobile.modules',
+                       'mobile.deferred',
                        'mobile.context',
                ),
                'scripts' => array(
diff --git a/javascripts/deferred.js b/javascripts/deferred.js
new file mode 100644
index 0000000..eb54420
--- /dev/null
+++ b/javascripts/deferred.js
@@ -0,0 +1,5 @@
+( function ( M ) {
+       // Place for all async deferred loading things to live
+       M.deferredArray = [];
+
+}( mw.mobileFrontend ) );
diff --git a/javascripts/modules/bannerImage/BannerImage.js 
b/javascripts/modules/bannerImage/BannerImage.js
index 34e7fa6..d675ffb 100644
--- a/javascripts/modules/bannerImage/BannerImage.js
+++ b/javascripts/modules/bannerImage/BannerImage.js
@@ -61,12 +61,19 @@
                 */
                loadImage: function () {
                        var self = this,
-                               targetWidth = $( window ).width();
+                               targetWidth = $( window ).width(),
+                               $deferred = $.Deferred();
+
+                       // Add to the list of async loading things
+                       M.deferredArray.push( $deferred );
 
                        self.repository.getImage( targetWidth )
                                .then( function ( image ) {
                                        self.onImageLoaded( image );
                                } )
+                               .always( function () {
+                                       $deferred.resolve();
+                               } )
                                .fail( function () {
                                        self.remove();
                                } );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9c5dbab0b7583fe7668b8a9873eddf566cfd92e2
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Robmoen <[email protected]>

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

Reply via email to