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