Thiemo Mättig (WMDE) has uploaded a new change for review.
https://gerrit.wikimedia.org/r/297367
Change subject: Refactor entity search caching
......................................................................
Refactor entity search caching
The cache is not meant to cache results for different search terms,
but to cache previous pages when you click the "more" button.
This code is mostly a copy from entityselector. This patch is a copy
from If12e00e and I68d30da.
Note that the caching in this file is currently unused because there
is no more button. I want to fix this later, but not remove the
caching because of this.
Change-Id: I6826d9b75fd70e358cadf97ff7b7143f4d31eb47
---
M lib/jquery.ui/jquery.ui.unitsuggester.js
1 file changed, 10 insertions(+), 11 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/data-values/value-view
refs/changes/67/297367/1
diff --git a/lib/jquery.ui/jquery.ui.unitsuggester.js
b/lib/jquery.ui/jquery.ui.unitsuggester.js
index d354d00..e4b557e 100644
--- a/lib/jquery.ui/jquery.ui.unitsuggester.js
+++ b/lib/jquery.ui/jquery.ui.unitsuggester.js
@@ -91,7 +91,6 @@
this._term = this.element.val();
this._selectedUrl = null;
- this._cache = {};
clearTimeout( this._searchTimeoutHandle );
this._searchTimeoutHandle = setTimeout( function() {
@@ -140,12 +139,13 @@
/**
* Create and return the data object for the api call.
+ *
* @protected
*
* @param {string} term
* @return {Object}
*/
- _getData: function( term ) {
+ _getSearchApiParameters: function( term ) {
return {
action: 'wbsearchentities',
search: term,
@@ -167,13 +167,12 @@
var self = this;
return function( term ) {
- var deferred = $.Deferred(),
- data = self._getData( term );
+ var deferred = $.Deferred();
$.ajax( {
url: self.options.vocabularyLookupApiUrl ||
'https://www.wikidata.org/w/api.php',
dataType: 'jsonp',
- data: data,
+ data: self._getSearchApiParameters( term ),
timeout: self.options.timeout
} )
.done( function( response ) {
@@ -276,18 +275,18 @@
.then( function( suggestions, searchTerm, nextSuggestionOffset
) {
var deferred = $.Deferred();
- if ( self._cache[searchTerm] ) {
- self._cache[searchTerm].suggestions =
self._cache[searchTerm].suggestions.concat( suggestions );
- self._cache[searchTerm].nextSuggestionOffset =
nextSuggestionOffset;
+ if ( self._cache.term === searchTerm &&
self._cache.nextSuggestionOffset ) {
+ self._cache.suggestions =
self._cache.suggestions.concat( suggestions );
+ self._cache.nextSuggestionOffset =
nextSuggestionOffset;
} else {
- self._cache = {};
- self._cache[searchTerm] = {
+ self._cache = {
+ term: searchTerm,
suggestions: suggestions,
nextSuggestionOffset:
nextSuggestionOffset
};
}
- deferred.resolve( self._cache[searchTerm].suggestions,
searchTerm );
+ deferred.resolve( self._cache.suggestions, searchTerm );
return deferred.promise();
} );
},
--
To view, visit https://gerrit.wikimedia.org/r/297367
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6826d9b75fd70e358cadf97ff7b7143f4d31eb47
Gerrit-PatchSet: 1
Gerrit-Project: data-values/value-view
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits