diff --git a/src/app/components/shared/_dialogs/topic-cloud-administration/TopicCloudAdminData.ts b/src/app/components/shared/_dialogs/topic-cloud-administration/TopicCloudAdminData.ts index 43437d2f46dd6320149bfce02e6b02ccf39310ed..be10d55727f22f4d5c0adc61441068506709292e 100644 --- a/src/app/components/shared/_dialogs/topic-cloud-administration/TopicCloudAdminData.ts +++ b/src/app/components/shared/_dialogs/topic-cloud-administration/TopicCloudAdminData.ts @@ -1,11 +1,17 @@ export interface TopicCloudAdminData{ blacklist: string[]; + wantedLabels: Label[]; considerVotes: boolean; profanityFilter: boolean; blacklistIsActive: boolean; keywordORfulltext: KeywordOrFulltext; } +export interface Label{ + tag: string; + label: string; +} + export enum KeywordOrFulltext{ keyword, fulltext, 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 b5b55d9ca573918ab7ab771be1fb8778b82eb7d7..fb808eb785253dd61464c452238c2763418e9615 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 @@ -8,7 +8,7 @@ import { UserRole } from '../../../../models/user-roles.enum'; import { TranslateService } from '@ngx-translate/core'; import { LanguageService } from '../../../../services/util/language.service'; import { TopicCloudAdminService } from '../../../../services/util/topic-cloud-admin.service'; -import { TopicCloudAdminData } from './TopicCloudAdminData'; +import { Label, TopicCloudAdminData } from './TopicCloudAdminData'; import { KeywordOrFulltext } from './TopicCloudAdminData'; @Component({ @@ -38,6 +38,8 @@ export class TopicCloudAdministrationComponent implements OnInit, OnDestroy { showSettingsPanel = false; keywordORfulltext: string = undefined; userRole: UserRole; + wantedLabels: Label[] = []; + keywords: Keyword[] = [ { keywordID: 1, @@ -127,6 +129,7 @@ export class TopicCloudAdministrationComponent implements OnInit, OnDestroy { setAdminData(){ this.topicCloudAdminData = { blacklist: this.topicCloudAdminService.getBlacklistWords(this.profanityFilter, this.blacklistIsActive), + wantedLabels: this.wantedLabels, considerVotes: this.considerVotes, profanityFilter: this.profanityFilter, blacklistIsActive: this.blacklistIsActive, @@ -142,6 +145,7 @@ export class TopicCloudAdministrationComponent implements OnInit, OnDestroy { this.profanityFilter = this.topicCloudAdminData.profanityFilter; this.blacklistIsActive = this.topicCloudAdminData.blacklistIsActive; this.keywordORfulltext = KeywordOrFulltext[this.topicCloudAdminData.keywordORfulltext]; + this.wantedLabels = this.topicCloudAdminData.wantedLabels; } } diff --git a/src/app/services/util/topic-cloud-admin.service.ts b/src/app/services/util/topic-cloud-admin.service.ts index 401b26c6e01d5f684f0b305f03fbcd0abddda2d3..334d69da70d2a3849257e6a894893908004d35a0 100644 --- a/src/app/services/util/topic-cloud-admin.service.ts +++ b/src/app/services/util/topic-cloud-admin.service.ts @@ -10,7 +10,8 @@ export class TopicCloudAdminService { private badWords = []; private profanityWords = []; private blacklist = []; // should be stored in backend - private profanityKey = 'custom-Profanity-List'; + private readonly profanityKey = 'custom-Profanity-List'; + private readonly adminKey = 'Topic-Cloud-Admin-Data'; constructor() { this.badWords = BadWords; @@ -36,10 +37,11 @@ export class TopicCloudAdminService { } get getAdminData(): TopicCloudAdminData { - let data = JSON.parse(localStorage.getItem('Topic-Cloud-Admin-Data')); + let data = JSON.parse(localStorage.getItem(this.adminKey)); if (!data) { data = { blacklist: this.profanityWords, + wantedLabels: [], considerVotes: false, profanityFilter: true, blacklistIsActive: false, @@ -50,7 +52,7 @@ export class TopicCloudAdminService { } setAdminData(adminData: TopicCloudAdminData){ - localStorage.setItem('Topic-Cloud-Admin-Data', JSON.stringify(adminData)); + localStorage.setItem(this.adminKey, JSON.stringify(adminData)); } filterProfanityWords(str: string): string {