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 f4dd4d29d01c5a55d6dcd4f8ab70f94b113db03f..3e774b915b884b1c140fd55ccccd542f7aeeb221 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 @@ -293,7 +293,7 @@ export class TopicCloudAdministrationComponent implements OnInit, OnDestroy { startDate: this.startDate.length ? this.startDate : null, endDate: this.endDate.length ? this.endDate : null }; - this.topicCloudAdminService.setAdminData(this.topicCloudAdminData, true); + this.topicCloudAdminService.setAdminData(this.topicCloudAdminData, true, this.userRole); } setDefaultAdminData() { diff --git a/src/app/components/shared/_dialogs/worker-dialog/worker-dialog-task.ts b/src/app/components/shared/_dialogs/worker-dialog/worker-dialog-task.ts index ae6f6f9c8e150a3ab4041e153f03215551890c77..b07cef2224808ff33b5cb51e2480c964eb6f0450 100644 --- a/src/app/components/shared/_dialogs/worker-dialog/worker-dialog-task.ts +++ b/src/app/components/shared/_dialogs/worker-dialog/worker-dialog-task.ts @@ -79,15 +79,14 @@ export class WorkerDialogTask { private finishSpacyCall(finishType: FinishType, index: number, tags?: SpacyKeyword[]): void { if (finishType === FinishType.completed) { - this.statistics.succeeded++; this.patchToServer(tags, index); } else if (finishType === FinishType.badSpelled) { this.statistics.badSpelled++; this.patchToServer([], index); } else { this.statistics.failed++; + this.callSpacy(index + concurrentCallsPerTask); } - this.callSpacy(index + concurrentCallsPerTask); } private patchToServer(tags: SpacyKeyword[], index: number) { 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 90ef494e49ca4c0d40570ae3989eb3f6458c832a..1e81f07f2f99ccdbef7649cce6ff53dba2a97d1f 100644 --- a/src/app/components/shared/tag-cloud/tag-cloud.component.ts +++ b/src/app/components/shared/tag-cloud/tag-cloud.component.ts @@ -303,7 +303,7 @@ export class TagCloudComponent implements OnInit, OnDestroy, AfterContentInit, A ngAfterContentInit() { document.getElementById('footer_rescale').style.display = 'none'; this._calcFont = window.getComputedStyle(document.getElementById('tagCloudComponent')).fontFamily; - this.dataManager.bindToRoom(this.roomId); + this.dataManager.bindToRoom(this.roomId, this.userRole); this.dataManager.updateDemoData(this.translateService); this.setCloudParameters(TagCloudComponent.getCurrentCloudParameters(), false); } diff --git a/src/app/services/util/tag-cloud-data.service.ts b/src/app/services/util/tag-cloud-data.service.ts index 0c9373b74b5f4d9dadbf09c8c1745cc3fa0c4056..f9f9c043ee0b8334b8b1c5f6df7c4daf70ba0f78 100644 --- a/src/app/services/util/tag-cloud-data.service.ts +++ b/src/app/services/util/tag-cloud-data.service.ts @@ -8,6 +8,7 @@ import { CloudParameters } from '../../components/shared/tag-cloud/tag-cloud.int import { Comment } from '../../models/comment'; import { RoomDataService } from './room-data.service'; import { SpacyKeyword } from '../http/spacy.service'; +import { UserRole } from '../../models/user-roles.enum'; export interface TagCloudDataTagEntry { weight: number; @@ -152,13 +153,13 @@ export class TagCloudDataService { ]; } - bindToRoom(roomId: string): void { + bindToRoom(roomId: string, userRole: UserRole): void { this._currentFilter = CommentFilter.currentFilter; this._roomId = roomId; this._subscriptionAdminData = this._tagCloudAdmin.getAdminData.subscribe(adminData => { this.onReceiveAdminData(adminData, true); }); - this._tagCloudAdmin.ensureRoomBound(roomId); + this._tagCloudAdmin.ensureRoomBound(roomId, userRole); this.fetchData(); if (!this._currentFilter.paused) { diff --git a/src/app/services/util/topic-cloud-admin.service.ts b/src/app/services/util/topic-cloud-admin.service.ts index 84cd5e70e621154544ed96590d786c912f54a202..7be5419e196a0d8ee43190aa0cfb786769a27d76 100644 --- a/src/app/services/util/topic-cloud-admin.service.ts +++ b/src/app/services/util/topic-cloud-admin.service.ts @@ -1,8 +1,8 @@ import { Injectable } from '@angular/core'; import { - TopicCloudAdminData, KeywordOrFulltext, - spacyLabels + spacyLabels, + TopicCloudAdminData } from '../../components/shared/_dialogs/topic-cloud-administration/TopicCloudAdminData'; import { RoomService } from '../http/room.service'; import { ProfanityFilter, Room } from '../../models/room'; @@ -12,6 +12,7 @@ import { WsRoomService } from '../websockets/ws-room.service'; import { ProfanityFilterService } from './profanity-filter.service'; import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs'; import { Comment } from '../../models/comment'; +import { UserRole } from '../../models/user-roles.enum'; @Injectable({ providedIn: 'root', @@ -124,7 +125,7 @@ export class TopicCloudAdminService { return this.adminData.asObservable(); } - ensureRoomBound(roomId: string) { + ensureRoomBound(roomId: string, userRole: UserRole) { if (this._subscriptionWsRoom) { this._subscriptionWsRoom.unsubscribe(); this._subscriptionWsRoom = null; @@ -139,33 +140,32 @@ export class TopicCloudAdminService { const data = TopicCloudAdminService.getDefaultAdminData; data.profanityFilter = room.profanityFilter; data.blacklistIsActive = this.blacklistActive; - this.setAdminData(data, false); + this.setAdminData(data, false, userRole); } }); } - setAdminData(_adminData: TopicCloudAdminData, updateRoom: boolean) { + setAdminData(_adminData: TopicCloudAdminData, updateRoom: boolean, userRole: UserRole) { localStorage.setItem(TopicCloudAdminService.adminKey, JSON.stringify(_adminData)); - if (updateRoom) { + if (updateRoom && userRole && userRole > UserRole.PARTICIPANT) { this.getRoom().subscribe(room => { room.blacklistIsActive = _adminData.blacklistIsActive; this.updateRoom(room); }); - } else { - const subscription = this.getBlacklist().subscribe(list => { - _adminData.blacklist = []; - if (_adminData.blacklistIsActive) { - _adminData.blacklist = list; - } - if (_adminData.profanityFilter !== ProfanityFilter.deactivated) { - _adminData.blacklist = _adminData.blacklist.concat(this.profanityFilterService.getProfanityList); - } - localStorage.setItem(TopicCloudAdminService.adminKey, JSON.stringify(_adminData)); - _adminData.blacklistIsActive = this.blacklistActive; - this.adminData.next(_adminData); - subscription.unsubscribe(); - }); } + const subscription = this.getBlacklist().subscribe(list => { + _adminData.blacklist = []; + if (_adminData.blacklistIsActive) { + _adminData.blacklist = list; + } + if (_adminData.profanityFilter !== ProfanityFilter.deactivated) { + _adminData.blacklist = _adminData.blacklist.concat(this.profanityFilterService.getProfanityList); + } + localStorage.setItem(TopicCloudAdminService.adminKey, JSON.stringify(_adminData)); + _adminData.blacklistIsActive = this.blacklistActive; + this.adminData.next(_adminData); + subscription.unsubscribe(); + }); } getBlacklist(): Observable<string[]> {