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>();
 

Reply via email to