From 0ea19c4c0593cfe82b605935aea55ef3a613b00e Mon Sep 17 00:00:00 2001 From: Max Stephan Date: Sat, 30 Oct 2021 16:13:13 +0200 Subject: [PATCH] Design improvements (#94) * [web-gui] install date-fns * [time-formatter] use date-fns functions * [time-formatter] added some docstrings * [angular.json] increase production budget * [ticket-user-display] fix overflow for long names * [dropdown-menu] style improvements * [menu-bar] style improvements - remove dropdown - fix classroom name pos. for large usernames * [menu-bar] show icon based on user role * [time-formatter] added format * [ticket.component] show tooltip with full time * [time-formatter][format] change hour format * [user-list-entry] change icon color * [create-conference-dialog] style improvements - change checkbox color - fix text spacing * [ticket-list] fix overflow * [classroom] change heigt * [classroom] change drawer position * [side-drawer] change icon position * [user-list] fix overflow * [time-formatter][timeAgo] fix local --- web-gui/angular.json | 4 +- web-gui/package-lock.json | 46 ++----- web-gui/package.json | 1 + web-gui/src/app/app.module.ts | 12 +- .../confirmation-dialog.component.html | 7 ++ .../confirmation-dialog.component.scss | 15 +++ .../confirmation-dialog.component.ts | 18 +++ .../create-conference-dialog.component.html | 18 ++- .../create-conference-dialog.component.scss | 6 +- .../create-conference-dialog.component.ts | 2 +- .../classroom/classroom.component.html | 12 +- .../classroom/classroom.component.scss | 73 ++++------- .../conference/conference.component.ts | 6 +- .../ticket-list/ticket-list.component.html | 10 +- .../ticket-list/ticket-list.component.scss | 12 +- .../ticket-assign.component.scss | 25 ++-- .../ticket-user-display.component.html | 2 +- .../ticket-user-display.component.scss | 7 +- .../ticket-list/ticket/ticket.component.html | 75 +++++++++--- .../ticket-list/ticket/ticket.component.scss | 2 +- .../ticket-list/ticket/ticket.component.ts | 75 +++++++----- .../user-list-entry.component.html | 46 +++++-- .../user-list-entry.component.scss | 6 +- .../user-list/user-list.component.html | 17 +-- .../user-list/user-list.component.scss | 23 +++- .../dropdown-menu.component.html | 8 +- .../dropdown-menu.component.scss | 18 ++- .../menu-bar/menu-bar.component.html | 31 +++-- .../menu-bar/menu-bar.component.scss | 39 ++++-- .../menu-bar/menu-bar.component.ts | 28 ++--- .../side-drawer-menu.component.scss | 12 +- web-gui/src/app/service/classroom.service.ts | 9 ++ .../src/app/util/time-formatter.service.ts | 114 ++++++++---------- 33 files changed, 466 insertions(+), 313 deletions(-) create mode 100644 web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.html create mode 100644 web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.scss create mode 100644 web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.ts diff --git a/web-gui/angular.json b/web-gui/angular.json index 3f6b125..d3ceba9 100644 --- a/web-gui/angular.json +++ b/web-gui/angular.json @@ -47,8 +47,8 @@ "budgets": [ { "type": "initial", - "maximumWarning": "10024kb", - "maximumError": "1mb" + "maximumWarning": "15024kb", + "maximumError": "1.5mb" }, { "type": "anyComponentStyle", diff --git a/web-gui/package-lock.json b/web-gui/package-lock.json index 4b235ad..15d9ca0 100644 --- a/web-gui/package-lock.json +++ b/web-gui/package-lock.json @@ -4194,6 +4194,11 @@ "assert-plus": "^1.0.0" } }, + "date-fns": { + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", + "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==" + }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -12657,45 +12662,12 @@ "dev": true }, "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^1.0.2 || 2 || 3 || 4" } }, "wildcard": { diff --git a/web-gui/package.json b/web-gui/package.json index 4519a1e..8d55ff7 100644 --- a/web-gui/package.json +++ b/web-gui/package.json @@ -25,6 +25,7 @@ "@angular/router": "^12.2.8", "@auth0/angular-jwt": "^5.0.2", "angular2-click-outside": "^0.1.0", + "date-fns": "^2.25.0", "howler": "^2.2.3", "ngx-avatar": "^4.1.0", "rsocket-core": "0.0.27", diff --git a/web-gui/src/app/app.module.ts b/web-gui/src/app/app.module.ts index 47c4dd4..b5f30eb 100644 --- a/web-gui/src/app/app.module.ts +++ b/web-gui/src/app/app.module.ts @@ -30,7 +30,6 @@ import {MatFormFieldModule} from "@angular/material/form-field"; import { LogoutComponent } from './page-components/full-page/logout/logout.component'; import {NotFoundComponent} from "./page-components/full-page/not-found/not-found.component"; import { OverlayErrorComponent } from './page-components/overlay-error/overlay-error.component'; -import { ChooseConferenceDialogComponent } from './dialogs/choose-conference-dialog/choose-conference-dialog.component'; import {JoinUserConferenceDialogComponent} from "./dialogs/join-user-conference-dialog/join-user-conference-dialog.component"; import {AvatarModule} from "ngx-avatar"; import { FullPageComponent } from './page-components/full-page/full-page.component'; @@ -43,6 +42,8 @@ import { DropdownMenuComponent } from './page-components/menu-bar/dropdown-menu/ import { TicketUserDisplayComponent } from './page-components/classroom/ticket-list/ticket/ticket-user-display/ticket-user-display.component'; import {LinkConferenceToTicketDialogComponent} from "./dialogs/link-conference-to-ticket-dialog/link-conference-to-ticket-dialog.component"; import { UserListEntryComponent } from './page-components/classroom/user-list/user-list-entry/user-list-entry.component'; +import {ConfirmationDialogComponent} from "./dialogs/confirmation-dialog/confirmation-dialog.component"; +import {ChooseConferenceDialogComponent} from "./dialogs/choose-conference-dialog/choose-conference-dialog.component"; @NgModule({ @@ -63,11 +64,9 @@ import { UserListEntryComponent } from './page-components/classroom/user-list/us ConferenceListComponent, CreateConferenceDialogComponent, LogoutComponent, - CreateConferenceDialogComponent, OverlayErrorComponent, - ChooseConferenceDialogComponent, + LinkConferenceToTicketDialogComponent, JoinUserConferenceDialogComponent, - OverlayErrorComponent, FullPageComponent, TicketComponent, TicketAssignComponent, @@ -76,8 +75,9 @@ import { UserListEntryComponent } from './page-components/classroom/user-list/us ConferenceAttendeesComponent, DropdownMenuComponent, TicketUserDisplayComponent, - LinkConferenceToTicketDialogComponent, - UserListEntryComponent + UserListEntryComponent, + ConfirmationDialogComponent, + ChooseConferenceDialogComponent ], imports: [ BrowserModule, diff --git a/web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.html b/web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.html new file mode 100644 index 0000000..c8bd80a --- /dev/null +++ b/web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.html @@ -0,0 +1,7 @@ +
+

{{this.data}}

+ + + + +
diff --git a/web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.scss b/web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.scss new file mode 100644 index 0000000..75b1759 --- /dev/null +++ b/web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.scss @@ -0,0 +1,15 @@ +button { + margin:3px; +} + +.container { + width: 20rem; +} + +mat-action-row { + align-items: center; +} + +.dialogTitle { + word-break: break-word; +} diff --git a/web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.ts b/web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.ts new file mode 100644 index 0000000..9a18cec --- /dev/null +++ b/web-gui/src/app/dialogs/confirmation-dialog/confirmation-dialog.component.ts @@ -0,0 +1,18 @@ +import {Component, Inject} from '@angular/core'; +import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog"; + +@Component({ + selector: 'app-confirmation-dialog', + templateUrl: './confirmation-dialog.component.html', + styleUrls: ['./confirmation-dialog.component.scss'] +}) +export class ConfirmationDialogComponent { + + constructor(@Inject(MAT_DIALOG_DATA) public data: string, + public dialogRef: MatDialogRef + ) { } + + public close(result: boolean = false) { + this.dialogRef.close(result) + } +} diff --git a/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.html b/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.html index aeaa5cb..105f31c 100644 --- a/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.html +++ b/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.html @@ -4,16 +4,26 @@
Konferenzname - +
- Konferenz sichtbar? - + Konferenz sichtbar? +
- + diff --git a/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.scss b/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.scss index 154d1c1..4f3c9f7 100644 --- a/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.scss +++ b/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.scss @@ -4,7 +4,6 @@ button { .container { width: 20rem; - } form { @@ -17,6 +16,7 @@ mat-dialog-content { display: flex; flex-direction: column; overflow: hidden; + margin-bottom: 10px; } .checkbox-form { @@ -27,3 +27,7 @@ mat-action-row { width: unset; margin-top: 10px; } + +.visable-text { + margin-right: 10px; +} diff --git a/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.ts b/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.ts index 7b95853..5d32859 100644 --- a/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.ts +++ b/web-gui/src/app/dialogs/create-conference-dialog/create-conference-dialog.component.ts @@ -21,7 +21,7 @@ export class CreateConferenceDialogComponent { private notification: NotificationService, private dialogRef: MatDialogRef ) { - this.conferenceSubject = new FormControl('Konferenz von ' + this.data.currentUser.fullName) + this.conferenceSubject = new FormControl('Meeting von ' + this.data.currentUser.fullName) this.conferenceVisible = new FormControl(true) this.form = this.fb.group({ diff --git a/web-gui/src/app/page-components/classroom/classroom.component.html b/web-gui/src/app/page-components/classroom/classroom.component.html index ea15e6b..ce406e7 100644 --- a/web-gui/src/app/page-components/classroom/classroom.component.html +++ b/web-gui/src/app/page-components/classroom/classroom.component.html @@ -1,9 +1,9 @@ -
+
-
-
- - - +
+ + + +
diff --git a/web-gui/src/app/page-components/classroom/classroom.component.scss b/web-gui/src/app/page-components/classroom/classroom.component.scss index 26f1a01..28b971c 100644 --- a/web-gui/src/app/page-components/classroom/classroom.component.scss +++ b/web-gui/src/app/page-components/classroom/classroom.component.scss @@ -1,56 +1,33 @@ -.container { - display: block; - padding: 16px; - z-index: 2; - position: relative; -} -.actions { - margin: -15px; - display: flex; - height: 40px; - width: 100%; - padding-left: 10px; - margin-bottom: 10px; - .mat-flat-button { - line-height: 30px; - margin: 0 2.5px; - height: 30px; - display: flex; - align-items: center; - justify-content: center; - .mat-icon { - height: 25px; - } - } - span { - height: 24px; - margin-top: 2px; - } - .mat-icon { - cursor: pointer; - } -} - .classroom-content { - height: 70%; - flex-grow: 2; + display: flex; - flex-direction:row; + flex-direction: column; + height: 100%; + overflow: hidden; - .classroom-column { - width:50%; - flex-grow: 2; + app-menu-bar { display: block; + padding: 16px; + z-index: 2; + position: relative; } -} -.classroom-bottom { - grid-row: 99; - grid-column: 1; - vertical-align: bottom; - display: block; -} + .classroom-body { + display: flex; + flex: 1; + overflow: auto; + flex-basis: max-content; + flex-direction: row; + + .classroom-column { + width: 50%; + flex-grow: 1; + display: block; + } + + .drawer { + margin-top: 20px; + } + } -.spacer { - flex: 1 1 auto; } diff --git a/web-gui/src/app/page-components/classroom/conference-list/conference/conference.component.ts b/web-gui/src/app/page-components/classroom/conference-list/conference/conference.component.ts index dba1de8..8c23683 100644 --- a/web-gui/src/app/page-components/classroom/conference-list/conference/conference.component.ts +++ b/web-gui/src/app/page-components/classroom/conference-list/conference/conference.component.ts @@ -4,6 +4,7 @@ import {User} from "../../../../model/User"; import {ConferenceService} from "../../../../service/conference.service"; import {ClassroomService} from "../../../../service/classroom.service"; import {Ticket} from "../../../../model/Ticket"; +import {filter, tap} from "rxjs/operators"; @Component({ selector: 'app-conference', @@ -42,7 +43,10 @@ export class ConferenceComponent { } public endConference() { - this.conferenceService.endConference(this.conference!!) + this.classroomService.getConfirmation("BBB-Konferenz \"" + this.conference?.conferenceName + "\" beenden?").pipe( + filter(result => result), + tap(_ => this.conferenceService.endConference(this.conference!!)) + ).subscribe() } public joinTooltip(): string { diff --git a/web-gui/src/app/page-components/classroom/ticket-list/ticket-list.component.html b/web-gui/src/app/page-components/classroom/ticket-list/ticket-list.component.html index c454fa1..a8a4749 100644 --- a/web-gui/src/app/page-components/classroom/ticket-list/ticket-list.component.html +++ b/web-gui/src/app/page-components/classroom/ticket-list/ticket-list.component.html @@ -1,11 +1,15 @@
- +

Tickets

filter_list
-
- +
+ diff --git a/web-gui/src/app/page-components/classroom/ticket-list/ticket-list.component.scss b/web-gui/src/app/page-components/classroom/ticket-list/ticket-list.component.scss index 3384e6f..ba5fb8f 100644 --- a/web-gui/src/app/page-components/classroom/ticket-list/ticket-list.component.scss +++ b/web-gui/src/app/page-components/classroom/ticket-list/ticket-list.component.scss @@ -1,11 +1,11 @@ h3 { - text-align:center; + text-align: center; } .ticket-list { - height: 90%; + height: 100%; display: flex; - flex-direction:column; + flex-direction: column; flex-grow: 2; margin-left: 5%; margin-right: 5%; @@ -23,9 +23,11 @@ h3 { } } +.list-body { + overflow: auto; +} + .ticket { padding: 5px; margin: 5px; } - - diff --git a/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket-assign/ticket-assign.component.scss b/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket-assign/ticket-assign.component.scss index 4eba8c4..9187076 100644 --- a/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket-assign/ticket-assign.component.scss +++ b/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket-assign/ticket-assign.component.scss @@ -28,7 +28,6 @@ .assign-user { display: flex; flex-flow: row nowrap; - //justify-content: space-evenly; align-items: center; align-content: space-around; min-width: 132px; @@ -46,17 +45,21 @@ color: #6D6D6D; } -mat-select-trigger { - -} -.mat-select-arrow-wrapper { - display: none; +.container { + width: 100%; } -.mat-select-arrow { - display: none; -} +::ng-deep .mat-select > .mat-select-trigger { + .mat-select-value { + white-space: unset; + .mat-select-value-text { + white-space: unset; + } + } -.container { - width: 100%; + .mat-select-arrow-wrapper .mat-select-arrow { + border: none; + } } + + diff --git a/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket-user-display/ticket-user-display.component.html b/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket-user-display/ticket-user-display.component.html index ca035f4..78ab933 100644 --- a/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket-user-display/ticket-user-display.component.html +++ b/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket-user-display/ticket-user-display.component.html @@ -1,4 +1,4 @@ -
+
local_offer -

{{ticket.description}}

+

{{ ticket.description }}

-

#{{ticket.ticketId}}

-

{{this.getTicketTime(ticket)}}

+

#{{ ticket.ticketId }}

+

+ {{ this.getTicketTimeAgo(ticket) }} +

- - + +
-
- - - - edit - delete +
+ + + + edit + delete
- + - + - + diff --git a/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket.component.scss b/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket.component.scss index 1450d8f..cd86421 100644 --- a/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket.component.scss +++ b/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket.component.scss @@ -8,6 +8,7 @@ mat-card-content { justify-content: space-between; align-items: center; padding-left: 5px; + min-height: 20px; } .ticket-desc { display: flex; @@ -18,7 +19,6 @@ mat-card-content { .ticket-details { margin-top: 5px; padding-left: 10px; - height: 20px; font-size: 14px; color: #6D6D6D; } diff --git a/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket.component.ts b/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket.component.ts index 71c8555..b22a5c3 100644 --- a/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket.component.ts +++ b/web-gui/src/app/page-components/classroom/ticket-list/ticket/ticket.component.ts @@ -1,80 +1,95 @@ -import {Component, Input, OnInit} from '@angular/core'; -import {Ticket} from "../../../../model/Ticket"; -import {TimeFormatterService} from "../../../../util/time-formatter.service"; -import {ClassroomService} from "../../../../service/classroom.service"; -import {ConferenceInfo} from "../../../../model/ConferenceInfo"; -import {User, UserCredentials} from "../../../../model/User"; -import {UserService} from "../../../../service/user.service"; +import { Component, Input, OnInit } from '@angular/core'; +import { Ticket } from '../../../../model/Ticket'; +import { TimeFormatterService } from '../../../../util/time-formatter.service'; +import { ClassroomService } from '../../../../service/classroom.service'; +import { ConferenceInfo } from '../../../../model/ConferenceInfo'; +import { User, UserCredentials } from '../../../../model/User'; +import { UserService } from '../../../../service/user.service'; @Component({ selector: 'app-ticket', templateUrl: './ticket.component.html', - styleUrls: ['./ticket.component.scss'] + styleUrls: ['./ticket.component.scss'], }) export class TicketComponent implements OnInit { - @Input() ticket?: Ticket; - @Input() users: User[] = [] + @Input() users: User[] = []; conference?: ConferenceInfo; constructor( private timeFormatterService: TimeFormatterService, public classroomService: ClassroomService, public userService: UserService - ) { } + ) {} ngOnInit(): void { - if (this.ticket === undefined) throw new Error("Ticket is undefined!") - if (this.ticket?.creator === undefined) throw new Error("Ticket " + this.ticket?.ticketId + " without creator") + if (this.ticket === undefined) throw new Error('Ticket is undefined!'); + if (this.ticket?.creator === undefined) + throw new Error('Ticket ' + this.ticket?.ticketId + ' without creator'); + } + + getTicketTimeAgo(ticket: Ticket): string { + return this.timeFormatterService.timeAgo(ticket.createTime); } getTicketTime(ticket: Ticket): string { - return this.timeFormatterService.timeAgo(ticket.createTime) + return this.timeFormatterService.format(ticket.createTime); } - public determineButton(): "join" | "link" | "invite" { - this.conference = this.classroomService.findConferenceOfTicket(this.ticket!!) - if (this.classroomService.isSelf(this.ticket!!.creator) && this.conference === undefined) { - return "link" + public determineButton(): 'join' | 'link' | 'invite' { + this.conference = this.classroomService.findConferenceOfTicket( + this.ticket!! + ); + if ( + this.classroomService.isSelf(this.ticket!!.creator) && + this.conference === undefined + ) { + return 'link'; } - if (this.conference !== undefined || this.classroomService.isInConference(this.ticket!!.creator)) - return "join" - else - return "invite" + if ( + this.conference !== undefined || + this.classroomService.isInConference(this.ticket!!.creator) + ) + return 'join'; + else return 'invite'; } public mayDeleteTicket(): boolean { - return this.classroomService.isSelf(this.ticket?.creator!!) || + return ( + this.classroomService.isSelf(this.ticket?.creator!!) || this.classroomService.isCurrentUserPrivileged() + ); } public mayEditTicket(): boolean { - return this.classroomService.isSelf(this.ticket?.creator!!) + return this.classroomService.isSelf(this.ticket?.creator!!); } editTicket() { - this.classroomService.createOrEditTicket(this.ticket) + this.classroomService.createOrEditTicket(this.ticket); } closeTicket() { - this.classroomService.closeTicket(this.ticket!!) + this.classroomService.closeTicket(this.ticket!!); } inviteCreator() { this.classroomService .createNewConferenceForTicket(this.ticket!!) - .subscribe(conf => this.classroomService.inviteToConference(this.ticket!!.creator, conf)) + .subscribe((conf) => + this.classroomService.inviteToConference(this.ticket!!.creator, conf) + ); } linkConference() { - this.classroomService.linkTicketToConference(this.ticket!!) + this.classroomService.linkTicketToConference(this.ticket!!); } joinConference() { - this.classroomService.conferenceService.joinConference(this.conference!!) + this.classroomService.conferenceService.joinConference(this.conference!!); } public fullUser(user: UserCredentials): User | undefined { - return this.userService.getFullUser(user.userId) + return this.userService.getFullUser(user.userId); } } diff --git a/web-gui/src/app/page-components/classroom/user-list/user-list-entry/user-list-entry.component.html b/web-gui/src/app/page-components/classroom/user-list/user-list-entry/user-list-entry.component.html index 7a20010..b83bcf9 100644 --- a/web-gui/src/app/page-components/classroom/user-list/user-list-entry/user-list-entry.component.html +++ b/web-gui/src/app/page-components/classroom/user-list/user-list-entry/user-list-entry.component.html @@ -1,23 +1,55 @@
+ [class.invisible]="!user.visible" +>
- - call - phone_callback + + call + phone_callback
- visibility_off + visibility_off - visibility_on + visibility_on diff --git a/web-gui/src/app/page-components/classroom/user-list/user-list-entry/user-list-entry.component.scss b/web-gui/src/app/page-components/classroom/user-list/user-list-entry/user-list-entry.component.scss index 3537b89..df242b5 100644 --- a/web-gui/src/app/page-components/classroom/user-list/user-list-entry/user-list-entry.component.scss +++ b/web-gui/src/app/page-components/classroom/user-list/user-list-entry/user-list-entry.component.scss @@ -20,7 +20,11 @@ } .visibility-icon { - color: #6D6D6D; + color: #6d6d6d; +} + +.call-icon { + color: #405e9a; } .invisible { diff --git a/web-gui/src/app/page-components/classroom/user-list/user-list.component.html b/web-gui/src/app/page-components/classroom/user-list/user-list.component.html index 6713102..a704e1f 100644 --- a/web-gui/src/app/page-components/classroom/user-list/user-list.component.html +++ b/web-gui/src/app/page-components/classroom/user-list/user-list.component.html @@ -1,15 +1,16 @@
-
- Teilnehmer -
+
Teilnehmer
- -
+
+
+ +
-
diff --git a/web-gui/src/app/page-components/classroom/user-list/user-list.component.scss b/web-gui/src/app/page-components/classroom/user-list/user-list.component.scss index 8acc979..1dae69b 100644 --- a/web-gui/src/app/page-components/classroom/user-list/user-list.component.scss +++ b/web-gui/src/app/page-components/classroom/user-list/user-list.component.scss @@ -16,16 +16,27 @@ .user-list { display: flex; - flex-direction:column; + flex-direction: column; flex-grow: 2; margin-right: 5%; margin-left: 5%; + height: 100%; +} + +.user-list-entries { + overflow: hidden; + height: 100%; +} + +.user-list-other { + height: calc(100% - 63px); + overflow: auto; } .user { height: 24px; margin: 12px 5px 5px 5px; - padding:5px; + padding: 5px; display: flex; justify-content: space-between; .meta { @@ -49,13 +60,13 @@ align-items: center; } .user-item { - width:100%; - margin:0; + width: 100%; + margin: 0; .subtext-role { - float:right; + float: right; } p { - margin:2px; + margin: 2px; } } } diff --git a/web-gui/src/app/page-components/menu-bar/dropdown-menu/dropdown-menu.component.html b/web-gui/src/app/page-components/menu-bar/dropdown-menu/dropdown-menu.component.html index 72dff78..94dc42d 100644 --- a/web-gui/src/app/page-components/menu-bar/dropdown-menu/dropdown-menu.component.html +++ b/web-gui/src/app/page-components/menu-bar/dropdown-menu/dropdown-menu.component.html @@ -1,6 +1,6 @@ diff --git a/web-gui/src/app/page-components/menu-bar/dropdown-menu/dropdown-menu.component.scss b/web-gui/src/app/page-components/menu-bar/dropdown-menu/dropdown-menu.component.scss index 48f0d11..55da976 100644 --- a/web-gui/src/app/page-components/menu-bar/dropdown-menu/dropdown-menu.component.scss +++ b/web-gui/src/app/page-components/menu-bar/dropdown-menu/dropdown-menu.component.scss @@ -1,8 +1,8 @@ .menu-bubble { position: absolute; background: white; - border-radius: .4em; - border: 1px solid #B1B1B1; + border-radius: 0.4em; + border: 1px solid #b1b1b1; display: flex; flex-flow: column nowrap; @@ -12,15 +12,25 @@ } .menu-bubble:after { - content: ''; + content: ""; position: absolute; top: 0; left: 85%; width: 0; height: 0; border: 0.5em solid transparent; - border-bottom-color: #B1B1B1; + border-bottom-color: #b1b1b1; border-top: 0; margin-left: -0.4em; margin-top: -0.5em; } + +.menu-text { + line-height: 24px; + margin-left: 5px; +} + +.menu-item { + display: flex; + cursor: pointer; +} diff --git a/web-gui/src/app/page-components/menu-bar/menu-bar.component.html b/web-gui/src/app/page-components/menu-bar/menu-bar.component.html index 74f6ec8..d357dc9 100644 --- a/web-gui/src/app/page-components/menu-bar/menu-bar.component.html +++ b/web-gui/src/app/page-components/menu-bar/menu-bar.component.html @@ -1,17 +1,25 @@