Adrian Lang has uploaded a new change for review. https://gerrit.wikimedia.org/r/142238
Change subject: Simplify API-based parsers in JS ...................................................................... Simplify API-based parsers in JS Change-Id: I2634b82498aa6bc6b7fab9cbd81cbecede3d9d34 --- D lib/resources/parsers/GlobeCoordinateParser.js D lib/resources/parsers/MonolingualTextParser.js D lib/resources/parsers/QuantityParser.js D lib/resources/parsers/TimeParser.js M lib/resources/parsers/resources.php M lib/resources/parsers/wikibase.parsers.js 6 files changed, 20 insertions(+), 155 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/38/142238/1 diff --git a/lib/resources/parsers/GlobeCoordinateParser.js b/lib/resources/parsers/GlobeCoordinateParser.js deleted file mode 100644 index 0884613..0000000 --- a/lib/resources/parsers/GlobeCoordinateParser.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * @licence GNU GPL v2+ - * @author H. Snater < [email protected] > - */ -( function( wb, util ) { - 'use strict'; - - var PARENT = wb.parsers.ApiBasedValueParser; - - /** - * Constructor for globe coordinate parsers. - * @constructor - * @extends wikibase.parsers.ApiBasedValueParser - * @since 0.5 - */ - wb.GlobeCoordinateParser = util.inherit( PARENT, { - /** - * @see wikibase.parsers.ApiBasedValueParser.API_VALUE_PARSER_ID - */ - API_VALUE_PARSER_ID: 'globecoordinate' - } ); - -}( wikibase, util ) ); diff --git a/lib/resources/parsers/MonolingualTextParser.js b/lib/resources/parsers/MonolingualTextParser.js deleted file mode 100644 index 6f72363..0000000 --- a/lib/resources/parsers/MonolingualTextParser.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * @licence GNU GPL v2+ - */ -( function( wb, util ) { - 'use strict'; - - var PARENT = wb.parsers.ApiBasedValueParser; - - /** - * Constructor for monolingualtext parsers. - * @constructor - * @extends wikibase.parsers.ApiBasedValueParser - * @since 0.5 - */ - wb.MonolingualTextParser = util.inherit( PARENT, { - /** - * @see wikibase.parsers.ApiBasedValueParser.API_VALUE_PARSER_ID - */ - API_VALUE_PARSER_ID: 'monolingualtext' - } ); - -}( wikibase, util ) ); diff --git a/lib/resources/parsers/QuantityParser.js b/lib/resources/parsers/QuantityParser.js deleted file mode 100644 index 1bf6cff..0000000 --- a/lib/resources/parsers/QuantityParser.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * @licence GNU GPL v2+ - * @author H. Snater < [email protected] > - */ -( function( wb, util ) { - 'use strict'; - - var PARENT = wb.parsers.ApiBasedValueParser; - - /** - * Constructor for quantity parsers. - * @constructor - * @extends wikibase.parsers.ApiBasedValueParser - * @since 0.1 - */ - wb.QuantityParser = util.inherit( PARENT, { - /** - * @see wikibase.parsers.ApiBasedValueParser.API_VALUE_PARSER_ID - */ - API_VALUE_PARSER_ID: 'quantity' - } ); - -}( wikibase, util ) ); diff --git a/lib/resources/parsers/TimeParser.js b/lib/resources/parsers/TimeParser.js deleted file mode 100644 index fbc8838..0000000 --- a/lib/resources/parsers/TimeParser.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * @licence GNU GPL v2+ - */ -( function( wb, util ) { - 'use strict'; - - var PARENT = wb.parsers.ApiBasedValueParser; - - /** - * Constructor for time parsers. - * @constructor - * @extends wikibase.parsers.ApiBasedValueParser - * @since 0.5 - */ - wb.TimeParser = util.inherit( PARENT, { - /** - * @see wikibase.parsers.ApiBasedValueParser.API_VALUE_PARSER_ID - */ - API_VALUE_PARSER_ID: 'time' - } ); - -}( wikibase, util ) ); diff --git a/lib/resources/parsers/resources.php b/lib/resources/parsers/resources.php index 0081671..912bb2c 100644 --- a/lib/resources/parsers/resources.php +++ b/lib/resources/parsers/resources.php @@ -50,60 +50,17 @@ ), ), - 'wikibase.GlobeCoordinateParser' => $moduleTemplate + array( - 'scripts' => array( - 'GlobeCoordinateParser.js', - ), - 'dependencies' => array( - 'util.inherit', - 'wikibase.ApiBasedValueParser', - ), - ), - - 'wikibase.QuantityParser' => $moduleTemplate + array( - 'scripts' => array( - 'QuantityParser.js', - ), - 'dependencies' => array( - 'util.inherit', - 'wikibase.ApiBasedValueParser', - ), - ), - - 'wikibase.TimeParser' => $moduleTemplate + array( - 'scripts' => array( - 'TimeParser.js', - ), - 'dependencies' => array( - 'util.inherit', - 'wikibase.ApiBasedValueParser', - ), - ), - - 'wikibase.MonolingualTextParser' => $moduleTemplate + array( - 'scripts' => array( - 'MonolingualTextParser.js', - ), - 'dependencies' => array( - 'util.inherit', - 'wikibase.ApiBasedValueParser', - ), - ), - 'wikibase.parsers' => $moduleTemplate + array( 'scripts' => array( 'wikibase.parsers.js', ), 'dependencies' => array( 'dataValues.values', + 'jquery', 'valueParsers.parsers', 'valueParsers.ValueParserStore', 'wikibase.datamodel', - 'wikibase.EntityIdParser', - 'wikibase.GlobeCoordinateParser', - 'wikibase.QuantityParser', - 'wikibase.TimeParser', - 'wikibase.MonolingualTextParser', + 'wikibase.EntityIdParser' ), ), diff --git a/lib/resources/parsers/wikibase.parsers.js b/lib/resources/parsers/wikibase.parsers.js index 8204ea0..f7619cf 100644 --- a/lib/resources/parsers/wikibase.parsers.js +++ b/lib/resources/parsers/wikibase.parsers.js @@ -4,7 +4,7 @@ */ wikibase.parsers = wikibase.parsers || {}; -wikibase.parsers.store = ( function( wb, vp, dv ) { +wikibase.parsers.store = ( function( $, wb, vp, dv ) { 'use strict'; var parserStore = new vp.ValueParserStore( vp.NullParser ); @@ -15,30 +15,28 @@ ); parserStore.registerDataValueParser( - wb.GlobeCoordinateParser, - dv.GlobeCoordinateValue.TYPE - ); - - parserStore.registerDataValueParser( - wb.QuantityParser, - dv.QuantityValue.TYPE - ); - - parserStore.registerDataValueParser( vp.StringParser, dv.StringValue.TYPE ); - parserStore.registerDataValueParser( - wb.TimeParser, - dv.TimeValue.TYPE - ); + // API-based parsers + // FIXME: Get this configuration from the backend. + var parserIdToDataValueType = { + 'globecoordinate': dv.GlobeCoordinateValue.TYPE, + 'monolingualtext': dv.MonolingualTextValue.TYPE, + 'quantity': dv.QuantityValue.TYPE, + 'time': dv.TimeValue.TYPE + }; - parserStore.registerDataValueParser( - wb.MonolingualTextParser, - dv.MonolingualTextValue.TYPE - ); + $.each( parserIdToDataValueType, function( parserId, dvType ) { + var Parser = util.inherit( + wb.parsers.ApiBasedValueParser, + { API_VALUE_PARSER_ID: parserId } + ); + + parserStore.registerDataValueParser( Parser, dvType ); + } ); return parserStore; -}( wikibase, valueParsers, dataValues ) ); +}( jQuery, wikibase, valueParsers, dataValues ) ); -- To view, visit https://gerrit.wikimedia.org/r/142238 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2634b82498aa6bc6b7fab9cbd81cbecede3d9d34 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Adrian Lang <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
