in src/main/resources/static/find-owners.js [240:274]
function checkAddRemoveLists() {
// Gerrit.post and delete are asynchronous.
// Do one at a time, with checkAddRemoveLists as callBack.
for (var i = 0; i < addList.length; i++) {
var email = addList[i];
if (!(email in reviewerId)) {
addList = addList.slice(i + 1, addList.length);
// A post request can fail if given reviewer email is invalid.
// Gerrit core UI shows the error dialog and does not provide
// a way for plugins to handle the error yet.
needRefresh = true;
restApiPost(
'/changes/' + changeId + '/reviewers', {'reviewer': email},
checkAddRemoveLists);
return;
}
}
for (var i = 0; i < removeList.length; i++) {
var email = removeList[i];
if (email in reviewerId) {
removeList = removeList.slice(i + 1, removeList.length);
needRefresh = true;
restApiDelete(
'/changes/' + changeId + '/reviewers/' + reviewerId[email],
checkAddRemoveLists, 'Cannot delete reviewer: ' + email);
return;
}
}
hideFindOwnersPage();
if (needRefresh) {
needRefresh = false;
(!!Gerrit.refresh) ? Gerrit.refresh() : location.reload();
}
callServer(showFindOwnersResults);
}