From fe8eb505e0192676c7ab89be1e63ac11bc29dd29 Mon Sep 17 00:00:00 2001
From: Stefan Plociennik <stefan.plociennik@mni.thm.de>
Date: Mon, 17 May 2021 21:57:10 +0200
Subject: [PATCH] focus on input when opening new bad word input; censor topics
 in expantion panel

---
 .../topic-cloud-administration.component.html        |  6 +++---
 .../topic-cloud-administration.component.ts          | 12 +++++++++++-
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html
index 6307ff402..f51d41b2e 100644
--- a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html
+++ b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html
@@ -12,7 +12,7 @@
 
     <mat-accordion hideToggle class="new-Badword" multi>
       <mat-expansion-panel class="color-background"
-                          (opened)="enterBadword = true"
+                          (opened)="enterBadword = true; focusBadWordInput()"
                           (closed)="enterBadword = false">
       <mat-expansion-panel-header class="color-background">
           <mat-panel-description>
@@ -23,7 +23,7 @@
 
         <mat-form-field>
           <mat-label>{{'topic-cloud-dialog.enter-word' | translate}}</mat-label>
-          <input [(ngModel)]="newBadWord" matInput>
+          <input matInput id="bad-word-input" [(ngModel)]="newBadWord">
         </mat-form-field>
 
         <button mat-button color="primary" (click)="addBadword()">
@@ -120,7 +120,7 @@
                         (searchMode ? filteredKeywords : keywords); let i = index" [attr.data-index]="i">
       <mat-expansion-panel-header class="color-surface">
         <mat-panel-title [ngClass]="{'edit-keyword': editedKeyword}">
-          {{keyword.keyword}}
+          {{profanityFilter ? getKeywordWithoutProfanity(keyword.keyword) : keyword.keyword}}
         </mat-panel-title>
         <mat-panel-description>
           {{keyword.questions.length}}
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 95603db54..180a6f982 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
@@ -81,7 +81,7 @@ export class TopicCloudAdministrationComponent implements OnInit {
     },
     {
       keywordID: 6,
-      keyword: 'Profanity',
+      keyword: 'Arsch',
       questions: [
         'Das ist eine Testfrage fuer den Profanity Filter, du Arschloch',
         'Englisch: Fuck you!',
@@ -94,6 +94,10 @@ export class TopicCloudAdministrationComponent implements OnInit {
 
   ];
 
+  getKeywordWithoutProfanity(keyword: string): string {
+    return this.topicCloudAdminService.filterProfanityWords(keyword);
+  }
+
   constructor(public cloudDialogRef: MatDialogRef<TagCloudComponent>,
               public confirmDialog: MatDialog,
               private notificationService: NotificationService,
@@ -240,6 +244,12 @@ export class TopicCloudAdministrationComponent implements OnInit {
     return undefined;
   }
 
+  focusBadWordInput() {
+    setTimeout(() => {
+      document.getElementById('bad-word-input').focus();
+    }, 100);
+  }
+
   keywordtoSpacy(text: string,model: string) {
     for (const keyword of this.keywords) {
       if (keyword.keyword===text) {
-- 
GitLab