jenkins-bot has submitted this change and it was merged.

Change subject: Hygiene: Continue merging of Special:Nearby into generic 
component
......................................................................


Hygiene: Continue merging of Special:Nearby into generic component

Make SpecialNearby extend Nearby module
Move error handling into generic module

Change-Id: I2b1978552efbad9a912641be60bbea60a1432187
---
M includes/Resources.php
M javascripts/modules/nearby/Nearby.js
M javascripts/specials/nearby.js
3 files changed, 29 insertions(+), 35 deletions(-)

Approvals:
  JGonera: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/Resources.php b/includes/Resources.php
index 99e9c07..469170d 100644
--- a/includes/Resources.php
+++ b/includes/Resources.php
@@ -596,6 +596,8 @@
                        'mobile-frontend-nearby-distance',
                        'mobile-frontend-nearby-distance-meters',
                        // other
+                       'mobile-frontend-nearby-requirements',
+                       'mobile-frontend-nearby-requirements-guidance',
                        'mobile-frontend-nearby-error',
                        'mobile-frontend-nearby-error-guidance',
                        'mobile-frontend-nearby-title',
diff --git a/javascripts/modules/nearby/Nearby.js 
b/javascripts/modules/nearby/Nearby.js
index b019b2f..fa53a82 100644
--- a/javascripts/modules/nearby/Nearby.js
+++ b/javascripts/modules/nearby/Nearby.js
@@ -6,6 +6,14 @@
 
        Nearby = View.extend( {
                template: M.template.get( 'articleList' ),
+               /**
+                * Renders an error in the existing view
+                *
+                * @param {String} type A string that identifies a particular 
type of error message
+                */
+               renderError: function( type ) {
+                       this.render( { error: this.errorMessages[ type ] } );
+               },
                defaults: {
                        loadingMessage: mw.msg( 
'mobile-frontend-nearby-loading' )
                },
@@ -14,9 +22,17 @@
                                heading: mw.msg( 
'mobile-frontend-nearby-noresults' ),
                                guidance: mw.msg( 
'mobile-frontend-nearby-noresults-guidance' )
                        },
+                       location: {
+                               heading: mw.msg( 
'mobile-frontend-nearby-lookup-ui-error' ),
+                               guidance: mw.msg( 
'mobile-frontend-nearby-lookup-ui-error-guidance' )
+                       },
                        server: {
                                heading: mw.msg( 'mobile-frontend-nearby-error' 
),
                                guidance: mw.msg( 
'mobile-frontend-nearby-error-guidance' )
+                       },
+                       incompatible: {
+                               heading: mw.msg( 
'mobile-frontend-nearby-requirements' ),
+                               guidance: mw.msg( 
'mobile-frontend-nearby-requirements-guidance' )
                        }
                },
                initialize: function( options ) {
@@ -34,13 +50,17 @@
                },
                postRender: function( options ) {
                        var self = this;
-                       if ( !options.pages && !options.error && this.location 
) {
+                       if ( options.showLoader ) {
+                               self.$( '.loading' ).show();
+                       } else if ( !options.pages && !options.error && 
this.location ) {
                                self.$( '.loading' ).show();
                                this.api.getPages( this.location, range ).done( 
function( pages ) {
                                        self.render( { pages: pages } );
                                } ).fail( function() {
                                        self.render( { error:  
self.errorMessages.server } );
                                } );
+                       } else {
+                               self.$( '.loading' ).hide();
                        }
                }
        } );
diff --git a/javascripts/specials/nearby.js b/javascripts/specials/nearby.js
index 0808536..d5b2370 100644
--- a/javascripts/specials/nearby.js
+++ b/javascripts/specials/nearby.js
@@ -4,49 +4,22 @@
        endpoint = mw.config.get( 'wgMFNearbyEndpoint' ),
        overlay,
        wgMFMode = mw.config.get( 'wgMFMode' ),
+       Nearby = M.require( 'modules/nearby/Nearby' ),
        NearbyApi = M.require( 'modules/nearby/NearbyApi' ),
        api = new NearbyApi(),
        CACHE_KEY_LAST_LOCATION = 'mfNearbyLastKnownLocation';
 
 $( function() {
        var supported = M.supportsGeoLocation(),
-               View = M.require( 'view' ),
                $userBtn = $( '#user-button' ),
-               errorMessages = {
-                       empty: {
-                               heading: mw.msg( 
'mobile-frontend-nearby-noresults' ),
-                               guidance: mw.msg( 
'mobile-frontend-nearby-noresults-guidance' )
-                       },
-                       location: {
-                               heading: mw.msg( 
'mobile-frontend-nearby-lookup-ui-error' ),
-                               guidance: mw.msg( 
'mobile-frontend-nearby-lookup-ui-error-guidance' )
-                       },
-                       server: {
-                               heading: mw.msg( 'mobile-frontend-nearby-error' 
),
-                               guidance: mw.msg( 
'mobile-frontend-nearby-error-guidance' )
-                       },
-                       // recycle it's already in html
-                       incompatible: {
-                               heading: $( '#mw-mf-nearby .noscript h2' 
).text(),
-                               guidance: $( '#mw-mf-nearby .noscript p' 
).text()
-                       }
-               },
                curLocation,
                lastKnownLocation = M.settings.getUserSetting( 
CACHE_KEY_LAST_LOCATION ),
                cache = M.settings.saveUserSetting,
                lastSearchResult = M.settings.getUserSetting( CACHE_KEY_RESULTS 
),
                // FIXME: Adapt modules/nearby/Nearby.js and use that instead
-               SpecialNearby = View.extend( {
-                       template: M.template.get( 'articleList' ),
-                       /**
-                        * Renders an error in the existing view
-                        *
-                        * @param {String} type A string that identifies a 
particular type of error message
-                        */
-                       renderError: function( type ) {
-                               this.render( { error: errorMessages[ type ] } );
-                       },
-                       postRender: function() {
+               SpecialNearby = Nearby.extend( {
+                       postRender: function( options ) {
+                               this._super( options );
                                var self = this;
                                this.$( 'a' ).on( 'click', function( ev ) {
                                        var $a = $( ev.currentTarget );
@@ -112,9 +85,8 @@
        }
 
        function init() {
-               var $content = $( '#mw-mf-nearby' ).empty();
-               $( '<div class="content loading"> ').text(
-                       mw.msg( 'mobile-frontend-nearby-loading' ) ).appendTo( 
$content );
+               // FIXME: Move searching for geolocation into Nearby module
+               overlay.render( { showLoader: true } );
                navigator.geolocation.getCurrentPosition( function( geo ) {
                        var lat = geo.coords.latitude, lng = 
geo.coords.longitude;
                        curLocation = { latitude: lat, longitude: lng }; // 
save as json so it can be cached bug 48268

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I2b1978552efbad9a912641be60bbea60a1432187
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>
Gerrit-Reviewer: JGonera <[email protected]>
Gerrit-Reviewer: Kaldari <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to