diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d6638f5b07f5755ffe23f6d854b31c518331949..c77bd38fe566c995f36ca1bc3fb70d5e4aa052aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## 1.3 +Changes to the role system: +* Removes the distinction between participant and lecturer on login +* Adds a user home where all related sessions are listed +* Adds a moderator role + +Moderated comment board: +* Creators of sessions can add moderators (via room settings) +* Creators and moderators have access to the moderator board +* Two modes of moderating: + * Default: new comments are auto-acknowledged and are visible on the normal comment board + * Whitelist: new comments are only visible in the moderator board and need acknowledgement + +Other Changes: +* Comments can now be marked as wrong +* Comments can get banned (to the moderator board, see above) +* User can delete his account +* Improve wording + +**This version is brought to you by:** +Project management: Klaus Quibeldey-Cirkel +Lead programming: Tom "tekay" Käsler, Lukas Mauß + ## 1.2.1 Bug Fixes: * Fix icons in room view for both roles diff --git a/docs/roadmap.md b/docs/roadmap.md index 7622b07a236c04f96d1fbae764f49d7f4c7251ff..06a76177eb7181a3b27e00b3a0c44f5adb141dc6 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -1,29 +1,29 @@ -# 1.3 - -## Improved role system - -### Break up role concept by not needing to log into specific roles - -### Moderators -- implement moderators that have the same access rights (without being able to delete the room) as the owner of a room -- add dialog to room to manage moderators -- add blacklist/whitelist mode for comments -- implement moderator view to monitor/manage incoming comments - - # 1.4 ## Performance improvements -- Production server performance analysis +- production server performance analysis +- improve on handling STOMP subscribtions -## Web Accessibility Initiative +## Barrier-free +- adhere to WCAG 2.1 for accessibility +# No version planned -# 1.5 +## Configuration +- load some configs from the backend -## Bonus -- mark room as "bonus" on creation -- bonus rooms save the users id on comment and answer creation +## Tests +- add automated testing for use cases -## New feedback view +## Feedback - implement a circle for the feedback +- add a freeze option to stop the feedback + +## Message flow +- add message channels for domain objects +- channels provide information on new content, feedback, etc + +## Content +- improve on the UX +- add a markup language for the text +- improve on the theme/style diff --git a/package-lock.json b/package-lock.json index 9b454a56f5905add8dbf2ad293fcd76e9d2493d5..ed770698bd7719fb7d7524bfba8dd1e315c1cc3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "arsnova-lite", - "version": "1.3.0-SNAPSHOT", + "version": "1.4.0-SNAPSHOT", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index f4331d2bcb0a7032a219d8d27d90455dec610f51..564e158519564786f88bb49bda83178cc885b610 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "arsnova-lite", - "version": "1.3.0-SNAPSHOT", + "version": "1.4.0-SNAPSHOT", "license": "MIT", "scripts": { "ng": "ng", diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.html b/src/app/components/creator/room-creator-page/room-creator-page.component.html index a4d315612347e51352f0a87a78a8d54ec16a492f..e1c9a3e5357cd5947d9a2666b8fc11d931fd71bb 100644 --- a/src/app/components/creator/room-creator-page/room-creator-page.component.html +++ b/src/app/components/creator/room-creator-page/room-creator-page.component.html @@ -36,57 +36,66 @@ {{ 'room-page.moderators' | translate}} </button> </mat-menu> - <button mat-icon-button class="corner-icons" [matMenuTriggerFor]="settingsMenu"> - <mat-icon class="corner-icon" matTooltip="{{ 'room-page.session-settings' | translate}}">settings</mat-icon> - </button> + <div fxLayout="column"> + <button mat-icon-button class="corner-icons" [matMenuTriggerFor]="settingsMenu"> + <mat-icon class="corner-icon" matTooltip="{{ 'room-page.session-settings' | translate}}">settings</mat-icon> + </button> + <button mat-icon-button class="corner-icons" routerLink="/creator/room/{{ room.shortId }}/statistics"> + <mat-icon class="corner-icon" matTooltip="{{ 'room-page.answer-statistics' | translate}}">insert_chart + </mat-icon> + </button> + </div> </div> <mat-card-content *ngIf="room.description" fxLayoutAlign="center"> <h4> {{ room.description.trim() }} </h4> </mat-card-content> - <mat-grid-list cols="{{viewModuleCount}}" rowHeight="1:1"> - <mat-grid-tile> - <button mat-icon-button - routerLink="/creator/room/{{ room.shortId }}/comments"> - <mat-icon matBadge="{{commentCounter}}" class="main-icon" - [ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer</mat-icon> - <h3>{{ 'room-page.comments' | translate}}</h3> <!-- *ngIf="deviceType === 'desktop'" --> - </button> - </mat-grid-tile> - <mat-grid-tile *ngIf="moderationEnabled"> - <button mat-icon-button routerLink="/moderator/room/{{ room.shortId }}/moderator/comments"> - <mat-icon matBadge="{{moderatorCommentCounter}}" class="main-icon" - [ngClass]="{'desktop' : deviceType === 'desktop'}">gavel - </mat-icon> - <h3>{{ 'room-page.moderating-stream' | translate}}</h3> <!-- *ngIf="deviceType === 'desktop'" --> - </button> - </mat-grid-tile> - <!-- <mat-grid-tile> - <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/feedback-barometer"> - <mat-icon class="smallerIcon" [ngClass]="{'desktop' : deviceType === 'desktop'}">thumbs_up_down - </mat-icon> - <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.live-feedback' | translate}}</h3> - </button> - </mat-grid-tile> --> - </mat-grid-list> - <!-- <mat-grid-list cols="2" rowHeight="2:1" class="second"> - <mat-grid-tile> - <button mat-icon-button - routerLink="/creator/room/{{ room.shortId }}/create-content"> - <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">note_add</mat-icon> - <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.create-content' | translate}}</h3> - </button> - </mat-grid-tile> - <mat-grid-tile> - <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/statistics"> - <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">insert_chart</mat-icon> - <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.answer-statistics' | translate}}</h3> - </button> - </mat-grid-tile> - </mat-grid-list> + <div fxLayout="column" fxLayoutAlign="center"> + <div fxLayout="row"> + <span class="fill-remaining-space"></span> + <mat-grid-list cols="{{viewModuleCount}}" rowHeight="2:1"> + <mat-grid-tile> + <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/comments"> + <mat-icon matBadge="{{commentCounter}}" class="main-icon" + [ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer + </mat-icon> + <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.comments' | translate}}</h3> + </button> + </mat-grid-tile> + <mat-grid-tile *ngIf="moderationEnabled"> + <button mat-icon-button routerLink="/moderator/room/{{ room.shortId }}/moderator/comments"> + <mat-icon matBadge="{{moderatorCommentCounter}}" class="main-icon" + [ngClass]="{'desktop' : deviceType === 'desktop'}">gavel + </mat-icon> + <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.moderating-stream' | translate}}</h3> + </button> + </mat-grid-tile> + </mat-grid-list> + <span class="fill-remaining-space"></span> + </div> + <div fxLayout="row"> + <span class="fill-remaining-space"></span> + <mat-grid-list cols="2" rowHeight="2:1" class="second"> + <mat-grid-tile> + <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/feedback-barometer"> + <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">thumbs_up_down + </mat-icon> + <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.live-feedback' | translate}}</h3> + </button> + </mat-grid-tile> + <mat-grid-tile> + <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/create-content"> + <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">note_add</mat-icon> + <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.create-content' | translate}}</h3> + </button> + </mat-grid-tile> + </mat-grid-list> + <span class="fill-remaining-space"></span> + </div> + </div> - <app-content-groups *ngIf="room && room.contentGroups" [contentGroups]="room.contentGroups"></app-content-groups> --> + <app-content-groups *ngIf="room && room.contentGroups" [contentGroups]="room.contentGroups"></app-content-groups> </mat-card> <div *ngIf="!isLoading && !room">{{ 'room-page.room-not-found' | translate }}</div> diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.scss b/src/app/components/creator/room-creator-page/room-creator-page.component.scss index 9059a41787c09efc940a67fba71da77e6a6874c9..26baee49f30a6c91454170e1db894a817c4bae1e 100644 --- a/src/app/components/creator/room-creator-page/room-creator-page.component.scss +++ b/src/app/components/creator/room-creator-page/room-creator-page.component.scss @@ -15,7 +15,7 @@ mat-card-content > :first-child { } .mat-icon-button { - width: 60%; // 100% + width: 60%; height: 75%; color: var(--primary)!important; transition: all 0.3s; @@ -25,14 +25,16 @@ mat-card-content > :first-child { } .desktop { - font-size: 65px; - height: 65px; - width: 65px; + font-size: 80px; + height: 80px; + width: 80px; margin-bottom: 5%; } .corner-icons { width: 40px; + height: 40px; + margin-bottom: 5%; } .corner-icon { @@ -42,25 +44,11 @@ mat-card-content > :first-child { line-height: 100%; } -/*.main-icon{ +.main-icon{ font-size: 60px; height: 60px; width: 60px; line-height: 100%!important; -}*/ - -.main-icon{ - font-size: 80px; - height: 80px; - width: 80px; - line-height: 100%!important; -} - -.smallerIcon { - font-size: 55px; - height: 55px; - width: 55px; - line-height: 100%!important; } .room-short-id { @@ -72,6 +60,7 @@ mat-card-content > :first-child { mat-grid-list { margin-bottom: 5px !important; + width: 90%; } .second { @@ -98,6 +87,7 @@ h4 { mat-card-header { min-height: 80px; height: 10%!important; + margin-bottom: 10%!important; } mat-card-title {