Merge "gr-change-view: Call reload event with clear patchset set when editing commit msg" into stable-3.7
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
index b3eaf36..6600c42 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
@@ -1261,7 +1261,6 @@
() => html`
<gr-reply-dialog
id="replyDialog"
- .patchNum=${computeLatestPatchNum(this.allPatchSets)}
.permittedLabels=${this.change?.permitted_labels}
.projectConfig=${this.projectConfig}
.canBeStarted=${this.canStartReview()}
@@ -1578,7 +1577,6 @@
<gr-file-list-header
id="fileListHeader"
.account=${this.account}
- .allPatchSets=${this.allPatchSets}
.change=${this.change}
.changeNum=${this.changeNum}
.commitInfo=${this.commitInfo}
diff --git a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts
index 481a488..5debc0c 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts
+++ b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts
@@ -12,7 +12,6 @@
import '../gr-commit-info/gr-commit-info';
import {FilesExpandedState} from '../gr-file-list-constants';
import {navigationToken} from '../../core/gr-navigation/gr-navigation';
-import {computeLatestPatchNum, PatchSet} from '../../../utils/patch-set-util';
import {property, customElement, query, state} from 'lit/decorators.js';
import {
AccountInfo,
@@ -21,6 +20,7 @@
CommitInfo,
ServerInfo,
BasePatchSetNum,
+ PatchSetNumber,
} from '../../../types/common';
import {DiffPreferencesInfo} from '../../../types/diff';
import {GrDiffModeSelector} from '../../../embed/diff/gr-diff-mode-selector/gr-diff-mode-selector';
@@ -63,9 +63,6 @@
@property({type: Object})
account: AccountInfo | undefined;
- @property({type: Array})
- allPatchSets?: PatchSet[];
-
@property({type: Object})
change: ChangeInfo | undefined;
@@ -87,6 +84,8 @@
@property({type: String})
filesExpanded?: FilesExpandedState;
+ @state() latestPatchNum?: PatchSetNumber;
+
@state() patchNum?: PatchSetNum;
@state() basePatchNum?: BasePatchSetNum;
@@ -147,6 +146,11 @@
() => this.getChangeModel().basePatchNum$,
x => (this.basePatchNum = x)
);
+ subscribe(
+ this,
+ () => this.getChangeModel().latestPatchNum$,
+ x => (this.latestPatchNum = x)
+ );
}
static override styles = [
@@ -266,10 +270,7 @@
return;
}
const editModeClass = this.computeEditModeClass(this.editMode);
- const patchInfoClass = this.computePatchInfoClass(
- this.patchNum,
- this.allPatchSets
- );
+ const patchInfoClass = this.computePatchInfoClass();
const expandedClass = this.computeExpandedClass(this.filesExpanded);
const prefsButtonHidden = this.computePrefsButtonHidden(
this.diffPrefs,
@@ -443,9 +444,8 @@
return editMode ? 'editMode' : '';
}
- computePatchInfoClass(patchNum?: PatchSetNum, allPatchSets?: PatchSet[]) {
- const latestNum = computeLatestPatchNum(allPatchSets);
- if (patchNum === latestNum) {
+ computePatchInfoClass() {
+ if (this.patchNum === this.latestPatchNum) {
return '';
}
return 'patchInfoOldPatchSet';
diff --git a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.ts b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.ts
index bfe91da..f2121b3 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.ts
@@ -23,7 +23,6 @@
PatchSetNumber,
} from '../../../types/common';
import {ChangeInfo, ChangeStatus} from '../../../api/rest-api';
-import {PatchSet} from '../../../utils/patch-set-util';
import {createDefaultDiffPrefs} from '../../../constants/constants';
import {fixture, html, assert} from '@open-wc/testing';
import {GrButton} from '../../shared/gr-button/gr-button';
@@ -253,23 +252,16 @@
});
test('class is applied to file list on old patch set', () => {
- const allPatchSets: PatchSet[] = [
- {num: 4 as PatchSetNumber, desc: undefined, sha: ''},
- {num: 2 as PatchSetNumber, desc: undefined, sha: ''},
- {num: 1 as PatchSetNumber, desc: undefined, sha: ''},
- ];
- assert.equal(
- element.computePatchInfoClass(1 as PatchSetNum, allPatchSets),
- 'patchInfoOldPatchSet'
- );
- assert.equal(
- element.computePatchInfoClass(2 as PatchSetNum, allPatchSets),
- 'patchInfoOldPatchSet'
- );
- assert.equal(
- element.computePatchInfoClass(4 as PatchSetNum, allPatchSets),
- ''
- );
+ element.latestPatchNum = 4 as PatchSetNumber;
+
+ element.patchNum = 1 as PatchSetNumber;
+ assert.equal(element.computePatchInfoClass(), 'patchInfoOldPatchSet');
+
+ element.patchNum = 2 as PatchSetNumber;
+ assert.equal(element.computePatchInfoClass(), 'patchInfoOldPatchSet');
+
+ element.patchNum = 4 as PatchSetNumber;
+ assert.equal(element.computePatchInfoClass(), '');
});
suite('editMode behavior', () => {
@@ -280,11 +272,6 @@
test('patch specific elements', async () => {
element.editMode = true;
- element.allPatchSets = [
- {num: 1 as PatchSetNumber, desc: undefined, sha: ''},
- {num: 2 as PatchSetNumber, desc: undefined, sha: ''},
- {num: 3 as PatchSetNumber, desc: undefined, sha: ''},
- ];
await element.updateComplete;
assert.isFalse(
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog-it_test.ts b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog-it_test.ts
index 6fba4e4..9fb856d 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog-it_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog-it_test.ts
@@ -17,7 +17,7 @@
import {
AccountId,
NumericChangeId,
- PatchSetNum,
+ PatchSetNumber,
Timestamp,
} from '../../../types/common';
import {createChange} from '../../../test/test-data-generators';
@@ -26,7 +26,7 @@
suite('gr-reply-dialog-it tests', () => {
let element: GrReplyDialog;
let changeNum: NumericChangeId;
- let patchNum: PatchSetNum;
+ let latestPatchNum: PatchSetNumber;
const setupElement = (element: GrReplyDialog) => {
element.change = {
@@ -54,7 +54,7 @@
},
},
};
- element.patchNum = patchNum;
+ element.latestPatchNum = latestPatchNum;
element.permittedLabels = {
'Code-Review': ['-1', ' 0', '+1'],
Verified: ['-1', ' 0', '+1'],
@@ -63,7 +63,7 @@
setup(async () => {
changeNum = 42 as NumericChangeId;
- patchNum = 1 as PatchSetNum;
+ latestPatchNum = 1 as PatchSetNumber;
stubRestApi('getAccount').returns(
Promise.resolve({
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
index cd42a9f..2849e58 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
@@ -55,7 +55,6 @@
isReviewerAccountSuggestion,
isReviewerGroupSuggestion,
ParsedJSON,
- PatchSetNum,
ReviewerInput,
ReviewInput,
ReviewResult,
@@ -223,9 +222,6 @@
@property({type: Object})
change?: ParsedChangeInfo | ChangeInfo;
- @property({type: String})
- patchNum?: PatchSetNum;
-
@property({type: Boolean})
canBeStarted = false;
@@ -254,6 +250,8 @@
@query('#reviewerConfirmationOverlay')
reviewerConfirmationOverlay?: GrOverlay;
+ @state() latestPatchNum?: PatchSetNumber;
+
@state() serverConfig?: ServerInfo;
@state()
@@ -395,8 +393,6 @@
private readonly accountsModel = getAppContext().accountsModel;
- private latestPatchNum?: PatchSetNumber;
-
storeTask?: DelayedTask;
private isLoggedIn = false;
@@ -1186,7 +1182,7 @@
this.knownLatestState === LatestPatchState.CHECKING,
() => html`
<span id="checkingStatusLabel">
- Checking whether patch ${this.patchNum} is latest...
+ Checking whether patch ${this.latestPatchNum} is latest...
</span>
`
)}
@@ -1906,10 +1902,10 @@
saveReview(review: ReviewInput, errFn?: ErrorCallback) {
assertIsDefined(this.change, 'change');
- assertIsDefined(this.patchNum, 'patchNum');
+ assertIsDefined(this.latestPatchNum, 'latestPatchNum');
return this.restApiService.saveChangeReview(
this.change._number,
- this.patchNum,
+ this.latestPatchNum,
review,
errFn
);
@@ -2067,7 +2063,7 @@
}
computePatchSetWarning() {
- let str = `Patch ${this.patchNum} is not latest.`;
+ let str = `Patch ${this.latestPatchNum} is not latest.`;
if (this.labelsChanged) {
str += ' Voting may have no effect.';
}
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts
index acd1755..9eca525f 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts
@@ -39,7 +39,7 @@
GroupId,
GroupName,
NumericChangeId,
- PatchSetNum,
+ PatchSetNumber,
ReviewerInput,
ReviewInput,
ReviewResult,
@@ -86,7 +86,7 @@
suite('gr-reply-dialog tests', () => {
let element: GrReplyDialog;
let changeNum: NumericChangeId;
- let patchNum: PatchSetNum;
+ let latestPatchNum: PatchSetNumber;
let lastId = 1;
const makeAccount = function () {
@@ -101,7 +101,7 @@
setup(async () => {
changeNum = 42 as NumericChangeId;
- patchNum = 1 as PatchSetNum;
+ latestPatchNum = 1 as PatchSetNumber;
stubRestApi('getChange').returns(Promise.resolve({...createChange()}));
stubRestApi('getChangeSuggestedReviewers').returns(Promise.resolve([]));
@@ -139,7 +139,7 @@
},
},
};
- element.patchNum = patchNum;
+ element.latestPatchNum = latestPatchNum;
element.permittedLabels = {
'Code-Review': ['-1', ' 0', '+1'],
Verified: ['-1', ' 0', '+1'],