From a41e536d5767138a81ab419c8d3207c8cd932adc Mon Sep 17 00:00:00 2001 From: Guilhermo Pazuch <1490938+gpazuch@users.noreply.github.com> Date: Fri, 25 Feb 2022 12:22:17 -0300 Subject: [PATCH] fix(orb-ui): agent group matching agents list issues (#893) * wip * fix time format for last_hb * code style fixes * wip * fix bug when updating tags for agent groupings --- ui/src/app/@theme/styles/themes.scss | 15 ++++---- .../datasets/add/dataset.add.component.html | 2 +- .../add/agent.policy.add.component.html | 2 +- .../fleet/agents/add/agent.add.component.html | 2 +- .../groups/add/agent.group.add.component.html | 33 ++++++++-------- .../groups/add/agent.group.add.component.scss | 9 ++++- .../groups/add/agent.group.add.component.ts | 38 +++++++++++++++---- .../pages/sinks/add/sink.add.component.html | 2 +- ui/src/app/styles/mainflux.scss | 6 ++- 9 files changed, 71 insertions(+), 38 deletions(-) diff --git a/ui/src/app/@theme/styles/themes.scss b/ui/src/app/@theme/styles/themes.scss index b26baa7f2..10e37a51e 100644 --- a/ui/src/app/@theme/styles/themes.scss +++ b/ui/src/app/@theme/styles/themes.scss @@ -7,7 +7,7 @@ @import './material/material-light'; $nb-themes: nb-register-theme(( - layout-padding-top: 2.25rem, + layout-padding-top: 1rem, menu-item-icon-margin: 0 0.5rem 0 0, card-height-tiny: 13.5rem, card-height-small: 21.1875rem, @@ -25,7 +25,7 @@ $nb-themes: nb-register-theme(( ), default, default); $nb-themes: nb-register-theme(( - layout-padding-top: 2.25rem, + layout-padding-top: 1rem, menu-item-icon-margin: 0 0.5rem 0 0, card-height-tiny: 13.5rem, card-height-small: 21.1875rem, @@ -42,7 +42,7 @@ $nb-themes: nb-register-theme(( ), cosmic, cosmic); $nb-themes: nb-register-theme(( - layout-padding-top: 2.25rem, + layout-padding-top: 1rem, menu-item-icon-margin: 0 0.5rem 0 0, card-height-tiny: 13.5rem, card-height-small: 21.1875rem, @@ -59,7 +59,7 @@ $nb-themes: nb-register-theme(( ), corporate, corporate); $nb-themes: nb-register-theme(( - layout-padding-top: 2.25rem, + layout-padding-top: 1rem, menu-item-icon-margin: 0 0.5rem 0 0, card-height-tiny: 13.5rem, card-height-small: 21.1875rem, @@ -76,7 +76,7 @@ $nb-themes: nb-register-theme(( ), dark, dark); $nb-themes: nb-register-theme(( - layout-padding-top: 2.25rem, + layout-padding-top: 1rem, menu-item-icon-margin: 0 0.5rem 0 0, card-height-tiny: 13.5rem, card-height-small: 21.1875rem, @@ -94,7 +94,7 @@ $nb-themes: nb-register-theme(( ), material-light, material-light); $nb-themes: nb-register-theme(( - layout-padding-top: 2.25rem, + layout-padding-top: 1rem, menu-item-icon-margin: 0 0.5rem 0 0, card-height-tiny: 13.5rem, card-height-small: 21.1875rem, @@ -115,7 +115,7 @@ $nb-themes: nb-register-theme(( // outter layout layout-padding-left: 0, layout-padding-right: 0, - layout-padding-top: 1.75rem, + layout-padding-top: 1rem !important, // nav menu scrollable-padding: 10px 0 12px 0, //menu-card-height-tiny: 13.5rem, @@ -152,6 +152,7 @@ $nb-themes: nb-register-theme(( slide-out-shadow-color: 0 4px 14px 0 #292929, slide-out-shadow-color-rtl: 0 4px 14px 0 #292929, // Stepper + stepper-step-margin-left: 1rem, stepper-step-index-border-color: #969fb9, stepper-step-index-active-border-color: #df316f, stepper-step-active-text-color: #df316f, diff --git a/ui/src/app/pages/datasets/add/dataset.add.component.html b/ui/src/app/pages/datasets/add/dataset.add.component.html index 6fdccf363..2f46b2d86 100644 --- a/ui/src/app/pages/datasets/add/dataset.add.component.html +++ b/ui/src/app/pages/datasets/add/dataset.add.component.html @@ -11,7 +11,7 @@

{{isEdit ? 'Edit Dataset' : 'New Dataset'}}

- {{ isEdit ? 'Edit Agent Policy' : 'Create Agent Policy'}}
- {{isEdit ? 'Edit Agent' : 'New Agent'}}
- {{strings[isEdit ? 'edit' : 'add']['header']}}
-
+
{{strings[isEdit ? 'edit' : 'add']['header']}}

{{firstFormGroup.controls.description.value}}

+
-
@@ -243,19 +243,20 @@

{{strings[isEdit ? 'edit' : 'add']['header']}}

-
- +
@@ -304,7 +305,7 @@

{{strings[isEdit ? 'edit' : 'add']['header']}}

-
+
{{strings[isEdit ? 'edit' : 'add']['header']}}
- {{ row.ts_last_hb | date: 'medium' }} + {{ row.ts_last_hb | date: 'short' }}
diff --git a/ui/src/app/pages/fleet/groups/add/agent.group.add.component.scss b/ui/src/app/pages/fleet/groups/add/agent.group.add.component.scss index 247350f68..f6c0c3b11 100644 --- a/ui/src/app/pages/fleet/groups/add/agent.group.add.component.scss +++ b/ui/src/app/pages/fleet/groups/add/agent.group.add.component.scss @@ -41,6 +41,10 @@ mat-chip nb-icon { } } + nb-layout-column { + padding: 1rem 1rem 0.75rem !important; + } + .step { flex-direction: row-reverse !important; align-items: start !important; @@ -186,7 +190,10 @@ tr div p { .tag-table { position: relative; left: 0; - width: 900px; + min-height: 18vw; + height: 25vw; + max-height: 30vw; + width: 57vw; } .orb-service- { diff --git a/ui/src/app/pages/fleet/groups/add/agent.group.add.component.ts b/ui/src/app/pages/fleet/groups/add/agent.group.add.component.ts index 400a17ae2..91309b06c 100644 --- a/ui/src/app/pages/fleet/groups/add/agent.group.add.component.ts +++ b/ui/src/app/pages/fleet/groups/add/agent.group.add.component.ts @@ -1,4 +1,4 @@ -import { AfterViewInit, Component, TemplateRef, ViewChild } from '@angular/core'; +import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, TemplateRef, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { STRINGS } from 'assets/text/strings'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; @@ -8,7 +8,7 @@ import { TagMatch } from 'app/common/interfaces/orb/tag.match.interface'; import { Agent } from 'app/common/interfaces/orb/agent.interface'; import { DropdownFilterItem } from 'app/common/interfaces/mainflux.interface'; import { AgentsService } from 'app/common/services/agents/agents.service'; -import { ColumnMode, TableColumn } from '@swimlane/ngx-datatable'; +import { ColumnMode, DatatableComponent, TableColumn } from '@swimlane/ngx-datatable'; import { NotificationsService } from 'app/common/services/notifications/notifications.service'; @Component({ @@ -16,7 +16,7 @@ import { NotificationsService } from 'app/common/services/notifications/notifica templateUrl: './agent.group.add.component.html', styleUrls: ['./agent.group.add.component.scss'], }) -export class AgentGroupAddComponent implements AfterViewInit { +export class AgentGroupAddComponent implements OnInit, OnChanges, AfterViewInit { // page vars strings = { ...STRINGS.agentGroups, stepper: STRINGS.stepper }; @@ -26,6 +26,9 @@ export class AgentGroupAddComponent implements AfterViewInit { columns: TableColumn[]; + // table + @ViewChild(DatatableComponent) table: DatatableComponent; + // templates @ViewChild('agentTagsTemplateCell') agentTagsTemplateCell: TemplateRef; @@ -71,6 +74,7 @@ export class AgentGroupAddComponent implements AfterViewInit { constructor( private agentGroupsService: AgentGroupsService, private agentsService: AgentsService, + private cdr: ChangeDetectorRef, private notificationsService: NotificationsService, private router: Router, private route: ActivatedRoute, @@ -86,7 +90,9 @@ export class AgentGroupAddComponent implements AfterViewInit { this.agentGroupID = this.route.snapshot.paramMap.get('id'); this.isEdit = !!this.agentGroupID; + } + ngOnInit() { this.getAgentGroup() .then((agentGroup) => { this.agentGroup = agentGroup; @@ -98,6 +104,12 @@ export class AgentGroupAddComponent implements AfterViewInit { .catch(reason => console.warn(`Couldn't retrieve data. Reason: ${ reason }`)); } + ngOnChanges() { + this.table.rows = this.matchingAgents; + this.table.recalculate(); + + } + initializeForms() { const { name, description } = this.agentGroup; @@ -118,21 +130,27 @@ export class AgentGroupAddComponent implements AfterViewInit { prop: 'name', name: 'Agent Name', resizeable: false, + canAutoResize: true, flexGrow: 1, - minWidth: 90, + minWidth: 150, + width: 175, }, { prop: 'orb_tags', name: 'Tags', resizeable: false, - minWidth: 100, - flexGrow: 2, + minWidth: 250, + width: 350, + canAutoResize: true, + flexGrow: 10, cellTemplate: this.agentTagsTemplateCell, }, { prop: 'state', name: 'Status', - minWidth: 90, + minWidth: 100, + width: 100, + canAutoResize: true, flexGrow: 1, cellTemplate: this.agentStateTemplateRef, }, @@ -141,9 +159,11 @@ export class AgentGroupAddComponent implements AfterViewInit { prop: 'ts_last_hb', cellTemplate: this.agentLastHBTemplateRef, minWidth: 130, + width: 140, resizeable: false, + canAutoResize: true, sortable: false, - flexGrow: 1, + flexGrow: 2, }, ]; } @@ -226,6 +246,8 @@ export class AgentGroupAddComponent implements AfterViewInit { this.tagMatch = summary; this.matchingAgents = matches; + this.cdr.markForCheck(); + }).catch(reason => console.warn(`Couldn't retrieve data. Reason: ${ reason }`)); } diff --git a/ui/src/app/pages/sinks/add/sink.add.component.html b/ui/src/app/pages/sinks/add/sink.add.component.html index 8d43712d6..da8ea9398 100644 --- a/ui/src/app/pages/sinks/add/sink.add.component.html +++ b/ui/src/app/pages/sinks/add/sink.add.component.html @@ -11,7 +11,7 @@

{{strings.sink[isEdit ? 'edit' : 'add']['header']}}

-