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

Reply via email to