This is an automated email from the ASF dual-hosted git repository.
mcgilman pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new 3f73e5d091 [NIFI-14317] - Handle flow version change failure by
displaying the failure reason in an error banner (#9767)
3f73e5d091 is described below
commit 3f73e5d091de055cd5662141a1d5c4668bafa1ef
Author: Rob Fellows <[email protected]>
AuthorDate: Tue Mar 4 15:25:56 2025 -0500
[NIFI-14317] - Handle flow version change failure by displaying the failure
reason in an error banner (#9767)
* [NIFI-14317] - Handle flow version change failure by displaying the
failure reason in an error banner
* don't show the message indicating the pg changed if there was a failure
reason
* support larger error messages in the error banner by wrapping the text
---
.../src/app/pages/flow-designer/state/flow/flow.effects.ts | 6 ++----
.../change-version-progress-dialog.html | 12 +++++++++++-
.../change-version-progress-dialog.ts | 3 ++-
.../app/ui/common/error-banner/error-banner.component.html | 12 +++++++-----
.../app/ui/common/error-banner/error-banner.component.scss | 4 ++++
.../src/app/ui/common/error-banner/error-banner.component.ts | 1 +
6 files changed, 27 insertions(+), 11 deletions(-)
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/state/flow/flow.effects.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/state/flow/flow.effects.ts
index e42189da2f..454206f5fb 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/state/flow/flow.effects.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/state/flow/flow.effects.ts
@@ -4148,8 +4148,7 @@ export class FlowEffects {
map((action) => action.request),
tap(() => {
const dialogRef =
this.dialog.open(ChangeVersionProgressDialog, {
- ...SMALL_DIALOG,
- minWidth: 365,
+ ...MEDIUM_DIALOG,
disableClose: true,
autoFocus: false
});
@@ -4324,8 +4323,7 @@ export class FlowEffects {
map((action) => action.request),
tap(() => {
const dialogRef =
this.dialog.open(ChangeVersionProgressDialog, {
- ...SMALL_DIALOG,
- minWidth: 365,
+ ...MEDIUM_DIALOG,
disableClose: true,
autoFocus: false
});
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.html
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.html
index 9be8900896..53e77d5700 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.html
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.html
@@ -16,12 +16,22 @@
-->
<h2 mat-dialog-title>Change Flow Version</h2>
+@if (flowUpdateRequest$ | async; as versionChangeRequest) {
+ @if (versionChangeRequest.request.complete &&
versionChangeRequest.request.failureReason) {
+ <error-banner
+ [messages]="[versionChangeRequest.request.failureReason]"
+ [showErrorIcon]="true"
+ [allowDismiss]="false"></error-banner>
+ }
+}
<div class="change-version-progress">
<mat-dialog-content>
<div class="flex flex-col gap-y-4">
@if (flowUpdateRequest$ | async; as versionChangeRequest) {
<div class="tertiary-color font-medium">
- @if (versionChangeRequest.request.complete) {
+ @if (versionChangeRequest.request.complete &&
versionChangeRequest.request.failureReason) {
+ There was an error changing versions.
+ } @else if (versionChangeRequest.request.complete) {
This Process Group version has changed.
} @else {
{{ versionChangeRequest.request.state }}
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.ts
index 6836839386..05356944ae 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.ts
@@ -22,10 +22,11 @@ import { FlowUpdateRequestEntity } from
'../../../../../state/flow';
import { Observable, of } from 'rxjs';
import { AsyncPipe } from '@angular/common';
import { MatProgressBar } from '@angular/material/progress-bar';
+import { ErrorBanner } from
'../../../../../../../ui/common/error-banner/error-banner.component';
@Component({
selector: 'change-version-progress-dialog',
- imports: [MatDialogTitle, MatDialogModule, MatButton, AsyncPipe,
MatProgressBar],
+ imports: [MatDialogTitle, MatDialogModule, MatButton, AsyncPipe,
MatProgressBar, ErrorBanner],
templateUrl: './change-version-progress-dialog.html',
styleUrl: './change-version-progress-dialog.scss'
})
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.html
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.html
index a7a3528a28..f2a35e7df9 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.html
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.html
@@ -26,17 +26,19 @@
<i class="fa fa-exclamation-triangle error-color fa-2x"></i>
}
@if (messages.length === 1) {
- <div>{{ messages[0] }}</div>
+ <div class="error-banner-message">{{ messages[0] }}</div>
} @else {
<ul>
@for (message of messages; track message) {
- <li>{{ message }}</li>
+ <li class="error-banner-message">{{ message }}</li>
}
</ul>
}
</div>
- <div class="flex flex-1 mt-auto justify-end w-full">
- <button mat-flat-button class="error-button"
(click)="dismissClicked()">Dismiss</button>
- </div>
+ @if (allowDismiss) {
+ <div class="flex flex-1 mt-auto justify-end w-full">
+ <button mat-flat-button class="error-button"
(click)="dismissClicked()">Dismiss</button>
+ </div>
+ }
</div>
}
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.scss
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.scss
index 6f854b7380..71ad5e3cd6 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.scss
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.scss
@@ -20,6 +20,10 @@
.banner-container {
@include mat.button-density(-1);
+ .error-banner-message {
+ word-break: break-word;
+ }
+
ul {
list-style-type: disc;
list-style-position: inside;
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.ts
index 9a8055b21f..9681c6c647 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/error-banner/error-banner.component.ts
@@ -29,6 +29,7 @@ export class ErrorBanner {
@Input() messages: string[] | null = null;
@Input() showErrorIcon = true;
@Input() showBorder = true;
+ @Input() allowDismiss = true;
@Output() dismiss: EventEmitter<void> = new EventEmitter<void>();