Henning Snater has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/118674

Change subject: Updated DataTypes dependency to 0.2
......................................................................

Updated DataTypes dependency to 0.2

Change-Id: I95a537a44c33463d8e867799a036b469b428a5c8
---
M composer.json
M lib/WikibaseLib.hooks.php
M lib/resources/Resources.php
M lib/resources/experts/resources.php
M lib/resources/experts/wikibase.experts.register.js
M lib/resources/formatters/wikibase.formatters.api.js
M lib/resources/formatters/wikibase.formatters.register.js
M 
lib/resources/jquery.wikibase/jquery.wikibase.snakview/snakview.variations.Value.js
M lib/resources/wikibase.dataTypes/wikibase.dataTypes.js
M lib/resources/wikibase.datamodel/datamodel.entities/wikibase.Property.js
M 
lib/resources/wikibase.serialization/serialization.EntityUnserializer.propertyExpert.js
M lib/tests/qunit/wikibase.dataTypes/wikibase.dataTypes.tests.js
12 files changed, 43 insertions(+), 39 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/74/118674/1

diff --git a/composer.json b/composer.json
index c9e48f7..d1fc655 100644
--- a/composer.json
+++ b/composer.json
@@ -30,7 +30,7 @@
                "data-values/number": "~0.3.0",
                "data-values/time": "~0.3.0",
                "data-values/validators": "~0.1.0",
-               "data-values/data-types": "~0.1.0",
+               "data-values/data-types": "~0.2.0",
                "data-values/serialization": "~0.1.0",
                "data-values/javascript": "~0.3.0",
                "data-values/value-view": "~0.3.3",
diff --git a/lib/WikibaseLib.hooks.php b/lib/WikibaseLib.hooks.php
index bf54bf5..5dc47c2 100644
--- a/lib/WikibaseLib.hooks.php
+++ b/lib/WikibaseLib.hooks.php
@@ -80,8 +80,6 @@
                                'tests/qunit/templates.tests.js',
                                'tests/qunit/wikibase.tests.js',
 
-                               
'tests/qunit/wikibase.dataTypes/wikibase.dataTypes.tests.js',
-
                                
'tests/qunit/wikibase.datamodel/Wikibase.claim.tests.js',
                                
'tests/qunit/wikibase.datamodel/Wikibase.reference.tests.js',
                                
'tests/qunit/wikibase.datamodel/Wikibase.snak.tests.js',
@@ -245,6 +243,16 @@
                        ),
                );
 
+               
$testModules['qunit']['tests/qunit/wikibase.dataTypes/wikibase.dataTypes.tests']
 = $moduleBase + array(
+                       'scripts' => array(
+                               
'tests/qunit/wikibase.dataTypes/wikibase.dataTypes.tests.js',
+                       ),
+                       'dependencies' => array(
+                               'dataTypes.DataTypeStore',
+                               'wikibase.dataTypes',
+                       ),
+               );
+
                $testModules['qunit']['wikibase.store.EntityStore.tests'] = 
$moduleBase + array(
                        'scripts' => array(
                                
'tests/qunit/wikibase.store/store.EntityStore.tests.js',
diff --git a/lib/resources/Resources.php b/lib/resources/Resources.php
index d4dcaeb..0c34c22 100644
--- a/lib/resources/Resources.php
+++ b/lib/resources/Resources.php
@@ -130,8 +130,8 @@
                        ),
                        'dependencies' => array(
                                'mediawiki.api',
-                               'dataTypes',
                                'wikibase',
+                               'wikibase.dataTypes'
                        ),
                ),
 
@@ -141,7 +141,6 @@
                        ),
                        'dependencies' => array(
                                'mediawiki.api',
-                               'dataTypes',
                                'util.inherit',
                                'valueFormatters.ValueFormatter',
                                'wikibase.formatters.api',
@@ -153,7 +152,6 @@
                                'formatters/wikibase.formatters.register.js',
                        ),
                        'dependencies' => array(
-                               'dataTypes',
                                'dataValues.values',
                                'mw.ext.valueFormatters',
                                'wikibase.ApiBasedValueFormatter',
@@ -167,7 +165,8 @@
                                'wikibase.dataTypes/wikibase.dataTypes.js',
                        ),
                        'dependencies' => array(
-                               'dataTypes',
+                               'dataTypes.DataType',
+                               'dataTypes.DataTypeStore',
                                'jquery',
                                'mw.config.values.wbDataTypes',
                                'wikibase',
@@ -224,7 +223,6 @@
                                'util.inherit',
                                'wikibase',
                                'mw.ext.dataValues', // DataValues extension
-                               'dataTypes', // DataTypes extension
                                'wikibase.dataTypes',
                        )
                ),
