From 6f5f68ab0ef43191da96c6711b8165d0823ac922 Mon Sep 17 00:00:00 2001 From: rubikscraft Date: Tue, 29 Mar 2022 20:55:39 +0200 Subject: [PATCH] refactor more routes --- .../settings-roles-edit.component.scss | 3 ++ .../settings-roles-edit.component.ts | 1 + .../app/routes/settings/settings.module.ts | 6 ++-- .../settings-users-edit.component.scss | 2 +- .../settings-users-edit.component.ts | 27 +++++++++++++--- .../app/routes/upload/upload.component.html | 4 +-- .../src/app/routes/upload/upload.component.ts | 16 ++++------ .../routes/user/login/login.component.html | 8 ++--- .../app/routes/user/login/login.component.ts | 18 ++++------- .../user/register/register.component.html | 7 ++-- .../user/register/register.component.ts | 32 ++++++++++--------- .../app/services/api/usermanage.service.ts | 2 +- 12 files changed, 70 insertions(+), 56 deletions(-) create mode 100644 frontend/src/app/routes/settings/roles/settings-roles-edit/settings-roles-edit.component.scss diff --git a/frontend/src/app/routes/settings/roles/settings-roles-edit/settings-roles-edit.component.scss b/frontend/src/app/routes/settings/roles/settings-roles-edit/settings-roles-edit.component.scss new file mode 100644 index 0000000..c7acb4b --- /dev/null +++ b/frontend/src/app/routes/settings/roles/settings-roles-edit/settings-roles-edit.component.scss @@ -0,0 +1,3 @@ +mat-form-field { + width: 100%; +} diff --git a/frontend/src/app/routes/settings/roles/settings-roles-edit/settings-roles-edit.component.ts b/frontend/src/app/routes/settings/roles/settings-roles-edit/settings-roles-edit.component.ts index 7b9c4b3..b8a4c62 100644 --- a/frontend/src/app/routes/settings/roles/settings-roles-edit/settings-roles-edit.component.ts +++ b/frontend/src/app/routes/settings/roles/settings-roles-edit/settings-roles-edit.component.ts @@ -14,6 +14,7 @@ enum EditMode { @Component({ selector: 'app-settings-roles-edit', templateUrl: './settings-roles-edit.component.html', + styleUrls: ['./settings-roles-edit.component.scss'], }) export class SettingsRolesEditComponent implements OnInit { private mode: EditMode = EditMode.edit; diff --git a/frontend/src/app/routes/settings/settings.module.ts b/frontend/src/app/routes/settings/settings.module.ts index babf072..b87d77c 100644 --- a/frontend/src/app/routes/settings/settings.module.ts +++ b/frontend/src/app/routes/settings/settings.module.ts @@ -1,5 +1,5 @@ import { CommonModule } from '@angular/common'; -import { Injector, NgModule } from '@angular/core'; +import { NgModule } from '@angular/core'; import { MatIconModule } from '@angular/material/icon'; import { MatListModule } from '@angular/material/list'; import { SettingsRoutingModule } from './settings.routing.module'; @@ -15,6 +15,4 @@ import { SettingsSidebarComponent } from './sidebar/settings-sidebar.component'; ], exports: [SettingsRoutingModule], }) -export class SettingsRouteModule { - constructor(private injector: Injector) {} -} +export class SettingsRouteModule {} diff --git a/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.scss b/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.scss index 0779a03..c7acb4b 100644 --- a/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.scss +++ b/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.scss @@ -1,3 +1,3 @@ -values-picker { +mat-form-field { width: 100%; } diff --git a/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.ts b/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.ts index 900654b..081f630 100644 --- a/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.ts +++ b/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.ts @@ -47,12 +47,17 @@ export class SettingsUsersEditComponent implements OnInit { ) {} ngOnInit() { - Promise.all([this.initUser(), this.initRoles()]).catch(console.error); + Promise.all([ + this.initUser(), + this.initRoles(), + this.initImmutableUsersList(), + ]).catch(console.error); } private async initUser() { const username = this.route.snapshot.paramMap.get('username'); + // Get special roles const SpecialRoles = await this.rolesService.getSpecialRoles(); if (HasFailed(SpecialRoles)) { this.utilService.showSnackBar( @@ -61,9 +66,9 @@ export class SettingsUsersEditComponent implements OnInit { ); return; } - this.soulBoundRoles = SpecialRoles.SoulBoundRoles; + // Check if edit or add if (!username) { this.mode = EditMode.add; @@ -71,21 +76,33 @@ export class SettingsUsersEditComponent implements OnInit { return; } + // Set known data this.mode = EditMode.edit; this.model.putUsername(username); + // Fetch more data const user = await this.userManageService.getUser(username); if (HasFailed(user)) { this.utilService.showSnackBar('Failed to get user', SnackBarType.Error); return; } + // Set that data instead this.model.putUsername(user.username); this.model.putRoles(user.roles); + } - const { ImmutableUsersList } = - await this.userManageService.getSpecialRolesOptimistic(); - this.ImmutableUsersList = ImmutableUsersList; + private async initImmutableUsersList() { + const SpecialUsers = await this.userManageService.getSpecialUsers(); + if (HasFailed(SpecialUsers)) { + this.utilService.showSnackBar( + 'Failed to get special users', + SnackBarType.Error + ); + return; + } + + this.ImmutableUsersList = SpecialUsers.ImmutableUsersList; } private async initRoles() { diff --git a/frontend/src/app/routes/upload/upload.component.html b/frontend/src/app/routes/upload/upload.component.html index 157b244..db647ec 100644 --- a/frontend/src/app/routes/upload/upload.component.html +++ b/frontend/src/app/routes/upload/upload.component.html @@ -1,12 +1,12 @@
- +

Upload Image

Drag and drop an image here, or click to select an image

-
+

Please Log In

You do not yet have permission to upload

diff --git a/frontend/src/app/routes/upload/upload.component.ts b/frontend/src/app/routes/upload/upload.component.ts index f990869..f3ae7a1 100644 --- a/frontend/src/app/routes/upload/upload.component.ts +++ b/frontend/src/app/routes/upload/upload.component.ts @@ -3,6 +3,7 @@ import { Router } from '@angular/router'; import { AutoUnsubscribe } from 'ngx-auto-unsubscribe-decorator'; import { NgxDropzoneChangeEvent } from 'ngx-dropzone'; import { Permission } from 'picsur-shared/dist/dto/permissions.dto'; +import { debounceTime } from 'rxjs'; import { PermissionService } from 'src/app/services/api/permission.service'; import { UtilService } from 'src/app/util/util.service'; import { ProcessingViewMetadata } from '../../models/dto/processing-view-metadata.dto'; @@ -12,12 +13,7 @@ import { ProcessingViewMetadata } from '../../models/dto/processing-view-metadat styleUrls: ['./upload.component.scss'], }) export class UploadComponent implements OnInit { - private permissions: string[] = []; - - // Lets be optimistic here, this makes for a better ux - public get hasUploadPermission() { - return this.permissions.includes(Permission.ImageUpload); - } + canUpload = true; constructor( private utilService: UtilService, @@ -31,9 +27,11 @@ export class UploadComponent implements OnInit { @AutoUnsubscribe() onPermission() { - return this.permissionService.live.subscribe((permissions) => { - this.permissions = permissions; - }); + return this.permissionService.live + .pipe(debounceTime(100)) + .subscribe((permissions) => { + this.canUpload = permissions.includes(Permission.ImageUpload); + }); } onSelect(event: NgxDropzoneChangeEvent) { diff --git a/frontend/src/app/routes/user/login/login.component.html b/frontend/src/app/routes/user/login/login.component.html index 5d5fcf1..2dc8a16 100644 --- a/frontend/src/app/routes/user/login/login.component.html +++ b/frontend/src/app/routes/user/login/login.component.html @@ -4,11 +4,7 @@

Login

-
- - Failed to login. Please check your username and password. - -
+
Username @@ -26,6 +22,7 @@
+
Password @@ -41,6 +38,7 @@
+