@c8y/ngx-components 1006.6.36 → 1006.6.40
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/bundles/c8y-ngx-components-connectivity.umd.js +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.js +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.js +400 -131
- package/bundles/c8y-ngx-components.umd.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.min.js +2 -2
- package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
- package/c8y-ngx-components.d.ts +90 -87
- package/c8y-ngx-components.metadata.json +1 -1
- package/connectivity/c8y-ngx-components-connectivity.metadata.json +1 -1
- package/context-dashboard/c8y-ngx-components-context-dashboard.metadata.json +1 -1
- package/core/authentication/new-password.component.d.ts +8 -6
- package/core/docs/guide-docs.component.d.ts +25 -3
- package/core/forms/validation-pattern.d.ts +1 -0
- package/core/i18n/force-html-translate.directive.d.ts +32 -0
- package/core/login/change-password.component.d.ts +1 -1
- package/core/login/login.service.d.ts +15 -2
- package/core/login/password-strength-validator.directive.d.ts +9 -0
- package/core/login/strength-validator-service.d.ts +7 -0
- package/core/user/user-edit.component.d.ts +4 -2
- package/esm2015/c8y-ngx-components.js +90 -87
- package/esm2015/connectivity/impact/impact-provider-settings.component.js +2 -2
- package/esm2015/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
- package/esm2015/core/authentication/new-password.component.js +15 -20
- package/esm2015/core/dashboard/widgets-dashboard.component.js +2 -2
- package/esm2015/core/docs/guide-docs.component.js +69 -4
- package/esm2015/core/forms/validation-pattern.js +2 -1
- package/esm2015/core/i18n/force-html-translate.directive.js +99 -0
- package/esm2015/core/i18n/i18n.module.js +5 -3
- package/esm2015/core/i18n/pattern-messages.data.js +2 -2
- package/esm2015/core/login/change-password.component.js +5 -5
- package/esm2015/core/login/credentials.component.js +2 -2
- package/esm2015/core/login/login.module.js +4 -2
- package/esm2015/core/login/login.service.js +40 -6
- package/esm2015/core/login/password-strength-validator.directive.js +32 -0
- package/esm2015/core/login/strength-validator-service.js +28 -0
- package/esm2015/core/user/user-edit.component.js +10 -5
- package/esm2015/repository/configuration/configuration-list.component.js +2 -2
- package/esm2015/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/esm5/c8y-ngx-components.js +90 -87
- package/esm5/connectivity/impact/impact-provider-settings.component.js +2 -2
- package/esm5/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
- package/esm5/core/authentication/new-password.component.js +21 -25
- package/esm5/core/dashboard/widgets-dashboard.component.js +2 -2
- package/esm5/core/docs/guide-docs.component.js +72 -4
- package/esm5/core/forms/validation-pattern.js +2 -1
- package/esm5/core/i18n/force-html-translate.directive.js +105 -0
- package/esm5/core/i18n/i18n.module.js +5 -3
- package/esm5/core/i18n/pattern-messages.data.js +2 -2
- package/esm5/core/login/change-password.component.js +5 -5
- package/esm5/core/login/credentials.component.js +2 -2
- package/esm5/core/login/login.module.js +4 -2
- package/esm5/core/login/login.service.js +43 -6
- package/esm5/core/login/password-strength-validator.directive.js +38 -0
- package/esm5/core/login/strength-validator-service.js +29 -0
- package/esm5/core/user/user-edit.component.js +19 -9
- package/esm5/repository/configuration/configuration-list.component.js +2 -2
- package/esm5/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/fesm2015/c8y-ngx-components-connectivity.js +1 -1
- package/fesm2015/c8y-ngx-components-connectivity.js.map +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.js +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.js.map +1 -1
- package/fesm2015/c8y-ngx-components-repository.js +1 -1
- package/fesm2015/c8y-ngx-components-repository.js.map +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/fesm2015/c8y-ngx-components.js +281 -40
- package/fesm2015/c8y-ngx-components.js.map +1 -1
- package/fesm5/c8y-ngx-components-connectivity.js +1 -1
- package/fesm5/c8y-ngx-components-connectivity.js.map +1 -1
- package/fesm5/c8y-ngx-components-context-dashboard.js +1 -1
- package/fesm5/c8y-ngx-components-context-dashboard.js.map +1 -1
- package/fesm5/c8y-ngx-components-repository.js +1 -1
- package/fesm5/c8y-ngx-components-repository.js.map +1 -1
- package/fesm5/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm5/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/fesm5/c8y-ngx-components.js +315 -49
- package/fesm5/c8y-ngx-components.js.map +1 -1
- package/locales/de.po +71 -60
- package/locales/es.po +120 -85
- package/locales/fr.po +107 -72
- package/locales/ja_JP.po +89 -78
- package/locales/ko.po +92 -57
- package/locales/locales.pot +9 -9
- package/locales/nl.po +95 -60
- package/locales/pl.po +88 -53
- package/locales/pt_BR.po +174 -138
- package/locales/ru.po +120 -85
- package/locales/zh_CN.po +87 -52
- package/package.json +2 -2
- package/repository/c8y-ngx-components-repository.metadata.json +1 -1
- package/sensor-phone/c8y-ngx-components-sensor-phone.metadata.json +1 -1
|
@@ -237,7 +237,7 @@ var ImpactProviderSettingsComponent = /** @class */ (function () {
|
|
|
237
237
|
ImpactProviderSettingsComponent = __decorate([
|
|
238
238
|
Component({
|
|
239
239
|
selector: 'c8y-impact-provider-settings',
|
|
240
|
-
template: "<div class=\"row\">\n <div class=\"col-xs-12 col-md-8 col-lg-6\">\n <form class=\"card\" [formGroup]=\"formGroup\" novalidate>\n <div class=\"card-header separator\">\n <h4 class=\"card-title\" translate>Credentials</h4>\n </div>\n <div class=\"card-block\" *ngIf=\"isEdit\">\n <c8y-form-group>\n <label for=\"baseUrl\" translate>\n Base URL\n </label>\n <input\n id=\"baseUrl\"\n name=\"baseUrl\"\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. https://impact.example.com' | translate }}\"\n autocomplete=\"off\"\n formControlName=\"baseUrl\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"user\" translate>\n User\n </label>\n <input\n id=\"user\"\n name=\"user\"\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. joe`LOCALIZE`' | translate }}\"\n required\n autocomplete=\"off\"\n formControlName=\"user\"\n />\n <c8y-messages>\n <c8y-message *ngIf=\"formGroup?.controls?.user?.errors?.required\" translate>\n This field is required.\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"password\" translate>\n Password\n </label>\n <input\n id=\"password\"\n name=\"password\"\n type=\"password\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my_password' | translate }}\"\n required\n autocomplete=\"off\"\n formControlName=\"password\"\n />\n <c8y-messages>\n <c8y-message *ngIf=\"formGroup?.controls?.password?.errors?.required\" translate>\n This field is required.\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"groupName\" translate>\n IMPACT group name prefix\n </label>\n <input\n id=\"groupName\"\n name=\"groupName\"\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. Europe.Nokia`LOCALIZE`' | translate }}\"\n formControlName=\"groupName\"\n />\n </c8y-form-group>\n </div>\n <div class=\"card-block bg-gray-white\">\n <div class=\"d-flex\">\n <c8y-status-display\n [status]=\"connectionStatus?.status\"\n [baseUrl]=\"connectionStatus?.options?.baseUrl\"\n ></c8y-status-display>\n\n <div class=\"d-flex flex-item-middle flex-item-right\">\n <label class=\"c8y-switch\">\n <input type=\"checkbox\" formControlName=\"initializeDevices\" />\n <span></span> {{ 'Refresh devices' | translate }}\n </label>\n <a\n container=\"body\"\n class=\"btn-clean m-l-4 flex-item-middle\"\n popover=\"{{ 'Refresh device resources as part of connecting' | translate }}\"\n placement=\"right\"\n outsideClick=\"false\"\n >\n <i c8yIcon=\"question-circle-o text-primary\"></i>\n </a>\n </div>\n </div>\n </div>\n <div class=\"card-block\" *ngIf=\"credentialsExist && !isEdit\">\n <p
|
|
240
|
+
template: "<div class=\"row\">\n <div class=\"col-xs-12 col-md-8 col-lg-6\">\n <form class=\"card\" [formGroup]=\"formGroup\" novalidate>\n <div class=\"card-header separator\">\n <h4 class=\"card-title\" translate>Credentials</h4>\n </div>\n <div class=\"card-block\" *ngIf=\"isEdit\">\n <c8y-form-group>\n <label for=\"baseUrl\" translate>\n Base URL\n </label>\n <input\n id=\"baseUrl\"\n name=\"baseUrl\"\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. https://impact.example.com' | translate }}\"\n autocomplete=\"off\"\n formControlName=\"baseUrl\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"user\" translate>\n User\n </label>\n <input\n id=\"user\"\n name=\"user\"\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. joe`LOCALIZE`' | translate }}\"\n required\n autocomplete=\"off\"\n formControlName=\"user\"\n />\n <c8y-messages>\n <c8y-message *ngIf=\"formGroup?.controls?.user?.errors?.required\" translate>\n This field is required.\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"password\" translate>\n Password\n </label>\n <input\n id=\"password\"\n name=\"password\"\n type=\"password\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my_password' | translate }}\"\n required\n autocomplete=\"off\"\n formControlName=\"password\"\n />\n <c8y-messages>\n <c8y-message *ngIf=\"formGroup?.controls?.password?.errors?.required\" translate>\n This field is required.\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"groupName\" translate>\n IMPACT group name prefix\n </label>\n <input\n id=\"groupName\"\n name=\"groupName\"\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. Europe.Nokia`LOCALIZE`' | translate }}\"\n formControlName=\"groupName\"\n />\n </c8y-form-group>\n </div>\n <div class=\"card-block bg-gray-white\">\n <div class=\"d-flex\">\n <c8y-status-display\n [status]=\"connectionStatus?.status\"\n [baseUrl]=\"connectionStatus?.options?.baseUrl\"\n ></c8y-status-display>\n\n <div class=\"d-flex flex-item-middle flex-item-right\">\n <label class=\"c8y-switch\">\n <input type=\"checkbox\" formControlName=\"initializeDevices\" />\n <span></span> {{ 'Refresh devices' | translate }}\n </label>\n <a\n container=\"body\"\n class=\"btn-clean m-l-4 flex-item-middle\"\n popover=\"{{ 'Refresh device resources as part of connecting' | translate }}\"\n placement=\"right\"\n outsideClick=\"false\"\n >\n <i c8yIcon=\"question-circle-o text-primary\"></i>\n </a>\n </div>\n </div>\n </div>\n <div class=\"card-block\" *ngIf=\"credentialsExist && !isEdit\">\n <p forceHtmlTranslate>\n Credentials already provided.<br />\n Click \"Replace credentials\" below to overwrite them.\n </p>\n </div>\n <div class=\"card-footer\">\n <button\n title=\"{{ 'Replace credentials' | translate }}\"\n type=\"submit\"\n class=\"btn btn-default\"\n translate\n *ngIf=\"!isEdit\"\n (click)=\"replaceCredentials()\"\n >\n Replace credentials\n </button>\n <button\n title=\"{{ 'Delete credentials' | translate }}\"\n type=\"button\"\n class=\"btn btn-danger\"\n translate\n *ngIf=\"credentialsExist && isEdit\"\n (click)=\"deleteCredentials()\"\n >\n Delete credentials\n </button>\n <button\n title=\"{{ 'Save credentials & connect' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n translate\n *ngIf=\"isEdit\"\n [disabled]=\"formGroup.invalid\"\n (click)=\"saveCredentials()\"\n >\n Save credentials & connect\n </button>\n </div>\n </form>\n </div>\n</div>\n"
|
|
241
241
|
})
|
|
242
242
|
], ImpactProviderSettingsComponent);
|
|
243
243
|
return ImpactProviderSettingsComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-connectivity.js","sources":["ng://@c8y/ngx-components/connectivity/impact/impact-connectivity.service.ts","ng://@c8y/ngx-components/connectivity/impact/impact.model.ts","ng://@c8y/ngx-components/connectivity/impact/impact-provider-settings.component.ts","ng://@c8y/ngx-components/connectivity/impact/status-display.component.ts","ng://@c8y/ngx-components/connectivity/connectivity.module.ts","ng://@c8y/ngx-components/connectivity/c8y-ngx-components-connectivity.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FetchClient, IFetchOptions, IFetchResponse } from '@c8y/client';\nimport { ImpactOptions } from './impact.model';\n\n@Injectable()\nexport class ImpactConnectivityService {\n private readonly microserviceUrl: string = '/service/impact/connectivity';\n private readonly header: any = { 'Content-Type': 'application/json' };\n\n constructor(private client: FetchClient) {}\n\n getOptions(): Promise<IFetchResponse> {\n const options: IFetchOptions = {\n method: 'GET',\n headers: this.header\n };\n return this.client.fetch(`${this.microserviceUrl}`, options);\n }\n\n updateOptions(impactOptions: ImpactOptions): Promise<IFetchResponse> {\n const options: IFetchOptions = {\n method: 'POST',\n headers: this.header,\n body: JSON.stringify(impactOptions)\n };\n return this.client.fetch(`${this.microserviceUrl}`, options);\n }\n\n deleteOptions(): Promise<IFetchResponse> {\n const options: IFetchOptions = {\n method: 'DELETE',\n headers: this.header\n };\n return this.client.fetch(`${this.microserviceUrl}`, options);\n }\n}\n","export interface ImpactOptions {\n baseUrl: string;\n user: string;\n password: string;\n groupName: string;\n callbackUrl: string;\n initializeDevices: boolean;\n}\n\nexport interface TenantConnectionStatusResponse {\n status: TenantConnectionStatus;\n options: ImpactOptions;\n}\n\nexport enum TenantConnectionStatus {\n NO_CONNECTION = 'NO_CONNECTION',\n CONNECTING_IN_PROGRESS = 'CONNECTING_IN_PROGRESS',\n CONNECTED_SUCCESSFULLY = 'CONNECTED_SUCCESSFULLY',\n CONNECTED_FAILED = 'CONNECTED_FAILED',\n UNKNOWN = 'UNKNOWN'\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { IFetchResponse } from '@c8y/client';\nimport { AlertService, gettext, ModalService, Status } from '@c8y/ngx-components';\nimport { ImpactConnectivityService } from './impact-connectivity.service';\nimport {\n ImpactOptions,\n TenantConnectionStatus,\n TenantConnectionStatusResponse\n} from './impact.model';\n\n@Component({\n selector: 'c8y-impact-provider-settings',\n templateUrl: './impact-provider-settings.component.html'\n})\nexport class ImpactProviderSettingsComponent implements OnInit {\n connectionStatus: TenantConnectionStatusResponse;\n formGroup: FormGroup;\n\n isEdit: boolean = false;\n credentialsExist: boolean = false;\n\n constructor(\n private impactService: ImpactConnectivityService,\n private formBuilder: FormBuilder,\n private modal: ModalService,\n private alert: AlertService\n ) {}\n\n async ngOnInit() {\n this.initForm();\n const response: IFetchResponse = await this.impactService.getOptions();\n this.connectionStatus = await response.json();\n\n if (this.connectionStatus && this.connectionStatus.options) {\n this.formGroup.patchValue({ ...this.connectionStatus.options });\n this.credentialsExist = true;\n } else {\n this.isEdit = true;\n }\n }\n\n replaceCredentials(): void {\n this.isEdit = true;\n }\n\n async saveCredentials() {\n if (this.formGroup.valid) {\n this.connectionStatus.status = TenantConnectionStatus.CONNECTING_IN_PROGRESS;\n const updated: boolean = await this.safelyUpdateCredentials(this.formGroup.value);\n\n if (updated) {\n const response: IFetchResponse = await this.impactService.getOptions();\n this.connectionStatus = await response.json();\n\n if (this.connectionStatus.status === TenantConnectionStatus.CONNECTED_SUCCESSFULLY) {\n this.isEdit = false;\n }\n\n this.alert.success(gettext('Credentials saved.'));\n } else {\n this.connectionStatus.status = TenantConnectionStatus.UNKNOWN;\n }\n }\n }\n\n async deleteCredentials() {\n try {\n await this.modal.confirm(\n gettext('Delete credentials'),\n gettext(\n 'You are about to delete your IMPACT credentials. Deleting credentials will break connection to IMPACT instance. Do you want to proceed?'\n ),\n Status.DANGER,\n { ok: gettext('Delete'), cancel: gettext('Cancel') }\n );\n await this.safelyDeleteCredentials();\n } catch (ex) {\n // Intentionally empty\n }\n }\n\n private initForm(): void {\n this.formGroup = this.formBuilder.group({\n baseUrl: [],\n user: ['', Validators.required],\n password: ['', Validators.required],\n groupName: [],\n initializeDevices: [false]\n });\n }\n\n private resetForm(): void {\n this.formGroup.reset();\n }\n\n private async safelyUpdateCredentials(options: ImpactOptions): Promise<boolean> {\n try {\n const res = await this.impactService.updateOptions(options);\n if (res && res.status !== 200) {\n const data = res.json ? await res.json() : undefined;\n this.alert.addServerFailure({ data, res });\n\n return Promise.resolve(false);\n } else {\n return Promise.resolve(true);\n }\n } catch (ex) {\n this.alert.addServerFailure(ex);\n\n return Promise.resolve(false);\n }\n }\n\n private async safelyDeleteCredentials() {\n try {\n const res = await this.impactService.deleteOptions();\n if (res && res.status !== 200) {\n const data = res.json ? await res.json() : undefined;\n this.alert.addServerFailure({ data, res });\n } else {\n this.credentialsExist = false;\n this.resetForm();\n this.connectionStatus = null;\n this.alert.success(gettext('Credentials deleted.'));\n }\n } catch (ex) {\n this.alert.addServerFailure(ex);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components';\nimport { TenantConnectionStatus } from './impact.model';\n\n@Component({\n selector: 'c8y-status-display',\n templateUrl: './status-display.component.html'\n})\nexport class StatusDisplayComponent {\n @Input() baseUrl: string;\n\n icon: string;\n statusName: string;\n\n @Input() set status(status: TenantConnectionStatus) {\n switch (status) {\n case TenantConnectionStatus.CONNECTED_SUCCESSFULLY:\n this.icon = 'success';\n this.statusName = gettext('Connected successfully');\n break;\n case TenantConnectionStatus.CONNECTED_FAILED:\n this.icon = 'failed';\n this.statusName = gettext('Connection failed');\n break;\n case TenantConnectionStatus.CONNECTING_IN_PROGRESS:\n this.icon = 'connecting';\n this.statusName = gettext('Connection in progress');\n break;\n case TenantConnectionStatus.NO_CONNECTION:\n this.icon = 'no-connection';\n this.statusName = gettext('No connection');\n break;\n default:\n this.icon = 'unknown';\n this.statusName = gettext('Unknown`connection status`');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule, CoreModule, FormsModule } from '@c8y/ngx-components';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { ImpactConnectivityService } from './impact/impact-connectivity.service';\nimport { ImpactProviderSettingsComponent } from './impact/impact-provider-settings.component';\nimport { StatusDisplayComponent } from './impact/status-display.component';\n\n@NgModule({\n declarations: [ImpactProviderSettingsComponent, StatusDisplayComponent],\n exports: [ImpactProviderSettingsComponent],\n imports: [CoreModule, CommonModule, FormsModule, PopoverModule, ReactiveFormsModule],\n entryComponents: [ImpactProviderSettingsComponent],\n providers: [ImpactConnectivityService]\n})\nexport class ConnectivityModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {ImpactConnectivityService as ɵa} from './impact/impact-connectivity.service';\nexport {StatusDisplayComponent as ɵb} from './impact/status-display.component';"],"names":["tslib_1.__decorate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-connectivity.js","sources":["ng://@c8y/ngx-components/connectivity/impact/impact-connectivity.service.ts","ng://@c8y/ngx-components/connectivity/impact/impact.model.ts","ng://@c8y/ngx-components/connectivity/impact/impact-provider-settings.component.ts","ng://@c8y/ngx-components/connectivity/impact/status-display.component.ts","ng://@c8y/ngx-components/connectivity/connectivity.module.ts","ng://@c8y/ngx-components/connectivity/c8y-ngx-components-connectivity.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FetchClient, IFetchOptions, IFetchResponse } from '@c8y/client';\nimport { ImpactOptions } from './impact.model';\n\n@Injectable()\nexport class ImpactConnectivityService {\n private readonly microserviceUrl: string = '/service/impact/connectivity';\n private readonly header: any = { 'Content-Type': 'application/json' };\n\n constructor(private client: FetchClient) {}\n\n getOptions(): Promise<IFetchResponse> {\n const options: IFetchOptions = {\n method: 'GET',\n headers: this.header\n };\n return this.client.fetch(`${this.microserviceUrl}`, options);\n }\n\n updateOptions(impactOptions: ImpactOptions): Promise<IFetchResponse> {\n const options: IFetchOptions = {\n method: 'POST',\n headers: this.header,\n body: JSON.stringify(impactOptions)\n };\n return this.client.fetch(`${this.microserviceUrl}`, options);\n }\n\n deleteOptions(): Promise<IFetchResponse> {\n const options: IFetchOptions = {\n method: 'DELETE',\n headers: this.header\n };\n return this.client.fetch(`${this.microserviceUrl}`, options);\n }\n}\n","export interface ImpactOptions {\n baseUrl: string;\n user: string;\n password: string;\n groupName: string;\n callbackUrl: string;\n initializeDevices: boolean;\n}\n\nexport interface TenantConnectionStatusResponse {\n status: TenantConnectionStatus;\n options: ImpactOptions;\n}\n\nexport enum TenantConnectionStatus {\n NO_CONNECTION = 'NO_CONNECTION',\n CONNECTING_IN_PROGRESS = 'CONNECTING_IN_PROGRESS',\n CONNECTED_SUCCESSFULLY = 'CONNECTED_SUCCESSFULLY',\n CONNECTED_FAILED = 'CONNECTED_FAILED',\n UNKNOWN = 'UNKNOWN'\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { IFetchResponse } from '@c8y/client';\nimport { AlertService, gettext, ModalService, Status } from '@c8y/ngx-components';\nimport { ImpactConnectivityService } from './impact-connectivity.service';\nimport {\n ImpactOptions,\n TenantConnectionStatus,\n TenantConnectionStatusResponse\n} from './impact.model';\n\n@Component({\n selector: 'c8y-impact-provider-settings',\n templateUrl: './impact-provider-settings.component.html'\n})\nexport class ImpactProviderSettingsComponent implements OnInit {\n connectionStatus: TenantConnectionStatusResponse;\n formGroup: FormGroup;\n\n isEdit: boolean = false;\n credentialsExist: boolean = false;\n\n constructor(\n private impactService: ImpactConnectivityService,\n private formBuilder: FormBuilder,\n private modal: ModalService,\n private alert: AlertService\n ) {}\n\n async ngOnInit() {\n this.initForm();\n const response: IFetchResponse = await this.impactService.getOptions();\n this.connectionStatus = await response.json();\n\n if (this.connectionStatus && this.connectionStatus.options) {\n this.formGroup.patchValue({ ...this.connectionStatus.options });\n this.credentialsExist = true;\n } else {\n this.isEdit = true;\n }\n }\n\n replaceCredentials(): void {\n this.isEdit = true;\n }\n\n async saveCredentials() {\n if (this.formGroup.valid) {\n this.connectionStatus.status = TenantConnectionStatus.CONNECTING_IN_PROGRESS;\n const updated: boolean = await this.safelyUpdateCredentials(this.formGroup.value);\n\n if (updated) {\n const response: IFetchResponse = await this.impactService.getOptions();\n this.connectionStatus = await response.json();\n\n if (this.connectionStatus.status === TenantConnectionStatus.CONNECTED_SUCCESSFULLY) {\n this.isEdit = false;\n }\n\n this.alert.success(gettext('Credentials saved.'));\n } else {\n this.connectionStatus.status = TenantConnectionStatus.UNKNOWN;\n }\n }\n }\n\n async deleteCredentials() {\n try {\n await this.modal.confirm(\n gettext('Delete credentials'),\n gettext(\n 'You are about to delete your IMPACT credentials. Deleting credentials will break connection to IMPACT instance. Do you want to proceed?'\n ),\n Status.DANGER,\n { ok: gettext('Delete'), cancel: gettext('Cancel') }\n );\n await this.safelyDeleteCredentials();\n } catch (ex) {\n // Intentionally empty\n }\n }\n\n private initForm(): void {\n this.formGroup = this.formBuilder.group({\n baseUrl: [],\n user: ['', Validators.required],\n password: ['', Validators.required],\n groupName: [],\n initializeDevices: [false]\n });\n }\n\n private resetForm(): void {\n this.formGroup.reset();\n }\n\n private async safelyUpdateCredentials(options: ImpactOptions): Promise<boolean> {\n try {\n const res = await this.impactService.updateOptions(options);\n if (res && res.status !== 200) {\n const data = res.json ? await res.json() : undefined;\n this.alert.addServerFailure({ data, res });\n\n return Promise.resolve(false);\n } else {\n return Promise.resolve(true);\n }\n } catch (ex) {\n this.alert.addServerFailure(ex);\n\n return Promise.resolve(false);\n }\n }\n\n private async safelyDeleteCredentials() {\n try {\n const res = await this.impactService.deleteOptions();\n if (res && res.status !== 200) {\n const data = res.json ? await res.json() : undefined;\n this.alert.addServerFailure({ data, res });\n } else {\n this.credentialsExist = false;\n this.resetForm();\n this.connectionStatus = null;\n this.alert.success(gettext('Credentials deleted.'));\n }\n } catch (ex) {\n this.alert.addServerFailure(ex);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components';\nimport { TenantConnectionStatus } from './impact.model';\n\n@Component({\n selector: 'c8y-status-display',\n templateUrl: './status-display.component.html'\n})\nexport class StatusDisplayComponent {\n @Input() baseUrl: string;\n\n icon: string;\n statusName: string;\n\n @Input() set status(status: TenantConnectionStatus) {\n switch (status) {\n case TenantConnectionStatus.CONNECTED_SUCCESSFULLY:\n this.icon = 'success';\n this.statusName = gettext('Connected successfully');\n break;\n case TenantConnectionStatus.CONNECTED_FAILED:\n this.icon = 'failed';\n this.statusName = gettext('Connection failed');\n break;\n case TenantConnectionStatus.CONNECTING_IN_PROGRESS:\n this.icon = 'connecting';\n this.statusName = gettext('Connection in progress');\n break;\n case TenantConnectionStatus.NO_CONNECTION:\n this.icon = 'no-connection';\n this.statusName = gettext('No connection');\n break;\n default:\n this.icon = 'unknown';\n this.statusName = gettext('Unknown`connection status`');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule, CoreModule, FormsModule } from '@c8y/ngx-components';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { ImpactConnectivityService } from './impact/impact-connectivity.service';\nimport { ImpactProviderSettingsComponent } from './impact/impact-provider-settings.component';\nimport { StatusDisplayComponent } from './impact/status-display.component';\n\n@NgModule({\n declarations: [ImpactProviderSettingsComponent, StatusDisplayComponent],\n exports: [ImpactProviderSettingsComponent],\n imports: [CoreModule, CommonModule, FormsModule, PopoverModule, ReactiveFormsModule],\n entryComponents: [ImpactProviderSettingsComponent],\n providers: [ImpactConnectivityService]\n})\nexport class ConnectivityModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {ImpactConnectivityService as ɵa} from './impact/impact-connectivity.service';\nexport {StatusDisplayComponent as ɵb} from './impact/status-display.component';"],"names":["tslib_1.__decorate"],"mappings":"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"}
|
|
@@ -1729,7 +1729,7 @@ var LegacyWelcomeComponent = /** @class */ (function () {
|
|
|
1729
1729
|
LegacyWelcomeComponent = __decorate([
|
|
1730
1730
|
Component({
|
|
1731
1731
|
selector: 'c8y-legacy-welcome-widget',
|
|
1732
|
-
template: "<div class=\"card-block\">\
|
|
1732
|
+
template: "<div class=\"card-block\">\n <p class=\"lead\" c8y-guide-docs>\n <span>{{ 'Welcome to Cockpit' | translate }}.</span>\n <span title=\"{{ 'Browse the manual' | translate }}\" class=\"cockpit-welcome-manual\" forceHtmlTranslate ngNonBindable\n >Browse the manual <a c8y-guide-href=\"users-guide/cockpit/\">here</a>.</span\n >\n </p>\n <p class=\"m-t-16\">\n <em>{{ 'New default dashboard available.' | translate }} </em>\n </p>\n <button class=\"btn btn-primary btn-sm m-t-16\" (click)=\"restore(); (false)\" translate>\n Get new dashboard\n </button>\n</div>\n"
|
|
1733
1733
|
}),
|
|
1734
1734
|
__param(0, Host())
|
|
1735
1735
|
], LegacyWelcomeComponent);
|