_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);
            }
        },
Example #2
0
    _setResultsByText: function(trimmedQuery) {
      var pendingRequest = YouTubeV3API.search({
        text: trimmedQuery,
        success: this._onSearchSuccess.bind(this, trimmedQuery),
        error: this._onSearchError.bind(this)
      });

      this.set('pendingRequest', pendingRequest);
    },
Example #3
0
    _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);
      }
    },