_onChromeOmniboxInputChanged: function(text, suggest) { // Clear suggestedSongs this.get('suggestedSongs').reset(); var searchText = text.trim(); // Clear suggestions if there is no text. if (searchText === '') { this.set('modifiers', []); suggest([]); } else { // Do not display results if searchText was modified while searching, abort old request. var previousSearchRequest = this.get('searchRequest'); if (previousSearchRequest !== null) { previousSearchRequest.abort(); this.set('searchRequest', null); } var modifiers = this._getModifiers(searchText); this.set('modifiers', modifiers); searchText = this._trimModifiers(searchText, modifiers); var searchRequest = YouTubeV3API.search({ text: searchText, // Omnibox can only show 6 results maxResults: 6, success: this._onSearchResponse.bind(this, suggest, searchText) }); this.set('searchRequest', searchRequest); } },
_setResultsByText: function(trimmedQuery) { var pendingRequest = YouTubeV3API.search({ text: trimmedQuery, success: this._onSearchSuccess.bind(this, trimmedQuery), error: this._onSearchError.bind(this) }); this.set('pendingRequest', pendingRequest); },
_onSearchSuccess: function(trimmedQuery, response) { this.get('results').addSongs(response.songs); var continueSearching = !_.isUndefined(response.nextPageToken) && this.get('results').length < this.get('maxSearchResults'); if (continueSearching) { var pendingRequest = YouTubeV3API.search({ text: trimmedQuery, pageToken: response.nextPageToken, success: this._onSearchSuccess.bind(this, trimmedQuery), error: this._onSearchError.bind(this) }); this.set('pendingRequest', pendingRequest); } else { this.set('pendingRequest', null); } },