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