@@ -251,6 +249,7 @@
                                'util.inherit',
                                'wikibase.serialization',
                                'wikibase.datamodel',
+                               'wikibase.dataTypes',
                        )
                ),
 
diff --git a/lib/resources/experts/resources.php 
b/lib/resources/experts/resources.php
index 4fb59dd..821346f 100644
--- a/lib/resources/experts/resources.php
+++ b/lib/resources/experts/resources.php
@@ -22,7 +22,6 @@
                                'wikibase.experts.register.js',
                        ),
                        'dependencies' => array(
-                               'dataTypes',
                                'jquery.valueview.experts.CommonsMediaType',
                                'jquery.valueview.experts.UrlType',
                                'mw.ext.valueView',
diff --git a/lib/resources/experts/wikibase.experts.register.js 
b/lib/resources/experts/wikibase.experts.register.js
index 401c0b4..c5d6d9c 100644
--- a/lib/resources/experts/wikibase.experts.register.js
+++ b/lib/resources/experts/wikibase.experts.register.js
@@ -2,7 +2,7 @@
  * @licence GNU GPL v2+
  * @author H. Snater < mediaw...@snater.com >
  */
-( function( mw, wb, dt, vv ) {
+( function( mw, wb, dataTypeStore, vv ) {
        'use strict';
 
        mw.ext.valueView.expertProvider.registerDataValueExpert(
@@ -13,7 +13,7 @@
        // Register experts for data types defined in Wikibase. Since those 
data types are defined by a
        // setting, it needs to be checked whether they are actually defined.
 
-       var commonsMediaType = dt.getDataType( 'commonsMedia' );
+       var commonsMediaType = dataTypeStore.getDataType( 'commonsMedia' );
        if( commonsMediaType ) {
                mw.ext.valueView.expertProvider.registerDataTypeExpert(
                        vv.experts.CommonsMediaType,
@@ -21,7 +21,7 @@
                );
        }
 
-       var urlType = dt.getDataType( 'url' );
+       var urlType = dataTypeStore.getDataType( 'url' );
        if( urlType ) {
                mw.ext.valueView.expertProvider.registerDataTypeExpert(
                        vv.experts.UrlType,
@@ -29,4 +29,4 @@
                );
        }
 
-}( mediaWiki, wikibase, dataTypes, jQuery.valueview ) );
+}( mediaWiki, wikibase, wikibase.dataTypes, jQuery.valueview ) );
diff --git a/lib/resources/formatters/wikibase.formatters.api.js 
b/lib/resources/formatters/wikibase.formatters.api.js
index be3f0fc..4c3f497 100644
--- a/lib/resources/formatters/wikibase.formatters.api.js
+++ b/lib/resources/formatters/wikibase.formatters.api.js
@@ -2,7 +2,7 @@
  * @licence GNU GPL v2+
  * @author H. Snater < mediaw...@snater.com >
  */
-( function( mw, wb, $, dt ) {
+( function( mw, wb, $, dataTypeStore ) {
        'use strict';
 
        wb.formatters = wb.formatters || {};
@@ -35,7 +35,7 @@
                        if( $.isPlainObject( dataType ) ) {
                                options = dataType;
                                dataType = undefined;
-                       } else if( !dt.hasDataType( dataType ) ) {
+                       } else if( !dataTypeStore.hasDataType( dataType ) ) {
                                outputFormat = dataType;
                                dataType = undefined;
                        }
@@ -80,4 +80,4 @@
                return deferred.promise();
        };
 
-}( mediaWiki, wikibase, jQuery, dataTypes ) );
+}( mediaWiki, wikibase, jQuery, wikibase.dataTypes ) );
diff --git a/lib/resources/formatters/wikibase.formatters.register.js 
b/lib/resources/formatters/wikibase.formatters.register.js
index 75a12fc..aea16a7 100644
--- a/lib/resources/formatters/wikibase.formatters.register.js
+++ b/lib/resources/formatters/wikibase.formatters.register.js
@@ -2,7 +2,7 @@
  * @licence GNU GPL v2+
  * @author H. Snater < mediaw...@snater.com >
  */
-( function( mw, wb, dv, dt ) {
+( function( mw, wb, dv, dataTypeStore ) {
        'use strict';
 
        // Register Wikibase specific formatters:
@@ -27,7 +27,7 @@
                dv.TimeValue.TYPE
        );
 
-       var commonsMediaType = dt.getDataType( 'commonsMedia' );
+       var commonsMediaType = dataTypeStore.getDataType( 'commonsMedia' );
        if( commonsMediaType ) {
                
mw.ext.valueFormatters.valueFormatterProvider.registerDataTypeFormatter(
                        wb.formatters.ApiBasedValueFormatter,
@@ -35,7 +35,7 @@
                );
        }
 
-       var urlType = dt.getDataType( 'url' );
+       var urlType = dataTypeStore.getDataType( 'url' );
        if( urlType ) {
                
mw.ext.valueFormatters.valueFormatterProvider.registerDataTypeFormatter(
                        wb.formatters.ApiBasedValueFormatter,
@@ -43,4 +43,4 @@
                );
        }
 
-}( mediaWiki, wikibase, dataValues, dataTypes ) );
+}( mediaWiki, wikibase, dataValues, wikibase.dataTypes ) );
diff --git 
a/lib/resources/jquery.wikibase/jquery.wikibase.snakview/snakview.variations.Value.js
 
