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 <adrian.l...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits