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