@c8y/ngx-components 1018.503.43 → 1018.503.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/context-dashboard/add-dashboard.factory.d.ts +3 -2
- package/context-dashboard/context-dashboard.model.d.ts +16 -1
- package/context-dashboard/context-dashboard.service.d.ts +4 -2
- package/context-dashboard/report-dashboard/report-dashboard-list.component.d.ts +3 -2
- package/core/common/ApplicationOptions.d.ts +2 -2
- package/core/login/credentials.component.d.ts +1 -3
- package/core/login/login.component.d.ts +3 -1
- package/esm2020/context-dashboard/add-dashboard.factory.mjs +17 -5
- package/esm2020/context-dashboard/context-dashboard.component.mjs +24 -4
- package/esm2020/context-dashboard/context-dashboard.model.mjs +19 -4
- package/esm2020/context-dashboard/context-dashboard.service.mjs +21 -6
- package/esm2020/context-dashboard/dashboard-availability.component.mjs +3 -3
- package/esm2020/context-dashboard/report-dashboard/report-dashboard-list.component.mjs +21 -6
- package/esm2020/core/common/ApplicationOptions.mjs +1 -1
- package/esm2020/core/data-grid/column/filtering-form-renderer.component.mjs +4 -1
- package/esm2020/core/login/credentials.component.mjs +15 -18
- package/esm2020/core/login/login.component.mjs +18 -15
- package/esm2020/widgets/implementations/device-control-message/device-control-message-widget-view/device-control-message-widget-view.component.mjs +17 -9
- package/esm2020/widgets/implementations/map/map-widget.component.mjs +26 -11
- package/esm2020/widgets/implementations/three-d-rotation/lazy-box-model/lazy-load-box-model.mjs +3 -3
- package/esm2020/widgets/implementations/three-d-rotation/lazy-phone-model/lazy-load-phone-model.mjs +3 -3
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs +91 -15
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-widgets-implementations-device-control-message.mjs +19 -8
- package/fesm2015/c8y-ngx-components-widgets-implementations-device-control-message.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-widgets-implementations-map.mjs +37 -20
- package/fesm2015/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.mjs +2 -2
- package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.mjs +2 -2
- package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +14 -11
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs +91 -15
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-widgets-implementations-device-control-message.mjs +15 -8
- package/fesm2020/c8y-ngx-components-widgets-implementations-device-control-message.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-widgets-implementations-map.mjs +25 -13
- package/fesm2020/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.mjs +2 -2
- package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.mjs +2 -2
- package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +14 -11
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/widgets/implementations/device-control-message/device-control-message-widget-view/device-control-message-widget-view.component.d.ts +4 -2
- package/widgets/implementations/map/map-widget.component.d.ts +7 -4
- package/widgets/implementations/three-d-rotation/lazy-box-model/lazy-load-box-model.d.ts +79 -1
- package/widgets/implementations/three-d-rotation/lazy-phone-model/lazy-load-phone-model.d.ts +76 -1
- package/esm2020/widgets/implementations/three-d-rotation/box-model/c8y-ngx-components-widgets-implementations-three-d-rotation-box-model.mjs +0 -5
- package/esm2020/widgets/implementations/three-d-rotation/box-model/index.mjs +0 -4
- package/esm2020/widgets/implementations/three-d-rotation/phone-model/c8y-ngx-components-widgets-implementations-three-d-rotation-phone-model.mjs +0 -5
- package/esm2020/widgets/implementations/three-d-rotation/phone-model/index.mjs +0 -4
- package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-box-model.mjs +0 -10
- package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-box-model.mjs.map +0 -1
- package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-phone-model.mjs +0 -10
- package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-phone-model.mjs.map +0 -1
- package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-box-model.mjs +0 -10
- package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-box-model.mjs.map +0 -1
- package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-phone-model.mjs +0 -10
- package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-phone-model.mjs.map +0 -1
- package/widgets/implementations/three-d-rotation/box-model/index.d.ts +0 -1
- package/widgets/implementations/three-d-rotation/phone-model/index.d.ts +0 -1
|
@@ -118,13 +118,28 @@ const ALL_GLOBAL_ROLES_SELECTED = 'all';
|
|
|
118
118
|
const PRODUCT_EXPERIENCE = {
|
|
119
119
|
DASHBOARD: {
|
|
120
120
|
EVENTS: {
|
|
121
|
-
|
|
121
|
+
DASHBOARDS: 'dashboards',
|
|
122
|
+
REPORTS: 'reports'
|
|
122
123
|
},
|
|
123
124
|
COMPONENTS: {
|
|
124
|
-
|
|
125
|
+
DASHBOARD_VIEW: 'context-dashboard',
|
|
126
|
+
DASHBOARD_AVAILABILITY: 'dashboard-availability',
|
|
127
|
+
REPORTS_LIST: 'report-dashboard-list',
|
|
128
|
+
ADD_REPORT: 'report-dashboard-list',
|
|
129
|
+
ADD_DASHBOARD: 'add-dashboard',
|
|
130
|
+
DELETE_DASHBOARD: 'context-dashboard'
|
|
131
|
+
},
|
|
132
|
+
CONTEXT: {
|
|
133
|
+
REPORT: 'report',
|
|
134
|
+
DEVICE: 'device',
|
|
135
|
+
ASSET: 'asset',
|
|
136
|
+
GROUP: 'group'
|
|
125
137
|
},
|
|
126
138
|
ACTIONS: {
|
|
127
|
-
APPLY_GLOBAL_ROLES_CHANGES: 'applyGlobalRolesChanges'
|
|
139
|
+
APPLY_GLOBAL_ROLES_CHANGES: 'applyGlobalRolesChanges',
|
|
140
|
+
DELETE: 'delete',
|
|
141
|
+
LOAD: 'load',
|
|
142
|
+
CREATE: 'create'
|
|
128
143
|
}
|
|
129
144
|
}
|
|
130
145
|
};
|
|
@@ -137,7 +152,7 @@ class ContextDashboardService {
|
|
|
137
152
|
this._formDisabled = value;
|
|
138
153
|
this.formDisabledSubject.next(value);
|
|
139
154
|
}
|
|
140
|
-
constructor(inventory, tabs, modal, translateService, router, navigator, permissions, alert, dynamicComponent) {
|
|
155
|
+
constructor(inventory, tabs, modal, translateService, router, navigator, permissions, alert, dynamicComponent, groupService) {
|
|
141
156
|
this.inventory = inventory;
|
|
142
157
|
this.tabs = tabs;
|
|
143
158
|
this.modal = modal;
|
|
@@ -147,6 +162,7 @@ class ContextDashboardService {
|
|
|
147
162
|
this.permissions = permissions;
|
|
148
163
|
this.alert = alert;
|
|
149
164
|
this.dynamicComponent = dynamicComponent;
|
|
165
|
+
this.groupService = groupService;
|
|
150
166
|
this.REPORT_PARTIAL_NAME = 'report_';
|
|
151
167
|
this.INVENTORY_ROLES = [
|
|
152
168
|
Permissions.ROLE_INVENTORY_ADMIN,
|
|
@@ -353,6 +369,20 @@ class ContextDashboardService {
|
|
|
353
369
|
}
|
|
354
370
|
}
|
|
355
371
|
}
|
|
372
|
+
getContextForGS(mo) {
|
|
373
|
+
if (this.groupService.isDevice(mo)) {
|
|
374
|
+
return PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.DEVICE;
|
|
375
|
+
}
|
|
376
|
+
else if (this.groupService.isAsset(mo)) {
|
|
377
|
+
return PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.ASSET;
|
|
378
|
+
}
|
|
379
|
+
else if (this.groupService.isGroup(mo)) {
|
|
380
|
+
return PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.GROUP;
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
return null;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
356
386
|
adjustDashboardFor24Columns(dashboards) {
|
|
357
387
|
if (Array.isArray(dashboards)) {
|
|
358
388
|
return dashboards.map(dashboard => this.adjustDashboardFor24Columns(dashboard));
|
|
@@ -552,14 +582,14 @@ class ContextDashboardService {
|
|
|
552
582
|
return null;
|
|
553
583
|
}
|
|
554
584
|
}
|
|
555
|
-
ContextDashboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ContextDashboardService, deps: [{ token: i1.InventoryService }, { token: i5.TabsService }, { token: i5.ModalService }, { token: i3.TranslateService }, { token: i1$1.Router }, { token: i5.NavigatorService }, { token: i5.Permissions }, { token: i5.AlertService }, { token: i5.DynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
585
|
+
ContextDashboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ContextDashboardService, deps: [{ token: i1.InventoryService }, { token: i5.TabsService }, { token: i5.ModalService }, { token: i3.TranslateService }, { token: i1$1.Router }, { token: i5.NavigatorService }, { token: i5.Permissions }, { token: i5.AlertService }, { token: i5.DynamicComponentService }, { token: i5.GroupService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
556
586
|
ContextDashboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ContextDashboardService, providedIn: 'root' });
|
|
557
587
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ContextDashboardService, decorators: [{
|
|
558
588
|
type: Injectable,
|
|
559
589
|
args: [{
|
|
560
590
|
providedIn: 'root'
|
|
561
591
|
}]
|
|
562
|
-
}], ctorParameters: function () { return [{ type: i1.InventoryService }, { type: i5.TabsService }, { type: i5.ModalService }, { type: i3.TranslateService }, { type: i1$1.Router }, { type: i5.NavigatorService }, { type: i5.Permissions }, { type: i5.AlertService }, { type: i5.DynamicComponentService }]; } });
|
|
592
|
+
}], ctorParameters: function () { return [{ type: i1.InventoryService }, { type: i5.TabsService }, { type: i5.ModalService }, { type: i3.TranslateService }, { type: i1$1.Router }, { type: i5.NavigatorService }, { type: i5.Permissions }, { type: i5.AlertService }, { type: i5.DynamicComponentService }, { type: i5.GroupService }]; } });
|
|
563
593
|
|
|
564
594
|
class ReportDashboardService {
|
|
565
595
|
constructor(inventoryService, navigatorService) {
|
|
@@ -757,7 +787,7 @@ class DashboardAvailabilityComponent {
|
|
|
757
787
|
this.globalRolesItemsSelected = items;
|
|
758
788
|
if (allItemsSelected) {
|
|
759
789
|
this.globalRolesIdsChange.emit(ALL_GLOBAL_ROLES_SELECTED);
|
|
760
|
-
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.
|
|
790
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {
|
|
761
791
|
component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DASHBOARD_AVAILABILITY,
|
|
762
792
|
action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.APPLY_GLOBAL_ROLES_CHANGES,
|
|
763
793
|
globalRoles: ALL_GLOBAL_ROLES_SELECTED
|
|
@@ -766,7 +796,7 @@ class DashboardAvailabilityComponent {
|
|
|
766
796
|
else {
|
|
767
797
|
const selectedGlobalRolesIds = items.map(i => i.id);
|
|
768
798
|
this.globalRolesIdsChange.emit([...selectedGlobalRolesIds]);
|
|
769
|
-
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.
|
|
799
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {
|
|
770
800
|
component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DASHBOARD_AVAILABILITY,
|
|
771
801
|
action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.APPLY_GLOBAL_ROLES_CHANGES,
|
|
772
802
|
globalRoles: selectedGlobalRolesIds?.sort()?.join()
|
|
@@ -929,11 +959,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
929
959
|
}] } });
|
|
930
960
|
|
|
931
961
|
class AddDashboardFactory {
|
|
932
|
-
constructor(permissions, contextDashboardService, bsModal, contextRoute) {
|
|
962
|
+
constructor(permissions, contextDashboardService, bsModal, contextRoute, gainsightService) {
|
|
933
963
|
this.permissions = permissions;
|
|
934
964
|
this.contextDashboardService = contextDashboardService;
|
|
935
965
|
this.bsModal = bsModal;
|
|
936
966
|
this.contextRoute = contextRoute;
|
|
967
|
+
this.gainsightService = gainsightService;
|
|
937
968
|
}
|
|
938
969
|
async get(activatedRoute) {
|
|
939
970
|
this.currentContext = this.contextRoute.getContextData(activatedRoute);
|
|
@@ -968,6 +999,16 @@ class AddDashboardFactory {
|
|
|
968
999
|
const dashboardMO = await this.contextDashboardService.create(dashboardCfg, this.currentContext);
|
|
969
1000
|
await this.contextDashboardService.navigateToDashboard(dashboardMO);
|
|
970
1001
|
modal.close();
|
|
1002
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {
|
|
1003
|
+
component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.ADD_DASHBOARD,
|
|
1004
|
+
action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.CREATE,
|
|
1005
|
+
name: dashboardCfg.name,
|
|
1006
|
+
id: dashboardMO.id,
|
|
1007
|
+
dashboardType: dashboardMO.c8y_Dashboard.deviceType
|
|
1008
|
+
? dashboardMO.c8y_Dashboard.deviceTypeValue
|
|
1009
|
+
: null,
|
|
1010
|
+
context: this.contextDashboardService.getContextForGS(this.currentContext.contextData)
|
|
1011
|
+
});
|
|
971
1012
|
}
|
|
972
1013
|
catch (ex) {
|
|
973
1014
|
// intended empty
|
|
@@ -990,14 +1031,14 @@ class AddDashboardFactory {
|
|
|
990
1031
|
]);
|
|
991
1032
|
}
|
|
992
1033
|
}
|
|
993
|
-
AddDashboardFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddDashboardFactory, deps: [{ token: i5.Permissions }, { token: ContextDashboardService }, { token: i3$1.BsModalService }, { token: i5.ContextRouteService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1034
|
+
AddDashboardFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddDashboardFactory, deps: [{ token: i5.Permissions }, { token: ContextDashboardService }, { token: i3$1.BsModalService }, { token: i5.ContextRouteService }, { token: i5.GainsightService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
994
1035
|
AddDashboardFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddDashboardFactory, providedIn: 'root' });
|
|
995
1036
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddDashboardFactory, decorators: [{
|
|
996
1037
|
type: Injectable,
|
|
997
1038
|
args: [{
|
|
998
1039
|
providedIn: 'root'
|
|
999
1040
|
}]
|
|
1000
|
-
}], ctorParameters: function () { return [{ type: i5.Permissions }, { type: ContextDashboardService }, { type: i3$1.BsModalService }, { type: i5.ContextRouteService }]; } });
|
|
1041
|
+
}], ctorParameters: function () { return [{ type: i5.Permissions }, { type: ContextDashboardService }, { type: i3$1.BsModalService }, { type: i5.ContextRouteService }, { type: i5.GainsightService }]; } });
|
|
1001
1042
|
|
|
1002
1043
|
class AddDashboardComponent {
|
|
1003
1044
|
constructor(addDashboardFactory) {
|
|
@@ -1471,6 +1512,14 @@ class ContextDashboardComponent {
|
|
|
1471
1512
|
const route = this.route.parent.snapshot.url.map(segment => segment.path).join('/');
|
|
1472
1513
|
this.router.navigateByUrl(route);
|
|
1473
1514
|
}
|
|
1515
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {
|
|
1516
|
+
component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DELETE_DASHBOARD,
|
|
1517
|
+
action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.DELETE,
|
|
1518
|
+
name: this.dashboard.name,
|
|
1519
|
+
id: this.mo.id,
|
|
1520
|
+
dashboardType: this.dashboard.deviceType ? this.dashboard.deviceTypeValue : null,
|
|
1521
|
+
context: this.contextDashboardService.getContextForGS(this.context)
|
|
1522
|
+
});
|
|
1474
1523
|
}
|
|
1475
1524
|
/**
|
|
1476
1525
|
* Edits the current dashboard
|
|
@@ -1524,7 +1573,7 @@ class ContextDashboardComponent {
|
|
|
1524
1573
|
}
|
|
1525
1574
|
}
|
|
1526
1575
|
get isDeviceTypeDashboard() {
|
|
1527
|
-
return !!this.dashboard?.deviceType
|
|
1576
|
+
return !!this.dashboard?.deviceType;
|
|
1528
1577
|
}
|
|
1529
1578
|
/**
|
|
1530
1579
|
* Edits a widget on the dashboard.
|
|
@@ -1745,6 +1794,18 @@ class ContextDashboardComponent {
|
|
|
1745
1794
|
this.addReportDashboardSettings();
|
|
1746
1795
|
}
|
|
1747
1796
|
this.isLoading = false;
|
|
1797
|
+
this.gainsightService.triggerEvent(isReport
|
|
1798
|
+
? PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.REPORTS
|
|
1799
|
+
: PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {
|
|
1800
|
+
component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DASHBOARD_VIEW,
|
|
1801
|
+
action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.LOAD,
|
|
1802
|
+
name: this.dashboard.name,
|
|
1803
|
+
id: this.mo.id,
|
|
1804
|
+
dashboardType: this.dashboard.deviceType ? this.dashboard.deviceTypeValue : null,
|
|
1805
|
+
context: isReport
|
|
1806
|
+
? PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.REPORT
|
|
1807
|
+
: this.contextDashboardService.getContextForGS(this.context)
|
|
1808
|
+
});
|
|
1748
1809
|
}
|
|
1749
1810
|
mergeWidgetClasses(widget) {
|
|
1750
1811
|
const hasHeaderClass = WIDGET_HEADER_CLASSES.find(el => widget.classes && widget.classes[el.class]);
|
|
@@ -2572,7 +2633,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
2572
2633
|
}] });
|
|
2573
2634
|
|
|
2574
2635
|
class ReportDashboardListComponent {
|
|
2575
|
-
constructor(inventoryService, contextDashboardService, bsModal, translateService, modal, alertService, reportDashboardService, permissions) {
|
|
2636
|
+
constructor(inventoryService, contextDashboardService, bsModal, translateService, modal, alertService, reportDashboardService, permissions, gainsightService) {
|
|
2576
2637
|
this.inventoryService = inventoryService;
|
|
2577
2638
|
this.contextDashboardService = contextDashboardService;
|
|
2578
2639
|
this.bsModal = bsModal;
|
|
@@ -2581,6 +2642,7 @@ class ReportDashboardListComponent {
|
|
|
2581
2642
|
this.alertService = alertService;
|
|
2582
2643
|
this.reportDashboardService = reportDashboardService;
|
|
2583
2644
|
this.permissions = permissions;
|
|
2645
|
+
this.gainsightService = gainsightService;
|
|
2584
2646
|
this.textFilter$ = new BehaviorSubject('');
|
|
2585
2647
|
this.reload$ = new BehaviorSubject(null);
|
|
2586
2648
|
this.reloading = false;
|
|
@@ -2634,6 +2696,13 @@ class ReportDashboardListComponent {
|
|
|
2634
2696
|
}
|
|
2635
2697
|
this.reload$.next();
|
|
2636
2698
|
modal.close();
|
|
2699
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.REPORTS, {
|
|
2700
|
+
component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.ADD_REPORT,
|
|
2701
|
+
action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.CREATE,
|
|
2702
|
+
name: report.name,
|
|
2703
|
+
id: report.id,
|
|
2704
|
+
context: PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.REPORT
|
|
2705
|
+
});
|
|
2637
2706
|
}
|
|
2638
2707
|
catch (ex) {
|
|
2639
2708
|
if (ex) {
|
|
@@ -2663,6 +2732,13 @@ class ReportDashboardListComponent {
|
|
|
2663
2732
|
this.reportDashboardService.removeNavigatorNode(report);
|
|
2664
2733
|
}
|
|
2665
2734
|
this.reload$.next();
|
|
2735
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.REPORTS, {
|
|
2736
|
+
component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.REPORTS_LIST,
|
|
2737
|
+
action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.DELETE,
|
|
2738
|
+
name: report.name,
|
|
2739
|
+
id: report.id,
|
|
2740
|
+
context: PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.REPORT
|
|
2741
|
+
});
|
|
2666
2742
|
}
|
|
2667
2743
|
catch (ex) {
|
|
2668
2744
|
if (ex) {
|
|
@@ -2678,12 +2754,12 @@ class ReportDashboardListComponent {
|
|
|
2678
2754
|
: this.reportDashboardService.removeNavigatorNode(report);
|
|
2679
2755
|
}
|
|
2680
2756
|
}
|
|
2681
|
-
ReportDashboardListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ReportDashboardListComponent, deps: [{ token: i1.InventoryService }, { token: ContextDashboardService }, { token: i3$1.BsModalService }, { token: i3.TranslateService }, { token: i5.ModalService }, { token: i5.AlertService }, { token: ReportDashboardService }, { token: i5.Permissions }], target: i0.ɵɵFactoryTarget.Component });
|
|
2757
|
+
ReportDashboardListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ReportDashboardListComponent, deps: [{ token: i1.InventoryService }, { token: ContextDashboardService }, { token: i3$1.BsModalService }, { token: i3.TranslateService }, { token: i5.ModalService }, { token: i5.AlertService }, { token: ReportDashboardService }, { token: i5.Permissions }, { token: i5.GainsightService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2682
2758
|
ReportDashboardListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ReportDashboardListComponent, selector: "c8y-report-dashboard-list", viewQueries: [{ propertyName: "filter", first: true, predicate: FilterInputComponent, descendants: true }], ngImport: i0, template: "<c8y-title>\n {{ 'Reports' | translate }}\n</c8y-title>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n [attr.aria-label]=\"'Filter' | translate\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"(textFilter$ | async).length === 0\"\n ></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n px-event=\"Clear filtering reports\"\n ></i>\n </span>\n </div>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add report' | translate }}\"\n type=\"button\"\n [attr.data-cy]=\"'reports-add-report-action-bar-button'\"\n (click)=\"add()\"\n [disabled]=\"!canAddReport\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add report' | translate }}\n </button>\n <button\n class=\"btn btn-dot m-r-16\"\n aria-label=\"{{ 'Info' | translate }}\"\n popover=\"{{ 'You don\\'t have permission to add reports' | translate }}\"\n placement=\"top\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"!canAddReport\"\n >\n <i\n class=\"text-primary\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"loadReports()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': reloading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/users-guide/cockpit/#reports\"></c8y-help>\n\n<c8y-list-group>\n <c8y-li\n class=\"page-sticky-header hidden-xs hidden-sm\"\n *ngIf=\"(reports$ | async)?.data.length > 0\"\n >\n <c8y-li-icon>\n <i class=\"p-l-24\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n {{ 'Report' | translate }}\n </div>\n <div class=\"col-6\">\n {{ 'Description' | translate }}\n </div>\n <div class=\"col-2\">\n {{ 'Show in navigator' | translate }}\n </div>\n </c8y-li-body>\n </c8y-li>\n\n <c8y-li *c8yFor=\"let report of reports$; let i = index; loadMore: 'auto'\">\n <c8y-li-icon [icon]=\"report.icon\"></c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n <button\n class=\"btn-clean\"\n title=\"{{ report.name }}\"\n type=\"button\"\n routerLink=\"/reports/{{ report.id }}\"\n >\n <span class=\"text-truncate\">\n {{ report.name }}\n </span>\n </button>\n </div>\n <div class=\"col-6\">\n <p class=\"small text-truncate-wrap\">\n <em\n class=\"text-muted\"\n *ngIf=\"!report.description; else showDescription\"\n >\n {{ 'No description available' | translate }}\n </em>\n <ng-template #showDescription>\n {{ report.description }}\n </ng-template>\n </p>\n </div>\n <div class=\"col-2 fit-h-20 m-t-xs-8\">\n <label\n class=\"c8y-switch c8y-switch--inline\"\n title=\"{{ 'Show in navigator' | translate }}\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"!!report.c8y_IsNavigatorNode\"\n (change)=\"update(report)\"\n />\n <span></span>\n <span class=\"visible-xs\">\n {{ 'Show in navigator' | translate }}\n </span>\n </label>\n </div>\n <div class=\"col-1 hidden-xs\">\n <button\n class=\"btn btn-dot btn-dot--danger showOnHover m-l-auto d-flex\"\n [attr.aria-label]=\"'Remove report' | translate\"\n tooltip=\"{{ 'Remove report' | translate }}\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"delete(report)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n <div class=\"visible-xs p-t-8 text-right\">\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Remove report' | translate }}\"\n type=\"button\"\n (click)=\"delete(report)\"\n >\n <i c8yIcon=\"delete\"></i>\n {{ 'Remove report' | translate }}\n </button>\n </div>\n </c8y-li-body>\n </c8y-li>\n</c8y-list-group>\n\n<c8y-ui-empty-state\n [icon]=\"'c8y-reports'\"\n [title]=\"'There are no reports defined.' | translate\"\n [subtitle]=\"'Add a report first.' | translate\"\n *ngIf=\"(reports$ | async)?.data.length === 0\"\n>\n <p>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add report' | translate }}\"\n type=\"button\"\n [attr.data-cy]=\"'reports-add-report-empty-state-button'\"\n [disabled]=\"!canAddReport\"\n (click)=\"add()\"\n >\n {{ 'Add report' | translate }}\n </button>\n </p>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#reports\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n</c8y-ui-empty-state>\n", dependencies: [{ kind: "component", type: i5.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i5.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i5.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount"] }, { kind: "component", type: i5.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i5.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: i5.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i5.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i5.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i5.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i5.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "directive", type: i3$2.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5$1.AsyncPipe, name: "async" }] });
|
|
2683
2759
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ReportDashboardListComponent, decorators: [{
|
|
2684
2760
|
type: Component,
|
|
2685
2761
|
args: [{ selector: 'c8y-report-dashboard-list', template: "<c8y-title>\n {{ 'Reports' | translate }}\n</c8y-title>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n [attr.aria-label]=\"'Filter' | translate\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"(textFilter$ | async).length === 0\"\n ></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n px-event=\"Clear filtering reports\"\n ></i>\n </span>\n </div>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add report' | translate }}\"\n type=\"button\"\n [attr.data-cy]=\"'reports-add-report-action-bar-button'\"\n (click)=\"add()\"\n [disabled]=\"!canAddReport\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add report' | translate }}\n </button>\n <button\n class=\"btn btn-dot m-r-16\"\n aria-label=\"{{ 'Info' | translate }}\"\n popover=\"{{ 'You don\\'t have permission to add reports' | translate }}\"\n placement=\"top\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"!canAddReport\"\n >\n <i\n class=\"text-primary\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"loadReports()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': reloading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/users-guide/cockpit/#reports\"></c8y-help>\n\n<c8y-list-group>\n <c8y-li\n class=\"page-sticky-header hidden-xs hidden-sm\"\n *ngIf=\"(reports$ | async)?.data.length > 0\"\n >\n <c8y-li-icon>\n <i class=\"p-l-24\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n {{ 'Report' | translate }}\n </div>\n <div class=\"col-6\">\n {{ 'Description' | translate }}\n </div>\n <div class=\"col-2\">\n {{ 'Show in navigator' | translate }}\n </div>\n </c8y-li-body>\n </c8y-li>\n\n <c8y-li *c8yFor=\"let report of reports$; let i = index; loadMore: 'auto'\">\n <c8y-li-icon [icon]=\"report.icon\"></c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n <button\n class=\"btn-clean\"\n title=\"{{ report.name }}\"\n type=\"button\"\n routerLink=\"/reports/{{ report.id }}\"\n >\n <span class=\"text-truncate\">\n {{ report.name }}\n </span>\n </button>\n </div>\n <div class=\"col-6\">\n <p class=\"small text-truncate-wrap\">\n <em\n class=\"text-muted\"\n *ngIf=\"!report.description; else showDescription\"\n >\n {{ 'No description available' | translate }}\n </em>\n <ng-template #showDescription>\n {{ report.description }}\n </ng-template>\n </p>\n </div>\n <div class=\"col-2 fit-h-20 m-t-xs-8\">\n <label\n class=\"c8y-switch c8y-switch--inline\"\n title=\"{{ 'Show in navigator' | translate }}\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"!!report.c8y_IsNavigatorNode\"\n (change)=\"update(report)\"\n />\n <span></span>\n <span class=\"visible-xs\">\n {{ 'Show in navigator' | translate }}\n </span>\n </label>\n </div>\n <div class=\"col-1 hidden-xs\">\n <button\n class=\"btn btn-dot btn-dot--danger showOnHover m-l-auto d-flex\"\n [attr.aria-label]=\"'Remove report' | translate\"\n tooltip=\"{{ 'Remove report' | translate }}\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"delete(report)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n <div class=\"visible-xs p-t-8 text-right\">\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Remove report' | translate }}\"\n type=\"button\"\n (click)=\"delete(report)\"\n >\n <i c8yIcon=\"delete\"></i>\n {{ 'Remove report' | translate }}\n </button>\n </div>\n </c8y-li-body>\n </c8y-li>\n</c8y-list-group>\n\n<c8y-ui-empty-state\n [icon]=\"'c8y-reports'\"\n [title]=\"'There are no reports defined.' | translate\"\n [subtitle]=\"'Add a report first.' | translate\"\n *ngIf=\"(reports$ | async)?.data.length === 0\"\n>\n <p>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add report' | translate }}\"\n type=\"button\"\n [attr.data-cy]=\"'reports-add-report-empty-state-button'\"\n [disabled]=\"!canAddReport\"\n (click)=\"add()\"\n >\n {{ 'Add report' | translate }}\n </button>\n </p>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#reports\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n</c8y-ui-empty-state>\n" }]
|
|
2686
|
-
}], ctorParameters: function () { return [{ type: i1.InventoryService }, { type: ContextDashboardService }, { type: i3$1.BsModalService }, { type: i3.TranslateService }, { type: i5.ModalService }, { type: i5.AlertService }, { type: ReportDashboardService }, { type: i5.Permissions }]; }, propDecorators: { filter: [{
|
|
2762
|
+
}], ctorParameters: function () { return [{ type: i1.InventoryService }, { type: ContextDashboardService }, { type: i3$1.BsModalService }, { type: i3.TranslateService }, { type: i5.ModalService }, { type: i5.AlertService }, { type: ReportDashboardService }, { type: i5.Permissions }, { type: i5.GainsightService }]; }, propDecorators: { filter: [{
|
|
2687
2763
|
type: ViewChild,
|
|
2688
2764
|
args: [FilterInputComponent, { static: false }]
|
|
2689
2765
|
}] } });
|