Adrian Lang has uploaded a new change for review.

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

Change subject: Use EntityIdPlainFormatter in badgeselector
......................................................................

Use EntityIdPlainFormatter in badgeselector

Change-Id: I9644a31714ad9f337985dbb363be3e629bcf7c94
---
M lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
M lib/resources/jquery.wikibase/jquery.wikibase.descriptionview.js
M lib/resources/jquery.wikibase/jquery.wikibase.itemview.js
M lib/resources/jquery.wikibase/jquery.wikibase.propertyview.js
M lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgrouplistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
M lib/resources/jquery.wikibase/jquery.wikibase.sitelinklistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.sitelinkview.js
M lib/resources/jquery.wikibase/jquery.wikibase.statementgrouplistview.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.badgeselector.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.itemview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkgrouplistview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkgroupview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinklistview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkview.tests.js
M 
lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementgrouplistview.tests.js
M lib/tests/qunit/jquery.wikibase/resources.php
M view/resources/ViewFactory.js
M view/resources/resources.php
M view/tests/qunit/ViewFactory.tests.js
M view/tests/qunit/resources.php
21 files changed, 76 insertions(+), 119 deletions(-)


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

diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
index f2bc1bd..bc2b125 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
@@ -27,7 +27,7 @@
  *         Structure: {<{string} item id>: <{string} custom badge css classes>}
  *         Default: {}
  *
- * @option {wikibase.store.EntityStore} entityStore
+ * @option {wikibase.view.entityIdFormatter.entityIdPlainFormatter} 
entityIdPlainFormatter
  *
  * @option {string} languageCode
  *
@@ -61,7 +61,7 @@
                templateShortCuts: {},
                value: [],
                badges: {},
