[NIFI-13041] update listing table column widths (#8656)

* [NIFI-13041] update listing table column widths (moreDetails)

* listing tables actions column widths

* update table columns to better fit the data

* prettier

* restore property table commented out html

* name column now 25%, more-details and actions columns fixed width, all other columns flex

* column width percenatages for clustered tables

* property table updates

This closes #8656
This commit is contained in:
Scott Aslan 2024-04-16 17:17:36 -04:00 committed by GitHub
parent 05558ca2de
commit 3f7085fec8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
53 changed files with 286 additions and 170 deletions

View File

@ -38,7 +38,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (canRemove()) {
<div
class="pointer fa fa-trash primary-color"

View File

@ -18,7 +18,7 @@
.policy-table {
.listing-table {
.mat-column-actions {
width: 75px;
width: 32px;
}
}
}

View File

@ -29,7 +29,7 @@
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<ng-container>
<div class="flex items-center gap-x-3">
<div class="flex items-center gap-x-2">
@if (canRead(item)) {
<div
class="pointer fa fa-info-circle primary-color"

View File

@ -66,9 +66,9 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3 pointer">
<div class="flex items-center justify-end gap-x-2">
<div
class="fa fa-long-arrow-right primary-color"
class="pointer fa fa-long-arrow-right primary-color"
title="Go To"
(click)="goToClicked(item)"></div>
</div>

View File

@ -17,9 +17,16 @@
.local-changes-table {
.listing-table {
.mat-column-componentName {
width: 230px;
}
.mat-column-changeType {
width: 230px;
}
.mat-column-actions {
width: 40px;
min-width: 40px;
width: 32px;
}
}
}

View File

@ -65,7 +65,7 @@
<ng-container matColumnDef="moreDetails">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center gap-x-2">
@if (hasComments(item)) {
<div>
<div
@ -190,7 +190,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let port">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (
port.exists === true &&
port.connected === true &&

View File

@ -21,18 +21,22 @@
line-height: normal;
}
.manage-remote-ports-table.listing-table {
@include mat.table-density(-4);
.manage-remote-ports-table {
.listing-table {
@include mat.table-density(-4);
table {
.mat-column-moreDetails {
width: 32px;
min-width: 32px;
}
table {
.mat-column-moreDetails {
width: 52px;
}
.mat-column-actions {
width: 75px;
min-width: 75px;
.mat-column-name {
width: 25%;
}
.mat-column-actions {
width: 52px;
}
}
}
}

View File

@ -15,7 +15,7 @@
~ limitations under the License.
-->
<div class="relative h-full">
<div class="parameter-context-table relative h-full">
<div class="listing-table absolute inset-0 overflow-y-auto">
<table
mat-table
@ -30,7 +30,7 @@
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
@if (canRead(item)) {
<div class="flex items-center gap-x-3">
<div class="flex items-center gap-x-2">
<!-- TODO - handle read only in configure component? -->
@if (canRead(item)) {
<div class="pointer fa fa-info-circle primary-color"></div>
@ -44,7 +44,9 @@
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Name</th>
<td mat-cell *matCellDef="let item">
<div [ngClass]="{ unset: !canRead(item), 'nifi-surface-default': !canRead(item) }">
<div
[ngClass]="{ unset: !canRead(item), 'nifi-surface-default': !canRead(item) }"
class="overflow-hidden overflow-ellipsis whitespace-nowrap">
{{ formatName(item) }}
</div>
</td>
@ -70,7 +72,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (canRead(item) && canWrite(item)) {
<div
class="pointer fa fa-pencil primary-color"

View File

@ -14,3 +14,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
.parameter-context-table {
.listing-table {
.mat-column-moreDetails {
width: 32px;
}
.mat-column-name {
width: 25%;
}
.mat-column-actions {
width: 96px;
}
}
}

View File

@ -95,7 +95,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (canGoToParameter(item)) {
<div
class="pointer fa fa-long-arrow-right primary-color"

View File

@ -76,10 +76,12 @@
<ng-container matColumnDef="moreDetails">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div
class="pointer fa fa-info-circle primary-color"
title="View Details"
(click)="viewDetailsClicked(item)"></div>
<div class="flex items-center gap-x-2">
<div
class="pointer fa fa-info-circle primary-color"
title="View Details"
(click)="viewDetailsClicked(item)"></div>
</div>
</td>
</ng-container>
@ -145,7 +147,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
<div
class="pointer icon icon-lineage primary-color"
(click)="showLineageGraph(item)"

View File

@ -19,13 +19,11 @@
.listing-table {
table {
.mat-column-moreDetails {
min-width: 50px;
width: 50px;
width: 32px;
}
.mat-column-actions {
min-width: 50px;
width: 50px;
width: 52px;
}
}
}

View File

@ -45,10 +45,12 @@
<ng-container matColumnDef="moreDetails">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div
class="pointer fa fa-info-circle primary-color"
title="View Details"
(click)="viewFlowFileClicked(item)"></div>
<div class="flex items-center gap-x-2">
<div
class="pointer fa fa-info-circle primary-color"
title="View Details"
(click)="viewFlowFileClicked(item)"></div>
</div>
</td>
</ng-container>
@ -122,7 +124,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (item.size > 0) {
<div
class="pointer fa fa-download primary-color"

View File

@ -19,23 +19,15 @@
.listing-table {
table {
.mat-column-moreDetails {
min-width: 50px;
width: 50px;
width: 32px;
}
.mat-column-position {
min-width: 75px;
width: 75px;
}
.mat-column-penalized {
min-width: 85px;
width: 85px;
.mat-column-flowFileUuid {
width: 25%;
}
.mat-column-actions {
min-width: 100px;
width: 100px;
width: 74px;
}
}
}

View File

@ -30,7 +30,7 @@
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
@if (canRead(item)) {
<div class="flex items-center gap-x-3">
<div class="flex items-center gap-x-2">
<div
class="pointer fa fa-book primary-color"
(click)="viewDocumentationClicked(item, $event)"
@ -121,7 +121,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (canConfigure(item)) {
<div
class="pointer fa fa-cog primary-color"

View File

@ -19,7 +19,15 @@
.listing-table {
table {
.mat-column-moreDetails {
min-width: 100px;
width: 96px;
}
.mat-column-name {
width: 25%;
}
.mat-column-actions {
width: 140px;
}
}
}

View File

@ -253,7 +253,7 @@
<ng-container matColumnDef="indicators">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3 justify-end">
<div class="flex items-center gap-x-2 justify-end">
<div
class="fa fa-hashtag primary-color"
title="Parameter is currently referenced by a property. The sensitivity cannot be changed."

View File

@ -37,11 +37,10 @@
.listing-table {
.mat-column-sensitive {
width: 32px;
min-width: 32px;
}
.mat-column-indicators {
width: 48px;
min-width: 48px;
width: 52px;
}
}
}

View File

@ -36,7 +36,7 @@
<ng-container matColumnDef="indicators">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center gap-x-2">
@if (isSyncedToParameterContext(item)) {
<div class="fa fa-star primary-color" title="Synced to a parameter context."></div>
}

View File

@ -32,7 +32,7 @@
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
@if (canRead(item)) {
<div class="flex items-center gap-x-3">
<div class="flex items-center gap-x-2">
<!-- TODO: open details -->
<div class="pointer fa fa-info-circle primary-color" title="View details"></div>
@ -67,7 +67,8 @@
[ngClass]="{
unset: !canRead(item),
'nifi-surface-default': !canRead(item)
}">
}"
class="overflow-hidden overflow-ellipsis whitespace-nowrap">
{{ formatName(item) }}
</div>
</td>
@ -96,7 +97,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (canConfigure(item)) {
<div
class="pointer fa fa-cog primary-color"

View File

@ -17,6 +17,18 @@
.parameter-providers-table {
.listing-table {
// overrides to the listing-table styles go here
table {
.mat-column-moreDetails {
width: 82px;
}
.mat-column-name {
width: 25%;
}
.mat-column-actions {
width: 118px;
}
}
}
}

View File

@ -15,8 +15,8 @@
~ limitations under the License.
-->
<div class="relative h-full">
<div class="registry-client-table listing-table absolute inset-0 overflow-y-auto">
<div class="registry-client-table relative h-full">
<div class="listing-table absolute inset-0 overflow-y-auto">
<table
mat-table
[dataSource]="dataSource"
@ -30,7 +30,7 @@
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
@if (canRead(item)) {
<div class="flex items-center">
<div class="flex items-center gap-x-2">
<!-- TODO - handle read only in configure component? -->
@if (hasErrors(item)) {
<div
@ -99,7 +99,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (canConfigure(item)) {
<div
class="pointer fa fa-cog primary-color"

View File

@ -15,10 +15,20 @@
* limitations under the License.
*/
.registry-client-table.listing-table {
table {
.mat-column-moreDetails {
min-width: 100px;
.registry-client-table {
.listing-table {
table {
.mat-column-moreDetails {
width: 52px;
}
.mat-column-name {
width: 25%;
}
.mat-column-actions {
width: 52px;
}
}
}
}

View File

@ -30,7 +30,7 @@
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
@if (canRead(item)) {
<div class="flex items-center gap-x-3">
<div class="flex items-center gap-x-2">
<div
class="pointer fa fa-book primary-color"
(click)="viewDocumentationClicked(item, $event)"
@ -75,7 +75,9 @@
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Name</th>
<td mat-cell *matCellDef="let item">
<div [ngClass]="{ unset: !canRead(item), 'nifi-surface-default': !canRead(item) }">
<div
[ngClass]="{ unset: !canRead(item), 'nifi-surface-default': !canRead(item) }"
class="overflow-hidden overflow-ellipsis whitespace-nowrap">
{{ formatName(item) }}
</div>
</td>
@ -115,7 +117,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (canStop(item)) {
<div
class="pointer fa fa-stop primary-color"

View File

@ -18,7 +18,15 @@
.reporting-task-table.listing-table {
table {
.mat-column-moreDetails {
min-width: 100px;
width: 96px;
}
.mat-column-name {
width: 25%;
}
.mat-column-actions {
width: 140px; // only 6 of the 8 action icons can be present at the same time
}
}
}

View File

@ -18,8 +18,7 @@
.connection-cluster-table {
.listing-table {
.mat-column-node {
min-width: 200px;
width: 30%;
width: 25%;
}
}
}

View File

@ -17,9 +17,16 @@
.port-cluster-table {
.listing-table {
.mat-column-node {
min-width: 200px;
width: 50%;
.mat-column-runStatus {
width: 15%;
}
.mat-column-in {
width: 15%;
}
.mat-column-out {
width: 15%;
}
}
}

View File

@ -18,8 +18,7 @@
.process-group-cluster-table {
.listing-table {
.mat-column-node {
min-width: 200px;
width: 30%;
width: 25%;
}
}
}

View File

@ -18,8 +18,7 @@
.processor-cluster-table {
.listing-table {
.mat-column-node {
min-width: 200px;
width: 30%;
width: 25%;
}
}
}

View File

@ -42,7 +42,9 @@
<!-- More Details Column -->
<ng-container matColumnDef="moreDetails">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item"></td>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-2"></div>
</td>
</ng-container>
<!-- Name Column -->
@ -140,7 +142,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
<div
class="pointer fa fa-long-arrow-right primary-color"
[routerLink]="getPortLink(item)"

View File

@ -22,9 +22,21 @@
min-width: 32px;
}
.mat-column-runStatus {
width: 20%;
}
.mat-column-in {
width: 20%;
}
.mat-column-out {
width: 20%;
}
.mat-column-actions {
width: 80px;
min-width: 80px;
width: 52px;
min-width: 52px;
}
}
}

View File

@ -43,7 +43,9 @@
<!-- More Details Column -->
<ng-container matColumnDef="moreDetails">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item"></td>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-2"></div>
</td>
</ng-container>
<!-- Name Column -->
@ -204,7 +206,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
<div
class="pointer fa fa-long-arrow-right primary-color"
[routerLink]="getConnectionLink(item)"

View File

@ -19,12 +19,14 @@
.listing-table {
.mat-column-moreDetails {
width: 32px;
min-width: 32px;
}
.mat-column-name {
width: 25%;
}
.mat-column-actions {
width: 80px;
min-width: 80px;
width: 74px;
}
}
}

View File

@ -44,7 +44,7 @@
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
@if (canRead(item)) {
<div class="flex items-center gap-x-3">
<div class="flex items-center gap-x-2">
<!-- TODO - handle read only in configure component? -->
@if (canRead(item)) {
<div
@ -330,7 +330,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
<div
class="pointer fa fa-long-arrow-right primary-color"
[routerLink]="getProcessGroupLink(item)"

View File

@ -19,12 +19,14 @@
.listing-table {
.mat-column-moreDetails {
width: 32px;
min-width: 32px;
}
.mat-column-name {
width: 25%;
}
.mat-column-actions {
width: 80px;
min-width: 80px;
width: 74px;
}
}
}

View File

@ -44,7 +44,7 @@
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
@if (canRead(item)) {
<div class="flex items-center gap-x-3">
<div class="flex items-center gap-x-2">
<!-- TODO - handle read only in configure component? -->
@if (canRead(item)) {
<div
@ -70,7 +70,9 @@
P
</div>
}
<div>{{ formatName(item) }}</div>
<div class="flex-1 overflow-ellipsis overflow-hidden whitespace-nowrap">
{{ formatName(item) }}
</div>
</div>
</td>
</ng-container>
@ -81,7 +83,9 @@
<div class="flex-1 overflow-ellipsis overflow-hidden whitespace-nowrap">Type</div>
</th>
<td mat-cell *matCellDef="let item" [title]="formatType(item)">
{{ formatType(item) }}
<div class="flex-1 overflow-ellipsis overflow-hidden whitespace-nowrap">
{{ formatType(item) }}
</div>
</td>
</ng-container>
@ -101,8 +105,7 @@
<ng-container matColumnDef="runStatus">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Run Status</th>
<td mat-cell *matCellDef="let item">
<div
class="inline-block overflow-hidden overflow-ellipsis whitespace-nowrap space-x-1.5 align-middle">
<div class="inline-block space-x-1.5 align-middle">
<span [ngClass]="getRunStatusIcon(item)"></span>
<span [title]="formatRunStatus(item)">{{ formatRunStatus(item) }}</span>
@ -246,7 +249,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
<div
class="pointer fa fa-long-arrow-right primary-color"
[routerLink]="getProcessorLink(item)"

View File

@ -18,12 +18,14 @@
.listing-table {
.mat-column-moreDetails {
width: 32px;
min-width: 32px;
}
.mat-column-name {
width: 25%;
}
.mat-column-actions {
width: 80px;
min-width: 80px;
width: 74px;
}
}
.primary-node-only {

View File

@ -43,7 +43,9 @@
<!-- More Details Column -->
<ng-container matColumnDef="moreDetails">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item"></td>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-2"></div>
</td>
</ng-container>
<!-- Name Column -->
@ -146,7 +148,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
<div
class="pointer fa fa-long-arrow-right primary-color"
[routerLink]="getRemoteProcessGroupLink(item)"

View File

@ -19,12 +19,14 @@
.listing-table {
.mat-column-moreDetails {
width: 32px;
min-width: 32px;
}
.mat-column-name {
width: 25%;
}
.mat-column-actions {
width: 80px;
min-width: 80px;
width: 74px;
}
}
}

View File

@ -60,11 +60,13 @@
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
@if (canGoToPolicyTarget(item)) {
<div
class="pointer fa fa-long-arrow-right primary-color"
[routerLink]="getPolicyTargetLink(item)"
mat-dialog-close="ROUTED"
title="Go to"></div>
<div class="flex items-center justify-end gap-x-2">
<div
class="pointer fa fa-long-arrow-right primary-color"
[routerLink]="getPolicyTargetLink(item)"
mat-dialog-close="ROUTED"
title="Go to"></div>
</div>
}
</td>
</ng-container>

View File

@ -24,17 +24,8 @@
.listing-table {
table {
td,
th {
cursor: default;
}
.mat-column-action {
width: 75px;
}
.mat-column-actions {
width: 50px;
width: 32px;
}
}
}

View File

@ -78,7 +78,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (canEditOrDelete(currentUser, item)) {
<div
class="pointer fa fa-pencil primary-color"

View File

@ -18,7 +18,7 @@
.user-table {
.listing-table {
.mat-column-actions {
width: 75px;
width: 74px;
}
}
}

View File

@ -15,8 +15,8 @@
~ limitations under the License.
-->
<div class="relative h-full">
<div class="controller-service-table listing-table absolute inset-0 overflow-y-auto">
<div class="controller-service-table relative h-full">
<div class="listing-table absolute inset-0 overflow-y-auto">
<table
mat-table
[dataSource]="dataSource"
@ -30,7 +30,7 @@
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
@if (canRead(item)) {
<div class="flex items-center gap-x-3">
<div class="flex items-center gap-x-2">
<div
class="pointer fa fa-book primary-color"
(click)="viewDocumentationClicked(item, $event)"
@ -75,7 +75,9 @@
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Name</th>
<td mat-cell *matCellDef="let item">
<div [ngClass]="{ unset: !canRead(item), 'nifi-surface-default': !canRead(item) }">
<div
[ngClass]="{ unset: !canRead(item), 'nifi-surface-default': !canRead(item) }"
class="overflow-hidden overflow-ellipsis whitespace-nowrap">
{{ formatName(item) }}
</div>
</td>
@ -97,6 +99,14 @@
</td>
</ng-container>
<!-- Scope Column -->
<ng-container matColumnDef="scope">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Scope</th>
<td mat-cell *matCellDef="let item">
{{ formatScope(item) }}
</td>
</ng-container>
<!-- State Column -->
<ng-container matColumnDef="state">
<th mat-header-cell *matHeaderCellDef mat-sort-header>State</th>
@ -108,20 +118,12 @@
</td>
</ng-container>
<!-- Scope Column -->
<ng-container matColumnDef="scope">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Scope</th>
<td mat-cell *matCellDef="let item">
{{ formatScope(item) }}
</td>
</ng-container>
<!-- Actions Column -->
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
@if (definedByCurrentGroup(item)) {
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (canConfigure(item)) {
<div
class="pointer fa fa-cog primary-color"

View File

@ -21,7 +21,15 @@
.listing-table {
table {
.mat-column-moreDetails {
min-width: 90px;
width: 96px;
}
.mat-column-name {
width: 25%;
}
.mat-column-actions {
width: 140px; // only 6 of the 8 action icons can be present at the same time
}
}
}

View File

@ -102,7 +102,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let item">
<div class="flex items-center gap-x-3">
<div class="flex items-center justify-end gap-x-2">
@if (item.descriptor.identifiesControllerService) {
<div
class="pointer fa fa-plus primary-color"

View File

@ -14,3 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
.property-table {
.listing-table {
table {
.mat-column-actions {
width: 74px;
}
}
}
}

View File

@ -127,6 +127,12 @@ export class PropertyTable implements AfterViewInit, ControlValueAccessor {
isTouched = false;
onTouched!: () => void;
onChange!: (properties: Property[]) => void;
editorOpen = false;
editorTrigger: any = null;
editorItem!: PropertyItem;
editorWidth = 0;
editorOffsetX = 0;
editorOffsetY = 0;
private originPos: OriginConnectionPosition = {
originX: 'center',
@ -136,17 +142,7 @@ export class PropertyTable implements AfterViewInit, ControlValueAccessor {
overlayX: 'center',
overlayY: 'center'
};
private editorPosition: ConnectionPositionPair = new ConnectionPositionPair(
this.originPos,
this.editorOverlayPos,
0,
0
);
public editorPositions: ConnectionPositionPair[] = [this.editorPosition];
editorOpen = false;
editorTrigger: any = null;
editorItem!: PropertyItem;
editorWidth = 0;
public editorPositions: ConnectionPositionPair[] = [];
constructor(
private changeDetector: ChangeDetectorRef,
@ -408,10 +404,28 @@ export class PropertyTable implements AfterViewInit, ControlValueAccessor {
if (td) {
const { width } = td.getBoundingClientRect();
this.editorPositions.pop();
this.editorItem = item;
this.editorTrigger = editorTrigger;
this.editorOpen = true;
this.editorWidth = width;
if (this.hasAllowableValues(item)) {
this.editorWidth = width;
this.editorOffsetX = -24;
this.editorOffsetY = 24;
} else {
this.editorWidth = width + 100;
this.editorOffsetX = 8;
this.editorOffsetY = 56;
}
this.editorPositions.push(
new ConnectionPositionPair(
this.originPos,
this.editorOverlayPos,
this.editorOffsetX,
this.editorOffsetY
)
);
}
}
}

View File

@ -38,23 +38,15 @@
}
.fa {
width: 10px;
width: 14px;
height: 14px;
text-align: center;
}
.icon {
width: 10px;
width: 14px;
text-align: center;
}
.mat-column-moreDetails {
min-width: 30px;
}
.mat-column-actions {
min-width: 115px;
}
}
}