diff options
author | Paladox none <thomasmulhall410@yahoo.com> | 2021-06-26 14:12:30 +0000 |
---|---|---|
committer | Paladox none <thomasmulhall410@yahoo.com> | 2021-07-16 23:32:37 +0000 |
commit | ad53e8d38de334a30b5df15e429041d97c320a10 (patch) | |
tree | 2a251ad30168087aa4826f05e8f3d531a7f1e7be | |
parent | b1242861dd00195ece9a355009f01a7fe5157ed3 (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.js | 20 | ||||
-rw-r--r-- | polygerrit-ui/app/elements/edit/gr-editor-view/gr-editor-view.js | 24 |
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) { |