Also fire PUBLISH_EDIT from editor
The PUBLISH_EDIT event currently only fires when publishing from the
changes view, but not the editor view (i.e., clicking "Save" ->
"Publish" vs clicking "Save & Publish").
This seems wrong, so also fire the event for the editor.
Release-Notes: Add BEFORE_COMMIT_MSG_EDIT plugin event
Bug: 448467813
Change-Id: I7719d113ebf0d34c79cbd0b84500c37cf82aad76
diff --git a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.ts b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.ts
index 216559c..0393242 100644
--- a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.ts
@@ -54,6 +54,7 @@
RequestPayload,
RevertSubmissionInfo,
ReviewInput,
+ RevisionInfo,
} from '../../../types/common';
import {GrConfirmAbandonDialog} from '../gr-confirm-abandon-dialog/gr-confirm-abandon-dialog';
import {GrDialog} from '../../shared/gr-dialog/gr-dialog';
@@ -1361,7 +1362,10 @@
}
// private but used in test
- getRevision(change: ChangeInfo, patchNum?: PatchSetNumber) {
+ getRevision(
+ change: ChangeInfo,
+ patchNum?: PatchSetNumber
+ ): RevisionInfo | null {
for (const rev of Object.values(change.revisions ?? {})) {
if (rev._number === patchNum) {
return rev;
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 6471d1e..f348a80 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
@@ -10,9 +10,12 @@
import '../../shared/gr-tooltip-content/gr-tooltip-content';
import '../gr-default-editor/gr-default-editor';
import {navigationToken} from '../../core/gr-navigation/gr-navigation';
+import {pluginLoaderToken} from '../../shared/gr-js-api-interface/gr-plugin-loader';
import {
Base64FileContent,
+ ChangeInfo,
EditPreferencesInfo,
+ RevisionInfo,
RevisionPatchSetNum,
} from '../../../types/common';
import {ParsedChangeInfo} from '../../../types/types';
@@ -94,6 +97,8 @@
private readonly reporting = getAppContext().reportingService;
+ private readonly getPluginLoader = resolve(this, pluginLoaderToken);
+
private readonly getStorage = resolve(this, storageServiceToken);
private readonly getUserModel = resolve(this, userModelToken);
@@ -541,11 +546,27 @@
return;
}
assertIsDefined(this.change, 'change');
+
+ this.getPluginLoader().jsApiService.handlePublishEdit(
+ this.change as ChangeInfo,
+ this.getLatestRevision(this.change as ChangeInfo)
+ );
+
this.getChangeModel().navigateToChangeResetReload();
});
});
};
+ private getLatestRevision(change: ChangeInfo): RevisionInfo | null {
+ const patchNum = this.latestPatchsetNumber;
+ for (const rev of Object.values(change.revisions ?? {})) {
+ if (rev._number === patchNum) {
+ return rev;
+ }
+ }
+ return null;
+ }
+
private handleContentChange(e: CustomEvent<{value: string}>) {
this.storeTask = debounce(
this.storeTask,