mirror of https://github.com/apache/nifi.git
NIFI-8821 Registry - Sorting the grid-list no longer expands the listed buckets (#5611)
* [NIFI-8821] Registry - Sorting the grid-list no linger expands the listed buckets - gitignore is added to support dev UI run with npm * - trackByFn is specified for ngForOf to help td-expansion-panel to track elements after sorting * - adding trackByFn to all grid list view component codes Merged #5611 into main.
This commit is contained in:
parent
9dd6b5f3e5
commit
f85ae68fb5
|
@ -0,0 +1,67 @@
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
# contributor license agreements. See the NOTICE file distributed with
|
||||||
|
# this work for additional information regarding copyright ownership.
|
||||||
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||||
|
# (the "License"); you may not use this file except in compliance with
|
||||||
|
# the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
# compiled output
|
||||||
|
/dist
|
||||||
|
/tmp
|
||||||
|
/out-tsc
|
||||||
|
/assets
|
||||||
|
nf-registry.*.min.*
|
||||||
|
vendor.min.*
|
||||||
|
index.html
|
||||||
|
registry-favicon.png
|
||||||
|
# Only exists if Bazel was run
|
||||||
|
/bazel-out
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
/node_modules
|
||||||
|
|
||||||
|
# profiling files
|
||||||
|
chrome-profiler-events.json
|
||||||
|
speed-measure-plugin.json
|
||||||
|
|
||||||
|
# IDEs and editors
|
||||||
|
/.idea
|
||||||
|
.project
|
||||||
|
.classpath
|
||||||
|
.c9/
|
||||||
|
*.launch
|
||||||
|
.settings/
|
||||||
|
*.sublime-workspace
|
||||||
|
|
||||||
|
# IDE - VSCode
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
.history/*
|
||||||
|
debug.log
|
||||||
|
|
||||||
|
# misc
|
||||||
|
/.angular/cache
|
||||||
|
/.sass-cache
|
||||||
|
/connect.lock
|
||||||
|
/coverage
|
||||||
|
/libpeerconnection.log
|
||||||
|
npm-debug.log
|
||||||
|
yarn-error.log
|
||||||
|
testem.log
|
||||||
|
/typings
|
||||||
|
debug.log
|
||||||
|
|
||||||
|
# System Files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
|
@ -105,6 +105,10 @@ NfRegistryBucketGridListViewer.prototype = {
|
||||||
this.nfRegistryService.setBreadcrumbState('out');
|
this.nfRegistryService.setBreadcrumbState('out');
|
||||||
this.nfRegistryService.filteredDroplets = [];
|
this.nfRegistryService.filteredDroplets = [];
|
||||||
this.$subscription.unsubscribe();
|
this.$subscription.unsubscribe();
|
||||||
|
},
|
||||||
|
|
||||||
|
trackByFn: function (index) {
|
||||||
|
return index;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -106,6 +106,10 @@ NfRegistryDropletGridListViewer.prototype = {
|
||||||
this.nfRegistryService.setBreadcrumbState('out');
|
this.nfRegistryService.setBreadcrumbState('out');
|
||||||
this.nfRegistryService.filteredDroplets = [];
|
this.nfRegistryService.filteredDroplets = [];
|
||||||
this.$subscription.unsubscribe();
|
this.$subscription.unsubscribe();
|
||||||
|
},
|
||||||
|
|
||||||
|
trackByFn: function (index) {
|
||||||
|
return index;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,13 @@ limitations under the License.
|
||||||
<div class="push-top-sm" id="droplet-sort-by-field">{{nfRegistryService.getSortByLabel()}}</div>
|
<div class="push-top-sm" id="droplet-sort-by-field">{{nfRegistryService.getSortByLabel()}}</div>
|
||||||
<i class="push-top-sm fa fa-caret-down pad-left-sm" aria-hidden="true"></i>
|
<i class="push-top-sm fa fa-caret-down pad-left-sm" aria-hidden="true"></i>
|
||||||
</div>
|
</div>
|
||||||
|
<mat-menu #dropletGridSortMenu="matMenu" [overlapTrigger]="false">
|
||||||
|
<div *ngFor="let column of nfRegistryService.dropletColumns">
|
||||||
|
<button mat-menu-item *ngIf="column.sortable" (click)="nfRegistryService.sortDroplets(column);">
|
||||||
|
{{nfRegistryService.generateSortMenuLabels(column)}}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</mat-menu>
|
||||||
</div>
|
</div>
|
||||||
<div flex fxLayout="row" fxLayoutAlign="end center">
|
<div flex fxLayout="row" fxLayoutAlign="end center">
|
||||||
<td-chips [(ngModel)]="nfRegistryService.dropletsSearchTerms"
|
<td-chips [(ngModel)]="nfRegistryService.dropletsSearchTerms"
|
||||||
|
@ -30,13 +37,6 @@ limitations under the License.
|
||||||
(add)="nfRegistryService.filterDroplets(nfRegistryService.activeDropletColumn.name, nfRegistryService.activeDropletColumn.sortOrder);"
|
(add)="nfRegistryService.filterDroplets(nfRegistryService.activeDropletColumn.name, nfRegistryService.activeDropletColumn.sortOrder);"
|
||||||
(remove)="nfRegistryService.filterDroplets(nfRegistryService.activeDropletColumn.name, nfRegistryService.activeDropletColumn.sortOrder);"class="push-right-sm"></td-chips>
|
(remove)="nfRegistryService.filterDroplets(nfRegistryService.activeDropletColumn.name, nfRegistryService.activeDropletColumn.sortOrder);"class="push-right-sm"></td-chips>
|
||||||
</div>
|
</div>
|
||||||
<mat-menu #dropletGridSortMenu="matMenu" [overlapTrigger]="false">
|
|
||||||
<div *ngFor="let column of nfRegistryService.dropletColumns">
|
|
||||||
<button mat-menu-item *ngIf="column.sortable" (click)="nfRegistryService.sortDroplets(column);">
|
|
||||||
{{nfRegistryService.generateSortMenuLabels(column)}}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</mat-menu>
|
|
||||||
<button [disabled]="nfRegistryService.buckets.length === 0 || (nfRegistryService.filterWritableBuckets(nfRegistryService.buckets)).length === 0"
|
<button [disabled]="nfRegistryService.buckets.length === 0 || (nfRegistryService.filterWritableBuckets(nfRegistryService.buckets)).length === 0"
|
||||||
(click)="nfRegistryService.openImportNewFlowDialog(nfRegistryService.buckets, nfRegistryService.bucket)"
|
(click)="nfRegistryService.openImportNewFlowDialog(nfRegistryService.buckets, nfRegistryService.bucket)"
|
||||||
class="push-left-sm push-top-sm" data-automation-id="import-new-flow-button"
|
class="push-left-sm push-top-sm" data-automation-id="import-new-flow-button"
|
||||||
|
@ -50,7 +50,7 @@ limitations under the License.
|
||||||
</div>
|
</div>
|
||||||
<div id="nifi-registry-explorer-grid-list-viewer-droplet-container" class="pad-right-xxl pad-left-xxl"
|
<div id="nifi-registry-explorer-grid-list-viewer-droplet-container" class="pad-right-xxl pad-left-xxl"
|
||||||
*ngIf="nfRegistryService.filteredDroplets.length > 0">
|
*ngIf="nfRegistryService.filteredDroplets.length > 0">
|
||||||
<div *ngFor="let droplet of nfRegistryService.filteredDroplets" [@flyInOut]>
|
<div *ngFor="let droplet of nfRegistryService.filteredDroplets trackBy: trackByFn" [@flyInOut]>
|
||||||
<td-expansion-panel class="mat-elevation-z5" label={{droplet.name}} sublabel={{droplet.type}}
|
<td-expansion-panel class="mat-elevation-z5" label={{droplet.name}} sublabel={{droplet.type}}
|
||||||
[disabled]="disabled" (expanded)="nfRegistryService.getDropletSnapshotMetadata(droplet)">
|
[disabled]="disabled" (expanded)="nfRegistryService.getDropletSnapshotMetadata(droplet)">
|
||||||
<ng-template td-expansion-panel-label>
|
<ng-template td-expansion-panel-label>
|
||||||
|
|
|
@ -84,6 +84,10 @@ NfRegistryGridListViewer.prototype = {
|
||||||
this.nfRegistryService.setBreadcrumbState('out');
|
this.nfRegistryService.setBreadcrumbState('out');
|
||||||
this.nfRegistryService.filteredDroplets = [];
|
this.nfRegistryService.filteredDroplets = [];
|
||||||
this.$subscription.unsubscribe();
|
this.$subscription.unsubscribe();
|
||||||
|
},
|
||||||
|
|
||||||
|
trackByFn: function (index) {
|
||||||
|
return index;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue