diff --git a/UI/Web/src/app/admin/edit-user/edit-user.component.html b/UI/Web/src/app/admin/edit-user/edit-user.component.html index 66cae449b..d88fa50e2 100644 --- a/UI/Web/src/app/admin/edit-user/edit-user.component.html +++ b/UI/Web/src/app/admin/edit-user/edit-user.component.html @@ -24,7 +24,18 @@

{{t('account-detail-title')}}

-
+
+ @if (userForm.get('owner'); as formControl) { + + + {{t('owner-tooltip')}} + } +
+
@if(userForm.get('username'); as formControl) {
@@ -46,7 +57,7 @@
}
-
+
@if(userForm.get('email'); as formControl) {
@@ -72,26 +83,6 @@
}
- - -
- @if (userForm.get('owner'); as formControl) { - - -
{{member().owner | userOwnerPipe}}
-
- - - -
- } -
- -
diff --git a/UI/Web/src/app/admin/edit-user/edit-user.component.scss b/UI/Web/src/app/admin/edit-user/edit-user.component.scss index e69de29bb..3cca8a49f 100644 --- a/UI/Web/src/app/admin/edit-user/edit-user.component.scss +++ b/UI/Web/src/app/admin/edit-user/edit-user.component.scss @@ -0,0 +1,3 @@ +.text-muted { + font-size: 12px; +} diff --git a/UI/Web/src/app/admin/edit-user/edit-user.component.ts b/UI/Web/src/app/admin/edit-user/edit-user.component.ts index c36bfc135..124810678 100644 --- a/UI/Web/src/app/admin/edit-user/edit-user.component.ts +++ b/UI/Web/src/app/admin/edit-user/edit-user.component.ts @@ -28,6 +28,7 @@ import {ServerSettings} from "../_models/server-settings"; import {UserOwner, UserOwners} from "../../_models/user"; import {UserOwnerPipe} from "../../_pipes/user-owner.pipe"; import {SettingItemComponent} from "../../settings/_components/setting-item/setting-item.component"; +import {OwnerIconComponent} from "../../shared/_components/owner-icon/owner-icon.component"; const AllowedUsernameCharacters = /^[\sa-zA-Z0-9\-._@+/\s]*$/; const EmailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; @@ -36,7 +37,7 @@ const EmailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; selector: 'app-edit-user', templateUrl: './edit-user.component.html', styleUrls: ['./edit-user.component.scss'], - imports: [ReactiveFormsModule, RoleSelectorComponent, LibrarySelectorComponent, RestrictionSelectorComponent, SentenceCasePipe, TranslocoDirective, AsyncPipe, UserOwnerPipe, SettingItemComponent], + imports: [ReactiveFormsModule, RoleSelectorComponent, LibrarySelectorComponent, RestrictionSelectorComponent, SentenceCasePipe, TranslocoDirective, AsyncPipe, UserOwnerPipe, SettingItemComponent, OwnerIconComponent], changeDetection: ChangeDetectionStrategy.OnPush }) export class EditUserComponent implements OnInit { diff --git a/UI/Web/src/app/admin/manage-users/manage-users.component.html b/UI/Web/src/app/admin/manage-users/manage-users.component.html index 43e651e7d..2cd4b7707 100644 --- a/UI/Web/src/app/admin/manage-users/manage-users.component.html +++ b/UI/Web/src/app/admin/manage-users/manage-users.component.html @@ -23,14 +23,7 @@
- @switch (member.owner) { - @case (UserOwner.OpenIdConnect) { - open-id-connect-logo - } - @case (UserOwner.Native) { - kavita-logo - } - } +
diff --git a/UI/Web/src/app/admin/manage-users/manage-users.component.ts b/UI/Web/src/app/admin/manage-users/manage-users.component.ts index 25a38763d..e38f04d2e 100644 --- a/UI/Web/src/app/admin/manage-users/manage-users.component.ts +++ b/UI/Web/src/app/admin/manage-users/manage-users.component.ts @@ -26,6 +26,7 @@ import {RoleLocalizedPipe} from "../../_pipes/role-localized.pipe"; import {SettingsService} from "../settings.service"; import {ServerSettings} from "../_models/server-settings"; import {UserOwner} from "../../_models/user"; +import {OwnerIconComponent} from "../../shared/_components/owner-icon/owner-icon.component"; @Component({ selector: 'app-manage-users', @@ -34,7 +35,7 @@ import {UserOwner} from "../../_models/user"; changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgbTooltip, TagBadgeComponent, AsyncPipe, TitleCasePipe, TranslocoModule, DefaultDatePipe, NgClass, DefaultValuePipe, UtcToLocalTimePipe, LoadingComponent, TimeAgoPipe, SentenceCasePipe, UtcToLocaleDatePipe, - RoleLocalizedPipe, NgOptimizedImage] + RoleLocalizedPipe, NgOptimizedImage, OwnerIconComponent] }) export class ManageUsersComponent implements OnInit { diff --git a/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.html b/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.html new file mode 100644 index 000000000..af93e0b4d --- /dev/null +++ b/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.html @@ -0,0 +1,9 @@ +@switch (owner()) { + @case (UserOwner.OpenIdConnect) { + open-id-connect-logo + } + @case (UserOwner.Native) { + + kavita-logo + } +} diff --git a/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.scss b/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.ts b/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.ts new file mode 100644 index 000000000..bc1fbceac --- /dev/null +++ b/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.ts @@ -0,0 +1,19 @@ +import {Component, input} from '@angular/core'; +import {NgOptimizedImage} from "@angular/common"; +import {UserOwner} from "../../../_models/user"; + +@Component({ + selector: 'app-owner-icon', + imports: [ + NgOptimizedImage + ], + templateUrl: './owner-icon.component.html', + styleUrl: './owner-icon.component.scss' +}) +export class OwnerIconComponent { + + owner = input.required(); + size = input(16); + + protected readonly UserOwner = UserOwner; +} diff --git a/UI/Web/src/assets/langs/en.json b/UI/Web/src/assets/langs/en.json index f53a6e681..884b1f443 100644 --- a/UI/Web/src/assets/langs/en.json +++ b/UI/Web/src/assets/langs/en.json @@ -80,8 +80,8 @@ "notice": "Warning!", "out-of-sync": "This user was created via OIDC, if the SynUsers setting is turned on changes made may be lost", "oidc-managed": "This user is managed via OIDC, contact your OIDC administrator if they require changes.", - "creationSource": "User type", - "creationSource-tooltip": "Native users will never be synced with OIDC" + "owner": "User type", + "owner-tooltip": "Native users will never be synced with OIDC" }, "user-scrobble-history": {