Adrian Lang has uploaded a new change for review.
https://gerrit.wikimedia.org/r/172952
Change subject: Remove _fetchItems
......................................................................
Remove _fetchItems
Change-Id: I69a7a282e2760d931677d3fefa1bc18bb9cba1e3
---
M lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
1 file changed, 12 insertions(+), 41 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/52/172952/1
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
b/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
index 7431b97..1829847 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
@@ -193,10 +193,10 @@
this._addPlaceholderBadge( this.options.value[i] );
}
- this._fetchItems( this.options.value )
+ this.options.entityStore.getMultiple( this.options.value )
.done( function( items ) {
- for( var i = 0; i < self.options.value.length; i++ ) {
- self._addBadge( items[ self.options.value[i] ]
);
+ for( var i = 0; i < items.length; i++ ) {
+ self._addBadge( items[ i ].getContent() );
}
deferred.resolve();
} )
@@ -273,16 +273,18 @@
var self = this,
deferred = $.Deferred();
- this._fetchItems( $.map( this.options.badges, function(
cssClasses, itemId ) {
+ this.options.entityStore.getMultiple( $.map(
this.options.badges, function( cssClasses, itemId ) {
return itemId;
} ) )
.done( function( badges ) {
$menu.empty();
- $.each( self.options.badges, function( itemId,
cssClasses ) {
- var item = badges[itemId],
+ $.each( badges, function( badge ) {
+ var item = badge.getContent(),
term = item &&
item.getFingerprint().getLabelFor( self.options.languageCode ),
- label = term && term.getText();
+ label = term && term.getText(),
+ itemId = item.getId(),
+ cssClasses = self.options.badges[
itemId ];
var $item = $( '<a/>' )
.on( 'click.' + self.widgetName,
function( event ) {
@@ -318,37 +320,6 @@
} );
return deferred;
- },
-
- /**
- * Fetches item data for a list of item ids.
- *
- * @param {string[]} itemIds
- * @return {jQuery.Promise}
- * No resolved parameters.
- * No rejected parameters.
- */
- _fetchItems: function( itemIds ) {
- var deferred = $.Deferred();
-
- this.options.entityStore.getMultiple( itemIds )
- .done( function( items ) {
- var item,
- itemsObj = {};
- for( var i = 0; i < items.length; ++i ) {
- if( items[i] ) {
- item = items[i].getContent();
- itemsObj[item.getId()] = item;
- }
- }
- deferred.resolve( itemsObj );
- } )
- .fail( function() {
- // TODO: Have entityStore return a proper RepoApiError
object.
- deferred.reject();
- } );
-
- return deferred.promise();
},
/**
@@ -479,10 +450,10 @@
// 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._fetchItems( this.options.value )
+ this.options.entityStore.getMultiple(
this.options.value )
.done( function( items ) {
- for( var i = 0; i < self.options.value.length;
i++ ) {
- self._addBadge( items[
self.options.value[i] ] );
+ for( var i = 0; i < items.length; i++ ) {
+ self._addBadge( items[ i ].getContent()
);
}
self._trigger( 'afterstopediting', null,
[dropValue] );
} );
--
To view, visit https://gerrit.wikimedia.org/r/172952
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I69a7a282e2760d931677d3fefa1bc18bb9cba1e3
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