jenkins-bot has submitted this change and it was merged.
Change subject: Make page action overlay pointer position correctly.
......................................................................
Make page action overlay pointer position correctly.
This adds two new events.
The BannerImage fires a loaded event when it loads.
The Skin renders changed whenever something happens to the rendering of
the skin.
Also:
Left align the pointer so it points to the middle of the $target
Bug: T91047
Change-Id: Ifcf3829b4d18748670ffd4de6979e54f1e17ce91
---
M javascripts/Skin.js
M javascripts/modules/bannerImage/BannerImage.js
M javascripts/modules/bannerImage/init.js
M javascripts/modules/tutorials/ContentOverlay.js
M javascripts/modules/uploads/init.js
M javascripts/modules/watchstar/init.js
6 files changed, 22 insertions(+), 9 deletions(-)
Approvals:
Florianschmidtwelzow: Looks good to me, approved
jenkins-bot: Verified
diff --git a/javascripts/Skin.js b/javascripts/Skin.js
index 12b27f0..9a6d6d5 100644
--- a/javascripts/Skin.js
+++ b/javascripts/Skin.js
@@ -136,6 +136,11 @@
$el.addClass( 'touch-events' );
}
$( '<div class="transparent-shield cloaked-element">'
).appendTo( '#mw-mf-page-center' );
+ /**
+ * @event changed
+ * Fired when appearance of skin changes.
+ */
+ this.emit( 'changed' );
},
/**
diff --git a/javascripts/modules/bannerImage/BannerImage.js
b/javascripts/modules/bannerImage/BannerImage.js
index 34e7fa6..82112df 100644
--- a/javascripts/modules/bannerImage/BannerImage.js
+++ b/javascripts/modules/bannerImage/BannerImage.js
@@ -87,7 +87,11 @@
.show();
self.resizeFrame();
-
+ /**
+ * @event loaded
+ * Fired when image has loaded and been rendered in
page.
+ */
+ self.emit( 'loaded' );
if ( !self.hasLoadedOnce ) {
self.hasLoadedOnce = true;
M.on( 'resize', function () {
diff --git a/javascripts/modules/bannerImage/init.js
b/javascripts/modules/bannerImage/init.js
index a481d56..bf7c981 100644
--- a/javascripts/modules/bannerImage/init.js
+++ b/javascripts/modules/bannerImage/init.js
@@ -1,9 +1,10 @@
-( function ( M ) {
+( function ( M, $ ) {
M.require( 'context' ).assertMode( [ 'alpha', 'beta' ] );
var MobileViewBannerImageRepository = M.require(
'modules/bannerImage/MobileViewBannerImageRepository' ),
BannerImage = M.require( 'modules/bannerImage/BannerImage' ),
page = M.getCurrentPage(),
+ skin = M.require( 'skin' ),
repository,
bannerImage;
@@ -16,6 +17,7 @@
bannerImage = new BannerImage( {
repository: repository
} );
+ bannerImage.on( 'loaded', $.proxy( skin, 'emit', 'changed' ) );
bannerImage.insertBefore( '.pre-content' );
}
-}( mw.mobileFrontend ) );
+}( mw.mobileFrontend, jQuery ) );
diff --git a/javascripts/modules/tutorials/ContentOverlay.js
b/javascripts/modules/tutorials/ContentOverlay.js
index 8f36fb1..0d152a5 100644
--- a/javascripts/modules/tutorials/ContentOverlay.js
+++ b/javascripts/modules/tutorials/ContentOverlay.js
@@ -1,6 +1,7 @@
( function ( M, $ ) {
var ContentOverlay,
+ skin = M.require( 'skin' ),
Overlay = M.require( 'Overlay' );
/**
@@ -34,12 +35,7 @@
$target = $( options.target );
// Ensure we position the overlay correctly but
do not show the arrow
self._position( $target );
- // Ensure that any reflows due to tablet styles
have happened before showing
- // the arrow.
- setTimeout( function () {
- self.addPointerArrow( $target );
- M.on( 'resize', $.proxy( self,
'refreshPointerArrow', options.target ) );
- }, 0 );
+ this.addPointerArrow( $target );
}
},
/**
@@ -82,6 +78,8 @@
// remove the left offset of the overlay as
margin auto may be applied to it
left: paOffset.left + 10 - overlayOffset.left
} ).appendTo( this.$el );
+ skin.on( 'changed', $.proxy( this,
'refreshPointerArrow', this.options.target ) );
+ M.on( 'resize', $.proxy( this, 'refreshPointerArrow',
this.options.target ) );
}
} );
M.define( 'modules/tutorials/ContentOverlay', ContentOverlay );
diff --git a/javascripts/modules/uploads/init.js
b/javascripts/modules/uploads/init.js
index a7e9858..746f04a 100644
--- a/javascripts/modules/uploads/init.js
+++ b/javascripts/modules/uploads/init.js
@@ -4,6 +4,7 @@
funnel = $.cookie( 'mwUploadsFunnel' ) || 'article',
LeadPhotoUploaderButton = M.require(
'modules/uploads/LeadPhotoUploaderButton' ),
user = M.require( 'user' ),
+ skin = M.require( 'skin' ),
isSupported = LeadPhotoUploaderButton.isSupported;
/**
@@ -53,6 +54,7 @@
new LeadPhotoUploaderButton( {
funnel: funnel
} );
+ skin.emit( 'changed' );
}
if ( isSupported ) {
diff --git a/javascripts/modules/watchstar/init.js
b/javascripts/modules/watchstar/init.js
index b947399..3e2cb72 100644
--- a/javascripts/modules/watchstar/init.js
+++ b/javascripts/modules/watchstar/init.js
@@ -1,6 +1,7 @@
( function ( M, $ ) {
var Watchstar = M.require( 'modules/watchstar/Watchstar' ),
+ skin = M.require( 'skin' ),
user = M.require( 'user' );
/**
@@ -18,6 +19,7 @@
page: page,
isAnon: user.isAnon()
} );
+ skin.emit( 'changed' );
}
}
init( M.getCurrentPage() );
--
To view, visit https://gerrit.wikimedia.org/r/199155
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ifcf3829b4d18748670ffd4de6979e54f1e17ce91
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>
Gerrit-Reviewer: Bmansurov <[email protected]>
Gerrit-Reviewer: Florianschmidtwelzow <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: Jhernandez <[email protected]>
Gerrit-Reviewer: Kaldari <[email protected]>
Gerrit-Reviewer: Phuedx <[email protected]>
Gerrit-Reviewer: Robmoen <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits