diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/canvas.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/canvas.component.html index 9054ddb323ef..85fb83e8abbc 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/canvas.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/canvas.component.html @@ -18,7 +18,10 @@
-
+
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/flow-status/flow-status.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/flow-status/flow-status.component.html index ff5d3bd30f7e..6be27a229fa8 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/flow-status/flow-status.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/flow-status/flow-status.component.html @@ -15,7 +15,7 @@ ~ limitations under the License. --> -
+
@if (clusterSummary?.clustered) { diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/header.component.scss b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/header.component.scss index 2944f9819474..f0dfba977ad9 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/header.component.scss +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/header.component.scss @@ -14,3 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +new-canvas-item:focus-visible { + outline: none; +} diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/new-canvas-item/new-canvas-item.component.scss b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/new-canvas-item/new-canvas-item.component.scss index f02f654e2648..423d8ab3b2a2 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/new-canvas-item/new-canvas-item.component.scss +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/new-canvas-item/new-canvas-item.component.scss @@ -32,6 +32,10 @@ } } + button:focus-visible { + outline: none; + } + .icon-import-from-registry-add:before { margin-left: 1px; } diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.html index abf20a2b4051..899e434cb2bb 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.html @@ -18,15 +18,6 @@
- + (overlayOutsideClick)="backdropClicked($event)">
@if (searching) {
Searching
@@ -185,6 +176,15 @@ }
+
  • diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.ts b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.ts index b5e31341047d..aa49279a03da 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.ts +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.ts @@ -170,7 +170,9 @@ export class Search implements OnInit { ); } - backdropClicked() { + backdropClicked(event: MouseEvent): void { + event.stopPropagation(); + event.preventDefault(); this.searchingResultsVisible = false; this.searchForm.get('searchBar')?.setValue(''); diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.html index cbe532f053a9..bea31874c3dd 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-progress-dialog/change-version-progress-dialog.html @@ -31,9 +31,7 @@

    Change Flow Version

    -
    - {{ versionChangeRequest.request.percentCompleted }}% -
    +
    {{ versionChangeRequest.request.percentCompleted }}%
  • }
    diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/ui/parameter-context-listing/edit-parameter-context/edit-parameter-context.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/ui/parameter-context-listing/edit-parameter-context/edit-parameter-context.component.html index 4360eaf7155a..585b4209a148 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/ui/parameter-context-listing/edit-parameter-context/edit-parameter-context.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/ui/parameter-context-listing/edit-parameter-context/edit-parameter-context.component.html @@ -30,7 +30,7 @@

    {{ this.isNew ? 'Add' : 'Edit' }} Parameter Context

    {{ updateStep.description }}
    @if (updateStep.failureReason) { -
    +
    } @else { @if (updateStep.complete) {
    diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-table/flowfile-table.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-table/flowfile-table.component.html index 0ecde1a1ddde..9fd134b593b6 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-table/flowfile-table.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-table/flowfile-table.component.html @@ -24,7 +24,7 @@

    {{ connectionLabel } formatBytes(queueSizeByteCount) }}) bytes

    -
    +
    @if (sourceRunning && destinationRunning) { The source and destination of this queue are currently running. This listing may no longer be accurate. } @else { diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/parameter-groups-table/parameter-groups-table.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/parameter-groups-table/parameter-groups-table.component.html index fa6854bda4d3..ea13206db478 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/parameter-groups-table/parameter-groups-table.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/parameter-groups-table/parameter-groups-table.component.html @@ -38,9 +38,7 @@
    @if (isSyncedToParameterContext(item)) { -
    +
    }
    diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/ui/parameter-providers/parameter-providers-table/parameter-providers-table.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/ui/parameter-providers/parameter-providers-table/parameter-providers-table.component.html index 243e353ce23f..6ab8237df81c 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/ui/parameter-providers/parameter-providers-table/parameter-providers-table.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/ui/parameter-providers/parameter-providers-table/parameter-providers-table.component.html @@ -34,9 +34,7 @@ @if (canRead(item)) {
    -
    +
    + reloadComponentStatusHistory$ = createEffect(() => this.actions$.pipe( ofType(StatusHistoryActions.reloadStatusHistory), map((action) => action.request), + filter((request) => !!request.componentId && !!request.componentType), switchMap((request: StatusHistoryRequest) => from( this.statusHistoryService @@ -67,6 +68,37 @@ export class StatusHistoryEffects { ) ); + reloadNodeStatusHistory$ = createEffect(() => + this.actions$.pipe( + ofType(StatusHistoryActions.reloadStatusHistory), + map((action) => action.request), + filter((request) => !request.componentId && !request.componentType), + switchMap(() => + from( + this.statusHistoryService.getNodeStatusHistory().pipe( + map((response: any) => + StatusHistoryActions.reloadStatusHistorySuccess({ + response: { + statusHistory: { + canRead: response.canRead, + statusHistory: response.statusHistory + } + } + }) + ), + catchError((error) => + of( + StatusHistoryActions.statusHistoryApiError({ + error: error.error + }) + ) + ) + ) + ) + ) + ) + ); + getStatusHistoryAndOpenDialog$ = createEffect(() => this.actions$.pipe( ofType(StatusHistoryActions.getStatusHistoryAndOpenDialog), diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/component-state/component-state.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/component-state/component-state.component.html index d2cac26ff82f..3ec36528de4a 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/component-state/component-state.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/component-state/component-state.component.html @@ -33,9 +33,7 @@

    Component State

    -
    - Displaying {{ filteredEntries }} of {{ totalEntries }} -
    +
    Displaying {{ filteredEntries }} of {{ totalEntries }}
    Filter diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/controller-service-references/controller-service-references.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/controller-service-references/controller-service-references.component.html index f8c0c7764926..42f6a96b6f37 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/controller-service-references/controller-service-references.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/controller-service-references/controller-service-references.component.html @@ -121,11 +121,7 @@

    @if (references.length > 0) {
  • -

    - Controller Services ({{ - references.length - }}) -

    +

    Controller Services ({{ references.length }})

    @for (service of references; track service) {
    @@ -179,9 +175,7 @@

    @if (references.length > 0) {
  • -

    - Unauthorized ({{ references.length }}) -

    +

    Unauthorized ({{ references.length }})

    @for (reference of references; track reference) {
    diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/disable-controller-service/disable-controller-service.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/disable-controller-service/disable-controller-service.component.html index a86b5d2dd264..3b0024ec7640 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/disable-controller-service/disable-controller-service.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/disable-controller-service/disable-controller-service.component.html @@ -114,9 +114,7 @@

    Disable Controller Service

    }
    -
    - Disabling this controller service -
    +
    Disabling this controller service
    -
    +
    diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/enable-controller-service/enable-controller-service.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/enable-controller-service/enable-controller-service.component.html index 5edf7f35ee53..fe5cebc9559d 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/enable-controller-service/enable-controller-service.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/controller-service/enable-controller-service/enable-controller-service.component.html @@ -94,9 +94,7 @@

    Enable Controller Service

    -
    - Enabling this controller service -
    +
    Enabling this controller service
    -
    +
    diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.html index 565a46a69ab6..63f6958f926d 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.html @@ -15,7 +15,7 @@ ~ limitations under the License. --> -
    +

    Add {{ componentType }}

    @@ -32,7 +32,7 @@

    Add {{ componentType }}

    -
    +
    Add {{ componentType }} diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts index 9ff118596083..d7a33386407d 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatDialogModule } from '@angular/material/dialog'; import { MatTableDataSource, MatTableModule } from '@angular/material/table'; @@ -68,6 +68,8 @@ export class ExtensionCreation { @Output() extensionTypeSelected: EventEmitter = new EventEmitter(); + @ViewChild('selectedRow', { static: false }) selectedRow: ElementRef | null | undefined; + protected readonly RestrictionsTip = RestrictionsTip; protected readonly ControllerServiceApiTip = ControllerServiceApiTip; @@ -133,10 +135,23 @@ export class ExtensionCreation { return ''; } - filterTypes(event: Event): void { + filterTypes(event: KeyboardEvent): void { + switch (event.key) { + case 'Enter': + case 'ArrowUp': + case 'ArrowDown': + // handled in navigateSelectionList + return; + } + const filterText: string = (event.target as HTMLInputElement).value; this.dataSource.filter = filterText.trim().toLowerCase(); - this.selectedType = null; + + if (this.dataSource.filteredData.length > 0) { + this.selectType(this.dataSource.filteredData[0]); + } else { + this.selectedType = null; + } } selectType(documentedType: DocumentedType): void { @@ -156,6 +171,45 @@ export class ExtensionCreation { } } + navigateSelectionList(event: KeyboardEvent): void { + if (this.selectedType !== null) { + switch (event.key) { + case 'Enter': + this.createExtension(this.selectedType); + break; + case 'ArrowUp': + this.selectRow(-1); + break; + case 'ArrowDown': + this.selectRow(1); + break; + } + if (this.selectedRow) { + this.selectedRow?.nativeElement.scrollIntoView({ + behavior: 'instant', + block: 'center', + inline: 'nearest' + }); + } + } + } + + private selectRow(offset: number) { + if (this.selectedType && this.dataSource.filteredData.length > 0) { + // find the index of the currently selected row + const selectedIndex = this.dataSource.filteredData.findIndex( + (data) => data.type === this.selectedType?.type + ); + + if (selectedIndex > -1) { + const newSelectedIndex = selectedIndex + offset; + if (newSelectedIndex > -1 && newSelectedIndex < this.dataSource.filteredData.length) { + this.selectType(this.dataSource.filteredData[newSelectedIndex]); + } + } + } + } + sortData(sort: Sort) { this.activeSort = sort; this.dataSource.data = this.sortEntities(this.dataSource.data, sort); diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.html index 6adb28f7c82b..5f442bbd3742 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.html +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.html @@ -15,7 +15,7 @@ ~ limitations under the License. --> -
    Type -
    - {{ formatType(item) }} + @if (isSelected(item)) { +
    +
    + {{ formatType(item) }} +
    + } @else { +
    + {{ formatType(item) }} + }