Skip to content
Snippets Groups Projects
Commit eda543e2 authored by Mohammad Alayoub's avatar Mohammad Alayoub
Browse files

Update the blacklist in the tag-cloud immediatly

parent 57fe7da1
No related merge requests found
......@@ -138,7 +138,7 @@
</mat-card>
<mat-card style="background: none; margin-bottom: 10px;">
<mat-slide-toggle [(ngModel)]="blacklistIsActive" (change)="changeblacklist()">
<mat-slide-toggle [(ngModel)]="blacklistIsActive">
{{'topic-cloud-dialog.hide-blacklist-words' | translate}}
</mat-slide-toggle>
</mat-card>
......
......@@ -101,13 +101,6 @@ export class TopicCloudAdministrationComponent implements OnInit, OnDestroy {
this.initializeKeywords();
}
changeblacklist() {
this.topicCloudAdminService.getRoom().subscribe(room => {
room.blacklistIsActive = this.blacklistIsActive;
this.topicCloudAdminService.updateRoom(room);
});
}
removeFromKeywords(comment: Comment) {
for (const keyword of this.keywords) {
keyword.comments.forEach(_comment => {
......@@ -276,7 +269,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);
this.topicCloudAdminService.setAdminData(this.topicCloudAdminData, true);
}
setDefaultAdminData() {
......
......@@ -36,6 +36,9 @@ export class TopicCloudAdminService {
this.blacklist.next(room.blacklist ? JSON.parse(room.blacklist) : []);
this.blacklistActive = room.blacklistIsActive;
this.blacklistIsActive.next(room.blacklistIsActive);
const data = TopicCloudAdminService.getDefaultAdminData;
data.blacklistIsActive = this.blacklistActive;
this.setAdminData(data, false);
}
});
this.adminData = new BehaviorSubject<TopicCloudAdminData>(TopicCloudAdminService.getDefaultAdminData);
......@@ -127,23 +130,28 @@ export class TopicCloudAdminService {
return this.adminData.asObservable();
}
setAdminData(_adminData: TopicCloudAdminData) {
setAdminData(_adminData: TopicCloudAdminData, updateRoom: boolean) {
localStorage.setItem(TopicCloudAdminService.adminKey, JSON.stringify(_adminData));
this.getBlacklistIsActive().subscribe(isActive => {
_adminData.blacklistIsActive = isActive;
});
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);
});
if (updateRoom) {
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();
});
}
}
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