diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js index 62446e43cc..dbb41f6154 100644 --- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js +++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js @@ -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; }, diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.html b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.html index 38c4a969b3..12698fc9cb 100644 --- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.html +++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.html @@ -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)]]"> 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) { diff --git a/polygerrit-ui/app/scripts/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider_test.html b/polygerrit-ui/app/scripts/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider_test.html index bb7352096f..ca3c277761 100644 --- a/polygerrit-ui/app/scripts/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider_test.html +++ b/polygerrit-ui/app/scripts/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider_test.html @@ -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); });