diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 5417f747..02db039a 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -53,8 +53,9 @@ "form_placeholder_archive_location": "z.B. Schrank 3, Mappe B", "form_helper_archive_location": "Wo befindet sich das Originaldokument?", "login_heading": "Anmelden", - "login_label_username": "Benutzername", + "login_label_email": "E-Mail-Adresse", "login_label_password": "Passwort", + "login_error_missing_credentials": "Bitte E-Mail-Adresse und Passwort eingeben.", "login_btn_submit": "Anmelden", "docs_search_placeholder": "Titel, Personen, Tags durchsuchen…", "docs_sort_label": "Sortierung", @@ -164,7 +165,7 @@ "admin_tab_groups": "Gruppen", "admin_tab_tags": "Schlagworte", "admin_section_users": "Benutzerverwaltung", - "admin_col_login": "Login", + "admin_col_login": "E-Mail", "admin_col_groups": "Gruppen", "admin_col_password": "Passwort", "admin_multiselect_hint": "Strg+Klick für Auswahl", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index b2e76304..ed9a0eb0 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -53,8 +53,9 @@ "form_placeholder_archive_location": "e.g. Cabinet 3, Folder B", "form_helper_archive_location": "Where is the original document stored?", "login_heading": "Sign in", - "login_label_username": "Username", + "login_label_email": "Email", "login_label_password": "Password", + "login_error_missing_credentials": "Please enter your email address and password.", "login_btn_submit": "Sign in", "docs_search_placeholder": "Search title, people, tags…", "docs_sort_label": "Sort", @@ -164,7 +165,7 @@ "admin_tab_groups": "Groups", "admin_tab_tags": "Tags", "admin_section_users": "User management", - "admin_col_login": "Login", + "admin_col_login": "Email", "admin_col_groups": "Groups", "admin_col_password": "Password", "admin_multiselect_hint": "Ctrl+Click to select", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 96f9efc8..19c68d39 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -53,8 +53,9 @@ "form_placeholder_archive_location": "p.ej. Armario 3, Carpeta B", "form_helper_archive_location": "¿Dónde se encuentra el documento original?", "login_heading": "Iniciar sesión", - "login_label_username": "Usuario", + "login_label_email": "Correo electrónico", "login_label_password": "Contraseña", + "login_error_missing_credentials": "Por favor, introduzca su correo electrónico y contraseña.", "login_btn_submit": "Iniciar sesión", "docs_search_placeholder": "Buscar título, personas, etiquetas…", "docs_sort_label": "Ordenar", @@ -164,7 +165,7 @@ "admin_tab_groups": "Grupos", "admin_tab_tags": "Etiquetas", "admin_section_users": "Gestión de usuarios", - "admin_col_login": "Login", + "admin_col_login": "Correo electrónico", "admin_col_groups": "Grupos", "admin_col_password": "Contraseña", "admin_multiselect_hint": "Ctrl+Clic para seleccionar", diff --git a/frontend/src/app.d.ts b/frontend/src/app.d.ts index ca517012..6057acbc 100644 --- a/frontend/src/app.d.ts +++ b/frontend/src/app.d.ts @@ -5,11 +5,10 @@ declare global { // Define the User structure matching your Java Entity interface User { id: string; - username: string; firstName?: string; lastName?: string; birthDate?: string; - email?: string; + email: string; contact?: string; groups: { id: string; diff --git a/frontend/src/lib/errors.ts b/frontend/src/lib/errors.ts index e9001fbb..81057260 100644 --- a/frontend/src/lib/errors.ts +++ b/frontend/src/lib/errors.ts @@ -33,6 +33,7 @@ export type ErrorCode = | 'TAG_NOT_FOUND' | 'TAG_MERGE_SELF' | 'TAG_MERGE_INVALID_TARGET' + | 'MISSING_CREDENTIALS' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'VALIDATION_ERROR' @@ -118,6 +119,8 @@ export function getErrorMessage(code: ErrorCode | string | undefined): string { return m.error_tag_merge_self(); case 'TAG_MERGE_INVALID_TARGET': return m.error_tag_merge_invalid_target(); + case 'MISSING_CREDENTIALS': + return m.login_error_missing_credentials(); case 'UNAUTHORIZED': return m.error_unauthorized(); case 'FORBIDDEN': diff --git a/frontend/src/lib/generated/api.ts b/frontend/src/lib/generated/api.ts index 4631e759..ba57d088 100644 --- a/frontend/src/lib/generated/api.ts +++ b/frontend/src/lib/generated/api.ts @@ -1253,13 +1253,12 @@ export interface components { AppUser: { /** Format: uuid */ id: string; - username: string; password?: string; firstName?: string; lastName?: string; /** Format: date */ birthDate?: string; - email?: string; + email: string; contact?: string; enabled: boolean; notifyOnReply: boolean; @@ -1406,8 +1405,7 @@ export interface components { blockIds?: string[]; }; CreateUserRequest: { - username?: string; - email?: string; + email: string; initialPassword?: string; groupIds?: string[]; firstName?: string; diff --git a/frontend/src/routes/admin/users/UsersListPanel.svelte b/frontend/src/routes/admin/users/UsersListPanel.svelte index a76cc7ab..7049aafe 100644 --- a/frontend/src/routes/admin/users/UsersListPanel.svelte +++ b/frontend/src/routes/admin/users/UsersListPanel.svelte @@ -10,7 +10,7 @@ type Group = { type User = { id: string; - username: string; + email: string; firstName: string | null; lastName: string | null; groups: Group[]; @@ -41,7 +41,7 @@ const filtered = $derived( searchQuery.trim() === '' ? users : users.filter((u) => - [u.username, u.firstName, u.lastName] + [u.email, u.firstName, u.lastName] .filter(Boolean) .some((v) => v!.toLowerCase().includes(searchQuery.toLowerCase())) ) @@ -128,7 +128,7 @@ const filtered = $derived( ? 'border-primary bg-primary/10 dark:bg-primary/15' : 'border-transparent hover:bg-muted'}" > -