diff --git a/src/app/components/shared/_dialogs/create-comment/create-comment.component.html b/src/app/components/shared/_dialogs/create-comment/create-comment.component.html index 93a93e4ee79aa9ca1cf978f3265492dc591c3a3d..f6bf1e6e00cd710883af83c692f0bb80b4e443f4 100644 --- a/src/app/components/shared/_dialogs/create-comment/create-comment.component.html +++ b/src/app/components/shared/_dialogs/create-comment/create-comment.component.html @@ -1,9 +1,18 @@ <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px"> - <mat-form-field class="input-block"> + <mat-form-field> <textarea (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()" matInput #commentBody matTextareaAutosize matAutosizeMinRows=5 matAutosizeMaxRows=10 maxlength="250" [formControl]="bodyForm" aria-labelledby="ask-question-description"></textarea> - <mat-placeholder class="placeholder">{{ 'comment-page.enter-comment' | translate}}</mat-placeholder> + <mat-placeholder class="placeholder">{{ 'comment-page.enter-comment' | translate }}</mat-placeholder> <mat-hint align="end"><span aria-hidden="true">{{commentBody.value.length}} / 250</span></mat-hint> + + </mat-form-field> + <mat-form-field *ngIf="tags !== null"> + + <mat-label>{{ 'comment-page.tag' || translate }}</mat-label> + <mat-select [(ngModel)]="selectedTag" class="comment-tag"> + <mat-option *ngFor="let tag of tags" value="{{tag}}">{{tag}}</mat-option> + </mat-select> + </mat-form-field> </div> <app-dialog-action-buttons diff --git a/src/app/components/shared/_dialogs/create-comment/create-comment.component.scss b/src/app/components/shared/_dialogs/create-comment/create-comment.component.scss index 2cf0785059e2b6b8c738089ffc7ae5d050e98b1e..980812d8bf86cee5833c68c2b2ae50ca735191f3 100644 --- a/src/app/components/shared/_dialogs/create-comment/create-comment.component.scss +++ b/src/app/components/shared/_dialogs/create-comment/create-comment.component.scss @@ -29,6 +29,11 @@ mat-hint { color: var(--on-surface) !important; } +.mat-select-value-text { + color: var(--on-surface); + caret-color: var(--on-surface); +} + .placeholder { color: var(--on-surface); } diff --git a/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts b/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts index f48f539b34918b74c128cf724318cc5965c8a855..769c05d39c1abd7edd037b01c6eaffffd52bcf5a 100644 --- a/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts +++ b/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts @@ -19,6 +19,8 @@ export class CreateCommentComponent implements OnInit { user: User; roomId: string; + tags: string[]; + selectedTag: string; bodyForm = new FormControl('', [Validators.required]); @@ -58,6 +60,11 @@ export class CreateCommentComponent implements OnInit { comment.body = body; comment.creatorId = this.user.id; comment.createdFromLecturer = this.user.role === 1; + if (this.selectedTag !== null) { + console.log("FUCK YOU"); + console.log(this.selectedTag); + comment.tag = this.selectedTag; + } this.dialogRef.close(comment); } } diff --git a/src/app/components/shared/comment-list/comment-list.component.ts b/src/app/components/shared/comment-list/comment-list.component.ts index 04399c86b888b655c3bca76bf3ccc69994058e5d..ce1dd93a3160c3ffc18b21bbecb9a0ad489fb8fa 100644 --- a/src/app/components/shared/comment-list/comment-list.component.ts +++ b/src/app/components/shared/comment-list/comment-list.component.ts @@ -247,6 +247,7 @@ export class CommentListComponent implements OnInit { }); dialogRef.componentInstance.user = this.user; dialogRef.componentInstance.roomId = this.roomId; + dialogRef.componentInstance.tags = this.room.extensions['tags'].tags; dialogRef.afterClosed() .subscribe(result => { if (result) { diff --git a/src/app/components/shared/comment/comment.component.html b/src/app/components/shared/comment/comment.component.html index c1834f3f1931b6e5f5375ce1e3143873c7433406..ef428be7ed4d4fd03159b9ca360b901996c7bc3e 100644 --- a/src/app/components/shared/comment/comment.component.html +++ b/src/app/components/shared/comment/comment.component.html @@ -79,9 +79,18 @@ <mat-icon class="voting-icon" [ngClass]="{'downVoted' : hasVoted === -1}">keyboard_arrow_down</mat-icon> </button> </div> - <div *ngIf="!isStudent" fxLayout="column" fxLayoutAlign="center"> - <span class="scoreCreator">{{comment.score}}</span> + <div *ngIf="!isStudent" fxLayout="column" fxLayoutAlign="center"> + <span class="scoreCreator">{{comment.score}}</span> + </div> + </div> + <div *ngIf="comment.tag !== null && comment.tag !== ''" class="comment-tags"> + <span class="comment-tag-icon"> + <mat-icon svgIcon="comment_tag"></mat-icon> + </span> + <span class="comment-tag"> + {{comment.tag}} + </span> </div> </div> </mat-card> diff --git a/src/app/components/shared/comment/comment.component.scss b/src/app/components/shared/comment/comment.component.scss index 3aaa73bcb8b12f99d2d1af793fc58ef93723f143..8eaeaa15612dd89116e6458152ffa8f6947b5add 100644 --- a/src/app/components/shared/comment/comment.component.scss +++ b/src/app/components/shared/comment/comment.component.scss @@ -107,3 +107,11 @@ user.role .moderator { background-color: var(--moderator)!important; } + +.comment-tags { + margin-top: 1rem; +} + +.comment-tag { + vertical-align: 5px; +} diff --git a/src/app/services/websockets/ws-comment-service.service.ts b/src/app/services/websockets/ws-comment-service.service.ts index 4333dc7417abfb1793f47a7b1a346fbda628513c..f4b0ea9e16478f06e38adfe9af874a631c899254 100644 --- a/src/app/services/websockets/ws-comment-service.service.ts +++ b/src/app/services/websockets/ws-comment-service.service.ts @@ -20,7 +20,7 @@ export class WsCommentServiceService { constructor(private wsConnector: WsConnectorService) { } add(comment: Comment): void { - const message = new CreateComment(comment.roomId, comment.creatorId, comment.body); + const message = new CreateComment(comment.roomId, comment.creatorId, comment.body, comment.tag); this.wsConnector.send(`/queue/comment.command.create`, JSON.stringify(message)); } diff --git a/src/assets/i18n/creator/de.json b/src/assets/i18n/creator/de.json index 1b999d7d64832826437bcbb6b13bce2306c45031..05f22db334e048d9529227aa7237be197fbbe698 100644 --- a/src/assets/i18n/creator/de.json +++ b/src/assets/i18n/creator/de.json @@ -95,6 +95,7 @@ "semicolon": "CSV-Format", "send": "Senden", "send-description": "Frage abschicken", + "tag": "Kategorie", "vote-down": "Frage abwerten", "vote-up": "Frage aufwerten" }, diff --git a/src/assets/i18n/creator/en.json b/src/assets/i18n/creator/en.json index 589ad3e3b687bee980a67405391aea3cbf1873df..a765fb3225de373aa4c5aad7064471590971ab0e 100644 --- a/src/assets/i18n/creator/en.json +++ b/src/assets/i18n/creator/en.json @@ -96,6 +96,7 @@ "semicolon": "CSV format", "send": "Send", "send-description": "Send question", + "tag": "Tag", "vote-down": "Vote down", "vote-up": "Vote up" }, diff --git a/src/assets/i18n/participant/de.json b/src/assets/i18n/participant/de.json index 0846e41c12f4c565c3793f8db55937e8210b354b..d5c5baf726f0acb281c0da0e15eaec5b586b6f84 100644 --- a/src/assets/i18n/participant/de.json +++ b/src/assets/i18n/participant/de.json @@ -85,6 +85,7 @@ "search-box-input-description": "Hier kannst du nach Fragen suchen.", "send": "Senden", "send-description": "Frage abschicken", + "tag": "Kategorie", "vote-down": "Frage abwerten", "vote-up": "Frage aufwerten" }, diff --git a/src/assets/i18n/participant/en.json b/src/assets/i18n/participant/en.json index 85d49a00648830f2c22a864e7773f32b22dd316b..d1e10e926a78779815a1ea45c6cc9d6207f38e6b 100644 --- a/src/assets/i18n/participant/en.json +++ b/src/assets/i18n/participant/en.json @@ -85,6 +85,7 @@ "search-box-input-description": "Here you can search for questions.", "send": "Send", "send-description": "Send question", + "tag": "Tag", "vote-down": "Vote down", "vote-up": "Vote up" },