Loading
-
+
diff --git a/frontend/src/app/routes/settings/sharex/settings-sharex.component.ts b/frontend/src/app/routes/settings/sharex/settings-sharex.component.ts
index d32d408..2e106e8 100644
--- a/frontend/src/app/routes/settings/sharex/settings-sharex.component.ts
+++ b/frontend/src/app/routes/settings/sharex/settings-sharex.component.ts
@@ -7,6 +7,7 @@ import { HasFailed } from 'picsur-shared/dist/types';
import { BehaviorSubject } from 'rxjs';
import { scan } from 'rxjs/operators';
import { ApiKeysService } from 'src/app/services/api/apikeys.service';
+import { InfoService } from 'src/app/services/api/info.service';
import { PermissionService } from 'src/app/services/api/permission.service';
import { Logger } from 'src/app/services/logger/logger.service';
import { ErrorService } from 'src/app/util/error-manager/error.service';
@@ -41,6 +42,7 @@ export class SettingsShareXComponent implements OnInit {
constructor(
private readonly apikeysService: ApiKeysService,
private readonly permissionService: PermissionService,
+ private readonly infoService: InfoService,
private readonly utilService: UtilService,
private readonly errorService: ErrorService,
) {}
@@ -62,11 +64,11 @@ export class SettingsShareXComponent implements OnInit {
const ext = FileType2Ext(this.selectedFormat);
if (HasFailed(ext)) {
- this.logger.error(ext.print());
+ ext.print(this.logger);
}
const sharexConfig = BuildShareX(
- this.utilService.getHost(),
+ this.infoService.getHostname(),
this.key,
'.' + ext,
canUseDelete,
diff --git a/frontend/src/app/routes/settings/sharex/settings-sharex.module.ts b/frontend/src/app/routes/settings/sharex/settings-sharex.module.ts
index aa3c7fc..05aa25b 100644
--- a/frontend/src/app/routes/settings/sharex/settings-sharex.module.ts
+++ b/frontend/src/app/routes/settings/sharex/settings-sharex.module.ts
@@ -23,4 +23,4 @@ import { SettingsShareXRoutingModule } from './settings-sharex.routing.module';
MatProgressSpinnerModule,
],
})
-export class SettingsShareXRouteModule {}
+export default class SettingsShareXRouteModule {}
diff --git a/frontend/src/app/routes/settings/sidebar/settings-sidebar.component.html b/frontend/src/app/routes/settings/sidebar/settings-sidebar.component.html
index 5d721e6..e980f80 100644
--- a/frontend/src/app/routes/settings/sidebar/settings-sidebar.component.html
+++ b/frontend/src/app/routes/settings/sidebar/settings-sidebar.component.html
@@ -1,16 +1,16 @@
0">
- Personal
+ Personal
-
+
{{ route.data?.page?.icon }}
- {{ route.data?.page?.title }}
+ {{ route.data?.page?.title }}
@@ -18,17 +18,17 @@
0">
- System
+ System
-
+
{{ route.data?.page?.icon }}
- {{ route.data?.page?.title }}
+ {{ route.data?.page?.title }}
diff --git a/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.component.html b/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.component.html
index ce4bf15..0ad1f1d 100644
--- a/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.component.html
+++ b/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.component.html
@@ -1,9 +1,17 @@
System Settings
-
-
+
+ {{ category.category }}
+
diff --git a/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.component.scss b/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.component.ts b/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.component.ts
index d2e336e..4669c83 100644
--- a/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.component.ts
+++ b/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.component.ts
@@ -1,18 +1,54 @@
import { Component } from '@angular/core';
import { DecodedPref } from 'picsur-shared/dist/dto/preferences.dto';
-import { Observable } from 'rxjs';
-import { SysPreferenceFriendlyNames } from 'src/app/i18n/sys-pref.i18n';
+import {
+ SysPreference,
+ SysPreferenceValidators,
+} from 'picsur-shared/dist/dto/sys-preferences.enum';
+import { map, Observable } from 'rxjs';
+import { SysPreferenceUI } from 'src/app/i18n/sys-pref.i18n';
+
+import { makeUnique } from 'picsur-shared/dist/util/unique';
import { SysPrefService } from 'src/app/services/api/sys-pref.service';
+import { z, ZodTypeAny } from 'zod';
@Component({
templateUrl: './settings-sys-pref.component.html',
+ styleUrls: ['./settings-sys-pref.component.scss'],
})
export class SettingsSysprefComponent {
- public readonly translator = SysPreferenceFriendlyNames;
+ public getName(key: string) {
+ return SysPreferenceUI[key as SysPreference]?.name ?? key;
+ }
- preferences: Observable;
+ public getHelpText(key: string) {
+ return SysPreferenceUI[key as SysPreference]?.helpText ?? '';
+ }
+
+ public getCategory(key: string): null | string {
+ return SysPreferenceUI[key as SysPreference]?.category ?? null;
+ }
+
+ public getValidator(key: string): ZodTypeAny {
+ return SysPreferenceValidators[key as SysPreference] ?? z.any();
+ }
+
+ preferences: Observable<
+ Array<{ category: string | null; prefs: DecodedPref[] }>
+ >;
constructor(public readonly sysPrefService: SysPrefService) {
- this.preferences = sysPrefService.live;
+ this.preferences = sysPrefService.live.pipe(
+ map((prefs) => {
+ const categories = makeUnique(
+ prefs.map((pref) => this.getCategory(pref.key)),
+ );
+ return categories.map((category) => ({
+ category,
+ prefs: prefs.filter(
+ (pref) => this.getCategory(pref.key) === category,
+ ),
+ }));
+ }),
+ );
}
}
diff --git a/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.module.ts b/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.module.ts
index ca942f9..0008e83 100644
--- a/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.module.ts
+++ b/frontend/src/app/routes/settings/sys-pref/settings-sys-pref.module.ts
@@ -8,4 +8,4 @@ import { SettingsSysprefRoutingModule } from './settings-sys-pref.routing.module
declarations: [SettingsSysprefComponent],
imports: [CommonModule, SettingsSysprefRoutingModule, PrefOptionModule],
})
-export class SettingsSysprefRouteModule {}
+export default class SettingsSysprefRouteModule {}
diff --git a/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.html b/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.html
index dd5d6e3..8686ddb 100644
--- a/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.html
+++ b/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.html
@@ -1,5 +1,5 @@
- Editing {{ model.usernameValue }}
+ Editing user "{{ model.usernameValue }}"
Add new user
@@ -8,7 +8,7 @@