Stop using deprecated Gerrit REST API.
* Suppress console warning messages about
deprecated REST API and onAction.
* The Gerrit REST api were deprecated for more than a year in
https://gerrit-review.googlesource.com/c/gerrit/+/137131
* Replace Gerrit.get() with self.restApi().get(),
and the same for post() and delete().
* No longer support old obsolete GWT UI.
* Explicitly use upper case for the [FIND OWNERS] action label.
* Catch and pop up alert message when a reviewer cannot
be deleted. This happens when the action is invoked
by someone not the owner of a CL.
Change-Id: I064970f51cee7e2c0ec714e1249659a0a82c6c60
diff --git a/src/main/resources/static/find-owners.js b/src/main/resources/static/find-owners.js
index 2542b6c..4f3522f 100644
--- a/src/main/resources/static/find-owners.js
+++ b/src/main/resources/static/find-owners.js
@@ -13,11 +13,6 @@
// limitations under the License.
Gerrit.install(function(self) {
- if (window.Polymer) {
- // Install deprecated APIs to mimic GWT UI API.
- self.deprecated.install();
- }
-
// If context.popup API exists and popup content is small,
// use the API and set useContextPopup,
// otherwise, use pageDiv and set its visibility.
@@ -141,23 +136,19 @@
console.log('UNIMPLEMENTED: ' + msg);
callback();
}
- function gerritGet(url, callback) {
- (!!Gerrit.get) ? Gerrit.get(url, callback) :
- ((!!self.get) ? self.get('/../..' + url, callback) :
- httpGet(url, callback));
+ function restApiGet(url, callback) {
+ self.restApi().get('/../..' + url).then(callback);
}
- function gerritPost(url, data, callback) {
- (!!Gerrit.post) ? Gerrit.post(url, data, callback) :
- ((!!self.post) ? self.post('/../..' + url, data, callback) :
- httpError('POST ' + url, callback));
+ function restApiPost(url, data, callback) {
+ self.restApi().post('/../..' + url, data).then(callback) ;
}
- function gerritDelete(url, callback) {
- (!!Gerrit.delete) ? Gerrit.delete(url, callback) :
- ((!!self.delete) ? self.delete('/../..' + url, callback) :
- httpError('DELETE ' + url, callback));
+ function restApiDelete(url, callback, errMessage) {
+ self.restApi().delete('/../..' + url).then(callback).catch((e) => {
+ alert(errMessage);
+ });
}
function getReviewers(change, callBack) {
- gerritGet('/changes/' + change + '/reviewers', callBack);
+ restApiGet('/changes/' + change + '/reviewers', callBack);
}
function setupReviewersMap(reviewerList) {
reviewerId = {};
@@ -193,9 +184,9 @@
// Gerrit core UI shows the error dialog and does not provide
// a way for plugins to handle the error yet.
needRefresh = true;
- gerritPost('/changes/' + changeId + '/reviewers',
- {'reviewer': email},
- checkAddRemoveLists);
+ restApiPost('/changes/' + changeId + '/reviewers',
+ {'reviewer': email},
+ checkAddRemoveLists);
return;
}
}
@@ -204,9 +195,10 @@
if (email in reviewerId) {
removeList = removeList.slice(i + 1, removeList.length);
needRefresh = true;
- gerritDelete('/changes/' + changeId +
- '/reviewers/' + reviewerId[email],
- checkAddRemoveLists);
+ restApiDelete('/changes/' + changeId +
+ '/reviewers/' + reviewerId[email],
+ checkAddRemoveLists,
+ 'Cannot delete reviewer: ' + email);
return;
}
}
@@ -553,7 +545,7 @@
function callServer(callBack) {
// Use the plugin REST API; pass only changeId;
// let server get current patch set, project and branch info.
- gerritGet('/changes/' + changeId + '/owners', showFindOwnersResults);
+ restApiGet('/changes/' + changeId + '/owners', showFindOwnersResults);
}
event.stopPropagation();
callServer(showFindOwnersResults);
@@ -579,7 +571,7 @@
changeActions.removeTapListener(actionKey);
changeActions.remove(actionKey);
}
- actionKey = changeActions.add('revision', '[Find Owners]');
+ actionKey = changeActions.add('revision', '[FIND OWNERS]');
changeActions.setIcon(actionKey, 'robot');
changeActions.setTitle(actionKey, 'Find owners of changed files');
changeActions.addTapListener(actionKey,
@@ -596,15 +588,10 @@
}
}
}
- // When the "Find Owners" button is clicked, call onFindOwners.
- if (!!self.onAction) { // PolyGerrit does not have self.onAction
- self.onAction('revision', 'find-owners', onFindOwners);
- } else {
- console.log('WARNING, no handler for the Find Owners button');
- }
- // When using PolyGerrit, move "Find Owners" button out of the 'MORE' list.
if (window.Polymer) {
self.on('showchange', onShowChangePolyGerrit);
+ } else {
+ console.log('WARNING, no [FIND OWNERS] button');
}
// When the "Submit" button is clicked, call onSubmit.
self.on('submitchange', onSubmit);