jenkins-bot has submitted this change and it was merged. Change subject: Use EntityIdPlainFormatter in badgeselector ......................................................................
Use EntityIdPlainFormatter in badgeselector Change-Id: I9644a31714ad9f337985dbb363be3e629bcf7c94 --- M view/resources/jquery/wikibase/jquery.wikibase.badgeselector.js M view/resources/jquery/wikibase/jquery.wikibase.descriptionview.js M view/resources/jquery/wikibase/jquery.wikibase.itemview.js M view/resources/jquery/wikibase/jquery.wikibase.propertyview.js M view/resources/jquery/wikibase/jquery.wikibase.sitelinkgrouplistview.js M view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js M view/resources/jquery/wikibase/jquery.wikibase.sitelinklistview.js M view/resources/jquery/wikibase/jquery.wikibase.sitelinkview.js M view/resources/jquery/wikibase/jquery.wikibase.statementgrouplistview.js M view/resources/jquery/wikibase/resources.php M view/resources/wikibase/view/ViewFactory.js M view/resources/wikibase/view/resources.php M view/tests/qunit/jquery/wikibase/jquery.wikibase.badgeselector.tests.js M view/tests/qunit/jquery/wikibase/jquery.wikibase.itemview.tests.js M view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgrouplistview.tests.js M view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js M view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinklistview.tests.js M view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkview.tests.js M view/tests/qunit/jquery/wikibase/jquery.wikibase.statementgrouplistview.tests.js M view/tests/qunit/jquery/wikibase/resources.php M view/tests/qunit/wikibase/view/ViewFactory.tests.js M view/tests/qunit/wikibase/view/resources.php 22 files changed, 87 insertions(+), 124 deletions(-) Approvals: Hoo man: Looks good to me, approved jenkins-bot: Verified diff --git a/view/resources/jquery/wikibase/jquery.wikibase.badgeselector.js b/view/resources/jquery/wikibase/jquery.wikibase.badgeselector.js index ab1ffa1..0eebcbc 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.badgeselector.js +++ b/view/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.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/view/resources/jquery/wikibase/jquery.wikibase.descriptionview.js b/view/resources/jquery/wikibase/jquery.wikibase.descriptionview.js index 2e73581..ec2ab0a 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.descriptionview.js +++ b/view/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/view/resources/jquery/wikibase/jquery.wikibase.itemview.js b/view/resources/jquery/wikibase/jquery.wikibase.itemview.js index f894d68..073bfbe 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.itemview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.itemview.js @@ -98,6 +98,8 @@ * * @constructor * + * @param {wikibase.entityIdFormatter.EntityIdPlainFormatter} options.entityIdPlainFormatter + * Required for dynamically rendering plain text references to `Entity`s. * @param {wikibase.store.EntityStore} options.entityStore * Required by sub-components of the `entityview` to enable those to dynamically query for * `Entity` objects. @@ -114,6 +116,7 @@ * @protected */ options: { + entityIdPlainFormatter: null, entityStore: null, valueViewBuilder: null, dataTypeStore: null @@ -165,6 +168,7 @@ claimGuidGenerator: claimGuidGenerator, dataTypeStore: this.option( 'dataTypeStore' ), entityStore: this.options.entityStore, + entityIdPlainFormatter: this.options.entityIdPlainFormatter, valueViewBuilder: this.options.valueViewBuilder, entityChangersFactory: this.options.entityChangersFactory } ) @@ -190,7 +194,7 @@ value: value, entityId: self.options.value.getId(), siteLinksChanger: self.options.entityChangersFactory.getSiteLinksChanger(), - entityStore: self.options.entityStore + entityIdPlainFormatter: self.options.entityIdPlainFormatter } ); }, diff --git a/view/resources/jquery/wikibase/jquery.wikibase.propertyview.js b/view/resources/jquery/wikibase/jquery.wikibase.propertyview.js index e4492d8..fcbc5aa 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.propertyview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.propertyview.js @@ -17,6 +17,8 @@ * * @constructor * + * @param {wikibase.entityIdFormatter.EntityIdPlainFormatter} options.entityIdPlainFormatter + * Required for dynamically rendering plain text references to `Entity`s. * @param {wikibase.store.EntityStore} options.entityStore * Required by sub-components of the `entityview` to enable those to dynamically query for * `Entity` objects. @@ -33,6 +35,7 @@ * @protected */ options: { + entityIdPlainFormatter: null, entityStore: null, valueViewBuilder: null, dataTypeStore: null @@ -105,6 +108,7 @@ value: this.options.value.getStatements(), claimGuidGenerator: claimGuidGenerator, dataTypeStore: this.option( 'dataTypeStore' ), + entityIdPlainFormatter: this.options.entityIdPlainFormatter, entityStore: this.options.entityStore, valueViewBuilder: this.options.valueViewBuilder, entityChangersFactory: this.options.entityChangersFactory diff --git a/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgrouplistview.js b/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgrouplistview.js index 70fef4e..f9bf807 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgrouplistview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgrouplistview.js @@ -18,7 +18,7 @@ * * @option {wikibase.entityChangers.SiteLinksChanger} siteLinksChanger * - * @option {wikibase.store.EntityStore} entityStore + * @option {wikibase.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/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js b/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js index f957b7c..14c6dff 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js @@ -28,9 +28,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.entityIdFormatter.EntityIdPlainFormatter} entityIdPlainFormatter * * @option {jQuery.util.EventSingletonManager} [eventSingletonManager] * Should be set when the widget instance is part of a jQuery.wikibase.sitelinkgrouplistview. @@ -62,7 +62,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 ' @@ -83,7 +83,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' ); } @@ -179,7 +179,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/view/resources/jquery/wikibase/jquery.wikibase.sitelinklistview.js b/view/resources/jquery/wikibase/jquery.wikibase.sitelinklistview.js index 257ff90..497fcef 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.sitelinklistview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.sitelinklistview.js @@ -29,7 +29,7 @@ * * @option {wikibase.entityChangers.SiteLinksChanger} siteLinksChanger * - * @option {wikibase.store.EntityStore} entityStore + * @option {wikibase.entityIdFormatter.EntityIdPlainFormatter} entityIdPlainFormatter * * @option {jQuery.util.EventSingletonManager} [eventSingletonManager] * Should be set when the widget instance is part of a sitelinkgroupview. @@ -55,7 +55,7 @@ value: [], allowedSiteIds: [], siteLinksChanger: null, - entityStore: null, + entityIdPlainFormatter: null, eventSingletonManager: null, $counter: null, autoInput: true @@ -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 option(s) missing' ); } @@ -141,7 +141,7 @@ return wb.sites.getSite( siteId ); } ); }, - entityStore: self.options.entityStore + entityIdPlainFormatter: self.options.entityIdPlainFormatter }; } } ), diff --git a/view/resources/jquery/wikibase/jquery.wikibase.sitelinkview.js b/view/resources/jquery/wikibase/jquery.wikibase.sitelinkview.js index fd7d0fb..a036cb2 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.sitelinkview.js +++ b/view/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.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/view/resources/jquery/wikibase/jquery.wikibase.statementgrouplistview.js b/view/resources/jquery/wikibase/jquery.wikibase.statementgrouplistview.js index 797a27e..993c1c5 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.statementgrouplistview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.statementgrouplistview.js @@ -23,6 +23,8 @@ * The `Statements` to be displayed by this view. * @param {wikibase.utilities.ClaimGuidGenerator} options.claimGuidGenerator * Required for dynamically generating GUIDs for new `Statement`s. + * @param {wikibase.entityIdFormatter.EntityIdPlainFormatter} options.entityIdPlainFormatter + * Required for dynamically rendering plain text references to `Entity`s. * @param {wikibase.store.EntityStore} options.entityStore * Required for dynamically gathering `Entity`/`Property` information. * @param {wikibase.ValueViewBuilder} options.valueViewBuilder @@ -48,6 +50,7 @@ templateShortCuts: {}, value: null, claimGuidGenerator: null, + entityIdPlainFormatter: null, entityStore: null, valueViewBuilder: null, entityChangersFactory: null, @@ -118,9 +121,6 @@ var entityIdHtmlFormatter = new wb.entityIdFormatter.SimpleEntityIdHtmlFormatter( this.options.entityStore ); - var entityIdPlainFormatter = new wb.entityIdFormatter.SimpleEntityIdPlainFormatter( - this.options.entityStore - ); $listview.listview( { listItemAdapter: new $.wikibase.listview.ListItemAdapter( { listItemWidget: $.wikibase.statementgroupview, @@ -130,7 +130,7 @@ claimGuidGenerator: self.options.claimGuidGenerator, 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/view/resources/jquery/wikibase/resources.php b/view/resources/jquery/wikibase/resources.php index 316a31b..b197af5 100644 --- a/view/resources/jquery/wikibase/resources.php +++ b/view/resources/jquery/wikibase/resources.php @@ -72,7 +72,6 @@ 'wikibase.datamodel.Item', 'wikibase.datamodel.StatementGroupSet', 'wikibase.entityIdFormatter.SimpleEntityIdHtmlFormatter', - 'wikibase.entityIdFormatter.SimpleEntityIdPlainFormatter', ), ), diff --git a/view/resources/wikibase/view/ViewFactory.js b/view/resources/wikibase/view/ViewFactory.js index 9113628..9803473 100644 --- a/view/resources/wikibase/view/ViewFactory.js +++ b/view/resources/wikibase/view/ViewFactory.js @@ -136,6 +136,7 @@ { dataTypeStore: this._dataTypeStore, entityChangersFactory: this._entityChangersFactory, + entityIdPlainFormatter: new wb.entityIdFormatter.SimpleEntityIdPlainFormatter( this._entityStore ), entityStore: this._entityStore, languages: this._userLanguages, value: entity, diff --git a/view/resources/wikibase/view/resources.php b/view/resources/wikibase/view/resources.php index 9b7123d..199571a 100644 --- a/view/resources/wikibase/view/resources.php +++ b/view/resources/wikibase/view/resources.php @@ -29,6 +29,7 @@ 'dependencies' => array( 'jquery.wikibase.itemview', 'jquery.wikibase.propertyview', + 'wikibase.entityIdFormatter.SimpleEntityIdPlainFormatter', 'wikibase.view.__namespace', 'wikibase.ValueViewBuilder' ) diff --git a/view/tests/qunit/jquery/wikibase/jquery.wikibase.badgeselector.tests.js b/view/tests/qunit/jquery/wikibase/jquery.wikibase.badgeselector.tests.js index 3fb9c75..8394d6d 100644 --- a/view/tests/qunit/jquery/wikibase/jquery.wikibase.badgeselector.tests.js +++ b/view/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/view/tests/qunit/jquery/wikibase/jquery.wikibase.itemview.tests.js b/view/tests/qunit/jquery/wikibase/jquery.wikibase.itemview.tests.js index ea54e9a..3ecac9d 100644 --- a/view/tests/qunit/jquery/wikibase/jquery.wikibase.itemview.tests.js +++ b/view/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/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgrouplistview.tests.js b/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgrouplistview.tests.js index 2068fa5..25c0d08 100644 --- a/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgrouplistview.tests.js +++ b/view/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/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js b/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js index 7cecec2..b71e651 100644 --- a/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js +++ b/view/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/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinklistview.tests.js b/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinklistview.tests.js index 0888fb3..a5955b6 100644 --- a/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinklistview.tests.js +++ b/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinklistview.tests.js @@ -11,9 +11,9 @@ */ function createSitelinklistview( options ) { options = $.extend( { - siteLinksChanger: 'I am a SiteLinksChanger', - entityStore: new wb.store.EntityStore(), - allowedSiteIds: ['aawiki', 'enwiki'] + allowedSiteIds: ['aawiki', 'enwiki'], + entityIdPlainFormatter: 'I am an EntityIdPlainFormatter', + siteLinksChanger: 'I am a SiteLinksChanger' }, options ); var $sitelinklistview = $( '<table/>' ) diff --git a/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkview.tests.js b/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkview.tests.js index b949280..fa80fb2 100644 --- a/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkview.tests.js +++ b/view/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/view/tests/qunit/jquery/wikibase/jquery.wikibase.statementgrouplistview.tests.js b/view/tests/qunit/jquery/wikibase/jquery.wikibase.statementgrouplistview.tests.js index cd0e87b..99f2fcf 100644 --- a/view/tests/qunit/jquery/wikibase/jquery.wikibase.statementgrouplistview.tests.js +++ b/view/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/view/tests/qunit/jquery/wikibase/resources.php b/view/tests/qunit/jquery/wikibase/resources.php index 6c3d534..5872e4c 100644 --- a/view/tests/qunit/jquery/wikibase/resources.php +++ b/view/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', ), ), @@ -234,7 +231,6 @@ 'dependencies' => array( 'jquery.wikibase.sitelinkgroupview', 'wikibase.datamodel', - 'wikibase.store.EntityStore', 'wikibase.tests.qunit.testrunner', ), ), @@ -246,7 +242,6 @@ 'dependencies' => array( 'jquery.wikibase.sitelinklistview', 'wikibase.datamodel', - 'wikibase.store.EntityStore', 'wikibase.tests.qunit.testrunner', ), ), @@ -258,7 +253,6 @@ 'dependencies' => array( 'jquery.wikibase.sitelinkview', 'wikibase.datamodel', - 'wikibase.store.EntityStore', 'wikibase.tests.qunit.testrunner', ), ), diff --git a/view/tests/qunit/wikibase/view/ViewFactory.tests.js b/view/tests/qunit/wikibase/view/ViewFactory.tests.js index e614346..a17e5fb 100644 --- a/view/tests/qunit/wikibase/view/ViewFactory.tests.js +++ b/view/tests/qunit/wikibase/view/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.entityIdFormatter.EntityIdPlainFormatter ), entityStore: entityStore, languages: userLanguages, value: entity, valueViewBuilder: wb.ValueViewBuilder.thisValues[0] - } ); + } ) ); wb.ValueViewBuilder.restore(); } ); diff --git a/view/tests/qunit/wikibase/view/resources.php b/view/tests/qunit/wikibase/view/resources.php index 5e0bc17..9d39780 100644 --- a/view/tests/qunit/wikibase/view/resources.php +++ b/view/tests/qunit/wikibase/view/resources.php @@ -20,6 +20,8 @@ 'ViewFactory.tests.js', ), 'dependencies' => array( + 'wikibase.store.EntityStore', + 'wikibase.entityIdFormatter.EntityIdPlainFormatter', 'wikibase.view.ViewFactory', 'wikibase.ValueViewBuilder' ), @@ -28,4 +30,5 @@ ); return $modules; + } ); -- To view, visit https://gerrit.wikimedia.org/r/199296 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I9644a31714ad9f337985dbb363be3e629bcf7c94 Gerrit-PatchSet: 15 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Adrian Lang <adrian.he...@wikimedia.de> Gerrit-Reviewer: Adrian Lang <adrian.he...@wikimedia.de> Gerrit-Reviewer: Bene <benestar.wikime...@gmail.com> Gerrit-Reviewer: Hoo man <h...@online.de> Gerrit-Reviewer: Jonas Kress (WMDE) <jonas.kr...@wikimedia.de> Gerrit-Reviewer: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits