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