Commit 958e3e19 authored by Tom Käsler's avatar Tom Käsler

Merge branch 'prepare-1.3' into 'master'

Prepare 1.3

See merge request !405
parents 4b031087 0fdfa398
Pipeline #31697 canceled with stages
in 1 minute and 54 seconds
# Changelog # 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 ## 1.2.1
Bug Fixes: Bug Fixes:
* Fix icons in room view for both roles * Fix icons in room view for both roles
......
# 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 # 1.4
## Performance improvements ## 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 ## Tests
- mark room as "bonus" on creation - add automated testing for use cases
- bonus rooms save the users id on comment and answer creation
## New feedback view ## Feedback
- implement a circle for the 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
{ {
"name": "arsnova-lite", "name": "arsnova-lite",
"version": "1.3.0-SNAPSHOT", "version": "1.4.0-SNAPSHOT",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
......
{ {
"name": "arsnova-lite", "name": "arsnova-lite",
"version": "1.3.0-SNAPSHOT", "version": "1.4.0-SNAPSHOT",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
......
...@@ -36,57 +36,66 @@ ...@@ -36,57 +36,66 @@
{{ 'room-page.moderators' | translate}} {{ 'room-page.moderators' | translate}}
</button> </button>
</mat-menu> </mat-menu>
<button mat-icon-button class="corner-icons" [matMenuTriggerFor]="settingsMenu"> <div fxLayout="column">
<mat-icon class="corner-icon" matTooltip="{{ 'room-page.session-settings' | translate}}">settings</mat-icon> <button mat-icon-button class="corner-icons" [matMenuTriggerFor]="settingsMenu">
</button> <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> </div>
<mat-card-content *ngIf="room.description" fxLayoutAlign="center"> <mat-card-content *ngIf="room.description" fxLayoutAlign="center">
<h4> <h4>
{{ room.description.trim() }} {{ room.description.trim() }}
</h4> </h4>
</mat-card-content> </mat-card-content>
<mat-grid-list cols="{{viewModuleCount}}" rowHeight="1:1"> <div fxLayout="column" fxLayoutAlign="center">
<mat-grid-tile> <div fxLayout="row">
<button mat-icon-button <span class="fill-remaining-space"></span>
routerLink="/creator/room/{{ room.shortId }}/comments"> <mat-grid-list cols="{{viewModuleCount}}" rowHeight="2:1">
<mat-icon matBadge="{{commentCounter}}" class="main-icon" <mat-grid-tile>
[ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer</mat-icon> <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/comments">
<h3>{{ 'room-page.comments' | translate}}</h3> <!-- *ngIf="deviceType === 'desktop'" --> <mat-icon matBadge="{{commentCounter}}" class="main-icon"
</button> [ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer
</mat-grid-tile> </mat-icon>
<mat-grid-tile *ngIf="moderationEnabled"> <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.comments' | translate}}</h3>
<button mat-icon-button routerLink="/moderator/room/{{ room.shortId }}/moderator/comments"> </button>
<mat-icon matBadge="{{moderatorCommentCounter}}" class="main-icon" </mat-grid-tile>
[ngClass]="{'desktop' : deviceType === 'desktop'}">gavel <mat-grid-tile *ngIf="moderationEnabled">
</mat-icon> <button mat-icon-button routerLink="/moderator/room/{{ room.shortId }}/moderator/comments">
<h3>{{ 'room-page.moderating-stream' | translate}}</h3> <!-- *ngIf="deviceType === 'desktop'" --> <mat-icon matBadge="{{moderatorCommentCounter}}" class="main-icon"
</button> [ngClass]="{'desktop' : deviceType === 'desktop'}">gavel
</mat-grid-tile> </mat-icon>
<!-- <mat-grid-tile> <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.moderating-stream' | translate}}</h3>
<button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/feedback-barometer"> </button>
<mat-icon class="smallerIcon" [ngClass]="{'desktop' : deviceType === 'desktop'}">thumbs_up_down </mat-grid-tile>
</mat-icon> </mat-grid-list>
<h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.live-feedback' | translate}}</h3> <span class="fill-remaining-space"></span>
</button> </div>
</mat-grid-tile> --> <div fxLayout="row">
</mat-grid-list> <span class="fill-remaining-space"></span>
<!-- <mat-grid-list cols="2" rowHeight="2:1" class="second"> <mat-grid-list cols="2" rowHeight="2:1" class="second">
<mat-grid-tile> <mat-grid-tile>
<button mat-icon-button <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/feedback-barometer">
routerLink="/creator/room/{{ room.shortId }}/create-content"> <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">thumbs_up_down
<mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">note_add</mat-icon> </mat-icon>
<h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.create-content' | translate}}</h3> <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.live-feedback' | translate}}</h3>
</button> </button>
</mat-grid-tile> </mat-grid-tile>
<mat-grid-tile> <mat-grid-tile>
<button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/statistics"> <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/create-content">
<mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">insert_chart</mat-icon> <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">note_add</mat-icon>
<h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.answer-statistics' | translate}}</h3> <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.create-content' | translate}}</h3>
</button> </button>
</mat-grid-tile> </mat-grid-tile>
</mat-grid-list> </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> </mat-card>
<div *ngIf="!isLoading && !room">{{ 'room-page.room-not-found' | translate }}</div> <div *ngIf="!isLoading && !room">{{ 'room-page.room-not-found' | translate }}</div>
......
...@@ -15,7 +15,7 @@ mat-card-content > :first-child { ...@@ -15,7 +15,7 @@ mat-card-content > :first-child {
} }
.mat-icon-button { .mat-icon-button {
width: 60%; // 100% width: 60%;
height: 75%; height: 75%;
color: var(--primary)!important; color: var(--primary)!important;
transition: all 0.3s; transition: all 0.3s;
...@@ -25,14 +25,16 @@ mat-card-content > :first-child { ...@@ -25,14 +25,16 @@ mat-card-content > :first-child {
} }
.desktop { .desktop {
font-size: 65px; font-size: 80px;
height: 65px; height: 80px;
width: 65px; width: 80px;
margin-bottom: 5%; margin-bottom: 5%;
} }
.corner-icons { .corner-icons {
width: 40px; width: 40px;
height: 40px;
margin-bottom: 5%;
} }
.corner-icon { .corner-icon {
...@@ -42,25 +44,11 @@ mat-card-content > :first-child { ...@@ -42,25 +44,11 @@ mat-card-content > :first-child {
line-height: 100%; line-height: 100%;
} }
/*.main-icon{ .main-icon{
font-size: 60px; font-size: 60px;
height: 60px; height: 60px;
width: 60px; width: 60px;
line-height: 100%!important; 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 { .room-short-id {
...@@ -72,6 +60,7 @@ mat-card-content > :first-child { ...@@ -72,6 +60,7 @@ mat-card-content > :first-child {
mat-grid-list { mat-grid-list {
margin-bottom: 5px !important; margin-bottom: 5px !important;
width: 90%;
} }
.second { .second {
...@@ -98,6 +87,7 @@ h4 { ...@@ -98,6 +87,7 @@ h4 {
mat-card-header { mat-card-header {
min-height: 80px; min-height: 80px;
height: 10%!important; height: 10%!important;
margin-bottom: 10%!important;
} }
mat-card-title { mat-card-title {
......
Markdown is supported
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