diff --git a/analytics-ui/src/analytics-extension.module.ts b/analytics-ui/src/analytics-extension.module.ts index 8ff2d42..65d1083 100644 --- a/analytics-ui/src/analytics-extension.module.ts +++ b/analytics-ui/src/analytics-extension.module.ts @@ -12,7 +12,7 @@ import { import { BinaryFileDownloadModule } from "@c8y/ngx-components/binary-file-download"; import { DefaultSubscriptionsModule } from "@c8y/ngx-components/default-subscriptions"; import { BsDropdownModule } from "ngx-bootstrap/dropdown"; -import { AddExtensionWizardComponent } from "./wizard/add-extension-wizard.component"; +import { AddExtensionWizardComponent } from "./component/add-extension-wizard.component"; import { AnalyticsExtensionCardComponent } from "./analytics/manage/extension-card.component"; import { AnalyticsExtensionComponent } from "./analytics/manage/extension.component"; import { AnalyticsService } from "./shared/analytics.service"; @@ -22,14 +22,15 @@ import { BlockGridComponent } from "./analytics/list/block.component"; import { AnalyticsAddExtensionComponent } from "./analytics/manage/extension-add.component"; import { SampleGridComponent } from "./sample/list/sample.component"; import { HttpClientModule } from "@angular/common/http"; -import { CreateExtensionComponent } from "./wizard/create-extension-modal.component"; +import { CreateExtensionComponent } from "./component/create-extension-modal.component"; import { EditorStepperComponent } from "./sample/editor/editor-stepper.component"; import { EditorModalComponent } from "./sample/editor/editor-modal.component"; import { RepositoriesModalComponent } from "./sample/editor/repositories-modal.component"; import { RepositoryService } from "./shared/repository.service"; import { FORMLY_CONFIG } from "@ngx-formly/core"; -import { C8YSwitchField } from "./shared/c8y-switch-field"; +import { C8YSwitchField } from "./component/c8y-switch-field"; import { AnalyticsExtensionDetailsComponent } from "./analytics/manage/extension-details.component"; +import { ConfirmationModalComponent } from "./component/confirmation-modal.component"; const routes: Route[] = [ { @@ -71,6 +72,7 @@ const routes: Route[] = [ RepositoriesModalComponent, AnalyticsExtensionDetailsComponent, C8YSwitchField, + ConfirmationModalComponent ], entryComponents: [ AnalyticsExtensionComponent, @@ -82,7 +84,8 @@ const routes: Route[] = [ EditorStepperComponent, EditorModalComponent, RepositoriesModalComponent, - AnalyticsExtensionDetailsComponent + AnalyticsExtensionDetailsComponent, + ConfirmationModalComponent ], providers: [ AnalyticsService, diff --git a/analytics-ui/src/analytics/manage/extension-card.component.html b/analytics-ui/src/analytics/manage/extension-card.component.html index 0dcd589..acc0900 100644 --- a/analytics-ui/src/analytics/manage/extension-card.component.html +++ b/analytics-ui/src/analytics/manage/extension-card.component.html @@ -44,12 +44,6 @@
diff --git a/analytics-ui/src/analytics/manage/extension-card.component.ts b/analytics-ui/src/analytics/manage/extension-card.component.ts index 7291d14..27b6a72 100644 --- a/analytics-ui/src/analytics/manage/extension-card.component.ts +++ b/analytics-ui/src/analytics/manage/extension-card.component.ts @@ -4,6 +4,8 @@ import { IManagedObject } from "@c8y/client"; import { AlertService } from "@c8y/ngx-components"; import { AnalyticsService } from "../../shared/analytics.service"; import { saveAs } from "file-saver"; +import { ConfirmationModalComponent } from "../../component/confirmation-modal.component"; +import { BsModalRef, BsModalService } from "ngx-bootstrap/modal"; @Component({ selector: "extension-card", @@ -17,7 +19,8 @@ export class AnalyticsExtensionCardComponent implements OnInit { private analyticsService: AnalyticsService, private alertService: AlertService, private router: Router, - private activatedRoute: ActivatedRoute + private activatedRoute: ActivatedRoute, + private bsModalService: BsModalService ) {} async ngOnInit() {} @@ -31,15 +34,36 @@ export class AnalyticsExtensionCardComponent implements OnInit { } async delete() { - try { - await this.analyticsService.deleteExtension(this.app); - this.onAppDeleted.emit(); - } catch (ex) { - if (ex) { - this.alertService.addServerFailure(ex); + const initialState = { + title: "Delete connector", + message: "You are about to delete a connector. Do you want to proceed?", + labels: { + ok: "Delete", + cancel: "Cancel", + }, + }; + const confirmDeletionModalRef: BsModalRef = this.bsModalService.show( + ConfirmationModalComponent, + { initialState } + ); + confirmDeletionModalRef.content.closeSubject.subscribe( + async (result: boolean) => { + console.log("Confirmation delete result:", result); + if (!!result) { + try { + await this.analyticsService.deleteExtension(this.app); + this.onAppDeleted.emit(); + } catch (ex) { + if (ex) { + this.alertService.addServerFailure(ex); + } + } + } + confirmDeletionModalRef.hide(); } - } + ); } + async download() { try { let bin: ArrayBuffer = await this.analyticsService.downloadExtension( diff --git a/analytics-ui/src/analytics/manage/extension.component.ts b/analytics-ui/src/analytics/manage/extension.component.ts index 75045cd..ab42f74 100644 --- a/analytics-ui/src/analytics/manage/extension.component.ts +++ b/analytics-ui/src/analytics/manage/extension.component.ts @@ -16,14 +16,6 @@ export class AnalyticsExtensionComponent implements OnInit { reload$: BehaviorSubject