From 3add15e1cb7a3b83941ddff88fb2b9402a03e861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Mau=C3=9F?= <lukas.mauss@mni.thm.de> Date: Sun, 7 Jul 2019 21:12:31 +0200 Subject: [PATCH] Add submit dialog for removing moderators --- .../delete-comment.component.html | 1 + .../moderator-delete.component.html | 12 +++++++++ .../moderator-delete.component.scss | 23 +++++++++++++++++ .../moderator-delete.component.spec.ts | 25 +++++++++++++++++++ .../moderator-delete.component.ts | 24 ++++++++++++++++++ .../moderators/moderators.component.html | 2 +- .../moderators/moderators.component.ts | 15 +++++++++++ .../room-delete/room-delete.component.html | 1 + src/app/components/creator/creator.module.ts | 7 ++++-- src/assets/i18n/creator/de.json | 1 + src/assets/i18n/creator/en.json | 1 + 11 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.html create mode 100644 src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.scss create mode 100644 src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.spec.ts create mode 100644 src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.ts diff --git a/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.html b/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.html index 9b81130f0..3ad5c141c 100644 --- a/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.html +++ b/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.html @@ -1,4 +1,5 @@ <h3>{{ 'room-page.sure' | translate }}</h3> +<mat-divider></mat-divider> <p>{{ 'room-page.really-delete-comments' | translate }}</p> <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px"> <button mat-raised-button class="abort" (click)="close('abort')"> diff --git a/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.html b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.html new file mode 100644 index 000000000..626d7d52c --- /dev/null +++ b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.html @@ -0,0 +1,12 @@ +<h2>{{ 'room-page.sure' | translate }}</h2> +<mat-divider></mat-divider> +<h3>{{ 'room-page.really-remove-moderator' | translate }}</h3> +<p>{{loginId}}</p> +<div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px"> + <button mat-raised-button class="abort" (click)="close('abort')"> + {{ 'content.abort' | translate }} + </button> + <button mat-raised-button class="delete" (click)="close('delete')"> + {{ 'content.delete' | translate }} + </button> +</div> diff --git a/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.scss b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.scss new file mode 100644 index 000000000..9b78e8b53 --- /dev/null +++ b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.scss @@ -0,0 +1,23 @@ +h2 { + color: var(--on-surface); +} + +h3 { + color: var(--on-surface); +} + +p { + color: var(--on-surface); + font-weight: bold; + text-align: center; +} + +.delete { + background-color: var(--red); + color: var(--on-secondary); +} + +.abort { + background-color: var(--secondary); + color: var(--on-secondary); +} diff --git a/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.spec.ts b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.spec.ts new file mode 100644 index 000000000..93d29ea73 --- /dev/null +++ b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.spec.ts @@ -0,0 +1,25 @@ +/*import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ModeratorDeleteComponent } from './moderator-delete.component'; + +describe('ModeratorDeleteComponent', () => { + let component: ModeratorDeleteComponent; + let fixture: ComponentFixture<ModeratorDeleteComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ModeratorDeleteComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ModeratorDeleteComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +});*/ diff --git a/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.ts b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.ts new file mode 100644 index 000000000..3cabf6917 --- /dev/null +++ b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.ts @@ -0,0 +1,24 @@ +import { Component, Inject, OnInit } from '@angular/core'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material'; +import { ModeratorsComponent } from '../moderators/moderators.component'; + +@Component({ + selector: 'app-moderator-delete', + templateUrl: './moderator-delete.component.html', + styleUrls: ['./moderator-delete.component.scss'] +}) +export class ModeratorDeleteComponent implements OnInit { + + loginId: string; + + constructor(public dialogRef: MatDialogRef<ModeratorsComponent>, + @Inject(MAT_DIALOG_DATA) public data: any) { } + + ngOnInit() { + } + + close(type: string): void { + this.dialogRef.close(type); + } + +} diff --git a/src/app/components/creator/_dialogs/moderators/moderators.component.html b/src/app/components/creator/_dialogs/moderators/moderators.component.html index 1d27bca5a..87b47dc8d 100644 --- a/src/app/components/creator/_dialogs/moderators/moderators.component.html +++ b/src/app/components/creator/_dialogs/moderators/moderators.component.html @@ -18,7 +18,7 @@ {{i+1}}. {{moderator.loginId}} </h3> <span class="fill-remaining-space"></span> - <button mat-icon-button class="close" (click)="removeModerator(moderator.userId, i)"> + <button mat-icon-button class="close" (click)="openDeleteRoomDialog(moderator)"> <mat-icon class="close-icon">close</mat-icon> </button> </div> diff --git a/src/app/components/creator/_dialogs/moderators/moderators.component.ts b/src/app/components/creator/_dialogs/moderators/moderators.component.ts index 16343b9c4..e506335aa 100644 --- a/src/app/components/creator/_dialogs/moderators/moderators.component.ts +++ b/src/app/components/creator/_dialogs/moderators/moderators.component.ts @@ -6,6 +6,8 @@ import { ModeratorService } from '../../../../services/http/moderator.service'; import { RoomCreatorPageComponent } from '../../room-creator-page/room-creator-page.component'; import { LanguageService } from '../../../../services/util/language.service'; import { Moderator } from '../../../../models/moderator'; +import { RoomDeleteComponent } from '../room-delete/room-delete.component'; +import { ModeratorDeleteComponent } from '../moderator-delete/moderator-delete.component'; @Component({ selector: 'app-moderators', @@ -62,6 +64,19 @@ export class ModeratorsComponent implements OnInit { }); } + openDeleteRoomDialog(moderator: Moderator): void { + const dialogRef = this.dialog.open(ModeratorDeleteComponent, { + width: '400px' + }); + dialogRef.componentInstance.loginId = moderator.loginId; + dialogRef.afterClosed() + .subscribe(result => { + if (result === 'delete') { + this.removeModerator(moderator.userId, this.moderators.indexOf(moderator)); + } + }); + } + removeModerator(userId: string, index: number) { this.moderatorService.delete(this.roomId, userId).subscribe(); this.translationService.get('room-page.moderator-removed').subscribe(msg => { diff --git a/src/app/components/creator/_dialogs/room-delete/room-delete.component.html b/src/app/components/creator/_dialogs/room-delete/room-delete.component.html index 0edb8b68e..f4ea308d4 100644 --- a/src/app/components/creator/_dialogs/room-delete/room-delete.component.html +++ b/src/app/components/creator/_dialogs/room-delete/room-delete.component.html @@ -1,4 +1,5 @@ <h3>{{ 'room-page.sure' | translate }}</h3> +<mat-divider></mat-divider> <p>{{ 'room-page.reallySession' | translate}}<strong>{{room.name}}</strong>{{ 'room-page.really2' | translate}}</p> <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px"> <button mat-raised-button class="abort" (click)="onNoClick()"> diff --git a/src/app/components/creator/creator.module.ts b/src/app/components/creator/creator.module.ts index d1e478d51..1f37d69db 100644 --- a/src/app/components/creator/creator.module.ts +++ b/src/app/components/creator/creator.module.ts @@ -24,6 +24,7 @@ import { ContentPresentationComponent } from './content-presentation/content-pre import { CommentExportComponent } from './_dialogs/comment-export/comment-export.component'; import { ModeratorsComponent } from './_dialogs/moderators/moderators.component'; import { CommentSettingsComponent } from './_dialogs/comment-settings/comment-settings.component'; +import { ModeratorDeleteComponent } from './_dialogs/moderator-delete/moderator-delete.component'; @NgModule({ imports: [ @@ -56,7 +57,8 @@ import { CommentSettingsComponent } from './_dialogs/comment-settings/comment-se ContentPresentationComponent, CommentExportComponent, ModeratorsComponent, - CommentSettingsComponent + CommentSettingsComponent, + ModeratorDeleteComponent ], entryComponents: [ RoomDeleteComponent, @@ -70,7 +72,8 @@ import { CommentSettingsComponent } from './_dialogs/comment-settings/comment-se ContentEditComponent, CommentExportComponent, ModeratorsComponent, - CommentSettingsComponent + CommentSettingsComponent, + ModeratorDeleteComponent ] }) export class CreatorModule { diff --git a/src/assets/i18n/creator/de.json b/src/assets/i18n/creator/de.json index 132e5ee12..01aa691fe 100644 --- a/src/assets/i18n/creator/de.json +++ b/src/assets/i18n/creator/de.json @@ -28,6 +28,7 @@ "moderator-not-found": "Kein Benutzer mit dieser E-Mail gefunden.", "moderator-added": "Moderator wurde hinzugefügt.", "moderator-removed": "Moderator wurde entfernt.", + "really-remove-moderator": "Wollen sie folgenden Moderator wirklich entfernen?", "session-settings": "Session-Verwaltung", "general": "Allgemein", "threshold": "Schwellenwert für sichtbare Kommentare: ", diff --git a/src/assets/i18n/creator/en.json b/src/assets/i18n/creator/en.json index f82d1155b..9a9a12dc4 100644 --- a/src/assets/i18n/creator/en.json +++ b/src/assets/i18n/creator/en.json @@ -28,6 +28,7 @@ "moderator-not-found": "No user was found with this E-Mail.", "moderator-added": "Moderator was added.", "moderator-removed": "Moderator has been removed.", + "really-remove-moderator": "Do you really want to remove the following moderator?", "session-settings": "Session administration", "general": "General", "threshold": "Threshold for visible comments: ", -- GitLab