Skip to content

Commit 7976d1c

Browse files
committed
NIFI-14485 Add Bounded Process Group Column to Parameter Context page
Signed-off-by: Maciej Bukalo <[email protected]>
1 parent 411e179 commit 7976d1c

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/parameter-contexts/ui/parameter-context-listing/parameter-context-table/parameter-context-table.component.html

+10
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,16 @@
5454
</td>
5555
</ng-container>
5656

57+
<!-- Bounded Process Group Column -->
58+
<ng-container matColumnDef="bounded process group">
59+
<th mat-header-cell
60+
*matHeaderCellDef
61+
mat-sort-header>Bounded Process Group</th>
62+
<td mat-cell *matCellDef="let item" [title]="formatBoundedProcessGroups(item)">
63+
{{ formatBoundedProcessGroups(item) }}
64+
</td>
65+
</ng-container>
66+
5767
<!-- Actions Column -->
5868
<ng-container matColumnDef="actions">
5969
<th mat-header-cell *matHeaderCellDef></th>

nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/parameter-contexts/ui/parameter-context-listing/parameter-context-table/parameter-context-table.component.scss

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
.parameter-context-table {
1919
.listing-table {
2020
.mat-column-name {
21-
width: 25%;
21+
width: 20%;
2222
}
2323
}
2424
}

nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/parameter-contexts/ui/parameter-context-listing/parameter-context-table/parameter-context-table.component.ts

+19-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { MatSortModule, Sort } from '@angular/material/sort';
2121
import { NiFiCommon } from '@nifi/shared';
2222
import { FlowConfiguration } from '../../../../../state/flow-configuration';
2323
import { CurrentUser } from '../../../../../state/current-user';
24-
import { ParameterContextEntity } from '../../../../../state/shared';
24+
import {ParameterContext, ParameterContextEntity} from '../../../../../state/shared';
2525
import { MatIconButton } from '@angular/material/button';
2626
import { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';
2727
import { RouterLink } from '@angular/router';
@@ -34,7 +34,7 @@ import { NgClass } from '@angular/common';
3434
imports: [MatTableModule, MatSortModule, MatIconButton, MatMenuTrigger, MatMenu, MatMenuItem, RouterLink, NgClass]
3535
})
3636
export class ParameterContextTable {
37-
@Input() initialSortColumn: 'name' | 'provider' | 'description' = 'name';
37+
@Input() initialSortColumn: 'name' | 'provider' | 'description' | 'bounded process group' = 'name';
3838
@Input() initialSortDirection: 'asc' | 'desc' = 'asc';
3939
activeSort: Sort = {
4040
active: this.initialSortColumn,
@@ -54,7 +54,7 @@ export class ParameterContextTable {
5454
@Output() deleteParameterContext: EventEmitter<ParameterContextEntity> = new EventEmitter<ParameterContextEntity>();
5555
@Output() manageAccessPolicies: EventEmitter<ParameterContextEntity> = new EventEmitter<ParameterContextEntity>();
5656

57-
displayedColumns: string[] = ['name', 'provider', 'description', 'actions'];
57+
displayedColumns: string[] = ['name', 'provider', 'description', 'bounded process group', 'actions'];
5858
dataSource: MatTableDataSource<ParameterContextEntity> = new MatTableDataSource<ParameterContextEntity>();
5959

6060
constructor(private nifiCommon: NiFiCommon) {}
@@ -86,6 +86,19 @@ export class ParameterContextTable {
8686
return this.canRead(entity) && entity.component ? entity.component.description : '';
8787
}
8888

89+
formatBoundedProcessGroups(entity: ParameterContextEntity): string {
90+
return this.canRead(entity) && entity.component ? this.getHighLevelParameterContexts(entity.component) : '';
91+
}
92+
93+
private getHighLevelParameterContexts(component: ParameterContext) {
94+
const componentIds: string[] = component.boundProcessGroups.map(group => group.component.id)
95+
const boundedProcessGroupNames: string[] = component.boundProcessGroups
96+
.filter(group => !componentIds.includes(group.component.parentGroupId))
97+
.map(group => group.component.name);
98+
99+
return boundedProcessGroupNames.length <= 1 ? boundedProcessGroupNames.toString() : '(shared)'
100+
}
101+
89102
editClicked(entity: ParameterContextEntity): void {
90103
this.editParameterContext.next(entity);
91104
}
@@ -157,6 +170,9 @@ export class ParameterContextTable {
157170
case 'description':
158171
retVal = this.nifiCommon.compareString(this.formatDescription(a), this.formatDescription(b));
159172
break;
173+
case 'bounded process group':
174+
retVal = this.nifiCommon.compareString(this.formatBoundedProcessGroups(a), this.formatBoundedProcessGroups(b))
175+
break;
160176
default:
161177
return 0;
162178
}

0 commit comments

Comments
 (0)