JGonera has submitted this change and it was merged.
Change subject: Fix nearby / Move nearby overlays to separate module
......................................................................
Fix nearby / Move nearby overlays to separate module
Polish nearby experience on desktop by turning off page
previews which don't have any styling in vector
Nearby on master is also broken at current time due to
a rename of heading to title which this patchset fixes
Change-Id: I6039cd73ede98baa0aa4b114fdd176dc4fc0b096
---
M MobileFrontend.php
M includes/specials/SpecialNearby.php
M javascripts/specials/nearby.js
A javascripts/specials/overlays/preview.js
4 files changed, 72 insertions(+), 38 deletions(-)
Approvals:
JGonera: Verified; Looks good to me, approved
diff --git a/MobileFrontend.php b/MobileFrontend.php
index 520ab68..b3014fd 100644
--- a/MobileFrontend.php
+++ b/MobileFrontend.php
@@ -599,6 +599,20 @@
'overlays/loading',
),
);
+
+$wgResourceModules['mobile.nearby.previews'] = $wgMFMobileResourceBoilerplate
+ array(
+ 'dependencies' => array(
+ 'mobile.nearby.scripts',
+ ),
+ 'messages' => array(
+ // preview.js
+ 'mobile-frontend-ajax-preview-loading',
+ ),
+ 'scripts' => array(
+ 'javascripts/specials/overlays/preview.js',
+ ),
+);
+
$wgResourceModules['mobile.nearby.scripts'] = $wgMFMobileResourceBoilerplate +
array(
'dependencies' => array(
'mobile.nearby.plumbing',
@@ -615,7 +629,6 @@
'mobile-frontend-nearby-distance-meters',
'mobile-frontend-nearby-lookup-error',
'mobile-frontend-nearby-noresults',
- 'mobile-frontend-ajax-preview-loading',
'mobile-frontend-nearby-link',
),
'styles' => array(
diff --git a/includes/specials/SpecialNearby.php
b/includes/specials/SpecialNearby.php
index 46de92c..3ceeb41 100644
--- a/includes/specials/SpecialNearby.php
+++ b/includes/specials/SpecialNearby.php
@@ -9,6 +9,12 @@
$this->setHeaders();
$output = $this->getOutput();
+ // add previews to mobile only
+ $ctx = MobileContext::singleton();
+ if ( $ctx->shouldDisplayMobileView() &&
$ctx->isBetaGroupMember() ) {
+ $output->addModules( 'mobile.nearby.previews' );
+ };
+
$output->setPageTitle( wfMessage(
'mobile-frontend-nearby-title' )->escaped() );
$html =
diff --git a/javascripts/specials/nearby.js b/javascripts/specials/nearby.js
index 982db37..3cd5b1d 100644
--- a/javascripts/specials/nearby.js
+++ b/javascripts/specials/nearby.js
@@ -6,54 +6,26 @@
( function() {
var supported = M.supportsGeoLocation(),
popup = M.require( 'notifications' ),
- Overlay = M.require( 'navigation' ).Overlay,
View = M.require( 'view' ),
- Page = M.require( 'page' ),
endpoint = mw.config.get( 'wgMFNearbyEndpoint' ),
cachedPages,
curLocation,
lastKnownLocation = M.settings.getUserSetting(
CACHE_KEY_LAST_LOCATION ),
cache = M.settings.saveUserSetting,
lastSearchResult = M.settings.getUserSetting( CACHE_KEY_RESULTS
),
- LoadingOverlay = Overlay.extend( {
- defaults: {
- msg: mw.msg(
'mobile-frontend-ajax-preview-loading' )
- },
- template: M.template.get( 'overlays/loading' )
- } ),
- PagePreviewOverlay = Overlay.extend( {
- template: M.template.get( 'overlays/pagePreview' ),
- preRender: function( options ) {
- options.heading = options.page.heading;
- options.content = options.page.lead;
- options.url = M.history.getArticleUrl(
options.heading );
- options.readMoreLink = mw.msg(
'mobile-frontend-nearby-link' );
- },
- initialize: function( options ) {
- this._super( options );
- this.$( '.content table' ).remove();
- }
- } ),
Nearby = View.extend( {
template: M.template.get( 'articleList' ),
initialize: function() {
- this.$( 'a' ).on( 'mousedown', function() {
- var loader = new LoadingOverlay(),
- title = $( this ).find( 'h2'
).text();
- loader.show();
-
+ var self = this;
+ this.$( 'a' ).on( 'mousedown', function( ev ) {
// name funnel for watchlists to catch
subsequent uploads
$.cookie( 'mwUploadsFunnel', 'nearby',
{ expires: new Date( new Date().getTime() + 60000) } );
-
- M.history.retrievePage( title, endpoint
).done( function( page ) {
- var preview = new
PagePreviewOverlay( { page: new Page( page ) } );
- loader.hide();
- preview.show();
- } ).fail( function() {
- loader.hide(); // FIXME: do
something more meaningful e.g. error overlay
- } );
+ self.emit( 'page-click', ev );
} );
}
+ } ),
+ overlay = new Nearby( {
+ el: $( '#mw-mf-nearby' )
} );
// FIXME: Api should surely know this and return it in response to save
us the hassle
@@ -134,8 +106,7 @@
return a.dist > b.dist ? 1 : -1;
} );
- new Nearby( {
- el: $content[0],
+ overlay.render( {
pages: pages
} );
}
@@ -221,7 +192,9 @@
}
}
M.define( 'nearby', {
- distanceMessage: distanceMessage
+ distanceMessage: distanceMessage,
+ endpoint: endpoint,
+ overlay: overlay
} );
}() );
diff --git a/javascripts/specials/overlays/preview.js
b/javascripts/specials/overlays/preview.js
new file mode 100644
index 0000000..cdfef08
--- /dev/null
+++ b/javascripts/specials/overlays/preview.js
@@ -0,0 +1,42 @@
+( function( M, $ ) {
+ var Overlay = M.require( 'navigation' ).Overlay,
+ Page = M.require( 'page' ),
+ LoadingOverlay = Overlay.extend( {
+ defaults: {
+ msg: mw.msg(
'mobile-frontend-ajax-preview-loading' )
+ },
+ template: M.template.get( 'overlays/loading' )
+ } ),
+ PagePreviewOverlay = Overlay.extend( {
+ template: M.template.get( 'overlays/pagePreview' ),
+ preRender: function( options ) {
+ options.heading = options.page.title;
+ options.content = options.page.lead;
+ options.url = M.history.getArticleUrl(
options.heading );
+ options.readMoreLink = mw.msg(
'mobile-frontend-nearby-link' );
+ },
+ initialize: function( options ) {
+ this._super( options );
+ this.$( '.content table' ).remove();
+ }
+ } ),
+ module = M.require( 'nearby' ),
+ endpoint = module.endpoint,
+ nearby = module.overlay;
+
+ nearby.on( 'page-click', function( ev ) {
+ ev.preventDefault();
+ var loader = new LoadingOverlay(),
+ title = $( ev.currentTarget ).find( 'h2' ).text();
+ loader.show();
+
+ M.history.retrievePage( title, endpoint ).done( function( page
) {
+ var preview = new PagePreviewOverlay( { page: new Page(
page ) } );
+ loader.hide();
+ preview.show();
+ } ).fail( function() {
+ loader.hide(); // FIXME: do something more meaningful
e.g. error overlay
+ } );
+ } );
+
+}( mw.mobileFrontend, jQuery ) );
--
To view, visit https://gerrit.wikimedia.org/r/63061
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I6039cd73ede98baa0aa4b114fdd176dc4fc0b096
Gerrit-PatchSet: 8
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>
Gerrit-Reviewer: JGonera <[email protected]>
Gerrit-Reviewer: MaxSem <[email protected]>
Gerrit-Reviewer: awjrichards <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits