From 3b6588397eced633ae62adbf5bf63e7da71cfb70 Mon Sep 17 00:00:00 2001 From: cesnimda Date: Sat, 28 Mar 2026 21:55:17 +0100 Subject: [PATCH] Fix frontend build regressions --- job-tracker-ui/src/components/BackupCard.tsx | 2 +- .../src/components/GoogleAuthCard.tsx | 9 +-- job-tracker-ui/src/i18n/translations.ts | 66 +++++++++++++++++-- job-tracker-ui/src/pages/AdminUsersPage.tsx | 8 +-- 4 files changed, 64 insertions(+), 21 deletions(-) diff --git a/job-tracker-ui/src/components/BackupCard.tsx b/job-tracker-ui/src/components/BackupCard.tsx index 787fb29..304879a 100644 --- a/job-tracker-ui/src/components/BackupCard.tsx +++ b/job-tracker-ui/src/components/BackupCard.tsx @@ -1,7 +1,7 @@ import React, { useState } from "react"; import { Box, Button, Paper, Typography } from "@mui/material"; -import { api } from "../api"; +import { api, getApiErrorMessage } from "../api"; import { useToast } from "../toast"; import { useI18n } from "../i18n/I18nProvider"; diff --git a/job-tracker-ui/src/components/GoogleAuthCard.tsx b/job-tracker-ui/src/components/GoogleAuthCard.tsx index a6cc25b..249ca86 100644 --- a/job-tracker-ui/src/components/GoogleAuthCard.tsx +++ b/job-tracker-ui/src/components/GoogleAuthCard.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useMemo, useRef, useState } from "react"; import { Box, Button, Chip, Paper, Typography } from "@mui/material"; -import { api } from "../api"; +import { api, getApiErrorMessage } from "../api"; import { clearAuthToken, decodeJwtPayload, getAuthPersistencePreference, getAuthToken, setAuthToken } from "../auth"; import { useToast } from "../toast"; import { useI18n } from "../i18n/I18nProvider"; @@ -249,10 +249,3 @@ export default function GoogleAuthCard({ onSignedIn }: { onSignedIn?: () => void ); } -raphy> - ) : null} - - )} - - ); -} diff --git a/job-tracker-ui/src/i18n/translations.ts b/job-tracker-ui/src/i18n/translations.ts index e82e5ac..ec28aeb 100644 --- a/job-tracker-ui/src/i18n/translations.ts +++ b/job-tracker-ui/src/i18n/translations.ts @@ -1040,11 +1040,14 @@ export const translations = { settingsFollowUpsBody: "Velg når søknader, tilbud og tilbakemeldinger skal dukke opp som oppfølgingsarbeid eller regnes som ghostet. Disse reglene styrer påminnelsesinnboksen og flaggene i jobblisten.", settingsOpenReminderInbox: "Åpne påminnelser", settingsReviewJobs: "Gå til jobber", - settingsNotificationsTitle: "E-postvarsler", - settingsNotificationsBody: "Varsler sendes via SMTP. Konfigurer API-et med `Email:*`-innstillinger eller miljøvariabler som `EMAIL_SMTP_HOST`, så kan Jobbjakt sende passord-nullstilling og påminnelsesepost.", - settingsNotificationsDelivery: "Bruk siden for systemstatus for å bekrefte at SMTP er konfigurert før du tester utgående e-post.", - settingsNotificationsWhatYouGetTitle: "Hva som sendes", - settingsNotificationsWhatYouGetBody: "Akkurat nå sender appen passord-nullstilling og kan støtte oppfølgingsflyt drevet av påminnelser. Gmail OAuth er fortsatt separat fra SMTP-levering.", + settingsNotificationsTitle: "Varslingsinnstillinger", + settingsNotificationsBody: "Velg hvilke påminnelser som skal vises i arbeidsflyten din. SMTP-levering kan kontrolleres fra systemsiden.", + settingsNotificationsDelivery: "SMTP-levering og test-epost ligger under Admin → System → Innstillinger.", + settingsNotificationsFollowUpReminders: "E-postpåminnelser for oppfølginger", + settingsNotificationsGhostedJobs: "E-postvarsler for ghostede jobber", + settingsNotificationsInAppReminders: "Fremhev påminnelser i appen", + settingsAccentHelp: "Dra i fargevelgeren, og lagre når den ser riktig ut.", + settingsAccentInvalid: "Bruk en full hex-farge som #15803D.", settingsCheckSystemStatus: "Sjekk systemstatus", profileTitle: "Profil", profileHeadlinePlaceholder: "Legg til en kort overskrift for å gjøre kontovisningen mer personlig.", @@ -1097,6 +1100,47 @@ export const translations = { profileCvStructureParsed: "CV-strukturen er analysert.", profileCvStructureParseFailed: "Kunne ikke analysere CV-strukturen.", profileCvStructureEmpty: "Ingen analyserte seksjoner ennå.", + profileCvStructuredEditor: "Strukturert CV-redigering", + profileCvStructuredEditorHelp: "Rediger gjenbrukbare CV-data direkte slik at generatorer og matching kan jobbe fra stabile felt i stedet for bare råtekst.", + profileCvContactFullName: "Fullt navn", + profileCvContactHeadline: "Profesjonell overskrift", + profileCvContactEmail: "Kontakt-e-post", + profileCvContactPhone: "Telefon", + profileCvContactLocation: "Sted", + profileCvContactWebsite: "Nettsted", + profileCvContactLinkedIn: "LinkedIn", + profileCvStructuredSummary: "Sammendrags-punkter", + profileCvStructuredSkills: "Kjernekompetanse", + profileCvStructuredInterests: "Interesser", + profileCvStructuredLanguages: "Språk", + profileCvStructuredJobs: "Arbeidserfaring", + profileCvStructuredEducation: "Utdanning", + profileCvStructuredOtherSections: "Andre seksjoner", + profileCvStructuredAddLanguage: "Legg til språk", + profileCvStructuredAddJob: "Legg til jobb", + profileCvStructuredAddEducation: "Legg til utdanning", + profileCvStructuredAddOtherSection: "Legg til seksjon", + profileCvStructuredRemove: "Fjern", + profileCvStructuredListHelp: "Én post per linje.", + profileCvStructuredEmpty: "Ingenting lagt til ennå.", + profileCvLanguageName: "Språk", + profileCvLanguageLevel: "Nivå", + profileCvLanguageNotes: "Notater", + profileCvJobTitle: "Stillingstittel", + profileCvJobCompany: "Selskap", + profileCvJobLocation: "Sted", + profileCvJobStart: "Start", + profileCvJobEnd: "Slutt", + profileCvJobBullets: "Jobbpunkter", + profileCvJobSkills: "Ferdigheter for jobben", + profileCvEducationQualification: "Kvalifikasjon", + profileCvEducationInstitution: "Institusjon", + profileCvEducationLocation: "Sted", + profileCvEducationStart: "Start", + profileCvEducationEnd: "Slutt", + profileCvEducationDetails: "Detaljer om utdanning", + profileCvOtherSectionTitle: "Seksjonstittel", + profileCvOtherSectionItems: "Seksjonsinnhold", profileCvSectionWordCount: "{count} ord", profileCvSectionToolsHelp: "Generer skarpere versjoner av én CV-seksjon om gangen før du limer dem tilbake i hoved-CV-en.", profileCvSectionLabel: "Seksjon", @@ -1377,6 +1421,8 @@ export const translations = { adminAuditActions: "Handlinger", adminAuditNoEvents: "Ingen hendelser.", adminSystemEnvironment: "Miljø", + adminSystemStatusTab: "Status", + adminSystemSettingsTab: "Innstillinger", adminSystemDatabase: "Database", adminSystemConnected: "Tilkoblet", adminSystemOffline: "Frakoblet", @@ -1389,6 +1435,16 @@ export const translations = { adminSystemDatabaseStorage: "Database og lagring", adminSystemRuntimeAuth: "Kjøretid og autentisering", adminSystemEmailConfig: "E-postkonfigurasjon", + adminSystemEmailSettingsTitle: "SMTP-innstillinger", + adminSystemEmailSettingsBody: "Oppdater de effektive SMTP-innstillingene som brukes for passordnullstilling, påminnelser og admin-testepost.", + adminSystemUsername: "SMTP-brukernavn", + adminSystemPassword: "SMTP-passord", + adminSystemPasswordStored: "Et passord er allerede lagret. La dette stå tomt for å beholde det.", + adminSystemPasswordMissing: "Ingen SMTP-passord lagret ennå.", + adminSystemTimeoutMs: "Tidsavbrudd (ms)", + adminSystemClearStoredPassword: "Fjern lagret passord", + adminSystemSaveSettings: "Lagre innstillinger", + adminSystemSaving: "Lagrer...", adminSystemSummarizerRuntime: "AI-kjøretid", adminSystemSmtpTest: "SMTP-test e-post", adminSystemSmtpTestBody: "Send en rask leveringssjekk med de konfigurerte SMTP-innstillingene. La mottakeren stå tom for å bruke admin-eposten din.", diff --git a/job-tracker-ui/src/pages/AdminUsersPage.tsx b/job-tracker-ui/src/pages/AdminUsersPage.tsx index 4e96372..ef85b72 100644 --- a/job-tracker-ui/src/pages/AdminUsersPage.tsx +++ b/job-tracker-ui/src/pages/AdminUsersPage.tsx @@ -12,7 +12,7 @@ import { } from "@mui/material"; import { DataGrid, GridColDef } from "@mui/x-data-grid"; -import { api } from "../api"; +import { api, getApiErrorMessage } from "../api"; import { useToast } from "../toast"; import { useDialogActions } from "../dialogs"; import { useI18n } from "../i18n/I18nProvider"; @@ -215,9 +215,3 @@ export default function AdminUsersPage() { ); } -pography> - ) : null} - - - ); -}