-               entityStore: null,
+               entityIdPlainFormatter: null,
                languageCode: null,
                isRtl: false,
                messages: {
@@ -73,7 +73,7 @@
         * @see jQuery.Widget._create
         */
        _create: function() {
-               if( !this.options.entityStore || !this.options.languageCode ) {
+               if( !this.options.entityIdPlainFormatter || 
!this.options.languageCode ) {
                        throw new Error( 'Required option(s) missing' );
                }
 
@@ -193,11 +193,11 @@
                        this._addPlaceholderBadge( this.options.value[i] );
                }
 
-               this.options.entityStore.getMultiple( this.options.value )
-               .done( function( items ) {
-                       for( var i = 0; i < items.length; i++ ) {
-                               self._addBadge( items[ i ].getContent() );
-                       }
+               $.when.apply( $, $.map( this.options.value, function( badgeId ) 
{
+                       return self.options.entityIdPlainFormatter.format( 
badgeId ).done( function( badgeLabel ) {
+                               self._addBadge( badgeId, badgeLabel );
+                       } );
+               } ) ).done( function() {
                        deferred.resolve();
                } )
                .fail( function() {
@@ -276,31 +276,27 @@
                                return itemId;
                        } );
 
-               this.options.entityStore.getMultiple( badgeIds )
-               .done( function( badges ) {
+               $.when.apply( $, $.map( badgeIds, function( badgeId ) {
+                       return self.options.entityIdPlainFormatter.format( 
badgeId );
+               } ) ).done( function( /*…*/ ) {
+                       var badgeLabels = arguments;
                        $menu.empty();
 
                        $.each( badgeIds, function( index, itemId ) {
-                               var item = badges[index] && 
badges[index].getContent();
-
-                               if( !item ) {
-                                       return true;
-                               }
-
-                               var data = self._getBadgeDataForItem( item );
+                               var badgeLabel = badgeLabels[ index ];
                                var $item = $( '<a/>' )
                                        .on( 'click.' + self.widgetName, 
function( event ) {
                                                event.preventDefault();
                                        } )
-                                       .text( data.label );
+                                       .text( badgeLabel );
 
                                $( '<li/>' )
                                .addClass( self.widgetFullName + '-menuitem-' + 
itemId )
                                .data( self.widgetName + '-menuitem-badge', 
itemId )
                                .append( $item
                                        .prepend( mw.wbTemplate( 'wb-badge',
-                                               data.cssClasses,
-                                               data.label,
+                                               itemId + ' ' + 
self.options.badges[ itemId ],
+                                               badgeLabel,
                                                itemId
                                        ) )
                                )
@@ -315,21 +311,6 @@
                } );
 
                return deferred;
-       },
-
-       /**
-        * @param {wikibase.datamodel.Item} item
-        *
-        * @return {Object} A plain object with values for keys label and 
cssClasses
-        */
-       _getBadgeDataForItem: function( item ) {
-               var term = item.getFingerprint().getLabelFor( 
this.options.languageCode ),
-                       itemId = item.getId();
-
-               return {
-                       label: term ? term.getText() : itemId,
-                       cssClasses: itemId + ' ' + this.options.badges[ itemId ]
-               };
        },
 
        /**
@@ -348,8 +329,8 @@
 
                        this._trigger( 'change' );
                } else {
-                       this.options.entityStore.get( badgeId ).done( function( 
badgeItem ) {
-                               self._addBadge( badgeItem.getContent() );
+                       this.options.entityIdPlainFormatter.format( badgeId 
).done( function( badgeLabel ) {
+                               self._addBadge( badgeId, badgeLabel );
                                self._getEmptyBadge().remove();
                                self._trigger( 'change' );
                        } );
@@ -376,16 +357,15 @@
        },
 
        /**
-        * @param {wikibase.datamodel.Item} badgeItem
+        * @param {string} badgeId
+        * @param {string} badgeLabel
         */
-       _addBadge: function( badgeItem ) {
-               var badgeId = badgeItem.getId(),
-                       badgeData = this._getBadgeDataForItem( badgeItem ),
-                       $placeholderBadge = this.element.children( 
'[data-wb-badge="' + badgeId + '"]' );
+       _addBadge: function( badgeId, badgeLabel ) {
+               var $placeholderBadge = this.element.children( 
'[data-wb-badge="' + badgeId + '"]' );
 
                var $badge = mw.wbTemplate( 'wb-badge',
-                       badgeData.cssClasses,
-                       badgeData.label,
+                       badgeId + ' ' + this.options.badges[ badgeId ],
+                       badgeLabel,
                        badgeId
                );
 
@@ -457,11 +437,11 @@
 
                        // Since the widget might have been initialized on 
pre-existing DOM, badges need to be
                        // fetched to ensure their data is available for 
resetting:
-                       this.options.entityStore.getMultiple( 
this.options.value )
-                       .done( function( items ) {
-                               for( var i = 0; i < items.length; i++ ) {
-                                       self._addBadge( items[ i ].getContent() 
);
-                               }
+                       $.when.apply( $, $.map( this.options.value, function( 
badgeId ) {
+                               return 
self.options.entityIdPlainFormatter.format( badgeId ).done( function( 
badgeLabel ) {
+                                       self._addBadge( badgeId, badgeLabel );
+                               } );
+                       } ) ).done( function() {
                                self._trigger( 'afterstopediting', null, 
[dropValue] );
                        } );
                }
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.descriptionview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.descriptionview.js
index e993e23..ec25ba4 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.descriptionview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.descriptionview.js
@@ -21,8 +21,6 @@
  *         Default: mw.msg( 'wikibase-description-input-help-message' )
  *
  * @option {wikibase.entityChangers.DescriptionsChanger} descriptionsChanger
- *
- * @option {wikibase.store.EntityStore} entityStore
  */
 $.widget( 'wikibase.descriptionview', PARENT, {
        /**
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.itemview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.itemview.js
index b398e48..9c454f7 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.itemview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.itemview.js
@@ -87,6 +87,7 @@
                        dataTypeStore: this.option( 'dataTypeStore' ),
                        entityType: this.options.value.getType(),
                        entityStore: this.options.entityStore,
+                       entityIdPlainFormatter: 
this.options.entityIdPlainFormatter,
                        valueViewBuilder: this.options.valueViewBuilder,
                        entityChangersFactory: 
this.options.entityChangersFactory
                } )
@@ -112,7 +113,7 @@
                        value: value,
                        entityId: self.options.value.getId(),
                        siteLinksChanger: 
self.options.entityChangersFactory.getSiteLinksChanger(),
-                       entityStore: self.options.entityStore
+                       entityIdPlainFormatter: 
self.options.entityIdPlainFormatter
                } );
        },
 
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.propertyview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.propertyview.js
index 2df4fdf..e8d1a18 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.propertyview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.propertyview.js
@@ -106,6 +106,7 @@
                        claimGuidGenerator: claimGuidGenerator,
                        dataTypeStore: this.option( 'dataTypeStore' ),
                        entityType: this.options.value.getType(),
+                       entityIdPlainFormatter: 
this.options.entityIdPlainFormatter,
                        entityStore: this.options.entityStore,
                        valueViewBuilder: this.options.valueViewBuilder,
                        entityChangersFactory: 
this.options.entityChangersFactory
diff --git 
a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgrouplistview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgrouplistview.js
index 70fef4e..358980c 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgrouplistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgrouplistview.js
@@ -18,7 +18,7 @@
  *
  * @option {wikibase.entityChangers.SiteLinksChanger} siteLinksChanger
  *
- * @option {wikibase.store.EntityStore} entityStore
+ * @option {wikibase.view.entityIdFormatter.EntityIdPlainFormatter} 
entityIdPlainFormatter
  */
 $.widget( 'wikibase.sitelinkgrouplistview', PARENT, {
        options: {
@@ -29,7 +29,7 @@
                templateShortCuts: {},
                value: null,
                siteLinksChanger: null,
-               entityStore: null
+               entityIdPlainFormatter: null
        },
 
        /**
@@ -46,7 +46,7 @@
         * @see jQuery.ui.TemplatedWidget._create
         */
        _create: function() {
-               if( !this.options.value || !this.options.siteLinksChanger || 
!this.options.entityStore ) {
+               if( !this.options.value || !this.options.siteLinksChanger || 
!this.options.entityIdPlainFormatter ) {
                        throw new Error( 'Required option(s) missing' );
                }
 
@@ -93,7 +93,7 @@
                                        return {
                                                value: value,
                                                siteLinksChanger: 
self.options.siteLinksChanger,
-                                               entityStore: 
self.options.entityStore,
+                                               entityIdPlainFormatter: 
self.options.entityIdPlainFormatter,
                                                eventSingletonManager: 
this._eventSingletonManager,
                                                helpMessage: mw.msg( 
'wikibase-sitelinkgroupview-input-help-message' )
                                        };
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
index af82696..77120b6 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
@@ -16,9 +16,9 @@
  *         Object representing the widget's value.
  *         Structure: { group: <{string}>, siteLinks: 
<{wikibase.datamodel.SiteLink[]}> }
  *
- * @option {wikibase.entityChangers:SiteLinksChanger} siteLinksChanger
+ * @option {wikibase.entityChangers.SiteLinksChanger} siteLinksChanger
  *
- * @option {wikibase.store.EntityStore} entityStore
+ * @option {wikibase.view.entityIdFormatter.EntityIdPlainFormatter} 
entityIdPlainFormatter
  *
  * @option {jQuery.util.EventSingletonManager} [eventSingletonManager]
  *         Should be set when the widget instance is part of a 
jQuery.wikibase.sitelinkgrouplistview.
@@ -49,7 +49,7 @@
                        $counter: '.wikibase-sitelinkgroupview-counter'
                },
                value: null,
-               entityStore: null,
+               entityIdPlainFormatter: null,
                siteLinksChanger: null,
                eventSingletonManager: null,
                helpMessage: 'Add a site link by specifying a site and a page 
of that site, edit or remove '
@@ -70,7 +70,7 @@
         * @see jQuery.ui.TemplatedWidget._create
         */
        _create: function() {
-               if( !this.options.siteLinksChanger || !this.options.entityStore 
) {
+               if( !this.options.siteLinksChanger || 
!this.options.entityIdPlainFormatter ) {
                        throw new Error( 'Required parameter(s) missing' );
                }
 
@@ -166,7 +166,7 @@
                        allowedSiteIds: this.options.value
                                ? getSiteIdsOfGroup( this.options.value.group )
                                : [],
-                       entityStore: this.options.entityStore,
+                       entityIdPlainFormatter: 
this.options.entityIdPlainFormatter,
                        siteLinksChanger: this.options.siteLinksChanger,
                        eventSingleton: this._eventSingleton,
                        $counter: this.$counter,
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinklistview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinklistview.js
index 2f3d01b..93bd88e 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinklistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinklistview.js
@@ -20,7 +20,7 @@
  *
  * @option {wikibase.entityChangers.SiteLinksChanger} siteLinksChanger
  *
- * @option {wikibase.store.EntityStore} entityStore
+ * @option {wikibase.view.entityIdFormatter.EntityIdPlainFormatter} 
entityIdPlainFormatter
  *
  * @option {jQuery.util.EventSingletonManager} [eventSingletonManager]
  *         Should be set when the widget instance is part of a 
sitelinkgroupview.
@@ -46,7 +46,7 @@
                value: [],
                allowedSiteIds: [],
                siteLinksChanger: null,
-               entityStore: null,
+               entityIdPlainFormatter: null,
                eventSingletonManager: null,
                $counter: null,
                autoInput: true
@@ -61,7 +61,7 @@
         * @see jQuery.ui.TemplatedWidget._create
         */
        _create: function() {
-               if( !this.options.siteLinksChanger || !this.options.entityStore 
) {
+               if( !this.options.siteLinksChanger || 
!this.options.entityIdPlainFormatter ) {
                        throw new Error( 'Required option(s) missing' );
                }
 
@@ -132,7 +132,7 @@
                                                                return 
wb.sites.getSite( siteId );
                                                        } );
                                                },
-                                               entityStore: 
self.options.entityStore
+                                               entityIdPlainFormatter: 
self.options.entityIdPlainFormatter
                                        };
                                }
                        } ),
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkview.js
index 5deba41..08e7a87 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkview.js
@@ -19,7 +19,7 @@
  *         Function returning an array of wikibase.Site objects.
  *         Default: function() { return []; }
  *
- * @option {wikibase.store.EntityStore} entityStore
+ * @option {wikibase.view.entityIdFormatter.EntityIdPlainFormatter} 
entityIdPlainFormatter
  *
  * @option {string} [helpMessage]
  *         Default: mw.msg( 'wikibase-sitelinks-input-help-message' )
@@ -76,7 +76,7 @@
                },
                value: null,
                getAllowedSites: function() { return []; },
-               entityStore: null,
+               entityIdPlainFormatter: null,
                helpMessage: mw.msg( 'wikibase-sitelinks-input-help-message' )
        },
 
@@ -94,7 +94,7 @@
         * @see jQuery.ui.TemplatedWidget._create
         */
        _create: function() {
-               if( !this.options.entityStore || !this.options.helpMessage ) {
+               if( !this.options.entityIdPlainFormatter || 
!this.options.helpMessage ) {
                        throw new Error( 'Required option(s) missing' );
                }
 
@@ -145,7 +145,7 @@
                .badgeselector( {
                        value: this.options.value ? 
this.options.value.getBadges() : [],
                        badges: badges,
-                       entityStore: this.options.entityStore,
+                       entityIdPlainFormatter: 
this.options.entityIdPlainFormatter,
                        languageCode: mw.config.get( 'wgUserLanguage' ),
                        emptyBadgeTitle: mw.msg( 'wikibase-add-badges' ),
                        isRtl: $( 'body' ).hasClass( 'rtl' ),
diff --git 
a/lib/resources/jquery.wikibase/jquery.wikibase.statementgrouplistview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.statementgrouplistview.js
index 048a1f5..21da5db 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.statementgrouplistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.statementgrouplistview.js
@@ -123,9 +123,6 @@
                var entityIdHtmlFormatter = new 
wb.view.entityIdFormatter.SimpleEntityIdHtmlFormatter(
                        this.options.entityStore
                );
-               var entityIdPlainFormatter = new 
wb.view.entityIdFormatter.SimpleEntityIdPlainFormatter(
-                       this.options.entityStore
-               );
                this.$listview.listview( {
                        listItemAdapter: new 
$.wikibase.listview.ListItemAdapter( {
                                listItemWidget: $.wikibase.statementgroupview,
@@ -136,7 +133,7 @@
                                                entityType: 
self.options.entityType,
                                                dataTypeStore: 
self.options.dataTypeStore,
                                                entityIdHtmlFormatter: 
entityIdHtmlFormatter,
-                                               entityIdPlainFormatter: 
entityIdPlainFormatter,
+                                               entityIdPlainFormatter: 
self.options.entityIdPlainFormatter,
                                                entityStore: 
self.options.entityStore,
                                                valueViewBuilder: 
self.options.valueViewBuilder,
                                                entityChangersFactory: 
self.options.entityChangersFactory
diff --git 
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.badgeselector.tests.js 
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.badgeselector.tests.js
index 3fb9c75..8394d6d 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.badgeselector.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.badgeselector.tests.js
@@ -18,38 +18,6 @@
        }
 } ) );
 
-var entities =  {
-       Q1: new wb.store.FetchedContent( {
-               title: new mw.Title( 'Item:Q1' ),
-               content: new wb.datamodel.Item( 'Q1',
-                       new wb.datamodel.Fingerprint( new wb.datamodel.TermMap( 
[
-                               new wb.datamodel.Term( 'en', 'Q1-label' )
-                       ] ) )
-               )
-       } ),
-       Q2: new wb.store.FetchedContent( {
-               title: new mw.Title( 'Item:Q2' ),
-               content: new wb.datamodel.Item( 'Q2',
-                       new wb.datamodel.Fingerprint( new wb.datamodel.TermMap( 
[
-                               new wb.datamodel.Term( 'en', 'Q2-label' )
-                       ] ) )
-               )
-       } ),
-       Q3: new wb.store.FetchedContent( {
-               title: new mw.Title( 'Item:Q3' ),
-               content: new wb.datamodel.Item( 'Q3',
-                       new wb.datamodel.Fingerprint( new wb.datamodel.TermMap( 
[
-                               new wb.datamodel.Term( 'en', 'Q3-label' )
-                       ] ) )
-               )
-       } )
-};
-
-var entityStore = new wb.store.EntityStore();
-entityStore.get = function( entityId ) {
-       return $.Deferred().resolve( entities[entityId] );
-};
-
 /**
  * @param {Object} [options]
  * @return {jQuery}
@@ -61,7 +29,9 @@
                        Q2: 'additionalCssClass-21 additionalCssClass22',
                        Q3: 'additionalCssClass-3'
                },
-               entityStore: entityStore,
+               entityIdPlainFormatter: function( entityId ) {
+                       return $.Deferred().resolve( entityId ).promise();
+               },
                languageCode: 'en'
        }, options || {} );
 
diff --git a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.itemview.tests.js 
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.itemview.tests.js
index f89db4e..62acaec 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.itemview.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.itemview.tests.js
@@ -12,6 +12,7 @@
  */
 var createItemview = function( options, $node ) {
        options = $.extend( {
+               entityIdPlainFormatter: 'I am an EntityIdPlainFormatter',
                entityStore: new wb.store.EntityStore(),
                entityChangersFactory: {
                        getAliasesChanger: function() { return 'I am an 
AliasesChanger'; },
diff --git 
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkgrouplistview.tests.js
 
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkgrouplistview.tests.js
index f5581a9..f5753c3 100644
--- 
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkgrouplistview.tests.js
+++ 
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkgrouplistview.tests.js
@@ -12,7 +12,7 @@
 function createSitelinkgrouplistview( options ) {
        options = $.extend( {
                siteLinksChanger: 'i am a SiteLinksChanger',
-               entityStore: 'i am an EntityStore'
+               entityIdPlainFormatter: 'i am an EntityIdPlainFormatter'
        }, options );
 
        return $( '<div/>' )
diff --git 
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkgroupview.tests.js 
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkgroupview.tests.js
index 42f6f83..a579158 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkgroupview.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkgroupview.tests.js
@@ -12,7 +12,7 @@
 function createSitelinkgroupview( options ) {
        options = $.extend( {
                siteLinksChanger: 'i am a SiteLinksChanger',
-               entityStore: new wb.store.EntityStore()
+               entityIdPlainFormatter: 'i am an EntityIdPlainFormatter'
        }, options );
 
        var $sitelinkgroupview = $( '<div/>' )
diff --git 
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinklistview.tests.js 
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinklistview.tests.js
index 0d9e275..b514714 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinklistview.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinklistview.tests.js
@@ -11,9 +11,9 @@
  */
 function createSitelinklistview( options ) {
        options = $.extend( {
+               allowedSiteIds: ['aawiki', 'enwiki'],
+               entityIdPlainFormatter: 'I am an EntityIdPlainFormatter',
                siteLinksChanger: 'i am a SiteLinksChanger',
-               entityStore: new wb.store.EntityStore(),
-               allowedSiteIds: ['aawiki', 'enwiki']
        }, options );
 
        var $sitelinklistview = $( '<table/>' )
diff --git 
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkview.tests.js 
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkview.tests.js
index b949280..fa80fb2 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkview.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkview.tests.js
@@ -11,7 +11,7 @@
         */
        function createSitelinkview( options ) {
                options = $.extend( {
-                       entityStore: new wb.store.EntityStore(),
+                       entityIdPlainFormatter: 'i am an 
EntityIdPlainFormatter',
                        allowedSiteIds: ['aawiki', 'enwiki']
                }, options );
 
diff --git 
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementgrouplistview.tests.js
 
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementgrouplistview.tests.js
index e9ebc0e..b214622 100644
--- 
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementgrouplistview.tests.js
+++ 
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementgrouplistview.tests.js
@@ -19,6 +19,11 @@
 var createStatementgrouplistview = function( options, $node ) {
        options = $.extend( {
                claimGuidGenerator: 'I am a ClaimGuidGenerator',
+               entityIdPlainFormatter: {
+                       format: function( entityId ) {
+                               return $.Deferred().resolve( entityId 
).promise();
+                       }
+               },
                entityStore: entityStore,
                valueViewBuilder: 'i am a ValueViewBuilder',
                entityChangersFactory: {
diff --git a/lib/tests/qunit/jquery.wikibase/resources.php 
b/lib/tests/qunit/jquery.wikibase/resources.php
index a76596b..c3f4b0f 100644
--- a/lib/tests/qunit/jquery.wikibase/resources.php
+++ b/lib/tests/qunit/jquery.wikibase/resources.php
@@ -33,10 +33,7 @@
                        ),
                        'dependencies' => array(
                                'jquery.wikibase.badgeselector',
-                               'mediawiki.Title',
                                'wikibase.datamodel',
-                               'wikibase.store.EntityStore',
-                               'wikibase.store.FetchedContent',
                        ),
                ),
 
diff --git a/view/resources/ViewFactory.js b/view/resources/ViewFactory.js
index 248d512..1524a99 100644
--- a/view/resources/ViewFactory.js
+++ b/view/resources/ViewFactory.js
@@ -127,6 +127,7 @@
                        {
                                dataTypeStore: this._dataTypeStore,
                                entityChangersFactory: 
this._entityChangersFactory,
+                               entityIdPlainFormatter: new 
wb.view.entityIdFormatter.SimpleEntityIdPlainFormatter( this._entityStore ),
                                entityStore: this._entityStore,
                                languages: this._userLanguages,
                                value: entity,
diff --git a/view/resources/resources.php b/view/resources/resources.php
index 2281692..d4406a7 100644
--- a/view/resources/resources.php
+++ b/view/resources/resources.php
@@ -27,6 +27,7 @@
                                'jquery.wikibase.itemview',
                                'jquery.wikibase.propertyview',
                                'wikibase.view.__namespace',
+                               
'wikibase.view.entityIdFormatter.SimpleEntityIdPlainFormatter',
                                'wikibase.ValueViewBuilder'
                        )
                ),
diff --git a/view/tests/qunit/ViewFactory.tests.js 
b/view/tests/qunit/ViewFactory.tests.js
index e614346..2d8134a 100644
--- a/view/tests/qunit/ViewFactory.tests.js
+++ b/view/tests/qunit/ViewFactory.tests.js
@@ -16,7 +16,8 @@
        }
 
        QUnit.test( 'getEntityView constructs correct views', function( assert 
) {
-               var viewFactory = new ViewFactory(),
+               var entityStore = new wb.store.EntityStore(),
+                       viewFactory = new ViewFactory( null, null, null, 
entityStore ),
                        fooView = {},
                        $dom = $( '<div/>' ),
                        FooView = $dom.fooview = $.wikibase.fooview = 
sinon.spy();
@@ -29,7 +30,8 @@
        } );
 
        QUnit.test( 'getEntityView throws on incorrect views', function( assert 
) {
-               var viewFactory = new ViewFactory();
+               var entityStore = new wb.store.EntityStore(),
+                       viewFactory = new ViewFactory( null, null, null, 
entityStore );
 
                assert.throws(
                        function() {
@@ -44,7 +46,7 @@
                        dataTypeStore = {},
                        entity = getEntityStub( 'foo' ),
                        entityChangersFactory = {},
-                       entityStore = {},
+                       entityStore = new wb.store.EntityStore(),
                        expertStore = {},
                        formatterStore = {},
                        messageProvider = {},
@@ -77,14 +79,15 @@
                        contentLanguages
                );
 
-               sinon.assert.calledWith( FooView, {
+               sinon.assert.calledWith( FooView, sinon.match( {
                        dataTypeStore: dataTypeStore,
                        entityChangersFactory: entityChangersFactory,
+                       entityIdPlainFormatter: sinon.match.instanceOf( 
wb.view.entityIdFormatter.EntityIdPlainFormatter ),
                        entityStore: entityStore,
                        languages: userLanguages,
                        value: entity,
                        valueViewBuilder: wb.ValueViewBuilder.thisValues[0]
-               } );
+               } ) );
 
                wb.ValueViewBuilder.restore();
        } );
diff --git a/view/tests/qunit/resources.php b/view/tests/qunit/resources.php
index 4a52209..5b3a7d4 100644
--- a/view/tests/qunit/resources.php
+++ b/view/tests/qunit/resources.php
@@ -20,6 +20,8 @@
                                'ViewFactory.tests.js',
                        ),
                        'dependencies' => array(
+                               'wikibase.store.EntityStore',
+                               
'wikibase.view.entityIdFormatter.EntityIdPlainFormatter',
                                'wikibase.view.ViewFactory',
                                'wikibase.ValueViewBuilder'
                        ),

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9644a31714ad9f337985dbb363be3e629bcf7c94
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