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

Reply via email to