Adrian Lang has uploaded a new change for review.
https://gerrit.wikimedia.org/r/172692
Change subject: Inject dataTypeStore into snakview
......................................................................
Inject dataTypeStore into snakview
Change-Id: Ie2b6a7b6d44008b2b09932f211c0490db619c714
---
M lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.claimview.js
M lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
M lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
M lib/resources/jquery.wikibase/jquery.wikibase.snaklistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
M lib/resources/jquery.wikibase/snakview/resources.php
M lib/resources/jquery.wikibase/snakview/snakview.js
M lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js
M lib/resources/jquery.wikibase/snakview/snakview.variations.Variation.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.claimview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.snaklistview.tests.js
M repo/resources/wikibase.ui.entityViewInit.js
14 files changed, 61 insertions(+), 9 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/92/172692/1
diff --git
a/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
index fd78b56..c50d0fd 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
@@ -23,6 +23,7 @@
* @option {wikibase.store.EntityStore} entityStore
* @option {wikibase.ValueViewBuilder} valueViewBuilder
* @option {wikibase.entityChangers.EntityChangersFactory}
entityChangersFactory
+ * @option {dataTypes.DataTypeStore} dataTypeStore
*/
$.widget( 'wikibase.claimgrouplistview', PARENT, {
/**
@@ -40,6 +41,7 @@
},
value: null,
entityType: wb.datamodel.Item.type,
+ dataTypeStore: null,
entityStore: null,
valueViewBuilder: null,
entityChangersFactory: null
@@ -170,6 +172,7 @@
value.getItemContainer().toArray()[0],
self.option( 'value' )
),
+ dataTypeStore: self.option(
'dataTypeStore' ),
entityStore: self.option(
'entityStore' ),
valueViewBuilder: self.option(
'valueViewBuilder' ),
entityChangersFactory:
self.option( 'entityChangersFactory' )
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
index 2cbab2c..a45a7b3 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
@@ -23,6 +23,8 @@
* @option {wikibase.entityChangers.EntityChangersFactory}
entityChangersFactory
*
+ * @option {dataTypes.DataTypeStore} dataTypeStore
+ *
* @option {number|null} [firstClaimIndex] The index of the claimlistview's
first statement within a
* list of statements.
* Default: null
@@ -63,6 +65,7 @@
},
value: null,
entityType: null,
+ dataTypeStore: null,
entityStore: null,
firstClaimIndex: null,
valueViewBuilder: null,
@@ -230,6 +233,7 @@
property:
!!propertyId
}
},
+ dataTypeStore: self.option(
'dataTypeStore' ),
entityStore: self.option(
'entityStore' ),
valueViewBuilder: self.option(
'valueViewBuilder' ),
entityChangersFactory:
self.option( 'entityChangersFactory' ),
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.claimview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.claimview.js
index 75cda6d..4edeb2c 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.claimview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.claimview.js
@@ -24,6 +24,8 @@
*
* @option {wikibase.entityChangers.ClaimsChanger} [claimsChanger] If not
passed, claimview does not save.
*
+ * @option {dataTypes.DataTypeStore} dataTypeStore
+ *
* @option {number|null} index The claim's index within the list of claims (if
the claim is
* contained within such a list).
* Default: null
@@ -88,6 +90,7 @@
'$qualifiers': '.wb-claim-qualifiers'
},
value: null,
+ dataTypeStore: null,
entityStore: null,
valueViewBuilder: null,
claimsChanger: null,
@@ -173,6 +176,7 @@
value: this.mainSnak() || {},
locked: this.option( 'locked' ).mainSnak,
autoStartEditing: false, // manually, after toolbar is
there, so events can access toolbar
+ dataTypeStore: this.option( 'dataTypeStore' ),
entityStore: this.options.entityStore,
valueViewBuilder: this.option( 'valueViewBuilder' )
} );
@@ -247,6 +251,7 @@
return {
value: value || null,
singleProperty: true,
+ dataTypeStore:
self.option( 'dataTypeStore' ),
entityStore:
self.option( 'entityStore' ),
valueViewBuilder:
self.option( 'valueViewBuilder' )
};
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
index 1ab98e6..f336b02 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
@@ -16,6 +16,7 @@
* @option {wikibase.datamodel.Entity} [value]
* @option {wikibase.store.EntityStore} entityStore
* @option {wikibase.ValueViewBuilder} valueViewBuilder
+ * @option {dataTypes.DataTypeStore} dataTypeStore
* @option {string[]} languages
*
* @event afterstartediting
@@ -44,6 +45,7 @@
value: null,
entityStore: null,
valueViewBuilder: null,
+ dataTypeStore: null,
languages: []
},
@@ -243,6 +245,7 @@
this.$claims
.claimgrouplistview( {
value: this.options.value.getStatements(),
+ dataTypeStore: this.option( 'dataTypeStore' ),
entityType: this.options.value.getType(),
entityStore: this.options.entityStore,
valueViewBuilder: this.options.valueViewBuilder,
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
index 57ecc33..70a182f 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
@@ -152,6 +152,7 @@
return {
value: value || null,
singleProperty: true,
+ dataTypeStore: self.option(
'dataTypeStore' ),
entityStore: self.option(
'entityStore' ),
valueViewBuilder: self.option(
'valueViewBuilder' )
};
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.snaklistview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.snaklistview.js
index e39b6fb..6916eab 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.snaklistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.snaklistview.js
@@ -31,6 +31,8 @@
*
* @option {wikibase.ValueViewBuilder} valueViewBuilder
*
+ * @option {dataTypes.DataTypeStore} dataTypeStore
+ *
* @event startediting: Triggered when starting the snaklistview's edit mode.
* (1) {jQuery.Event}
*
@@ -72,6 +74,7 @@
value: null,
singleProperty: false,
helpMessage: mw.msg( 'wikibase-claimview-snak-new-tooltip' ),
+ dataTypeStore: null,
entityStore: null,
valueViewBuilder: null
},
@@ -150,6 +153,7 @@
// Do not allow
changing the property when editing existing an snak.
property: !!value
},
+ dataTypeStore: self.option(
'dataTypeStore' ),
entityStore: self.option(
'entityStore' ),
valueViewBuilder: self.option(
'valueViewBuilder' )
};
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
index ee61459..8087f16 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
@@ -28,6 +28,8 @@
*
* @option {wikibase.entityChangers.EntityChangersFactory}
entityChangersFactory
*
+ * @option {dataTypes.DataTypeStore} dataTypeStore
+ *
* @option {string} [helpMessage]
* End-user message explaining how to use the statementview widget.
The message is most
* likely to be used inside the tooltip of the toolbar corresponding
to the statementview.
@@ -59,6 +61,7 @@
},
value: null,
claimsChanger: null,
+ dataTypeStore: null,
entityChangersFactory: null,
predefined: {
mainSnak: false
@@ -156,6 +159,7 @@
value: value || null,
statementGuid:
self.value().getClaim().getGuid(),
index: index,
+ dataTypeStore:
self.option( 'dataTypeStore' ),
entityStore:
self.option( 'entityStore' ),
valueViewBuilder:
self.option( 'valueViewBuilder' ),
referencesChanger:
self._referencesChanger
@@ -243,6 +247,7 @@
var self = this;
this.$claimview.claimview( {
+ dataTypeStore: this.option( 'dataTypeStore' ),
entityStore: this.option( 'entityStore' ),
helpMessage: this.option( 'helpMessage' ),
predefined: this.option( 'predefined' ),
diff --git a/lib/resources/jquery.wikibase/snakview/resources.php
b/lib/resources/jquery.wikibase/snakview/resources.php
index 6a77b5f..622f924 100644
--- a/lib/resources/jquery.wikibase/snakview/resources.php
+++ b/lib/resources/jquery.wikibase/snakview/resources.php
@@ -110,7 +110,6 @@
'jquery.wikibase.snakview.variations',
'jquery.wikibase.snakview.variations.Variation',
'wikibase.datamodel',
- 'wikibase.dataTypes',
),
'messages' => array(
'wikibase-snakview-variation-datavaluetypemismatch',
diff --git a/lib/resources/jquery.wikibase/snakview/snakview.js
b/lib/resources/jquery.wikibase/snakview/snakview.js
index 9e700e5..27cbfce 100644
--- a/lib/resources/jquery.wikibase/snakview/snakview.js
+++ b/lib/resources/jquery.wikibase/snakview/snakview.js
@@ -38,6 +38,8 @@
*
* @option {wikibase.ValueViewBuilder} valueViewBuilder
*
+ * @option {dataTypes.DataTypeStore} dataTypeStore
+ *
* @event startediting: Called before edit mode gets initialized.
* (1) {jQuery.Event} event
*
@@ -81,7 +83,8 @@
},
autoStartEditing: true,
entityStore: null,
- valueViewBuilder: null
+ valueViewBuilder: null,
+ dataTypeStore: null
},
/**
@@ -165,6 +168,11 @@
_valueViewBuilder: null,
/**
+ * @type {dataTypes.DataTypeStore}
+ */
+ _dataTypeStore: null,
+
+ /**
* @see jQuery.Widget._create
*/
_create: function() {
@@ -173,6 +181,7 @@
this._entityStore = this.option( 'entityStore' );
this._valueViewBuilder = this.option( 'valueViewBuilder' );
+ this._dataTypeStore = this.option( 'dataTypeStore' );
this._cachedValues = {};
@@ -742,7 +751,8 @@
new $.wikibase.snakview.ViewState( this ),
this.$snakValue,
this._entityStore,
- this._valueViewBuilder
+ this._valueViewBuilder,
+ this._dataTypeStore
);
}
},
diff --git
a/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js
b/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js
index cc9d5d0..57553ac 100644
--- a/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js
+++ b/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js
@@ -2,7 +2,7 @@
* @licence GNU GPL v2+
* @author Daniel Werner < [email protected] >
*/
-( function( mw, wb, $, dataTypeStore, dv ) {
+( function( mw, wb, $, dv ) {
'use strict';
var MODULE = $.wikibase.snakview.variations,
@@ -168,7 +168,7 @@
var dataType = false;
if( dataTypeId ) {
- dataType =
dataTypeStore.getDataType( dataTypeId );
+ dataType =
self._dataTypeStore.getDataType( dataTypeId );
}
// If the new value's type is not the
data value type used by the Snak's
@@ -372,4 +372,4 @@
}
} );
-}( mediaWiki, wikibase, jQuery, wikibase.dataTypes, dataValues ) );
+}( mediaWiki, wikibase, jQuery, dataValues ) );
diff --git
a/lib/resources/jquery.wikibase/snakview/snakview.variations.Variation.js
b/lib/resources/jquery.wikibase/snakview/snakview.variations.Variation.js
index 20f0bdc..c9488a3 100644
--- a/lib/resources/jquery.wikibase/snakview/snakview.variations.Variation.js
+++ b/lib/resources/jquery.wikibase/snakview/snakview.variations.Variation.js
@@ -30,13 +30,18 @@
* input elements for user interaction.
* @param {wb.store.EntityStore} entityStore
* @param {wb.ValueViewBuilder} valueViewBuilder
+ * @param {dataTypes.DataTypeStore} dataTypeStore
*
* @event afterdraw: Triggered on the Variation object after drawing
the variation.
* (1) {jQuery.Event}
*/
- var SELF = $.wikibase.snakview.variations.Variation =
- function WbSnakviewVariationsVariation( viewState, $viewPort,
entityStore, valueViewBuilder )
- {
+ var SELF = $.wikibase.snakview.variations.Variation = function
WbSnakviewVariationsVariation(
+ viewState,
+ $viewPort,
+ entityStore,
+ valueViewBuilder,
+ dataTypeStore
+ ) {
if( !( viewState instanceof $.wikibase.snakview.ViewState ) ) {
throw new Error( 'No ViewState object was provided to
the snakview variation' );
}
@@ -47,6 +52,7 @@
this._entityStore = entityStore;
this._valueViewBuilder = valueViewBuilder;
this._viewState = viewState;
+ this._dataTypeStore = dataTypeStore;
this.$viewPort = $viewPort;
this.$viewPort.addClass( this.variationBaseClass );
@@ -92,6 +98,11 @@
_viewState: null,
/**
+ * @type {dataTypes.DataTypeStore}
+ */
+ _dataTypeStore: null,
+
+ /**
* Will be called initially for new variation instances.
*
* @since 0.4
diff --git a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.claimview.tests.js
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.claimview.tests.js
index 21e121b..68630d7 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.claimview.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.claimview.tests.js
@@ -31,6 +31,9 @@
var options = {
// locked, index
value: value || null,
+ dataTypeStore: {
+ getDataType: function() {}
+ },
entityStore: entityStore,
valueViewBuilder: valueViewBuilder,
claimsChanger: 'I am a ClaimsChanger'
diff --git
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.snaklistview.tests.js
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.snaklistview.tests.js
index 704e421..b45a6b0 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.snaklistview.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.snaklistview.tests.js
@@ -70,6 +70,9 @@
function createSnaklistview( value, additionalOptions ) {
var options = $.extend( additionalOptions, {
value: ( value || null ),
+ dataTypeStore: {
+ getDataType: function() {}
+ },
entityStore: entityStore,
valueViewBuilder: valueViewBuilder
} );
diff --git a/repo/resources/wikibase.ui.entityViewInit.js
b/repo/resources/wikibase.ui.entityViewInit.js
index 89aa5d2..bf531ab 100644
--- a/repo/resources/wikibase.ui.entityViewInit.js
+++ b/repo/resources/wikibase.ui.entityViewInit.js
@@ -133,6 +133,7 @@
mw.config.get( 'wgUserLanguage' ),
mw
),
+ dataTypeStore: dataTypes,
languages: getUserLanguages()
} )
.on( 'labelviewchange labelviewafterstopediting', function(
event ) {
--
To view, visit https://gerrit.wikimedia.org/r/172692
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie2b6a7b6d44008b2b09932f211c0490db619c714
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