@c8y/ngx-components 1018.0.215 → 1018.0.222
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/assets-navigator/asset-node.service.d.ts +5 -2
- package/ecosystem/application-plugins/plugin-list.component.d.ts +1 -0
- package/esm2020/assets-navigator/asset-node.mjs +7 -2
- package/esm2020/assets-navigator/asset-node.service.mjs +14 -5
- package/esm2020/core/header/title/title-outlet.component.mjs +3 -3
- package/esm2020/device-grid/columns/registration-date.device-grid-column.mjs +4 -10
- package/esm2020/ecosystem/application-plugins/application-plugins.component.mjs +34 -13
- package/esm2020/ecosystem/application-plugins/plugin-list.component.mjs +27 -13
- package/esm2020/ecosystem/packages/deploy-application/deploy-application.component.mjs +14 -3
- package/esm2020/repository/shared/repository.service.mjs +4 -4
- package/esm2020/services/services-device-tab/columns/last-updated-date.device-grid-column.mjs +4 -10
- package/fesm2015/c8y-ngx-components-assets-navigator.mjs +24 -12
- package/fesm2015/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-device-grid.mjs +3 -9
- package/fesm2015/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs +44 -25
- package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-ecosystem.mjs +55 -32
- package/fesm2015/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-repository-shared.mjs +3 -3
- package/fesm2015/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-services.mjs +3 -9
- package/fesm2015/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +2 -2
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-assets-navigator.mjs +24 -12
- package/fesm2020/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-device-grid.mjs +3 -9
- package/fesm2020/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs +58 -25
- package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem.mjs +70 -27
- package/fesm2020/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-repository-shared.mjs +3 -3
- package/fesm2020/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-services.mjs +3 -9
- package/fesm2020/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +2 -2
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -22,7 +22,7 @@ import { tap, switchMap, shareReplay, takeUntil, map } from 'rxjs/operators';
|
|
|
22
22
|
import * as i6 from 'ngx-bootstrap/dropdown';
|
|
23
23
|
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
|
|
24
24
|
import { PopoverModule } from 'ngx-bootstrap/popover';
|
|
25
|
-
import { uniq } from 'lodash-es';
|
|
25
|
+
import { pick, uniq } from 'lodash-es';
|
|
26
26
|
import { LicenseConfirmModule } from '@c8y/ngx-components/ecosystem/license-confirm';
|
|
27
27
|
|
|
28
28
|
class ActivityLogComponent {
|
|
@@ -1287,6 +1287,7 @@ class DeployApplicationComponent {
|
|
|
1287
1287
|
});
|
|
1288
1288
|
}
|
|
1289
1289
|
deployApp() {
|
|
1290
|
+
var _a, _b, _c;
|
|
1290
1291
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1291
1292
|
this.inProgress = true;
|
|
1292
1293
|
const formGroupValue = this.applicationPropertiesForm.formGroup.getRawValue();
|
|
@@ -1307,13 +1308,15 @@ class DeployApplicationComponent {
|
|
|
1307
1308
|
}
|
|
1308
1309
|
try {
|
|
1309
1310
|
this.deployedApp = yield this.ecosystemService.deployApp(this.package, formGroupValue, this.model);
|
|
1311
|
+
const applicationCustomEventInfo = pick(this.package, [
|
|
1312
|
+
'id',
|
|
1313
|
+
'name',
|
|
1314
|
+
'contextPath',
|
|
1315
|
+
'label',
|
|
1316
|
+
'key'
|
|
1317
|
+
]);
|
|
1310
1318
|
this.deployedWithSuccess = true;
|
|
1311
|
-
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.DEPLOY_APPLICATION, {
|
|
1312
|
-
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.DEPLOY_APPLICATION,
|
|
1313
|
-
action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.DEPLOY_APPLICATION,
|
|
1314
|
-
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.DEPLOYED,
|
|
1315
|
-
url: this.CURRENT_LOCATION
|
|
1316
|
-
});
|
|
1319
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.DEPLOY_APPLICATION, Object.assign(Object.assign({ component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.DEPLOY_APPLICATION, action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.DEPLOY_APPLICATION, result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.DEPLOYED, url: this.CURRENT_LOCATION }, applicationCustomEventInfo), { package: (_c = (_b = (_a = this.deployedApp) === null || _a === void 0 ? void 0 : _a.manifest) === null || _b === void 0 ? void 0 : _b.package) !== null && _c !== void 0 ? _c : null }));
|
|
1317
1320
|
}
|
|
1318
1321
|
catch (error) {
|
|
1319
1322
|
this.ecosystemService.alertError(error);
|
|
@@ -1321,7 +1324,8 @@ class DeployApplicationComponent {
|
|
|
1321
1324
|
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.DEPLOY_APPLICATION,
|
|
1322
1325
|
action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.DEPLOY_APPLICATION,
|
|
1323
1326
|
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.SERVER_FAILURE,
|
|
1324
|
-
url: this.CURRENT_LOCATION
|
|
1327
|
+
url: this.CURRENT_LOCATION,
|
|
1328
|
+
error
|
|
1325
1329
|
});
|
|
1326
1330
|
}
|
|
1327
1331
|
finally {
|
|
@@ -1487,11 +1491,6 @@ class PluginListComponent {
|
|
|
1487
1491
|
}
|
|
1488
1492
|
uninstallPlugin(plugin) {
|
|
1489
1493
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1490
|
-
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.PACKAGE_PLUGINS, {
|
|
1491
|
-
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.PLUGIN_LIST,
|
|
1492
|
-
action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.INSTALL_PLUGIN,
|
|
1493
|
-
url: this.CURRENT_LOCATION
|
|
1494
|
-
});
|
|
1495
1494
|
yield this.updateAppRemotes(plugin, 'uninstall');
|
|
1496
1495
|
});
|
|
1497
1496
|
}
|
|
@@ -1540,23 +1539,34 @@ class PluginListComponent {
|
|
|
1540
1539
|
})
|
|
1541
1540
|
: this.translateService.instant(gettext('Plugin uninstalled from app "{{ appName }}".'), { appName: app.name });
|
|
1542
1541
|
this.alertService.success(successText);
|
|
1543
|
-
this.
|
|
1544
|
-
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.PLUGIN_LIST,
|
|
1545
|
-
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.PLUGIN_INSTALLED,
|
|
1546
|
-
url: this.CURRENT_LOCATION
|
|
1547
|
-
});
|
|
1542
|
+
this.onUpdateEventHandleGS(plugin, app, updateType);
|
|
1548
1543
|
}
|
|
1549
|
-
catch (
|
|
1544
|
+
catch (error) {
|
|
1550
1545
|
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.PACKAGE_PLUGINS, {
|
|
1551
1546
|
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.PLUGIN_LIST,
|
|
1552
1547
|
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.SERVER_FAILURE,
|
|
1553
|
-
url: this.CURRENT_LOCATION
|
|
1548
|
+
url: this.CURRENT_LOCATION,
|
|
1549
|
+
error
|
|
1554
1550
|
});
|
|
1555
1551
|
}
|
|
1556
1552
|
}
|
|
1557
1553
|
this.updatingPluginId[updateType] = '';
|
|
1558
1554
|
});
|
|
1559
1555
|
}
|
|
1556
|
+
onUpdateEventHandleGS(plugin, app, updateType) {
|
|
1557
|
+
const pluginCustomEventInfo = pick(plugin, [
|
|
1558
|
+
'name',
|
|
1559
|
+
'contextPath',
|
|
1560
|
+
'module',
|
|
1561
|
+
'version',
|
|
1562
|
+
'type',
|
|
1563
|
+
'id'
|
|
1564
|
+
]);
|
|
1565
|
+
const gsEventResult = updateType === 'install'
|
|
1566
|
+
? PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.PLUGIN_INSTALLED
|
|
1567
|
+
: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.PLUGIN_REMOVED;
|
|
1568
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.PACKAGE_PLUGINS, Object.assign(Object.assign({ component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.PLUGIN_LIST, result: gsEventResult, url: this.CURRENT_LOCATION }, pluginCustomEventInfo), { targetApplicationName: app.name, targetApplicationContextPath: app.contextPath }));
|
|
1569
|
+
}
|
|
1560
1570
|
getAppsForUpdate(plugin, updateType) {
|
|
1561
1571
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1562
1572
|
let apps = (yield this.ecosystemService.getWebApplications()).filter(app => this.ecosystemService.isOwner(app) && app.type !== ApplicationType.EXTERNAL);
|
|
@@ -2441,10 +2451,16 @@ class ApplicationPluginsComponent {
|
|
|
2441
2451
|
this.isLoading = true;
|
|
2442
2452
|
yield this.handleRemotesInstallation(pluginsToAdd);
|
|
2443
2453
|
this.alertService.success(gettext('Plugins installed.'));
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2454
|
+
pluginsToAdd.forEach(plugin => {
|
|
2455
|
+
const pluginCustomEventInfo = pick(plugin, [
|
|
2456
|
+
'name',
|
|
2457
|
+
'contextPath',
|
|
2458
|
+
'module',
|
|
2459
|
+
'version',
|
|
2460
|
+
'type',
|
|
2461
|
+
'id'
|
|
2462
|
+
]);
|
|
2463
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.INSTALLED_PLUGINS, Object.assign(Object.assign({ component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_PLUGINS, result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.PLUGIN_INSTALLED, url: this.CURRENT_LOCATION }, pluginCustomEventInfo), { targetApplicationName: this.app.name, targetApplicationContextPath: this.app.contextPath }));
|
|
2448
2464
|
});
|
|
2449
2465
|
}
|
|
2450
2466
|
catch (ex) {
|
|
@@ -2453,7 +2469,8 @@ class ApplicationPluginsComponent {
|
|
|
2453
2469
|
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.INSTALLED_PLUGINS, {
|
|
2454
2470
|
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_PLUGINS,
|
|
2455
2471
|
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.SERVER_FAILURE,
|
|
2456
|
-
url: this.CURRENT_LOCATION
|
|
2472
|
+
url: this.CURRENT_LOCATION,
|
|
2473
|
+
error: ex
|
|
2457
2474
|
});
|
|
2458
2475
|
}
|
|
2459
2476
|
}
|
|
@@ -2471,10 +2488,15 @@ class ApplicationPluginsComponent {
|
|
|
2471
2488
|
this.isLoading = false;
|
|
2472
2489
|
this.dataGrid.cancel();
|
|
2473
2490
|
this.alertService.success(gettext('Plugins removed.'));
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2491
|
+
plugins.forEach(plugin => {
|
|
2492
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.INSTALLED_PLUGINS, {
|
|
2493
|
+
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_PLUGINS,
|
|
2494
|
+
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.PLUGIN_REMOVED,
|
|
2495
|
+
url: this.CURRENT_LOCATION,
|
|
2496
|
+
id: plugin,
|
|
2497
|
+
targetApplicationName: this.app.name,
|
|
2498
|
+
targetApplicationContextPath: this.app.contextPath
|
|
2499
|
+
});
|
|
2478
2500
|
});
|
|
2479
2501
|
}
|
|
2480
2502
|
catch (ex) {
|
|
@@ -2483,7 +2505,8 @@ class ApplicationPluginsComponent {
|
|
|
2483
2505
|
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.INSTALLED_PLUGINS, {
|
|
2484
2506
|
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_PLUGINS,
|
|
2485
2507
|
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.SERVER_FAILURE,
|
|
2486
|
-
url: this.CURRENT_LOCATION
|
|
2508
|
+
url: this.CURRENT_LOCATION,
|
|
2509
|
+
error: ex
|
|
2487
2510
|
});
|
|
2488
2511
|
}
|
|
2489
2512
|
}
|
|
@@ -2730,10 +2753,10 @@ class ApplicationPluginsComponent {
|
|
|
2730
2753
|
}
|
|
2731
2754
|
}
|
|
2732
2755
|
ApplicationPluginsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ApplicationPluginsComponent, deps: [{ token: i1$2.ActivatedRoute }, { token: i1.EcosystemService }, { token: i1$1.BsModalService }, { token: i2.ModalService }, { token: i4.TranslateService }, { token: i2.PluginsService }, { token: i2.AlertService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2733
|
-
ApplicationPluginsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ApplicationPluginsComponent, selector: "c8y-app-plugins", inputs: { appId: "appId" }, viewQueries: [{ propertyName: "dataGrid", first: true, predicate: DataGridComponent, descendants: true }], ngImport: i0, template: "<c8y-title>{{ app | humanizeAppName | async }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item [icon]=\"'c8y-atom'\" [label]=\"'Ecosystem' | translate\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-modules'\"\n [label]=\"'Applications' | translate\"\n [path]=\"'ecosystem/applications/application'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"app | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Plugins' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n (click)=\"installPlugins()\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n class=\"btn btn-link\"\n title=\"{{ 'Install plugins' | translate }}\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Install plugins' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<ng-container *ngIf=\"orphanedPlugins$ | async as orphanedPlugins\">\n <c8y-action-bar-item *ngIf=\"orphanedPlugins?.length\" [placement]=\"'right'\">\n <button\n (click)=\"cleanupOrphanedPlugins(orphanedPlugins)\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n class=\"btn btn-link\"\n title=\"{{ 'Clean up orphaned plugins' | translate }}\"\n >\n <i c8yIcon=\"erase\"></i>\n {{ 'Clean up orphaned plugins' | translate }}\n </button>\n </c8y-action-bar-item>\n</ng-container>\n\n<div class=\"content-fullpage d-flex d-col border-top\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [rows]=\"installedPlugins$ | async\"\n [pagination]=\"pagination\"\n [selectable]=\"true\"\n [actionControls]=\"actionControls\"\n [bulkActionControls]=\"bulkActionControls\"\n [headerActionControls]=\"headerActionControls\"\n (onReload)=\"refresh()\"\n class=\"d-contents\"\n >\n <!-- No search/filtered results empty state -->\n <c8y-ui-empty-state\n *ngIf=\"(installedPlugins$ | async)?.length\"\n [icon]=\"'search'\"\n [title]=\"'No plugins to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n >\n </c8y-ui-empty-state>\n <!-- No installed plugins empty state -->\n <c8y-ui-empty-state\n *ngIf=\"!(installedPlugins$ | async)?.length && !isLoading\"\n [icon]=\"'plugin'\"\n [title]=\"'No plugins installed.' | translate\"\n [subtitle]=\"'This application doesn\\'t have any plugin. Click below to install.' | translate\"\n [horizontal]=\"true\"\n >\n <div class=\"fit-w p-t-16\">\n <button\n
|
|
2756
|
+
ApplicationPluginsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ApplicationPluginsComponent, selector: "c8y-app-plugins", inputs: { appId: "appId" }, viewQueries: [{ propertyName: "dataGrid", first: true, predicate: DataGridComponent, descendants: true }], ngImport: i0, template: "<c8y-title>{{ app | humanizeAppName | async }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item [icon]=\"'c8y-atom'\" [label]=\"'Ecosystem' | translate\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-modules'\"\n [label]=\"'Applications' | translate\"\n [path]=\"'ecosystem/applications/application'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"app | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Plugins' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n (click)=\"installPlugins()\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n class=\"btn btn-link\"\n title=\"{{ 'Install plugins' | translate }}\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Install plugins' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<ng-container *ngIf=\"orphanedPlugins$ | async as orphanedPlugins\">\n <c8y-action-bar-item *ngIf=\"orphanedPlugins?.length\" [placement]=\"'right'\">\n <button\n (click)=\"cleanupOrphanedPlugins(orphanedPlugins)\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n class=\"btn btn-link\"\n title=\"{{ 'Clean up orphaned plugins' | translate }}\"\n >\n <i c8yIcon=\"erase\"></i>\n {{ 'Clean up orphaned plugins' | translate }}\n </button>\n </c8y-action-bar-item>\n</ng-container>\n\n<div class=\"content-fullpage d-flex d-col border-top\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [rows]=\"installedPlugins$ | async\"\n [pagination]=\"pagination\"\n [selectable]=\"true\"\n [actionControls]=\"actionControls\"\n [bulkActionControls]=\"bulkActionControls\"\n [headerActionControls]=\"headerActionControls\"\n (onReload)=\"refresh()\"\n class=\"d-contents\"\n >\n <!-- No search/filtered results empty state -->\n <c8y-ui-empty-state\n *ngIf=\"(installedPlugins$ | async)?.length\"\n [icon]=\"'search'\"\n [title]=\"'No plugins to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n >\n </c8y-ui-empty-state>\n <!-- No installed plugins empty state -->\n <c8y-ui-empty-state\n *ngIf=\"!(installedPlugins$ | async)?.length && !isLoading\"\n [icon]=\"'plugin'\"\n [title]=\"'No plugins installed.' | translate\"\n [subtitle]=\"'This application doesn\\'t have any plugin. Click below to install.' | translate\"\n [horizontal]=\"true\"\n >\n <div class=\"fit-w p-t-16\">\n <button\n (click)=\"installPlugins()\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n class=\"btn btn-primary btn-sm\"\n title=\"{{ 'Install plugins' | translate }}\"\n translate\n >\n Install plugins\n </button>\n </div>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "component", type: i2.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "component", type: i2.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i2.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.HumanizeAppNamePipe, name: "humanizeAppName" }] });
|
|
2734
2757
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ApplicationPluginsComponent, decorators: [{
|
|
2735
2758
|
type: Component,
|
|
2736
|
-
args: [{ selector: 'c8y-app-plugins', template: "<c8y-title>{{ app | humanizeAppName | async }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item [icon]=\"'c8y-atom'\" [label]=\"'Ecosystem' | translate\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-modules'\"\n [label]=\"'Applications' | translate\"\n [path]=\"'ecosystem/applications/application'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"app | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Plugins' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n (click)=\"installPlugins()\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n class=\"btn btn-link\"\n title=\"{{ 'Install plugins' | translate }}\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Install plugins' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<ng-container *ngIf=\"orphanedPlugins$ | async as orphanedPlugins\">\n <c8y-action-bar-item *ngIf=\"orphanedPlugins?.length\" [placement]=\"'right'\">\n <button\n (click)=\"cleanupOrphanedPlugins(orphanedPlugins)\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n class=\"btn btn-link\"\n title=\"{{ 'Clean up orphaned plugins' | translate }}\"\n >\n <i c8yIcon=\"erase\"></i>\n {{ 'Clean up orphaned plugins' | translate }}\n </button>\n </c8y-action-bar-item>\n</ng-container>\n\n<div class=\"content-fullpage d-flex d-col border-top\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [rows]=\"installedPlugins$ | async\"\n [pagination]=\"pagination\"\n [selectable]=\"true\"\n [actionControls]=\"actionControls\"\n [bulkActionControls]=\"bulkActionControls\"\n [headerActionControls]=\"headerActionControls\"\n (onReload)=\"refresh()\"\n class=\"d-contents\"\n >\n <!-- No search/filtered results empty state -->\n <c8y-ui-empty-state\n *ngIf=\"(installedPlugins$ | async)?.length\"\n [icon]=\"'search'\"\n [title]=\"'No plugins to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n >\n </c8y-ui-empty-state>\n <!-- No installed plugins empty state -->\n <c8y-ui-empty-state\n *ngIf=\"!(installedPlugins$ | async)?.length && !isLoading\"\n [icon]=\"'plugin'\"\n [title]=\"'No plugins installed.' | translate\"\n [subtitle]=\"'This application doesn\\'t have any plugin. Click below to install.' | translate\"\n [horizontal]=\"true\"\n >\n <div class=\"fit-w p-t-16\">\n <button\n
|
|
2759
|
+
args: [{ selector: 'c8y-app-plugins', template: "<c8y-title>{{ app | humanizeAppName | async }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item [icon]=\"'c8y-atom'\" [label]=\"'Ecosystem' | translate\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-modules'\"\n [label]=\"'Applications' | translate\"\n [path]=\"'ecosystem/applications/application'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"app | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Plugins' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n (click)=\"installPlugins()\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n class=\"btn btn-link\"\n title=\"{{ 'Install plugins' | translate }}\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Install plugins' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<ng-container *ngIf=\"orphanedPlugins$ | async as orphanedPlugins\">\n <c8y-action-bar-item *ngIf=\"orphanedPlugins?.length\" [placement]=\"'right'\">\n <button\n (click)=\"cleanupOrphanedPlugins(orphanedPlugins)\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n class=\"btn btn-link\"\n title=\"{{ 'Clean up orphaned plugins' | translate }}\"\n >\n <i c8yIcon=\"erase\"></i>\n {{ 'Clean up orphaned plugins' | translate }}\n </button>\n </c8y-action-bar-item>\n</ng-container>\n\n<div class=\"content-fullpage d-flex d-col border-top\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [rows]=\"installedPlugins$ | async\"\n [pagination]=\"pagination\"\n [selectable]=\"true\"\n [actionControls]=\"actionControls\"\n [bulkActionControls]=\"bulkActionControls\"\n [headerActionControls]=\"headerActionControls\"\n (onReload)=\"refresh()\"\n class=\"d-contents\"\n >\n <!-- No search/filtered results empty state -->\n <c8y-ui-empty-state\n *ngIf=\"(installedPlugins$ | async)?.length\"\n [icon]=\"'search'\"\n [title]=\"'No plugins to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n >\n </c8y-ui-empty-state>\n <!-- No installed plugins empty state -->\n <c8y-ui-empty-state\n *ngIf=\"!(installedPlugins$ | async)?.length && !isLoading\"\n [icon]=\"'plugin'\"\n [title]=\"'No plugins installed.' | translate\"\n [subtitle]=\"'This application doesn\\'t have any plugin. Click below to install.' | translate\"\n [horizontal]=\"true\"\n >\n <div class=\"fit-w p-t-16\">\n <button\n (click)=\"installPlugins()\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n class=\"btn btn-primary btn-sm\"\n title=\"{{ 'Install plugins' | translate }}\"\n translate\n >\n Install plugins\n </button>\n </div>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n</div>\n" }]
|
|
2737
2760
|
}], ctorParameters: function () { return [{ type: i1$2.ActivatedRoute }, { type: i1.EcosystemService }, { type: i1$1.BsModalService }, { type: i2.ModalService }, { type: i4.TranslateService }, { type: i2.PluginsService }, { type: i2.AlertService }, { type: i2.GainsightService }]; }, propDecorators: { appId: [{
|
|
2738
2761
|
type: Input
|
|
2739
2762
|
}], dataGrid: [{
|