From 6b760cb02c6e148fa5b3735e1a284b130b5c343d Mon Sep 17 00:00:00 2001
From: mohammad <mohammad.alayoub@mni.thm.de>
Date: Wed, 12 May 2021 13:13:51 +0200
Subject: [PATCH] used the generic action buttons for the confirm dialog

---
 .../topic-cloud-administration.component.ts   |  2 +-
 .../topic-cloud-confirm-dialog.component.html | 14 +++++++++---
 .../topic-cloud-confirm-dialog.component.ts   | 22 +++++++++++++++++++
 src/assets/i18n/participant/de.json           |  2 +-
 src/assets/i18n/participant/en.json           |  2 +-
 5 files changed, 36 insertions(+), 6 deletions(-)

diff --git a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.ts b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.ts
index 68662933e..21dadeb94 100644
--- a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.ts
+++ b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.ts
@@ -172,7 +172,7 @@ export class TopicCloudAdministrationComponent implements OnInit {
     });
 
     confirmDialogRef.afterClosed().subscribe(result => {
-      if (result === true) {
+      if (result === 'delete') {
         this.deleteKeyword(keyword.keywordID);
       }
     });
diff --git a/src/app/components/shared/_dialogs/topic-cloud-confirm-dialog/topic-cloud-confirm-dialog.component.html b/src/app/components/shared/_dialogs/topic-cloud-confirm-dialog/topic-cloud-confirm-dialog.component.html
index c015d809a..a158fd0d0 100644
--- a/src/app/components/shared/_dialogs/topic-cloud-confirm-dialog/topic-cloud-confirm-dialog.component.html
+++ b/src/app/components/shared/_dialogs/topic-cloud-confirm-dialog/topic-cloud-confirm-dialog.component.html
@@ -1,11 +1,19 @@
-<h2 mat-dialog-title>{{'topic-cloud-confirm-dialog.confirm' | translate}}</h2>
+<h2 mat-dialog-title>{{'topic-cloud-confirm-dialog.sure' | translate}}</h2>
 <mat-divider></mat-divider>
 <p>{{'topic-cloud-confirm-dialog.will-be-deleted' | translate }} '{{data.topic}}'.</p>
 
-<div mat-dialog-actions align="end">
+<!-- <div mat-dialog-actions align="end">
   <button class="primary" mat-raised-button [mat-dialog-close]="false">
     {{'topic-cloud-confirm-dialog.cancel' | translate}}</button>
   <button class="warn" mat-raised-button [mat-dialog-close]="true">
     {{'topic-cloud-confirm-dialog.delete' | translate}}
   </button>
-</div>
+</div> -->
+
+<app-dialog-action-buttons
+  buttonsLabelSection="topic-cloud-confirm-dialog"
+  confirmButtonLabel="delete"
+  [confirmButtonType]=confirmButtonType
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+  [confirmButtonClickAction]="buildDeleteAccountActionCallback()"
+></app-dialog-action-buttons>
\ No newline at end of file
diff --git a/src/app/components/shared/_dialogs/topic-cloud-confirm-dialog/topic-cloud-confirm-dialog.component.ts b/src/app/components/shared/_dialogs/topic-cloud-confirm-dialog/topic-cloud-confirm-dialog.component.ts
index 3c23f81cf..6e76bd59c 100644
--- a/src/app/components/shared/_dialogs/topic-cloud-confirm-dialog/topic-cloud-confirm-dialog.component.ts
+++ b/src/app/components/shared/_dialogs/topic-cloud-confirm-dialog/topic-cloud-confirm-dialog.component.ts
@@ -1,5 +1,7 @@
 import { Component, Inject, OnInit } from '@angular/core';
 import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+import { DialogConfirmActionButtonType } from '../../dialog/dialog-action-buttons/dialog-action-buttons.component';
+import { TranslateService } from '@ngx-translate/core';
 
 @Component({
   selector: 'app-topic-cloud-confirm-dialog',
@@ -8,8 +10,11 @@ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
 })
 export class TopicCloudConfirmDialogComponent implements OnInit {
 
+  confirmButtonType: DialogConfirmActionButtonType = DialogConfirmActionButtonType.Alert;
+
   constructor(
     public confirmDialogRef: MatDialogRef<TopicCloudConfirmDialogComponent>,
+    private translationService: TranslateService,
     @Inject(MAT_DIALOG_DATA) public data: DialogData) { }
 
   ngOnInit(): void {
@@ -19,6 +24,23 @@ export class TopicCloudConfirmDialogComponent implements OnInit {
     this.confirmDialogRef.close();
   }
 
+  close(type: string): void {
+    this.confirmDialogRef.close(type);
+  }
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.close('abort');
+  }
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildDeleteAccountActionCallback(): () => void {
+    return () => this.close('delete');
+  }
 }
 
 export interface DialogData {
diff --git a/src/assets/i18n/participant/de.json b/src/assets/i18n/participant/de.json
index 8eb5af7e7..ddab61dbb 100644
--- a/src/assets/i18n/participant/de.json
+++ b/src/assets/i18n/participant/de.json
@@ -232,7 +232,7 @@
   "topic-cloud-confirm-dialog": {
     "cancel": "Abbrechen",
     "delete": "Löschen",
-    "confirm": "Sind Sie sicher?",
+    "sure": "Sind Sie sicher?",
     "will-be-deleted": "Thema wird gelöscht"
   },
   "dialog-comment": {
diff --git a/src/assets/i18n/participant/en.json b/src/assets/i18n/participant/en.json
index 095abe018..4576c7c82 100644
--- a/src/assets/i18n/participant/en.json
+++ b/src/assets/i18n/participant/en.json
@@ -240,7 +240,7 @@
   "topic-cloud-confirm-dialog":{
     "cancel": "Cancel",
     "delete": "Delete",
-    "confirm": "Are you sure?",
+    "sure": "Are you sure?",
     "will-be-deleted": "Topic will be deleted"
   },
   "dialog-comment":{
-- 
GitLab