summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaladox none <thomasmulhall410@yahoo.com>2021-06-26 14:12:30 +0000
committerPaladox none <thomasmulhall410@yahoo.com>2021-07-16 23:32:37 +0000
commitad53e8d38de334a30b5df15e429041d97c320a10 (patch)
tree2a251ad30168087aa4826f05e8f3d531a7f1e7be
parentb1242861dd00195ece9a355009f01a7fe5157ed3 (diff)
Redirect from change edit if change is merged or abandoned
Also display a notification telling the user why. Change-Id: I9b8f9cf7da7992274fe05e46be481246543d4c57 (cherry picked from commit 24d5b0d01daa9963e56bb9ee7509213fb8554d97)
-rw-r--r--polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js20
-rw-r--r--polygerrit-ui/app/elements/edit/gr-editor-view/gr-editor-view.js24
2 files changed, 43 insertions, 1 deletions
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
index b0161287d3..b8b674b978 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
@@ -1563,7 +1563,27 @@ class GrChangeView extends mixinBehaviors( [
* @param {?Object} edit
*/
_processEdit(change, edit) {
+ if (
+ (change.status === this.ChangeStatus.MERGED ||
+ change.status === this.ChangeStatus.ABANDONED) &&
+ this._editMode
+ ) {
+ /* eslint-disable max-len */
+ const message =
+ 'Change edits cannot be created if change is merged or abandoned. Redirected to non edit mode.';
+ this.dispatchEvent(
+ new CustomEvent('show-alert', {
+ detail: {message},
+ bubbles: true,
+ composed: true,
+ })
+ );
+ GerritNav.navigateToChange(change);
+ return;
+ }
+
if (!edit) { return; }
+
change.revisions[edit.commit.commit] = {
_number: this.EDIT_NAME,
basePatchNum: edit.base_patch_set_number,
diff --git a/polygerrit-ui/app/elements/edit/gr-editor-view/gr-editor-view.js b/polygerrit-ui/app/elements/edit/gr-editor-view/gr-editor-view.js
index b766e7f903..6e4d8c688b 100644
--- a/polygerrit-ui/app/elements/edit/gr-editor-view/gr-editor-view.js
+++ b/polygerrit-ui/app/elements/edit/gr-editor-view/gr-editor-view.js
@@ -32,6 +32,7 @@ import {PolymerElement} from '@polymer/polymer/polymer-element.js';
import {htmlTemplate} from './gr-editor-view_html.js';
import {PatchSetBehavior} from '../../../behaviors/gr-patch-set-behavior/gr-patch-set-behavior.js';
import {PathListBehavior} from '../../../behaviors/gr-path-list-behavior/gr-path-list-behavior.js';
+import {RESTClientBehavior} from '../../../behaviors/rest-client-behavior/rest-client-behavior.js';
import {KeyboardShortcutBehavior} from '../../../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.js';
import {GerritNav} from '../../core/gr-navigation/gr-navigation.js';
@@ -49,6 +50,7 @@ class GrEditorView extends mixinBehaviors( [
KeyboardShortcutBehavior,
PatchSetBehavior,
PathListBehavior,
+ RESTClientBehavior,
], GestureEventListeners(
LegacyElementMixin(
PolymerElement))) {
@@ -77,7 +79,10 @@ class GrEditorView extends mixinBehaviors( [
observer: '_paramsChanged',
},
- _change: Object,
+ _change: {
+ type: Object,
+ observer: '_editChange',
+ },
_changeEditDetail: Object,
_changeNum: String,
_patchNum: String,
@@ -169,6 +174,23 @@ class GrEditorView extends mixinBehaviors( [
});
}
+ _editChange(value) {
+ if (!value) return;
+ if (value.status !== this.ChangeStatus.MERGED &&
+ value.status !== this.ChangeStatus.ABANDONED) return;
+ /* eslint-disable max-len */
+ const message =
+ 'Change edits cannot be created if change is merged or abandoned. Redirected to non edit mode.';
+ this.dispatchEvent(
+ new CustomEvent('show-alert', {
+ detail: {message},
+ bubbles: true,
+ composed: true,
+ })
+ );
+ GerritNav.navigateToChange(value);
+ }
+
_handlePathChanged(e) {
const path = e.detail;
if (path === this._path) {