Skip to content
Snippets Groups Projects
Commit 760859ef authored by Klaus-Dieter Quibeldey-Cirkel's avatar Klaus-Dieter Quibeldey-Cirkel
Browse files

Merge branch 'tag-cloud' into 'staging'

Merge 'tag-cloud' into 'staging'

See merge request arsnova/topic-cloud!88
parents 1964ffae 264ed52c
No related merge requests found
......@@ -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() {
......
......@@ -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) {
......
......@@ -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);
}
......
......@@ -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) {
......
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[]> {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment