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

Reply via email to