From 7dc4c3ca7c98bdbfceed24827518667682645f4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Ha=C3=9Fel?= Date: Tue, 29 Oct 2024 11:58:12 +0100 Subject: [PATCH] group page cleanup --- .../angular/src/app/api/User/UserPublic.ts | 4 ++++ src/main/angular/src/app/api/group/Group.ts | 15 ++++++++++++++ .../src/app/api/tools/Numbers/Numbers.ts | 20 ++++++------------- .../pages/group/group/group.component.html | 7 ++----- .../pages/group/group/group.component.less | 4 ++++ .../app/pages/group/group/group.component.ts | 10 +++++----- src/main/angular/src/user.less | 7 +++++++ 7 files changed, 43 insertions(+), 24 deletions(-) diff --git a/src/main/angular/src/app/api/User/UserPublic.ts b/src/main/angular/src/app/api/User/UserPublic.ts index d186e3e..1566cdd 100644 --- a/src/main/angular/src/app/api/User/UserPublic.ts +++ b/src/main/angular/src/app/api/User/UserPublic.ts @@ -16,4 +16,8 @@ export class UserPublic { ); } + static compareName(a: UserPublic, b: UserPublic) { + return a.name.localeCompare(b.name); + } + } diff --git a/src/main/angular/src/app/api/group/Group.ts b/src/main/angular/src/app/api/group/Group.ts index 281ab33..547aace 100644 --- a/src/main/angular/src/app/api/group/Group.ts +++ b/src/main/angular/src/app/api/group/Group.ts @@ -15,6 +15,10 @@ export class Group { // - } + isOwner(user: UserPublic) { + return this.owner.publicUuid === user.publicUuid; + } + static fromJson(json: any): Group { return new Group( validateString(json['uuid']), @@ -31,5 +35,16 @@ export class Group { return a.created.getTime() - b.created.getTime(); } + usersByNameOwnerFirst() { + return this.users.sort(this.compareOwnerFirstThenName); + } + + private compareOwnerFirstThenName(a: UserPublic, b: UserPublic): number { + if (a.publicUuid === this.owner.publicUuid) { + return -1; + } + return UserPublic.compareName(a, b); + } + } diff --git a/src/main/angular/src/app/api/tools/Numbers/Numbers.ts b/src/main/angular/src/app/api/tools/Numbers/Numbers.ts index e5cd9ad..2a882c4 100644 --- a/src/main/angular/src/app/api/tools/Numbers/Numbers.ts +++ b/src/main/angular/src/app/api/tools/Numbers/Numbers.ts @@ -1,16 +1,12 @@ -import {UserPublic} from "../../User/UserPublic"; -import {validateBoolean, validateDate, validateList, validateString} from "../../common/validators"; +import {validateString} from "../../common/validators"; +import {Group} from "../../group/Group"; export class Numbers { constructor( readonly uuid: string, - readonly title: string, - readonly owner: UserPublic, - readonly created: Date, - readonly password: string, - readonly users: UserPublic[], - readonly initial: boolean, + readonly name: string, + readonly group: Group, ) { // - } @@ -18,12 +14,8 @@ export class Numbers { static fromJson(json: any): Numbers { return new Numbers( validateString(json['uuid']), - validateString(json['title']), - UserPublic.fromJson(json['owner']), - validateDate(json['created']), - validateString(json['password']), - validateList(json['users'], UserPublic.fromJson), - validateBoolean(json['initial']), + validateString(json['name']), + Group.fromJson(json['group']), ); } diff --git a/src/main/angular/src/app/pages/group/group/group.component.html b/src/main/angular/src/app/pages/group/group/group.component.html index 60655d7..ef0649b 100644 --- a/src/main/angular/src/app/pages/group/group/group.component.html +++ b/src/main/angular/src/app/pages/group/group/group.component.html @@ -19,14 +19,10 @@ - - Besitzer - {{ group.owner.name }} - Teilnehmer -
{{ user.name }}
+
{{ user.name }}
@@ -35,4 +31,5 @@

Passwort

+
diff --git a/src/main/angular/src/app/pages/group/group/group.component.less b/src/main/angular/src/app/pages/group/group/group.component.less index 8feab9d..5426a67 100644 --- a/src/main/angular/src/app/pages/group/group/group.component.less +++ b/src/main/angular/src/app/pages/group/group/group.component.less @@ -1 +1,5 @@ @import "../../../../common.less"; + +th { + text-align: left; +} diff --git a/src/main/angular/src/app/pages/group/group/group.component.ts b/src/main/angular/src/app/pages/group/group/group.component.ts index ffb001e..8d9b6fd 100644 --- a/src/main/angular/src/app/pages/group/group/group.component.ts +++ b/src/main/angular/src/app/pages/group/group/group.component.ts @@ -2,10 +2,10 @@ import {Component, OnInit} from '@angular/core'; import {DatePipe, NgForOf, NgIf} from "@angular/common"; import {FormsModule, ReactiveFormsModule} from "@angular/forms"; import {TextComponent} from "../../../shared/text/text.component"; -import {Numbers} from "../../../api/tools/Numbers/Numbers"; import {ActivatedRoute, Router} from "@angular/router"; import {GroupService} from "../../../api/group/GroupService"; import {UserService} from "../../../api/User/user.service"; +import {Group} from "../../../api/group/Group"; @Component({ selector: 'app-group', @@ -23,7 +23,7 @@ import {UserService} from "../../../api/User/user.service"; }) export class GroupComponent implements OnInit { - protected group: Numbers | null = null; + protected group: Group | null = null; protected uuid: string | null = null; @@ -56,7 +56,7 @@ export class GroupComponent implements OnInit { }); } - private setGroup(group: Numbers): void { + private setGroup(group: Group): void { this.group = group; } @@ -66,11 +66,11 @@ export class GroupComponent implements OnInit { } } - protected changeTitle(group: Numbers, title: string) { + protected changeTitle(group: Group, title: string) { this.groupService.changeTitle(group, title, group => this.setGroup(group)); } - protected changePassword(group: Numbers, password: string) { + protected changePassword(group: Group, password: string) { this.groupService.changePassword(group, password, group => this.setGroup(group)); } diff --git a/src/main/angular/src/user.less b/src/main/angular/src/user.less index a68df4f..cf3d5d5 100644 --- a/src/main/angular/src/user.less +++ b/src/main/angular/src/user.less @@ -1,10 +1,17 @@ @import "./config.less"; .user { + clear: left; float: left; padding: @halfSpace; background-color: lightskyblue; border-radius: @halfSpace; + margin-right: @halfSpace; + margin-bottom: @halfSpace; +} + +.user_owner { + border: 1px solid black; } .user:hover {