Use Suggests CC rest API
In Reply dialog use CC for CC group and reviewers for reviewers group. Change-Id: I2354a72f49988a411f528c11c207804735f14f46
This commit is contained in:
		@@ -473,8 +473,8 @@
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _getReviewerSuggestionsProvider(change) {
 | 
			
		||||
      const provider = new GrReviewerSuggestionsProvider(this.$.restAPI,
 | 
			
		||||
          change._number, true);
 | 
			
		||||
      const provider = GrReviewerSuggestionsProvider.create(this.$.restAPI,
 | 
			
		||||
          change._number, Gerrit.SUGGESTIONS_PROVIDERS_USERS_TYPES.ANY);
 | 
			
		||||
      provider.init();
 | 
			
		||||
      return provider;
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
@@ -184,7 +184,7 @@ limitations under the License.
 | 
			
		||||
              allow-any-input
 | 
			
		||||
              placeholder="Add CC..."
 | 
			
		||||
              on-account-text-changed="_handleAccountTextEntry"
 | 
			
		||||
              suggestions-provider="[[_getReviewerSuggestionsProvider(change)]]">
 | 
			
		||||
              suggestions-provider="[[_getCcSuggestionsProvider(change)]]">
 | 
			
		||||
          </gr-account-list>
 | 
			
		||||
        </div>
 | 
			
		||||
        <gr-overlay
 | 
			
		||||
 
 | 
			
		||||
@@ -897,8 +897,15 @@
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _getReviewerSuggestionsProvider(change) {
 | 
			
		||||
      const provider = new GrReviewerSuggestionsProvider(this.$.restAPI,
 | 
			
		||||
          change._number, false);
 | 
			
		||||
      const provider = GrReviewerSuggestionsProvider.create(this.$.restAPI,
 | 
			
		||||
          change._number, Gerrit.SUGGESTIONS_PROVIDERS_USERS_TYPES.REVIEWER);
 | 
			
		||||
      provider.init();
 | 
			
		||||
      return provider;
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _getCcSuggestionsProvider(change) {
 | 
			
		||||
      const provider = GrReviewerSuggestionsProvider.create(this.$.restAPI,
 | 
			
		||||
          change._number, Gerrit.SUGGESTIONS_PROVIDERS_USERS_TYPES.CC);
 | 
			
		||||
      provider.init();
 | 
			
		||||
      return provider;
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
@@ -1293,9 +1293,24 @@
 | 
			
		||||
     * @param {function(?Response, string=)=} opt_errFn
 | 
			
		||||
     */
 | 
			
		||||
    getChangeSuggestedReviewers(changeNum, inputVal, opt_errFn) {
 | 
			
		||||
      return this._getChangeSuggestedGroup('REVIEWER', changeNum, inputVal,
 | 
			
		||||
          opt_errFn);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param {number|string} changeNum
 | 
			
		||||
     * @param {string} inputVal
 | 
			
		||||
     * @param {function(?Response, string=)=} opt_errFn
 | 
			
		||||
     */
 | 
			
		||||
    getChangeSuggestedCCs(changeNum, inputVal, opt_errFn) {
 | 
			
		||||
      return this._getChangeSuggestedGroup('CC', changeNum, inputVal,
 | 
			
		||||
          opt_errFn);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _getChangeSuggestedGroup(reviewerState, changeNum, inputVal, opt_errFn) {
 | 
			
		||||
      // More suggestions may obscure content underneath in the reply dialog,
 | 
			
		||||
      // see issue 10793.
 | 
			
		||||
      const params = {n: 6};
 | 
			
		||||
      const params = {'n': 6, 'reviewer-state': reviewerState};
 | 
			
		||||
      if (inputVal) { params.q = inputVal; }
 | 
			
		||||
      return this._getChangeURLAndFetch({
 | 
			
		||||
        changeNum,
 | 
			
		||||
 
 | 
			
		||||
@@ -21,10 +21,36 @@
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * @enum {string}
 | 
			
		||||
   */
 | 
			
		||||
  Gerrit.SUGGESTIONS_PROVIDERS_USERS_TYPES = {
 | 
			
		||||
    REVIEWER: 'reviewers',
 | 
			
		||||
    CC: 'ccs',
 | 
			
		||||
    ANY: 'any',
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  class GrReviewerSuggestionsProvider {
 | 
			
		||||
    constructor(restAPI, changeNumber, allowAnyUser) {
 | 
			
		||||
    static create(restApi, changeNumber, usersType) {
 | 
			
		||||
      switch (usersType) {
 | 
			
		||||
        case Gerrit.SUGGESTIONS_PROVIDERS_USERS_TYPES.REVIEWER:
 | 
			
		||||
          return new GrReviewerSuggestionsProvider(restApi, changeNumber,
 | 
			
		||||
            input => restApi.getChangeSuggestedReviewers(changeNumber, input));
 | 
			
		||||
        case Gerrit.SUGGESTIONS_PROVIDERS_USERS_TYPES.CC:
 | 
			
		||||
          return new GrReviewerSuggestionsProvider(restApi, changeNumber,
 | 
			
		||||
            input => restApi.getChangeSuggestedCCs(changeNumber, input));
 | 
			
		||||
        case Gerrit.SUGGESTIONS_PROVIDERS_USERS_TYPES.ANY:
 | 
			
		||||
          return new GrReviewerSuggestionsProvider(restApi, changeNumber,
 | 
			
		||||
            input => restApi.getSuggestedAccounts(
 | 
			
		||||
                `cansee:${changeNumber} ${input}`));
 | 
			
		||||
        default:
 | 
			
		||||
          throw new Error(`Unknown users type: ${usersType}`);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    constructor(restAPI, changeNumber, apiCall) {
 | 
			
		||||
      this._changeNumber = changeNumber;
 | 
			
		||||
      this._allowAnyUser = allowAnyUser;
 | 
			
		||||
      this._apiCall = apiCall;
 | 
			
		||||
      this._restAPI = restAPI;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -49,12 +75,9 @@
 | 
			
		||||
      if (!this._initialized || !this._loggedIn) {
 | 
			
		||||
        return Promise.resolve([]);
 | 
			
		||||
      }
 | 
			
		||||
      const api = this._restAPI;
 | 
			
		||||
      const xhr = this._allowAnyUser ?
 | 
			
		||||
          api.getSuggestedAccounts(`cansee:${this._changeNumber} ${input}`) :
 | 
			
		||||
          api.getChangeSuggestedReviewers(this._changeNumber, input);
 | 
			
		||||
 | 
			
		||||
      return xhr.then(reviewers => (reviewers || []));
 | 
			
		||||
      return this._apiCall(input)
 | 
			
		||||
          .then(reviewers => (reviewers || []));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    makeSuggestionItem(suggestion) {
 | 
			
		||||
 
 | 
			
		||||
@@ -109,8 +109,8 @@ limitations under the License.
 | 
			
		||||
    });
 | 
			
		||||
    suite('allowAnyUser set to false', () => {
 | 
			
		||||
      setup(done => {
 | 
			
		||||
        provider = new GrReviewerSuggestionsProvider(restAPI, change._number,
 | 
			
		||||
            false);
 | 
			
		||||
        provider = GrReviewerSuggestionsProvider.create(restAPI, change._number,
 | 
			
		||||
            Gerrit.SUGGESTIONS_PROVIDERS_USERS_TYPES.REVIEWER);
 | 
			
		||||
        provider.init().then(done);
 | 
			
		||||
      });
 | 
			
		||||
      suite('stubbed values for _getReviewerSuggestions', () => {
 | 
			
		||||
@@ -235,8 +235,8 @@ limitations under the License.
 | 
			
		||||
 | 
			
		||||
    suite('allowAnyUser set to true', () => {
 | 
			
		||||
      setup(done => {
 | 
			
		||||
        provider = new GrReviewerSuggestionsProvider(restAPI, change._number,
 | 
			
		||||
            true);
 | 
			
		||||
        provider = GrReviewerSuggestionsProvider.create(restAPI, change._number,
 | 
			
		||||
            Gerrit.SUGGESTIONS_PROVIDERS_USERS_TYPES.ANY);
 | 
			
		||||
        provider.init().then(done);
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user