UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

68 lines 10.1 kB
import { Injectable } from '@angular/core'; import { FetchClient } from '@c8y/client'; import { AlertService, BuiltInActionType, gettext, ModalService, Status, TenantUiService } from '@c8y/ngx-components'; import { agentName } from '@c8y/ngx-components/protocol-lwm2m/model'; import { Lwm2mClientService } from '@c8y/ngx-components/protocol-lwm2m/services'; import { TranslateService } from '@ngx-translate/core'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/client"; import * as i2 from "@c8y/ngx-components"; import * as i3 from "@ngx-translate/core"; export class Lwm2mDeviceGridFactory extends Lwm2mClientService { constructor(client, tenantService, modal, translateService, alertService) { super(client); this.tenantService = tenantService; this.modal = modal; this.translateService = translateService; this.alertService = alertService; this.listUrl = 'deviceRegistration'; } get() { return { actionControls: { type: BuiltInActionType.Delete, priority: -Infinity, showIf: (mo) => super.isLwm2mDevice(mo), callback: async (mo, reload) => { await this.onDelete(mo); reload(); } }, matchesGrid: (_, context) => { return context?.key === 'device-grid-all'; } }; } async onDelete(device) { if (this.tenantService.isMicroserviceSubscribedInCurrentTenant(agentName)) { try { await this.modal.confirm(gettext('Delete LWM2M device'), this.translateService.instant(gettext(`You are about to delete device "{{ name }}". Do you want to proceed?`), device), Status.DANGER, { ok: gettext('Delete'), cancel: gettext('Cancel') }); await this.delete(device); this.alertService.success(gettext('Device deleted.')); return Promise.resolve(); } catch (ex) { if (ex) { this.alertService.addServerFailure(ex); } return Promise.reject(); } } else { this.alertService.danger(this.translateService.instant(gettext(`You can't delete this device. The service "{{ name }}" is not subscribed.`), { name: agentName })); return Promise.reject(); } } delete(entityOrId) { return super.delete(entityOrId); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Lwm2mDeviceGridFactory, deps: [{ token: i1.FetchClient }, { token: i2.TenantUiService }, { token: i2.ModalService }, { token: i3.TranslateService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Lwm2mDeviceGridFactory, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Lwm2mDeviceGridFactory, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.FetchClient }, { type: i2.TenantUiService }, { type: i2.ModalService }, { type: i3.TranslateService }, { type: i2.AlertService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHdtMm0tZGV2aWNlLWdyaWQuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb3RvY29sLWx3bTJtL2ZhY3Rvcmllcy9sd20ybS1kZXZpY2UtZ3JpZC5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUdMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsT0FBTyxFQUVQLFlBQVksRUFDWixNQUFNLEVBQ04sZUFBZSxFQUNoQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQU0sMENBQTBDLENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBS3ZELE1BQU0sT0FBTyxzQkFDWCxTQUFRLGtCQUFzQztJQUs5QyxZQUNFLE1BQW1CLEVBQ1gsYUFBOEIsRUFDOUIsS0FBbUIsRUFDbkIsZ0JBQWtDLEVBQ2xDLFlBQTBCO1FBRWxDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUxOLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFQMUIsWUFBTyxHQUFHLG9CQUFvQixDQUFDO0lBVXpDLENBQUM7SUFFRCxHQUFHO1FBQ0QsT0FBTztZQUNMLGNBQWMsRUFBRTtnQkFDZCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTtnQkFDOUIsUUFBUSxFQUFFLENBQUMsUUFBUTtnQkFDbkIsTUFBTSxFQUFFLENBQUMsRUFBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQzNELFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBc0IsRUFBRSxNQUFNLEVBQUUsRUFBRTtvQkFDakQsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN4QixNQUFNLEVBQUUsQ0FBQztnQkFDWCxDQUFDO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBMEIsRUFBRSxFQUFFO2dCQUM3QyxPQUFPLE9BQU8sRUFBRSxHQUFHLEtBQUssaUJBQWlCLENBQUM7WUFDNUMsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUEwQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsdUNBQXVDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMxRSxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDdEIsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQzNCLE9BQU8sQ0FBQyxzRUFBc0UsQ0FBQyxFQUMvRSxNQUFNLENBQ1AsRUFDRCxNQUFNLENBQUMsTUFBTSxFQUNiLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ3JELENBQUM7Z0JBQ0YsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2dCQUN0RCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMzQixDQUFDO1lBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDWixJQUFJLEVBQUUsRUFBRSxDQUFDO29CQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQzNCLE9BQU8sQ0FBQywyRUFBMkUsQ0FBQyxFQUNwRixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FDcEIsQ0FDRixDQUFDO1lBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsVUFBeUM7UUFDOUMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7K0dBbkVVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZXRjaENsaWVudCwgSUlkZW50aWZpZWQsIElSZXN1bHQgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBY3Rpb25Db250cm9sRmFjdG9yeSxcbiAgQWN0aW9uQ29udHJvbEhvb2ssXG4gIEFsZXJ0U2VydmljZSxcbiAgQnVpbHRJbkFjdGlvblR5cGUsXG4gIGdldHRleHQsXG4gIEdyaWRDb25maWdDb250ZXh0LFxuICBNb2RhbFNlcnZpY2UsXG4gIFN0YXR1cyxcbiAgVGVuYW50VWlTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgYWdlbnROYW1lLCBMd20ybU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL21vZGVsJztcbmltcG9ydCB7IEx3bTJtQ2xpZW50U2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vc2VydmljZXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMd20ybURldmljZUdyaWRGYWN0b3J5XG4gIGV4dGVuZHMgTHdtMm1DbGllbnRTZXJ2aWNlPEx3bTJtTWFuYWdlZE9iamVjdD5cbiAgaW1wbGVtZW50cyBBY3Rpb25Db250cm9sRmFjdG9yeVxue1xuICBwcm90ZWN0ZWQgbGlzdFVybCA9ICdkZXZpY2VSZWdpc3RyYXRpb24nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNsaWVudDogRmV0Y2hDbGllbnQsXG4gICAgcHJpdmF0ZSB0ZW5hbnRTZXJ2aWNlOiBUZW5hbnRVaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbDogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGNsaWVudCk7XG4gIH1cblxuICBnZXQoKTogQWN0aW9uQ29udHJvbEhvb2sge1xuICAgIHJldHVybiB7XG4gICAgICBhY3Rpb25Db250cm9sczoge1xuICAgICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5EZWxldGUsXG4gICAgICAgIHByaW9yaXR5OiAtSW5maW5pdHksXG4gICAgICAgIHNob3dJZjogKG1vOiBMd20ybU1hbmFnZWRPYmplY3QpID0+IHN1cGVyLmlzTHdtMm1EZXZpY2UobW8pLFxuICAgICAgICBjYWxsYmFjazogYXN5bmMgKG1vOiBMd20ybU1hbmFnZWRPYmplY3QsIHJlbG9hZCkgPT4ge1xuICAgICAgICAgIGF3YWl0IHRoaXMub25EZWxldGUobW8pO1xuICAgICAgICAgIHJlbG9hZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbWF0Y2hlc0dyaWQ6IChfLCBjb250ZXh0OiBHcmlkQ29uZmlnQ29udGV4dCkgPT4ge1xuICAgICAgICByZXR1cm4gY29udGV4dD8ua2V5ID09PSAnZGV2aWNlLWdyaWQtYWxsJztcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgb25EZWxldGUoZGV2aWNlOiBMd20ybU1hbmFnZWRPYmplY3QpIHtcbiAgICBpZiAodGhpcy50ZW5hbnRTZXJ2aWNlLmlzTWljcm9zZXJ2aWNlU3Vic2NyaWJlZEluQ3VycmVudFRlbmFudChhZ2VudE5hbWUpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLm1vZGFsLmNvbmZpcm0oXG4gICAgICAgICAgZ2V0dGV4dCgnRGVsZXRlIExXTTJNIGRldmljZScpLFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgZ2V0dGV4dChgWW91IGFyZSBhYm91dCB0byBkZWxldGUgZGV2aWNlIFwie3sgbmFtZSB9fVwiLiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkP2ApLFxuICAgICAgICAgICAgZGV2aWNlXG4gICAgICAgICAgKSxcbiAgICAgICAgICBTdGF0dXMuREFOR0VSLFxuICAgICAgICAgIHsgb2s6IGdldHRleHQoJ0RlbGV0ZScpLCBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpIH1cbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGUoZGV2aWNlKTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdEZXZpY2UgZGVsZXRlZC4nKSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgIGlmIChleCkge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5kYW5nZXIoXG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgIGdldHRleHQoYFlvdSBjYW4ndCBkZWxldGUgdGhpcyBkZXZpY2UuIFRoZSBzZXJ2aWNlIFwie3sgbmFtZSB9fVwiIGlzIG5vdCBzdWJzY3JpYmVkLmApLFxuICAgICAgICAgIHsgbmFtZTogYWdlbnROYW1lIH1cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIGRlbGV0ZShlbnRpdHlPcklkOiBzdHJpbmcgfCBudW1iZXIgfCBJSWRlbnRpZmllZCk6IFByb21pc2U8SVJlc3VsdDxudWxsPj4ge1xuICAgIHJldHVybiBzdXBlci5kZWxldGUoZW50aXR5T3JJZCk7XG4gIH1cbn1cbiJdfQ==