Daniel Werner has uploaded a new change for review. https://gerrit.wikimedia.org/r/66289
Change subject: Properly implemented JS GlobeCoordinateValue::toJSON and newFromJSON ...................................................................... Properly implemented JS GlobeCoordinateValue::toJSON and newFromJSON Allows round tripping with the backend implementation now. Precision is not yet implemented. Moved the problem of dealing with precision from globeCoordinate.js into GlobeCoordinateValue since "globeCoordinate.js" should not really know or care about the problems of the "backend" or anything else Wikibase related. Change-Id: I6b0e3584996a0709de81b37ac07659d6b5bd2c97 --- M DataValues/resources/globeCoordinate.js/src/globeCoordinate.GlobeCoordinate.js M DataValues/resources/values/GlobeCoordinateValue.js 2 files changed, 21 insertions(+), 19 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DataValues refs/changes/89/66289/1 diff --git a/DataValues/resources/globeCoordinate.js/src/globeCoordinate.GlobeCoordinate.js b/DataValues/resources/globeCoordinate.js/src/globeCoordinate.GlobeCoordinate.js index 1c0cd87..d4d3263 100644 --- a/DataValues/resources/globeCoordinate.js/src/globeCoordinate.GlobeCoordinate.js +++ b/DataValues/resources/globeCoordinate.js/src/globeCoordinate.GlobeCoordinate.js @@ -50,14 +50,9 @@ } else { this._latitude = globeCoordinateDefinition.latitude; this._longitude = globeCoordinateDefinition.longitude; - - // The backend does not return precision, so we need to parse the coordinate values: - // TODO: Have the backend support precision - parsed = globeCoordinateParser.parse( this._latitude + ', ' + this._longitude ); - this._precision = parsed[2]; - - // TODO: Capture altitude and globe + this._precision = globeCoordinateDefinition.precision; } + // TODO: Capture altitude and globe this._globe = 'http://wikidata.org/id/Q2'; // TODO: Support other globes }; diff --git a/DataValues/resources/values/GlobeCoordinateValue.js b/DataValues/resources/values/GlobeCoordinateValue.js index 71062a8..97447eb 100644 --- a/DataValues/resources/values/GlobeCoordinateValue.js +++ b/DataValues/resources/values/GlobeCoordinateValue.js @@ -6,7 +6,7 @@ * * @author H. Snater < mediaw...@snater.com > */ -( function( dv, $, GlobeCoordinate ) { +( function( dv, $, GlobeCoordinate, globeCoordinateParse ) { 'use strict'; var PARENT = dv.DataValue, @@ -75,26 +75,33 @@ toJSON: function() { var globeCoordinate = this.getValue(); - // TODO: Backend should interact with a proper JSON structure and have precision implemented. - return globeCoordinate.getLatitude() + '|' + globeCoordinate.getLongitude(); + return { + latitude: globeCoordinate.getLatitude(), + longitude: globeCoordinate.getLongitude(), + globe: globeCoordinate.getGlobe(), + precision: globeCoordinate.getPrecision() + // altitude: ... + }; } - } ); /** * @see dv.DataValue.newFromJSON */ SELF.newFromJSON = function( json ) { - var data = json.split( '|' ); + // The backend does not return precision, so we need to parse the coordinate values: + // TODO: Have the backend support precision + var precision = globeCoordinateParse( json.latitude + ', ' + json.longitude )[2]; - var c = new GlobeCoordinate( { - latitude: parseFloat( data[0] ), - longitude: parseFloat( data[1] ), - altitude: ( data[2] ) ? parseFloat( data[2] ) : null, - globe: ( data[3] ) ? data[3] : null + var gc = new GlobeCoordinate( { + latitude: json.latitude, + longitude: json.longitude, + globe: json.globe, + precision: precision + // altitude: json.altitude, // TODO: make globeCoordinate.js support altitude } ); - return new SELF( c ); + return new SELF( gc ); }; /** @@ -104,4 +111,4 @@ dv.registerDataValue( SELF ); -}( dataValues, jQuery, globeCoordinate.GlobeCoordinate ) ); +}( dataValues, jQuery, globeCoordinate.GlobeCoordinate, globeCoordinate.parser.parse ) ); -- To view, visit https://gerrit.wikimedia.org/r/66289 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6b0e3584996a0709de81b37ac07659d6b5bd2c97 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/DataValues Gerrit-Branch: master Gerrit-Owner: Daniel Werner <daniel.wer...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits