Show warning when editing an old patchset
Google-bug-id: b/240439313
Screenshot: https://imgur.com/a/Xri8Fds
Release-Notes: skip
Change-Id: Ib349673d7c790ea272ca463f020b2bd0805c4434
diff --git a/polygerrit-ui/app/elements/edit/gr-editor-view/gr-editor-view.ts b/polygerrit-ui/app/elements/edit/gr-editor-view/gr-editor-view.ts
index 6062f17..0980ebb 100644
--- a/polygerrit-ui/app/elements/edit/gr-editor-view/gr-editor-view.ts
+++ b/polygerrit-ui/app/elements/edit/gr-editor-view/gr-editor-view.ts
@@ -16,6 +16,7 @@
Base64FileContent,
NumericChangeId,
EDIT,
+ PatchSetNumber,
} from '../../../types/common';
import {ParsedChangeInfo} from '../../../types/types';
import {HttpMethod, NotifyType} from '../../../constants/constants';
@@ -27,11 +28,13 @@
import {changeIsMerged, changeIsAbandoned} from '../../../utils/change-util';
import {addShortcut, Modifier} from '../../../utils/dom-util';
import {sharedStyles} from '../../../styles/shared-styles';
-import {LitElement, PropertyValues, html, css} from 'lit';
+import {LitElement, PropertyValues, html, css, nothing} from 'lit';
import {customElement, property, state} from 'lit/decorators.js';
import {subscribe} from '../../lit/subscription-controller';
import {GenerateUrlEditViewParameters} from '../../../utils/router-util';
import {GerritView} from '../../../services/router/router-model';
+import {resolve} from '../../../models/dependency';
+import {changeModelToken} from '../../../models/change/change-model';
const RESTORED_MESSAGE = 'Content restored from a previous edit.';
const SAVING_MESSAGE = 'Saving changes...';
@@ -90,6 +93,8 @@
@state() private lineNum?: number;
+ @state() private latestPatchsetNumber?: PatchSetNumber;
+
private readonly restApiService = getAppContext().restApiService;
private readonly storage = getAppContext().storageService;
@@ -98,6 +103,8 @@
private readonly userModel = getAppContext().userModel;
+ private readonly getChangeModel = resolve(this, changeModelToken);
+
// Tests use this so needs to be non private
storeTask?: DelayedTask;
@@ -116,6 +123,11 @@
this.editPrefs = editPreferences;
}
);
+ subscribe(
+ this,
+ () => this.getChangeModel().latestPatchNum$,
+ x => (this.latestPatchsetNumber = x)
+ );
}
override connectedCallback() {
@@ -193,6 +205,9 @@
.rightControls {
justify-content: flex-end;
}
+ .warning {
+ color: var(--error-text-color);
+ }
`,
];
}
@@ -207,6 +222,7 @@
<header>
<span class="controlGroup">
<span>Edit mode</span>
+ ${this.renderEditingOldPatchsetWarning()}
<span class="separator"></span>
<gr-editable-label
labelText="File path"
@@ -243,6 +259,12 @@
`;
}
+ private renderEditingOldPatchsetWarning() {
+ const patchset = this.params?.patchNum;
+ if (patchset === this.latestPatchsetNumber) return nothing;
+ return html`<span class="warning"> (Old Patchset)</span>`;
+ }
+
private renderEndpoint() {
return html`
<div class="textareaWrapper">