UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

31 lines 14.7 kB
import { Component, Input } from '@angular/core'; import { AppStateService, C8yTranslatePipe, CommonModule, TenantUiService, Permissions } from '@c8y/ngx-components'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/ngx-components"; import * as i2 from "@angular/common"; export class SupportUserAccessComponent { constructor(tenantUiService, appState, permissions) { this.tenantUiService = tenantUiService; this.appState = appState; this.permissions = permissions; } async ngOnInit() { this.isTopTenant = await this.tenantUiService.isManagementTenant(); this.setSupportUserLogin(); } async setSupportUserLogin() { const currentUser = (await this.appState.currentUser).value; if (this.permissions.hasAnyRole([Permissions.ROLE_SUPPORT_ADMIN, Permissions.ROLE_SUPPORT_READ])) { this.supportUserLogin = encodeURIComponent(`${currentUser.id}$`); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SupportUserAccessComponent, deps: [{ token: i1.TenantUiService }, { token: i1.AppStateService }, { token: i1.Permissions }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SupportUserAccessComponent, isStandalone: true, selector: "c8y-support-user-access", inputs: { tenant: "tenant" }, ngImport: i0, template: "<div class=\"card-header separator sticky-top large-padding\">\n <div class=\"card-title fit-w\">\n <i\n class=\"c8y-icon c8y-icon-c8y-support\"\n [ngClass]=\"{ 'c8y-icon-duocolor': tenant.supportUser?.enabled }\"\n ></i>\n {{ 'Support user access' | translate }}\n </div>\n <ng-container *ngIf=\"tenant.supportUser?.enabled && supportUserLogin && isTopTenant\">\n <a\n class=\"btn btn-default btn-xs\"\n title=\"{{ 'Log in' | translate }}\"\n href=\"//{{ tenant.domain }}/apps/administration/?user={{ supportUserLogin }}\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <i c8yIcon=\"external-link\"></i>\n {{ 'Log in' | translate }}\n </a>\n </ng-container>\n</div>\n<div class=\"card-block large-padding\">\n <div class=\"form-group\">\n <label>{{ 'Status' | translate }}</label>\n <div>\n <p class=\"form-control-static\">\n <span\n title=\"{{ 'Disabled' | translate }}\"\n *ngIf=\"!tenant.supportUser?.enabled\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"ban\"\n ></i>\n {{ 'Disabled' | translate }}\n </span>\n <span\n title=\"{{ 'Enabled' | translate }}\"\n *ngIf=\"tenant.supportUser?.enabled\"\n >\n <i\n class=\"text-success\"\n c8yIcon=\"check-circle\"\n ></i>\n {{ 'Enabled' | translate }}\n </span>\n </p>\n </div>\n </div>\n <div class=\"form-group\" data-cy=\"c8y-support-user-access--activeRequestCount\">\n <label>{{ 'Active requests count' | translate }}</label>\n\n <p class=\"form-control-static\">\n <span *ngIf=\"tenant.supportUser?.activeRequestCount\">\n <span class=\"badge badge-danger\">\n {{ tenant.supportUser?.activeRequestCount }}\n </span>\n </span>\n <span *ngIf=\"!tenant.supportUser?.enabled && tenant.supportUser?.activeRequestCount === 0\">\n {{ 'No active requests' | translate }}\n </span>\n <span *ngIf=\"tenant.supportUser?.enabled && tenant.supportUser?.activeRequestCount === 0\">\n {{ 'Not applicable' | translate }}\n </span>\n </p>\n </div>\n <div\n class=\"form-group\"\n *ngIf=\"tenant.supportUser?.enabled\"\n >\n <label>{{ 'Expiry date' | translate }}</label>\n <div>\n <p class=\"form-control-static\">\n <span *ngIf=\"tenant.supportUser?.expiryDate\">\n {{ tenant.supportUser?.expiryDate | c8yDate: 'medium' }}\n </span>\n <span *ngIf=\"!tenant.supportUser?.expiryDate\">{{ 'No limit' | translate }}</span>\n </p>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "c8yDate" }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SupportUserAccessComponent, decorators: [{ type: Component, args: [{ selector: 'c8y-support-user-access', standalone: true, imports: [CommonModule, C8yTranslatePipe], template: "<div class=\"card-header separator sticky-top large-padding\">\n <div class=\"card-title fit-w\">\n <i\n class=\"c8y-icon c8y-icon-c8y-support\"\n [ngClass]=\"{ 'c8y-icon-duocolor': tenant.supportUser?.enabled }\"\n ></i>\n {{ 'Support user access' | translate }}\n </div>\n <ng-container *ngIf=\"tenant.supportUser?.enabled && supportUserLogin && isTopTenant\">\n <a\n class=\"btn btn-default btn-xs\"\n title=\"{{ 'Log in' | translate }}\"\n href=\"//{{ tenant.domain }}/apps/administration/?user={{ supportUserLogin }}\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <i c8yIcon=\"external-link\"></i>\n {{ 'Log in' | translate }}\n </a>\n </ng-container>\n</div>\n<div class=\"card-block large-padding\">\n <div class=\"form-group\">\n <label>{{ 'Status' | translate }}</label>\n <div>\n <p class=\"form-control-static\">\n <span\n title=\"{{ 'Disabled' | translate }}\"\n *ngIf=\"!tenant.supportUser?.enabled\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"ban\"\n ></i>\n {{ 'Disabled' | translate }}\n </span>\n <span\n title=\"{{ 'Enabled' | translate }}\"\n *ngIf=\"tenant.supportUser?.enabled\"\n >\n <i\n class=\"text-success\"\n c8yIcon=\"check-circle\"\n ></i>\n {{ 'Enabled' | translate }}\n </span>\n </p>\n </div>\n </div>\n <div class=\"form-group\" data-cy=\"c8y-support-user-access--activeRequestCount\">\n <label>{{ 'Active requests count' | translate }}</label>\n\n <p class=\"form-control-static\">\n <span *ngIf=\"tenant.supportUser?.activeRequestCount\">\n <span class=\"badge badge-danger\">\n {{ tenant.supportUser?.activeRequestCount }}\n </span>\n </span>\n <span *ngIf=\"!tenant.supportUser?.enabled && tenant.supportUser?.activeRequestCount === 0\">\n {{ 'No active requests' | translate }}\n </span>\n <span *ngIf=\"tenant.supportUser?.enabled && tenant.supportUser?.activeRequestCount === 0\">\n {{ 'Not applicable' | translate }}\n </span>\n </p>\n </div>\n <div\n class=\"form-group\"\n *ngIf=\"tenant.supportUser?.enabled\"\n >\n <label>{{ 'Expiry date' | translate }}</label>\n <div>\n <p class=\"form-control-static\">\n <span *ngIf=\"tenant.supportUser?.expiryDate\">\n {{ tenant.supportUser?.expiryDate | c8yDate: 'medium' }}\n </span>\n <span *ngIf=\"!tenant.supportUser?.expiryDate\">{{ 'No limit' | translate }}</span>\n </p>\n </div>\n </div>\n</div>\n" }] }], ctorParameters: () => [{ type: i1.TenantUiService }, { type: i1.AppStateService }, { type: i1.Permissions }], propDecorators: { tenant: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC11c2VyLWFjY2Vzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZW5hbnRzL3N1cHBvcnQtdXNlci1hY2Nlc3Mvc3VwcG9ydC11c2VyLWFjY2Vzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi90ZW5hbnRzL3N1cHBvcnQtdXNlci1hY2Nlc3Mvc3VwcG9ydC11c2VyLWFjY2Vzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osZUFBZSxFQUNmLFdBQVcsRUFDWixNQUFNLHFCQUFxQixDQUFDOzs7O0FBUTdCLE1BQU0sT0FBTywwQkFBMEI7SUFPckMsWUFDVSxlQUFnQyxFQUNoQyxRQUF5QixFQUN6QixXQUF3QjtRQUZ4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDL0IsQ0FBQztJQUVKLEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNuRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sS0FBSyxDQUFDLG1CQUFtQjtRQUMvQixNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUQsSUFDRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUM1RixDQUFDO1lBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLEdBQUcsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNILENBQUM7K0dBekJVLDBCQUEwQjttR0FBMUIsMEJBQTBCLGlIQ2hCdkMsaXBGQWlGQSwyQ0RwRVksWUFBWTs7NEZBR1gsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7NElBS3pDLE1BQU07c0JBREwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVRlbmFudCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFwcFN0YXRlU2VydmljZSxcbiAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgQ29tbW9uTW9kdWxlLFxuICBUZW5hbnRVaVNlcnZpY2UsXG4gIFBlcm1pc3Npb25zXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktc3VwcG9ydC11c2VyLWFjY2VzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEM4eVRyYW5zbGF0ZVBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc3VwcG9ydC11c2VyLWFjY2Vzcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU3VwcG9ydFVzZXJBY2Nlc3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICB0ZW5hbnQ6IElUZW5hbnQ7XG5cbiAgaXNUb3BUZW5hbnQ6IGJvb2xlYW47XG4gIHN1cHBvcnRVc2VyTG9naW46IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRlbmFudFVpU2VydmljZTogVGVuYW50VWlTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uc1xuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pc1RvcFRlbmFudCA9IGF3YWl0IHRoaXMudGVuYW50VWlTZXJ2aWNlLmlzTWFuYWdlbWVudFRlbmFudCgpO1xuICAgIHRoaXMuc2V0U3VwcG9ydFVzZXJMb2dpbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRTdXBwb3J0VXNlckxvZ2luKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGN1cnJlbnRVc2VyID0gKGF3YWl0IHRoaXMuYXBwU3RhdGUuY3VycmVudFVzZXIpLnZhbHVlO1xuICAgIGlmIChcbiAgICAgIHRoaXMucGVybWlzc2lvbnMuaGFzQW55Um9sZShbUGVybWlzc2lvbnMuUk9MRV9TVVBQT1JUX0FETUlOLCBQZXJtaXNzaW9ucy5ST0xFX1NVUFBPUlRfUkVBRF0pXG4gICAgKSB7XG4gICAgICB0aGlzLnN1cHBvcnRVc2VyTG9naW4gPSBlbmNvZGVVUklDb21wb25lbnQoYCR7Y3VycmVudFVzZXIuaWR9JGApO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHNlcGFyYXRvciBzdGlja3ktdG9wIGxhcmdlLXBhZGRpbmdcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgZml0LXdcIj5cbiAgICA8aVxuICAgICAgY2xhc3M9XCJjOHktaWNvbiBjOHktaWNvbi1jOHktc3VwcG9ydFwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdjOHktaWNvbi1kdW9jb2xvcic6IHRlbmFudC5zdXBwb3J0VXNlcj8uZW5hYmxlZCB9XCJcbiAgICA+PC9pPlxuICAgIHt7ICdTdXBwb3J0IHVzZXIgYWNjZXNzJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbmFudC5zdXBwb3J0VXNlcj8uZW5hYmxlZCAmJiBzdXBwb3J0VXNlckxvZ2luICYmIGlzVG9wVGVuYW50XCI+XG4gICAgPGFcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi14c1wiXG4gICAgICB0aXRsZT1cInt7ICdMb2cgaW4nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIGhyZWY9XCIvL3t7IHRlbmFudC5kb21haW4gfX0vYXBwcy9hZG1pbmlzdHJhdGlvbi8/dXNlcj17eyBzdXBwb3J0VXNlckxvZ2luIH19XCJcbiAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICA+XG4gICAgICA8aSBjOHlJY29uPVwiZXh0ZXJuYWwtbGlua1wiPjwvaT5cbiAgICAgIHt7ICdMb2cgaW4nIHwgdHJhbnNsYXRlIH19XG4gICAgPC9hPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgbGFyZ2UtcGFkZGluZ1wiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbD57eyAnU3RhdHVzJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGRpdj5cbiAgICAgIDxwIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIHRpdGxlPVwie3sgJ0Rpc2FibGVkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgKm5nSWY9XCIhdGVuYW50LnN1cHBvcnRVc2VyPy5lbmFibGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgIGM4eUljb249XCJiYW5cIlxuICAgICAgICAgID48L2k+XG4gICAgICAgICAge3sgJ0Rpc2FibGVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgdGl0bGU9XCJ7eyAnRW5hYmxlZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICpuZ0lmPVwidGVuYW50LnN1cHBvcnRVc2VyPy5lbmFibGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc3VjY2Vzc1wiXG4gICAgICAgICAgICBjOHlJY29uPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICAgIHt7ICdFbmFibGVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIGRhdGEtY3k9XCJjOHktc3VwcG9ydC11c2VyLWFjY2Vzcy0tYWN0aXZlUmVxdWVzdENvdW50XCI+XG4gICAgPGxhYmVsPnt7ICdBY3RpdmUgcmVxdWVzdHMgY291bnQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cblxuICAgIDxwIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJ0ZW5hbnQuc3VwcG9ydFVzZXI/LmFjdGl2ZVJlcXVlc3RDb3VudFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWRhbmdlclwiPlxuICAgICAgICAgIHt7IHRlbmFudC5zdXBwb3J0VXNlcj8uYWN0aXZlUmVxdWVzdENvdW50IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIXRlbmFudC5zdXBwb3J0VXNlcj8uZW5hYmxlZCAmJiB0ZW5hbnQuc3VwcG9ydFVzZXI/LmFjdGl2ZVJlcXVlc3RDb3VudCA9PT0gMFwiPlxuICAgICAgICB7eyAnTm8gYWN0aXZlIHJlcXVlc3RzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJ0ZW5hbnQuc3VwcG9ydFVzZXI/LmVuYWJsZWQgJiYgdGVuYW50LnN1cHBvcnRVc2VyPy5hY3RpdmVSZXF1ZXN0Q291bnQgPT09IDBcIj5cbiAgICAgICAge3sgJ05vdCBhcHBsaWNhYmxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvcD5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgICpuZ0lmPVwidGVuYW50LnN1cHBvcnRVc2VyPy5lbmFibGVkXCJcbiAgPlxuICAgIDxsYWJlbD57eyAnRXhwaXJ5IGRhdGUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8ZGl2PlxuICAgICAgPHAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwidGVuYW50LnN1cHBvcnRVc2VyPy5leHBpcnlEYXRlXCI+XG4gICAgICAgICAge3sgdGVuYW50LnN1cHBvcnRVc2VyPy5leHBpcnlEYXRlIHwgYzh5RGF0ZTogJ21lZGl1bScgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiF0ZW5hbnQuc3VwcG9ydFVzZXI/LmV4cGlyeURhdGVcIj57eyAnTm8gbGltaXQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19