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']}}