diff --git a/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.ts b/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.ts index 209c571529cc6c1174af4512d16639806d591f86..9aeb0a2e39a7b630fa1d2e520b0e92622286c961 100644 --- a/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.ts +++ b/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.ts @@ -188,6 +188,7 @@ export class CloudConfigurationComponent implements OnInit { cancel() { this.parent.setCloudParameters(this.defaultCloudParameters); + this.parent.updateTagCloudSettings(); this.cloudParameters = new CloudParameters(this.defaultCloudParameters); this.setStep(0); this.closePanel(); @@ -195,6 +196,7 @@ export class CloudConfigurationComponent implements OnInit { save() { this.parent.setCloudParameters(this.cloudParameters); + this.parent.updateTagCloudSettings(); this.defaultCloudParameters = new CloudParameters(this.cloudParameters); this.setStep(0); this.closePanel(); 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 1337a08d1e37606c118c08f6ee6244e999e15e97..42b959a8fb6bccabd7877bcaa4a58e774069cccb 100644 --- a/src/app/components/shared/_dialogs/topic-cloud-administration/TopicCloudAdminData.ts +++ b/src/app/components/shared/_dialogs/topic-cloud-administration/TopicCloudAdminData.ts @@ -45,13 +45,13 @@ const deLabels: Label[] = [ {tag: 'og', label: 'Genitivobjekt', enabledByDefault: true}, {tag: 'da', label: 'Dativobjekt', enabledByDefault: true}, {tag: 'oa', label: 'Akkusativobjekt', enabledByDefault: true}, + {tag: 'ROOT', label: 'Satzkernelement', enabledByDefault: true}, {tag: 'pd', label: 'Prädikat', enabledByDefault: false}, {tag: 'ag', label: 'Genitivattribut', enabledByDefault: false}, {tag: 'app', label: 'Apposition', enabledByDefault: false}, {tag: 'nk', label: 'Nomen Kernelement', enabledByDefault: false}, {tag: 'mo', label: 'Modifikator', enabledByDefault: false}, {tag: 'cj', label: 'Konjunktor', enabledByDefault: false}, - {tag: 'ROOT', label: 'Satzkernelement', enabledByDefault: false}, {tag: 'par', label: 'Klammerzusatz', enabledByDefault: false} ]; @@ -61,11 +61,11 @@ const enLabels: Label[] = [ {tag: 'dobj', label: 'Direct object', enabledByDefault: true}, {tag: 'compound', label: 'Compound', enabledByDefault: true}, {tag: 'nsubjpass', label: 'Passive nominal subject', enabledByDefault: true}, + {tag: 'ROOT', label: 'Sentence kernel element', enabledByDefault: true}, {tag: 'nummod', label: 'Numeric modifier', enabledByDefault: false}, {tag: 'amod', label: 'Adjectival modifier', enabledByDefault: false}, {tag: 'npadvmod', label: 'Noun phrase as adverbial modifier', enabledByDefault: false}, {tag: 'conj', label: 'Conjunct', enabledByDefault: false}, - {tag: 'ROOT', label: 'Sentence kernel element', enabledByDefault: false}, {tag: 'intj', label: 'Interjection', enabledByDefault: false} ]; diff --git a/src/app/components/shared/tag-cloud/tag-cloud.component.ts b/src/app/components/shared/tag-cloud/tag-cloud.component.ts index db63d7c08b65fe1e2f7e6e38be6cbb10b2db3516..fab3397b2845f822e55da496f5af2918a7575b30 100644 --- a/src/app/components/shared/tag-cloud/tag-cloud.component.ts +++ b/src/app/components/shared/tag-cloud/tag-cloud.component.ts @@ -199,6 +199,13 @@ export class TagCloudComponent implements OnInit, OnDestroy, AfterContentInit { if (message.type === 'RoomPatched') { this.room.questionsBlocked = message.payload.changes.questionsBlocked; this.room.blacklistIsActive = message.payload.changes.blacklistIsActive; + const data = JSON.parse(message.payload.changes.tagCloudSettings); + if (data) { + this.setCloudParameters(data as CloudParameters); + } else { + this.resetColorsToTheme(); + this.setCloudParameters(this.currentCloudParameters); + } } }); this.directSend = this.room.directSend; @@ -344,6 +351,26 @@ export class TagCloudComponent implements OnInit, OnDestroy, AfterContentInit { this.router.navigate(['../'], { relativeTo: this.route }); } + updateTagCloudSettings() { + if (!this.user || this.user.role < 1) { + throw new Error('user has no rights.'); + } + this.roomService.getRoom(this.roomId).subscribe(room => { + room.tagCloudSettings = JSON.stringify(this._currentSettings); + this.room = room; + this.roomService.updateRoom(room).subscribe(_ => { + this.translateService.get('topic-cloud.changes-successful').subscribe(msg => { + this.notificationService.show(msg); + }); + }, + error => { + this.translateService.get('topic-cloud.changes-gone-wrong').subscribe(msg => { + this.notificationService.show(msg); + }); + }); + }); + } + private updateAlphabeticalPosition(elements: TagComment[]): void { const sizes = new Array(10); const fontRange = (this._currentSettings.fontSizeMax - this._currentSettings.fontSizeMin) / 10; diff --git a/src/app/models/room.ts b/src/app/models/room.ts index d90e5be0ea0b2dd4d22898bbba8c2ce21da12e61..01afbca867b2c375725cd827bfe772ef53f8179f 100644 --- a/src/app/models/room.ts +++ b/src/app/models/room.ts @@ -15,6 +15,7 @@ export class Room { questionsBlocked: boolean; profanityFilter: ProfanityFilter; blacklistIsActive: boolean; + tagCloudSettings: string; constructor( ownerId: string = '', @@ -30,7 +31,8 @@ export class Room { tags: string[] = [], questionsBlocked: boolean = false, profanityFilter: ProfanityFilter = ProfanityFilter.none, - blacklistIsActive: boolean = true + blacklistIsActive: boolean = true, + tagCloudSettings: string = null ) { this.id = ''; this.ownerId = ownerId; @@ -47,6 +49,7 @@ export class Room { this.questionsBlocked = questionsBlocked; this.profanityFilter = profanityFilter; this.blacklistIsActive = blacklistIsActive; + this.tagCloudSettings = tagCloudSettings; } }