Aude has submitted this change and it was merged.

Change subject: allow globe coordinate precision to be null in JS
......................................................................


allow globe coordinate precision to be null in JS

Change-Id: I5a169a1f8c4387da1545ac580c637e56f9297226
---
M DataValues/resources/globeCoordinate.js/src/globeCoordinate.Formatter.js
M DataValues/resources/globeCoordinate.js/src/globeCoordinate.GlobeCoordinate.js
M 
DataValues/resources/globeCoordinate.js/tests/globeCoordinate.Formatter.tests.js
M 
DataValues/resources/globeCoordinate.js/tests/globeCoordinate.GlobeCoordinate.tests.js
4 files changed, 37 insertions(+), 6 deletions(-)

Approvals:
  Aude: Verified; Looks good to me, approved



diff --git 
a/DataValues/resources/globeCoordinate.js/src/globeCoordinate.Formatter.js 
b/DataValues/resources/globeCoordinate.js/src/globeCoordinate.Formatter.js
index 51bfe81..2d1d777 100644
--- a/DataValues/resources/globeCoordinate.js/src/globeCoordinate.Formatter.js
+++ b/DataValues/resources/globeCoordinate.js/src/globeCoordinate.Formatter.js
@@ -90,10 +90,19 @@
                 * @return {string}
                 */
                decimal: function( gc ) {
+                       var latitude = gc.getLatitude();
+                       var longitude = gc.getLongitude();
+                       var precision = gc.getPrecision();
+
+                       if( gc.getPrecision() ) {
+                               latitude = globeCoordinate.toDecimal( latitude, 
precision );
+                               longitude = globeCoordinate.toDecimal( 
longitude, precision );
+                       }
+
                        return ''
-                               + globeCoordinate.toDecimal( gc.getLatitude(), 
gc.getPrecision() )
+                               + latitude
                                + this._options.latLongCombinator
-                               + globeCoordinate.toDecimal( gc.getLongitude(), 
gc.getPrecision() );
+                               + longitude;
                },
 
                /**
diff --git 
a/DataValues/resources/globeCoordinate.js/src/globeCoordinate.GlobeCoordinate.js
 
b/DataValues/resources/globeCoordinate.js/src/globeCoordinate.GlobeCoordinate.js
index ab6f358..73742ee 100644
--- 
a/DataValues/resources/globeCoordinate.js/src/globeCoordinate.GlobeCoordinate.js
+++ 
b/DataValues/resources/globeCoordinate.js/src/globeCoordinate.GlobeCoordinate.js
@@ -27,12 +27,11 @@
                if( !gcDef || typeof gcDef !== 'object'
                        || gcDef.latitude === undefined
                        || gcDef.longitude === undefined
-                       || gcDef.precision === undefined
                ) {
                        throw new Error( 'No proper globe coordinate definition 
given' );
                }
 
-               if( !isValidPrecision( gcDef.precision ) ) {
+               if( gcDef.precision && !isValidPrecision( gcDef.precision ) ) {
                        throw new Error( 'No valid precision given' );
                }
 
diff --git 
a/DataValues/resources/globeCoordinate.js/tests/globeCoordinate.Formatter.tests.js
 
b/DataValues/resources/globeCoordinate.js/tests/globeCoordinate.Formatter.tests.js
index a856994..77320c9 100644
--- 
a/DataValues/resources/globeCoordinate.js/tests/globeCoordinate.Formatter.tests.js
+++ 
b/DataValues/resources/globeCoordinate.js/tests/globeCoordinate.Formatter.tests.js
@@ -15,12 +15,14 @@
                var decimalTexts = {
                                '1, 1': new GlobeCoordinate( { latitude: 1, 
longitude: 1, precision: 1 } ),
                                '-10, -1.5': new GlobeCoordinate( { latitude: 
-10, longitude: -1.5, precision: 0.1 } ),
-                               '20, 0': new GlobeCoordinate( { latitude: 24, 
longitude: -1.5, precision: 10 } )
+                               '20, 0': new GlobeCoordinate( { latitude: 24, 
longitude: -1.5, precision: 10 } ),
+                               '15, 20' : new GlobeCoordinate( { latitude: 15, 
longitude: 20 } )
                        },
                        degreeTexts= {
                                '1°N, 1°E': new GlobeCoordinate( { latitude: 1, 
longitude: 1, precision: 1 } ),
                                '10°0\'S, 2°30\'W': new GlobeCoordinate( { 
latitude: -10, longitude: -2.5, precision: 0.1 } ),
-                               '20°N, 0°W': new GlobeCoordinate( { latitude: 
24, longitude: -1.5, precision: 10 } )
+                               '20°N, 0°W': new GlobeCoordinate( { latitude: 
24, longitude: -1.5, precision: 10 } ),
+                               '1°0\'0"N, 1°0\'0"E': new GlobeCoordinate( { 
latitude: 1, longitude: 1 } )
                        };
 
                var formatter = new Formatter( { format: 'decimal' } );
diff --git 
a/DataValues/resources/globeCoordinate.js/tests/globeCoordinate.GlobeCoordinate.tests.js
 
b/DataValues/resources/globeCoordinate.js/tests/globeCoordinate.GlobeCoordinate.tests.js
index 1ddb754..542770c 100644
--- 
a/DataValues/resources/globeCoordinate.js/tests/globeCoordinate.GlobeCoordinate.tests.js
+++ 
b/DataValues/resources/globeCoordinate.js/tests/globeCoordinate.GlobeCoordinate.tests.js
@@ -68,6 +68,27 @@
                        'Verified iso6709()'
                );
 
+               // test with no precision provided
+               c = new globeCoordinate.GlobeCoordinate( { latitude: 20, 
longitude: 25.5 } );
+
+               assert.equal(
+                       c.getLatitude(),
+                       20,
+                       'Verified getLatitude()'
+               );
+
+               assert.equal(
+                       c.getLongitude(),
+                       25.5,
+                       'Verified getLatitude()'
+               );
+
+               assert.equal(
+                       c.getPrecision(),
+                       null,
+                       'Verified precision is null'
+               );
+
        } );
 
        QUnit.test( 'equals()', function( assert ) {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I5a169a1f8c4387da1545ac580c637e56f9297226
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DataValues
Gerrit-Branch: mw1.22-wmf16
Gerrit-Owner: Aude <aude.w...@gmail.com>
Gerrit-Reviewer: Aude <aude.w...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to