b/lib/resources/jquery.wikibase/jquery.wikibase.snakview/snakview.variations.Value.js
index 259c658..ccdc315 100644
--- 
a/lib/resources/jquery.wikibase/jquery.wikibase.snakview/snakview.variations.Value.js
+++ 
b/lib/resources/jquery.wikibase/jquery.wikibase.snakview/snakview.variations.Value.js
@@ -282,8 +282,8 @@
                 * @since 0.4
                 *
                 * @param {dv.DataValue} dataValue
-                * @param {dt.DataType} [dataType] The data type for which the 
given data value has been
-                *        created. Can be omitted but might result in a less 
specialized valueview.
+                * @param {dataTypes.DataType} [dataType] The data type for 
which the given data value has
+                *        been created. Can be omitted but might result in a 
less specialized valueview.
                 * @return {boolean} Whether a valueview has actually been 
created.
                 */
                _createNewValueView: function( dataValue, dataType ) {
diff --git a/lib/resources/wikibase.dataTypes/wikibase.dataTypes.js 
b/lib/resources/wikibase.dataTypes/wikibase.dataTypes.js
index 7dafde0..38204d3 100644
--- a/lib/resources/wikibase.dataTypes/wikibase.dataTypes.js
+++ b/lib/resources/wikibase.dataTypes/wikibase.dataTypes.js
@@ -1,20 +1,18 @@
 /**
  * @licence GNU GPL v2+
  * @author Daniel Werner < daniel.wer...@wikimedia.de >
+ * @author H. Snater < mediaw...@snater.com >
  */
 wikibase.dataTypes = ( function( $, mw, dataTypes ) {
        'use strict';
 
-       var dataTypeDefinitions = mw.config.get( 'wbDataTypes' ) || {};
+       var dataTypeStore = new dataTypes.DataTypeStore(),
+               dataTypeDefinitions = mw.config.get( 'wbDataTypes' ) || {};
 
        $.each( dataTypeDefinitions, function( dtTypeId, dtDefinition ) {
-               dataTypes.registerDataType( dataTypes.DataType.newFromJSON( 
dtTypeId, dtDefinition ) );
+               dataTypeStore.registerDataType( dataTypes.DataType.newFromJSON( 
dtTypeId, dtDefinition ) );
        } );
 
-       /**
-        * TODO: dataTypes should not be a singleton, instead we should replace 
it with a instantiable
-        *  factory, so we can use our own instance just for WB data types here.
-        */
-       return dataTypes;
+       return dataTypeStore;
 
 }( jQuery, mediaWiki, dataTypes ) );
diff --git 
a/lib/resources/wikibase.datamodel/datamodel.entities/wikibase.Property.js 
b/lib/resources/wikibase.datamodel/datamodel.entities/wikibase.Property.js
index c8cc97c..a09ab6b 100644
--- a/lib/resources/wikibase.datamodel/datamodel.entities/wikibase.Property.js
+++ b/lib/resources/wikibase.datamodel/datamodel.entities/wikibase.Property.js
@@ -2,7 +2,7 @@
  * @licence GNU GPL v2+
  * @author Daniel Werner < daniel.wer...@wikimedia.de >
  */
-( function( wb, dt, util ) {
+( function( wb, dataTypeStore, util ) {
        'use strict';
 
        var PARENT = wb.Entity;
@@ -40,7 +40,7 @@
                                if( !typeId ) { // shouldn't really happen!
                                        throw new Error( 'No data type 
specified for this Property' );
                                }
-                               this._dataType = dt.getDataType( typeId );
+                               this._dataType = dataTypeStore.getDataType( 
typeId );
 
                                if( !this._dataType ) {
                                        throw new Error( 'The Property\'s data 
type "' + typeId + '" is unknown' );
@@ -78,4 +78,4 @@
         */
        SELF.TYPE = 'property';
 
-}( wikibase, dataTypes, util ) );
+}( wikibase, wikibase.dataTypes, util ) );
diff --git 
a/lib/resources/wikibase.serialization/serialization.EntityUnserializer.propertyExpert.js
 
b/lib/resources/wikibase.serialization/serialization.EntityUnserializer.propertyExpert.js
index 6e9782c..995a854 100644
--- 
a/lib/resources/wikibase.serialization/serialization.EntityUnserializer.propertyExpert.js
+++ 
b/lib/resources/wikibase.serialization/serialization.EntityUnserializer.propertyExpert.js
@@ -2,7 +2,7 @@
  * @licence GNU GPL v2+
  * @author Daniel Werner < daniel.wer...@wikimedia.de >
  */
-( function( wb, util, dt ) {
+( function( wb, util, dataTypeStore ) {
        'use strict';
 
        var MODULE = wb.serialization,
@@ -30,7 +30,7 @@
                        }
 
                        return {
-                               datatype: dt.getDataType( 
serialization.datatype )
+                               datatype: dataTypeStore.getDataType( 
serialization.datatype )
                        };
                }
        } );
@@ -41,4 +41,4 @@
                PropertyUnserializationExpert
        );
 
-}( wikibase, util, dataTypes ) );
+}( wikibase, util, wikibase.dataTypes ) );
diff --git a/lib/tests/qunit/wikibase.dataTypes/wikibase.dataTypes.tests.js 
b/lib/tests/qunit/wikibase.dataTypes/wikibase.dataTypes.tests.js
index 03ab7b3..fb9884f 100644
--- a/lib/tests/qunit/wikibase.dataTypes/wikibase.dataTypes.tests.js
+++ b/lib/tests/qunit/wikibase.dataTypes/wikibase.dataTypes.tests.js
@@ -4,16 +4,16 @@
  * @author Daniel Werner < daniel.wer...@wikimedia.de >
  */
 
-( function( QUnit, wbDataTypes ) {
+( function( QUnit, dataTypeStore, dataTypes ) {
        'use strict';
 
        QUnit.module( 'wikibase.dataTypes' );
 
        QUnit.test( 'instance check', function( assert ) {
                assert.ok(
-                       wbDataTypes === dataTypes, // See TODO in 
wbikibase.dataTypes.js regarding this oddity.
-                       'wb.DataTypes is data types factory'
+                       dataTypeStore instanceof dataTypes.DataTypeStore,
+                       'wikibase.dataTypes is a data type store.'
                );
        } );
 
-}( QUnit, wikibase.dataTypes ) );
+}( QUnit, wikibase.dataTypes, dataTypes ) );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I95a537a44c33463d8e867799a036b469b428a5c8
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <henning.sna...@wikimedia.de>

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

Reply via email to