@c8y/ngx-components 1018.0.137 → 1018.0.140
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/NOTICES +59 -0
- package/context-dashboard/context-dashboard.component.d.ts +1 -1
- package/core/dashboard/dashboard.model.d.ts +4 -0
- package/core/dashboard/widgets-dashboard.component.d.ts +6 -1
- package/esm2020/context-dashboard/context-dashboard.component.mjs +19 -28
- package/esm2020/context-dashboard/context-dashboard.service.mjs +11 -6
- package/esm2020/core/dashboard/dashboard.model.mjs +1 -1
- package/esm2020/core/dashboard/widgets-dashboard.component.mjs +35 -24
- package/esm2020/core/data-grid/data-grid.component.mjs +3 -3
- package/esm2020/widgets/implementations/cockpit-welcome/welcome.component.mjs +3 -3
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs +28 -32
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +2 -2
- package/fesm2015/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +15 -8
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs +28 -32
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +2 -2
- package/fesm2020/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +14 -7
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +3 -0
- package/package.json +1 -1
|
@@ -426,11 +426,16 @@ class ContextDashboardService {
|
|
|
426
426
|
pasteDashboard(newContext) {
|
|
427
427
|
return __awaiter(this, void 0, void 0, function* () {
|
|
428
428
|
if (this.copyClipboard) {
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
429
|
+
try {
|
|
430
|
+
if (this.canPasteDashboard(this.copyClipboard, newContext.context)) {
|
|
431
|
+
const dashboardToPaste = this.createContextDashboardCopy(this.copyClipboard.dashboard, newContext.contextData, this.copyClipboard.context.contextData);
|
|
432
|
+
const dashboard = yield this.create(this.clean(dashboardToPaste), newContext);
|
|
433
|
+
this.copyClipboard = undefined;
|
|
434
|
+
this.navigateToDashboard(dashboard);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
catch (_a) {
|
|
438
|
+
this.alert.warning(gettext('Insufficient permissions for this action.'));
|
|
434
439
|
}
|
|
435
440
|
}
|
|
436
441
|
});
|
|
@@ -1403,21 +1408,19 @@ class ContextDashboardComponent {
|
|
|
1403
1408
|
var _a;
|
|
1404
1409
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1405
1410
|
const viewContext = (_a = this.route.parent.snapshot.data) === null || _a === void 0 ? void 0 : _a.context;
|
|
1406
|
-
|
|
1407
|
-
this.
|
|
1408
|
-
|
|
1409
|
-
context:
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
this.alert.success(msg);
|
|
1418
|
-
}
|
|
1419
|
-
this.actionBarService.refresh();
|
|
1411
|
+
this.contextDashboardService.copyClipboard = {
|
|
1412
|
+
dashboard: cloneDeep(this.mo.c8y_Dashboard),
|
|
1413
|
+
context: cloneDeep({
|
|
1414
|
+
context: viewContext,
|
|
1415
|
+
contextData: this.context
|
|
1416
|
+
})
|
|
1417
|
+
};
|
|
1418
|
+
if (viewContext) {
|
|
1419
|
+
const ctx = viewContext.split('/').shift();
|
|
1420
|
+
const msg = this.translateService.instant('Dashboard copied. Navigate to the desired {{ ctx }} and select "Paste dashboard"', { ctx });
|
|
1421
|
+
this.alert.success(msg);
|
|
1420
1422
|
}
|
|
1423
|
+
this.actionBarService.refresh();
|
|
1421
1424
|
});
|
|
1422
1425
|
}
|
|
1423
1426
|
/**
|
|
@@ -1680,6 +1683,7 @@ class ContextDashboardComponent {
|
|
|
1680
1683
|
const isDeviceType = this.contextDashboardService.isDeviceType(this.mo);
|
|
1681
1684
|
const isReport = this.contextDashboardService.isReport(this.mo);
|
|
1682
1685
|
const dashboardClasses = Object.assign({ 'c8y-grid-dashboard': true, dashboard: true }, this.dashboard.classes);
|
|
1686
|
+
this.isCopyDisabled = !this.canCopyDashboard();
|
|
1683
1687
|
this.widgets = yield Promise.all(values(dashboardChildren).map(widget => {
|
|
1684
1688
|
widget.classes = this.mergeWidgetClasses(widget);
|
|
1685
1689
|
if (isDeviceType) {
|
|
@@ -1723,26 +1727,18 @@ class ContextDashboardComponent {
|
|
|
1723
1727
|
};
|
|
1724
1728
|
this.canDelete = false;
|
|
1725
1729
|
}
|
|
1726
|
-
canCopyDashboard(
|
|
1727
|
-
|
|
1728
|
-
const ctx = viewContext.split('/').shift();
|
|
1729
|
-
const msg = this.translateService.instant('Only dashboards with widgets referencing the current {{ ctx }} can be copied.', { ctx });
|
|
1730
|
-
this.alert.warning(msg);
|
|
1731
|
-
return false;
|
|
1732
|
-
}
|
|
1733
|
-
return true;
|
|
1734
|
-
}
|
|
1735
|
-
validDashboardChildren() {
|
|
1736
|
-
return every(this.mo.c8y_Dashboard.children, child => {
|
|
1730
|
+
canCopyDashboard() {
|
|
1731
|
+
const allDashboardChildrenAreValid = every(this.mo.c8y_Dashboard.children, child => {
|
|
1737
1732
|
const config = child.config || {};
|
|
1738
1733
|
const dataPoints = config.datapoints || [];
|
|
1739
1734
|
return !((config.device && config.device.id !== this.context.id) ||
|
|
1740
1735
|
some(dataPoints, dataPoint => dataPoint.__target.id !== this.context.id));
|
|
1741
1736
|
});
|
|
1737
|
+
return allDashboardChildrenAreValid;
|
|
1742
1738
|
}
|
|
1743
1739
|
}
|
|
1744
1740
|
ContextDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ContextDashboardComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: ContextDashboardService }, { token: i5.AlertService }, { token: i0.Renderer2 }, { token: CONTEXT_DASHBOARD_CONFIG }, { token: WidgetService }, { token: i3$1.BsModalService }, { token: i1.InventoryService }, { token: i5.GainsightService }, { token: i5.ActionBarService }, { token: i3.TranslateService }, { token: i5.ModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1745
|
-
ContextDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ContextDashboardComponent, selector: "c8y-context-dashboard", inputs: { name: "name", childrenClasses: "childrenClasses", context: "context", setTitle: "setTitle", disabled: "disabled", defaultWidgets: "defaultWidgets", canCopy: "canCopy", canDelete: "canDelete", isLoading: "isLoading", breadcrumbSettings: "breadcrumbSettings", showContextHelpButton: "showContextHelpButton" }, host: { properties: { "class": "this.class" }, styleAttribute: "\n display: block;\n ", classAttribute: "dashboard c8y-grid-dashboard" }, ngImport: i0, template: "<c8y-title *ngIf=\"title\">\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item *ngIf=\"defaultWidgets.length > 0\" [placement]=\"'right'\" [priority]=\"-1\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"dashboard?.isFrozen || disabled\"\n (click)=\"restore()\"\n title=\"{{ 'Reset dashboard' | translate }}\"\n type=\"button\"\n px-event=\"Reset dashboard\"\n data-cy=\"context-dashboard--button-reset-dashboard\"\n >\n <i class=\"m-r-4\" c8yIcon=\"reset\"></i>\n {{ 'Reset dashboard' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help *ngIf=\"showContextHelpButton\" src=\"/users-guide/cockpit/#dashboards\"></c8y-help>\n\n<c8y-widgets-dashboard\n [context]=\"context\"\n [contextDashboard]=\"dashboard\"\n [widgets]=\"widgets\"\n [settings]=\"{\n isLoading: isLoading,\n isFrozen: dashboard?.isFrozen,\n isDisabled: disabled,\n canDelete: canDelete,\n translateWidgetTitle: dashboard?.translateWidgetTitle,\n allowFullscreen: moduleConfig.allowFullscreen,\n title: setTitle ? dashboard.name || title : undefined,\n widgetMargin: dashboard?.widgetMargin,\n canCopy: canCopy,\n columns: dashboard?.columns || 12\n }\"\n [breadcrumb]=\"breadcrumbSettings\"\n (onFreeze)=\"toggleFreeze($event)\"\n (onChangeDashboard)=\"updateDashboardChildren($event)\"\n (onAddWidget)=\"addWidget()\"\n (onEditWidget)=\"editWidget($event)\"\n (onDeleteWidget)=\"deleteWidget($event)\"\n (onChangeStart)=\"addDashboardClassToBody()\"\n (onChangeEnd)=\"removeDashboardClassFromBody()\"\n (onEditDashboard)=\"editDashboard()\"\n (onCopyDashboard)=\"copyDashboard()\"\n (onDeleteDashboard)=\"deleteDashboard()\"\n></c8y-widgets-dashboard>\n", dependencies: [{ kind: "component", type: i5.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "directive", type: i5.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i5.WidgetsDashboardComponent, selector: "c8y-widgets-dashboard", inputs: ["widgets", "context", "contextDashboard", "settings", "breadcrumb"], outputs: ["onAddWidget", "onEditWidget", "onDeleteWidget", "onChangeDashboard", "onEditDashboard", "onCopyDashboard", "onDeleteDashboard", "onFreeze", "onChangeStart", "onChangeEnd"] }, { kind: "component", type: i5.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }] });
|
|
1741
|
+
ContextDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ContextDashboardComponent, selector: "c8y-context-dashboard", inputs: { name: "name", childrenClasses: "childrenClasses", context: "context", setTitle: "setTitle", disabled: "disabled", defaultWidgets: "defaultWidgets", canCopy: "canCopy", canDelete: "canDelete", isLoading: "isLoading", breadcrumbSettings: "breadcrumbSettings", showContextHelpButton: "showContextHelpButton" }, host: { properties: { "class": "this.class" }, styleAttribute: "\n display: block;\n ", classAttribute: "dashboard c8y-grid-dashboard" }, ngImport: i0, template: "<c8y-title *ngIf=\"title\">\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item *ngIf=\"defaultWidgets.length > 0\" [placement]=\"'right'\" [priority]=\"-1\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"dashboard?.isFrozen || disabled\"\n (click)=\"restore()\"\n title=\"{{ 'Reset dashboard' | translate }}\"\n type=\"button\"\n px-event=\"Reset dashboard\"\n data-cy=\"context-dashboard--button-reset-dashboard\"\n >\n <i class=\"m-r-4\" c8yIcon=\"reset\"></i>\n {{ 'Reset dashboard' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help *ngIf=\"showContextHelpButton\" src=\"/users-guide/cockpit/#dashboards\"></c8y-help>\n\n<c8y-widgets-dashboard\n [context]=\"context\"\n [contextDashboard]=\"dashboard\"\n [widgets]=\"widgets\"\n [settings]=\"{\n isLoading: isLoading,\n isFrozen: dashboard?.isFrozen,\n isDisabled: disabled,\n canDelete: canDelete,\n translateWidgetTitle: dashboard?.translateWidgetTitle,\n allowFullscreen: moduleConfig.allowFullscreen,\n title: setTitle ? dashboard.name || title : undefined,\n widgetMargin: dashboard?.widgetMargin,\n canCopy: canCopy,\n isCopyDisabled: isCopyDisabled,\n columns: dashboard?.columns || 12\n }\"\n [breadcrumb]=\"breadcrumbSettings\"\n (onFreeze)=\"toggleFreeze($event)\"\n (onChangeDashboard)=\"updateDashboardChildren($event)\"\n (onAddWidget)=\"addWidget()\"\n (onEditWidget)=\"editWidget($event)\"\n (onDeleteWidget)=\"deleteWidget($event)\"\n (onChangeStart)=\"addDashboardClassToBody()\"\n (onChangeEnd)=\"removeDashboardClassFromBody()\"\n (onEditDashboard)=\"editDashboard()\"\n (onCopyDashboard)=\"copyDashboard()\"\n (onDeleteDashboard)=\"deleteDashboard()\"\n></c8y-widgets-dashboard>\n", dependencies: [{ kind: "component", type: i5.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "directive", type: i5.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i5.WidgetsDashboardComponent, selector: "c8y-widgets-dashboard", inputs: ["widgets", "context", "contextDashboard", "settings", "breadcrumb"], outputs: ["onAddWidget", "onEditWidget", "onDeleteWidget", "onChangeDashboard", "onEditDashboard", "onCopyDashboard", "onDeleteDashboard", "onFreeze", "onChangeStart", "onChangeEnd"] }, { kind: "component", type: i5.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }] });
|
|
1746
1742
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ContextDashboardComponent, decorators: [{
|
|
1747
1743
|
type: Component,
|
|
1748
1744
|
args: [{ selector: 'c8y-context-dashboard', host: {
|
|
@@ -1750,7 +1746,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
1750
1746
|
display: block;
|
|
1751
1747
|
`,
|
|
1752
1748
|
class: 'dashboard c8y-grid-dashboard'
|
|
1753
|
-
}, template: "<c8y-title *ngIf=\"title\">\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item *ngIf=\"defaultWidgets.length > 0\" [placement]=\"'right'\" [priority]=\"-1\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"dashboard?.isFrozen || disabled\"\n (click)=\"restore()\"\n title=\"{{ 'Reset dashboard' | translate }}\"\n type=\"button\"\n px-event=\"Reset dashboard\"\n data-cy=\"context-dashboard--button-reset-dashboard\"\n >\n <i class=\"m-r-4\" c8yIcon=\"reset\"></i>\n {{ 'Reset dashboard' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help *ngIf=\"showContextHelpButton\" src=\"/users-guide/cockpit/#dashboards\"></c8y-help>\n\n<c8y-widgets-dashboard\n [context]=\"context\"\n [contextDashboard]=\"dashboard\"\n [widgets]=\"widgets\"\n [settings]=\"{\n isLoading: isLoading,\n isFrozen: dashboard?.isFrozen,\n isDisabled: disabled,\n canDelete: canDelete,\n translateWidgetTitle: dashboard?.translateWidgetTitle,\n allowFullscreen: moduleConfig.allowFullscreen,\n title: setTitle ? dashboard.name || title : undefined,\n widgetMargin: dashboard?.widgetMargin,\n canCopy: canCopy,\n columns: dashboard?.columns || 12\n }\"\n [breadcrumb]=\"breadcrumbSettings\"\n (onFreeze)=\"toggleFreeze($event)\"\n (onChangeDashboard)=\"updateDashboardChildren($event)\"\n (onAddWidget)=\"addWidget()\"\n (onEditWidget)=\"editWidget($event)\"\n (onDeleteWidget)=\"deleteWidget($event)\"\n (onChangeStart)=\"addDashboardClassToBody()\"\n (onChangeEnd)=\"removeDashboardClassFromBody()\"\n (onEditDashboard)=\"editDashboard()\"\n (onCopyDashboard)=\"copyDashboard()\"\n (onDeleteDashboard)=\"deleteDashboard()\"\n></c8y-widgets-dashboard>\n" }]
|
|
1749
|
+
}, template: "<c8y-title *ngIf=\"title\">\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item *ngIf=\"defaultWidgets.length > 0\" [placement]=\"'right'\" [priority]=\"-1\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"dashboard?.isFrozen || disabled\"\n (click)=\"restore()\"\n title=\"{{ 'Reset dashboard' | translate }}\"\n type=\"button\"\n px-event=\"Reset dashboard\"\n data-cy=\"context-dashboard--button-reset-dashboard\"\n >\n <i class=\"m-r-4\" c8yIcon=\"reset\"></i>\n {{ 'Reset dashboard' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help *ngIf=\"showContextHelpButton\" src=\"/users-guide/cockpit/#dashboards\"></c8y-help>\n\n<c8y-widgets-dashboard\n [context]=\"context\"\n [contextDashboard]=\"dashboard\"\n [widgets]=\"widgets\"\n [settings]=\"{\n isLoading: isLoading,\n isFrozen: dashboard?.isFrozen,\n isDisabled: disabled,\n canDelete: canDelete,\n translateWidgetTitle: dashboard?.translateWidgetTitle,\n allowFullscreen: moduleConfig.allowFullscreen,\n title: setTitle ? dashboard.name || title : undefined,\n widgetMargin: dashboard?.widgetMargin,\n canCopy: canCopy,\n isCopyDisabled: isCopyDisabled,\n columns: dashboard?.columns || 12\n }\"\n [breadcrumb]=\"breadcrumbSettings\"\n (onFreeze)=\"toggleFreeze($event)\"\n (onChangeDashboard)=\"updateDashboardChildren($event)\"\n (onAddWidget)=\"addWidget()\"\n (onEditWidget)=\"editWidget($event)\"\n (onDeleteWidget)=\"deleteWidget($event)\"\n (onChangeStart)=\"addDashboardClassToBody()\"\n (onChangeEnd)=\"removeDashboardClassFromBody()\"\n (onEditDashboard)=\"editDashboard()\"\n (onCopyDashboard)=\"copyDashboard()\"\n (onDeleteDashboard)=\"deleteDashboard()\"\n></c8y-widgets-dashboard>\n" }]
|
|
1754
1750
|
}], ctorParameters: function () {
|
|
1755
1751
|
return [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: ContextDashboardService }, { type: i5.AlertService }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
1756
1752
|
type: Inject,
|