admin frontend elkezdése, járművek tisztázása, frontend fejleszts

This commit is contained in:
Roo
2026-06-15 18:52:38 +00:00
parent ef8df9608c
commit 213ba3b0f1
80 changed files with 11615 additions and 2304 deletions

View File

@@ -33,6 +33,10 @@ export default {
close: 'Close',
noCompanies: 'No companies yet',
newCompany: ' New Company',
joinCompany: '🔗 Join Company',
createCompany: ' Create Company',
actions: 'Actions',
garageSelector: 'Garage Selector',
myCompany: '🏢 My Company',
myCompanies: '🏢 My Companies',
personalGarage: '👤 Personal Garage',
@@ -50,6 +54,8 @@ export default {
regionSettings: 'Region Settings',
regionDescription: 'Date, time & currency format',
dashboard: 'Dashboard',
menu: 'Menu',
adminCenter: '🔐 Admin Center',
},
dashboard: {
loading: 'Loading...',
@@ -126,6 +132,20 @@ export default {
registerFailed: 'Registration failed.',
resendFailed: 'Resend failed. Please try again later.',
forgotFailed: 'An error occurred while sending the request. Please try again.',
// Account Restore (30-day)
restoreLink: 'Restore deleted account',
restoreTitle: 'Restore Deleted Account',
restoreStep1: 'Enter your email address to request a restoration code.',
restoreStep2: 'Enter the received code and your new password.',
restoreEmailLabel: 'Email Address',
restoreSendCode: 'Send Restoration Code',
restoreOtpLabel: 'Restoration Code (6 digits)',
restoreNewPassword: 'New Password',
restoreVerifyButton: 'Restore Account',
restoreSuccess: 'Your account has been successfully restored! Auto-logging in...',
restoreError: 'Restoration failed. Please try again.',
restoreNotFound: 'No deleted account found with this email address.',
restoreCodeSent: 'The restoration code has been sent to your email!',
},
profile: {
title: 'Profile Settings',
@@ -205,6 +225,18 @@ export default {
currencyHUF: 'HUF (Ft)',
currencyEUR: 'EUR (€)',
currencyUSD: 'USD ($)',
// Delete Account
deleteAccount: 'Delete Account',
deleteAccountConfirm: 'Are you sure you want to delete your account?',
deleteAccountWarning: 'Are you sure you want to delete your account? This action is permanent and cannot be undone.',
deleteAccountReason: 'Why do you want to delete your account? (optional)',
deleteAccountButton: 'Yes, delete my account',
deleteAccountCancel: 'Cancel',
deleteSuccess: 'Your account has been successfully deleted. Redirecting...',
deleteError: 'An error occurred while deleting your account.',
// Last Admin Warning
lastAdminWarningTitle: '⚠️ Last Admin Warning',
lastAdminWarning: 'Warning! You are the last active administrator of your company. Deleting your account will put company data and fleet into passive (orphan) state!',
// Back
backToGarage: 'Back to Garage',
// Diagnostic
@@ -283,6 +315,23 @@ export default {
quickActionsTitle: 'Quick Actions',
quickNewWaybill: 'New Waybill',
quickReportIssue: 'Report Issue',
// Organization Settings
companyDataTitle: 'Company Data',
companyDataMenu: 'Company Data',
close: 'Close',
settingsTitle: 'Company Settings',
settingsDescription: 'Edit company details',
settingsModalTitle: 'Edit Company Details',
settingsName: 'Company Name (short)',
settingsFullName: 'Full Company Name',
settingsTaxNumber: 'Tax Number',
settingsDisplayName: 'Display Name',
settingsAddressZip: 'ZIP Code',
settingsAddressCity: 'City',
settingsAddressStreet: 'Street',
settingsAddressHouseNumber: 'House Number',
settingsSaveSuccess: 'Company details updated successfully!',
settingsSaveError: 'Error saving company details.',
// CompanyOnboardingView
onboardingTitle: 'Company Registration — 3 simple steps',
stepLegal: 'Company Data',
@@ -341,6 +390,25 @@ export default {
submitError: 'Company creation failed. Please try again.',
// Success
successMessage: 'Company created successfully! Redirecting to garage...',
// Smart Company Claiming / Joining
activeExistsPanel: 'This company is already registered in the system.',
joinRequestButton: 'Send Join Request',
joinRequestSent: 'Your join request has been sent to the company administrator!',
orphanedPanel: 'This company was previously registered but is currently inactive. You can claim it.',
claimRequestButton: 'Request Company Claim',
claimCodeSent: 'The claim code has been sent to the company\'s official email!',
claimVerifyTitle: 'Verify Claim',
claimOtpLabel: 'Claim Code (6 digits)',
claimVerifyButton: 'Confirm Claim',
claimSuccess: 'Company successfully assigned to your account!',
claimError: 'Claim failed. Please try again.',
manualFallbackTitle: '📄 Manual Claim (Upload Documents)',
manualFallbackDescription: 'If none of the above options work, upload documents (e.g., court ruling, signature specimen) for manual admin approval.',
uploadDocumentLabel: 'Upload Document',
uploadDocumentButton: 'Choose File',
manualSubmitButton: 'Submit Claim',
manualSubmitSuccess: 'Your request has been submitted for admin approval!',
domainMismatch: 'Your email domain does not match the company\'s domain. Please use the manual claim option.',
},
organization: {
backToPrivate: '⬅️ Back to Private Garage',
@@ -353,4 +421,139 @@ export default {
hrsz: 'Parcel No.: {value}',
placeholder: '—',
},
admin: {
services: {
title: 'Services',
subtitle: 'Manage service catalog entries, credit costs, and availability',
create_button: 'Create New Service',
refresh: 'Refresh',
loading: 'Loading services...',
empty: 'No services found',
empty_hint: 'Create your first service to get started.',
badge_inactive: 'Inactive',
credit_cost_label: 'Credit Cost',
credit_unit: 'credits',
edit_button: 'Edit',
deactivate_button: 'Deactivate',
activate_button: 'Activate',
// Modal
modal_edit_title: 'Edit Service',
modal_create_title: 'Create New Service',
field_code: 'Service Code',
field_code_placeholder: 'e.g. SRV_DATA_EXPORT',
field_name: 'Service Name',
field_name_placeholder: 'e.g. Data Export',
field_description: 'Description',
field_description_placeholder: 'Describe what this service does...',
field_credit_cost: 'Credit Cost',
cancel: 'Cancel',
saving: 'Saving...',
save_changes: 'Save Changes',
create: 'Create Service',
},
packages: {
title: 'Subscription Packages',
subtitle: 'Manage subscription tiers, pricing, and entitlements',
create_button: 'Create New Package',
show_hidden: 'Show inactive packages',
refresh: 'Refresh',
loading: 'Loading packages...',
empty: 'No packages found',
empty_hint: 'Create your first subscription package to get started.',
badge_inactive: 'Inactive',
badge_custom: 'Custom',
type_private: 'Private',
type_corporate: 'Corporate',
monthly: 'Monthly',
yearly: 'Yearly',
max_vehicles_label: 'Max Vehicles',
max_garages_label: 'Max Garages',
free_credits_label: 'Free Credits / mo',
edit_button: 'Edit',
delete_button: 'Deactivate',
// Modal
modal_edit_title: 'Edit Package',
modal_create_title: 'Create New Package',
field_name: 'Package Name',
field_name_placeholder: 'e.g. private_pro_v2',
field_type: 'Package Type',
field_monthly_price: 'Monthly Price',
field_yearly_price: 'Yearly Price',
field_currency: 'Currency',
field_max_vehicles: 'Max Vehicles',
field_max_garages: 'Max Garages',
field_free_credits: 'Free Credits / Month',
field_commission_rate: 'Commission Rate (%)',
field_referral_bonus: 'Referral Bonus (credits)',
field_credit_price: 'Price (Credits)',
field_is_public: 'Active / Inactive',
field_available_until: 'Expiry Date',
active: 'Active',
inactive: 'Inactive',
date_from_label: 'Date From',
date_until_label: 'Date Until',
field_entitlements: 'Services (Entitlements)',
entitlement_placeholder: 'Select a service to add...',
cancel: 'Cancel',
saving: 'Saving...',
save_changes: 'Save Changes',
create: 'Create Package',
},
users: {
// Search & Filters
search_category_all: 'All',
search_category_email: 'E-mail',
search_category_name: 'Name',
search_category_phone: 'Phone',
search_category_id: 'ID',
search_category_address: 'Address',
search_placeholder: 'Search...',
search_button: 'Search',
clear_search: 'Clear search',
filter_all_roles: 'All Roles',
filter_all_status: 'All Status',
status_active: 'Active',
status_inactive: 'Inactive',
status_deleted: 'Deleted',
refresh: 'Refresh',
// Bulk actions
n_selected: '{count} user(s) selected',
bulk_ban: 'Ban',
bulk_unban: 'Unban',
bulk_soft_delete: 'Soft Delete',
bulk_restore: 'Restore',
bulk_hard_delete: 'Hard Delete',
clear_selection: 'Clear Selection',
loading: 'Loading...',
// Table columns
col_email: 'E-mail',
col_name: 'Name',
col_phone: 'Phone',
col_address: 'Address',
col_role: 'Role',
col_status: 'Status',
col_subscription: 'Subscription',
col_region: 'Region',
col_created: 'Created',
col_actions: 'Actions',
// Individual actions (kebab menu)
actions: 'Actions',
action_edit: 'Edit',
action_password_reset: 'Password Reset E-mail',
action_ban: 'Ban',
action_unban: 'Unban',
action_soft_delete: 'Soft Delete',
action_restore: 'Restore',
action_hard_delete: 'Hard Delete',
// Empty states
empty_search: 'No users match your search',
empty_search_hint: 'Try a different search category or term.',
empty_no_users: 'No users in the database yet.',
// Pagination
showing_of: 'Showing {showing} of {total} users',
pagination_prev: 'Previous',
pagination_next: 'Next',
pagination_page: 'Page {current} of {total}',
},
},
}

View File

@@ -33,6 +33,10 @@ export default {
close: 'Bezárás',
noCompanies: 'Még nincs céged',
newCompany: ' Új cég',
joinCompany: '🔗 Csatlakozás céghez',
createCompany: ' Cég létrehozása',
actions: 'Műveletek',
garageSelector: 'Garázs választó',
myCompany: '🏢 Cégem',
myCompanies: '🏢 Cégeim',
personalGarage: '👤 Személyes Garázs',
@@ -50,6 +54,8 @@ export default {
regionSettings: 'Területi beállítások',
regionDescription: 'Dátum, idő és pénznem formátum',
dashboard: 'Irányítópult',
menu: 'Menü',
adminCenter: '🔐 Adminisztrációs Központ',
},
dashboard: {
loading: 'Betöltés...',
@@ -126,6 +132,20 @@ export default {
registerFailed: 'Regisztráció sikertelen.',
resendFailed: 'Az újraküldés sikertelen. Kérlek próbáld újra később.',
forgotFailed: 'Hiba történt a kérelem elküldésekor. Kérlek próbáld újra.',
// Account Restore (30-day)
restoreLink: 'Törölt fiók visszaállítása',
restoreTitle: 'Törölt fiók visszaállítása',
restoreStep1: 'Add meg az e-mail címed, és kérj egy visszaállítási kódot.',
restoreStep2: 'Add meg a kapott kódot és az új jelszavadat.',
restoreEmailLabel: 'E-mail cím',
restoreSendCode: 'Visszaállítási kód küldése',
restoreOtpLabel: 'Visszaállítási kód (6 számjegy)',
restoreNewPassword: 'Új jelszó',
restoreVerifyButton: 'Fiók visszaállítása',
restoreSuccess: 'A fiókod sikeresen visszaállításra került! Automatikus bejelentkezés...',
restoreError: 'A visszaállítás sikertelen. Kérlek próbáld újra.',
restoreNotFound: 'Nem található törölt fiók ezzel az e-mail címmel.',
restoreCodeSent: 'A visszaállítási kódot elküldtük az e-mail címedre!',
},
profile: {
title: 'Profil beállítások',
@@ -205,6 +225,18 @@ export default {
currencyHUF: 'HUF (Ft)',
currencyEUR: 'EUR (€)',
currencyUSD: 'USD ($)',
// Delete Account
deleteAccount: 'Fiók törlése',
deleteAccountConfirm: 'Biztosan törölni szeretnéd a fiókodat?',
deleteAccountWarning: 'Biztosan törölni szeretnéd a fiókodat? Ez a művelet végleges és nem vonható vissza.',
deleteAccountReason: 'Miért szeretnéd törölni a fiókodat? (opcionális)',
deleteAccountButton: 'Igen, töröld a fiókomat',
deleteAccountCancel: 'Mégsem',
deleteSuccess: 'A fiókod sikeresen törlésre került. Átirányítás...',
deleteError: 'Hiba történt a fiók törlése során.',
// Last Admin Warning
lastAdminWarningTitle: '⚠️ Utolsó adminisztrátor figyelmeztetés',
lastAdminWarning: 'Figyelem! Te vagy a céged utolsó aktív adminisztrátora. A fiókod törlésével a cég adatai és flottája passzív (árva) állapotba kerül!',
// Back
backToGarage: 'Vissza a Garázsba',
// Diagnostic
@@ -283,6 +315,23 @@ export default {
quickActionsTitle: 'Gyorsműveletek',
quickNewWaybill: 'Új menetlevél',
quickReportIssue: 'Hiba bejelentése',
// Organization Settings
companyDataTitle: 'Cég adatai',
companyDataMenu: 'Cég adatai',
close: 'Bezárás',
settingsTitle: 'Cég beállítások',
settingsDescription: 'Cégadatok szerkesztése',
settingsModalTitle: 'Cégadatok szerkesztése',
settingsName: 'Cégnév (rövid)',
settingsFullName: 'Teljes cégnév',
settingsTaxNumber: 'Adószám',
settingsDisplayName: 'Megjelenítendő név',
settingsAddressZip: 'Irányítószám',
settingsAddressCity: 'Város',
settingsAddressStreet: 'Utca',
settingsAddressHouseNumber: 'Házszám',
settingsSaveSuccess: 'Cégadatok sikeresen frissítve!',
settingsSaveError: 'Hiba a cégadatok mentése során.',
// CompanyOnboardingView
onboardingTitle: 'Cég Regisztráció — 3 egyszerű lépésben',
stepLegal: 'Cégadatok',
@@ -341,6 +390,25 @@ export default {
submitError: 'A cég létrehozása sikertelen. Kérlek próbáld újra.',
// Success
successMessage: 'A cég sikeresen létrejött! Átirányítás a garázsba...',
// Smart Company Claiming / Joining
activeExistsPanel: 'Ez a cég már regisztrálva van a rendszerben.',
joinRequestButton: 'Csatlakozási kérelem küldése',
joinRequestSent: 'A csatlakozási kérelmet elküldtük a cég adminisztrátorának!',
orphanedPanel: 'Ez a cég korábban regisztrálva volt, de jelenleg inaktív. Igényelheted a céget.',
claimRequestButton: 'Cég igénylésének kérése',
claimCodeSent: 'Az igénylési kódot elküldtük a cég hivatalos e-mail címére!',
claimVerifyTitle: 'Igénylés ellenőrzése',
claimOtpLabel: 'Igénylési kód (6 számjegy)',
claimVerifyButton: 'Igénylés megerősítése',
claimSuccess: 'A cég sikeresen hozzárendelve a fiókodhoz!',
claimError: 'Az igénylés sikertelen. Kérlek próbáld újra.',
manualFallbackTitle: '📄 Kézi igénylés (dokumentumok feltöltése)',
manualFallbackDescription: 'Ha a fenti lehetőségek egyike sem működik, tölts fel dokumentumokat (pl. bírósági végzés, aláírási címpéldány) a manuális adminisztrátori jóváhagyáshoz.',
uploadDocumentLabel: 'Dokumentum feltöltése',
uploadDocumentButton: 'Fájl kiválasztása',
manualSubmitButton: 'Igénylés elküldése',
manualSubmitSuccess: 'A kérelmet elküldtük adminisztrátori jóváhagyásra!',
domainMismatch: 'Az e-mail címed domainje nem egyezik a cég domainjével. Kérlek használd a kézi igénylést.',
},
organization: {
backToPrivate: '⬅️ Vissza a Privát Garázsba',
@@ -353,4 +421,139 @@ export default {
hrsz: 'Hrsz.: {value}',
placeholder: '—',
},
admin: {
services: {
title: 'Szolgáltatások',
subtitle: 'Szolgáltatás katalógus bejegyzések, kredit árak és elérhetőség kezelése',
create_button: 'Új Szolgáltatás',
refresh: 'Frissítés',
loading: 'Szolgáltatások betöltése...',
empty: 'Nincsenek szolgáltatások',
empty_hint: 'Hozd létre az első szolgáltatást a kezdéshez.',
badge_inactive: 'Inaktív',
credit_cost_label: 'Kredit Ár',
credit_unit: 'kredit',
edit_button: 'Szerkesztés',
deactivate_button: 'Inaktívvá tétel',
activate_button: 'Aktiválás',
// Modal
modal_edit_title: 'Szolgáltatás Szerkesztése',
modal_create_title: 'Új Szolgáltatás Létrehozása',
field_code: 'Szolgáltatás Kód',
field_code_placeholder: 'pl. SRV_DATA_EXPORT',
field_name: 'Szolgáltatás Neve',
field_name_placeholder: 'pl. Adat Export',
field_description: 'Leírás',
field_description_placeholder: 'Írd le, mit nyújt ez a szolgáltatás...',
field_credit_cost: 'Kredit Ár',
cancel: 'Mégsem',
saving: 'Mentés...',
save_changes: 'Változások Mentése',
create: 'Szolgáltatás Létrehozása',
},
packages: {
title: 'Előfizetési Csomagok',
subtitle: 'Előfizetési csomagok, árak és jogosultságok kezelése',
create_button: 'Új Csomag Létrehozása',
show_hidden: 'Inaktív csomagok mutatása',
refresh: 'Frissítés',
loading: 'Csomagok betöltése...',
empty: 'Nincsenek csomagok',
empty_hint: 'Hozd létre az első előfizetési csomagot a kezdéshez.',
badge_inactive: 'Inaktív',
badge_custom: 'Egyedi',
type_private: 'Privát',
type_corporate: 'Vállalati',
monthly: 'Havi',
yearly: 'Éves',
max_vehicles_label: 'Max. Jármű',
max_garages_label: 'Max. Garázs',
free_credits_label: 'Ingyenes kredit / hó',
edit_button: 'Szerkesztés',
delete_button: 'Kivezetés',
// Modal
modal_edit_title: 'Csomag Szerkesztése',
modal_create_title: 'Új Csomag Létrehozása',
field_name: 'Csomag Neve',
field_name_placeholder: 'pl. private_pro_v2',
field_type: 'Csomag Típusa',
field_monthly_price: 'Havi Díj',
field_yearly_price: 'Éves Díj',
field_currency: 'Pénznem',
field_max_vehicles: 'Max. Járművek',
field_max_garages: 'Max. Garázsok',
field_free_credits: 'Ingyenes Kredit / Hó',
field_commission_rate: 'Jutalék (%)',
field_referral_bonus: 'Ajánlási Bónusz (kredit)',
field_credit_price: 'Ár (Kredit)',
field_is_public: 'Aktív / Inaktív',
field_available_until: 'Lejárat Dátuma',
active: 'Aktív',
inactive: 'Inaktív',
date_from_label: 'Dátum tól',
date_until_label: 'Dátum ig',
field_entitlements: 'Szolgáltatások (Jogosultságok)',
entitlement_placeholder: 'Válassz egy szolgáltatást...',
cancel: 'Mégsem',
saving: 'Mentés...',
save_changes: 'Változások Mentése',
create: 'Csomag Létrehozása',
},
users: {
// Search & Filters
search_category_all: 'Mind',
search_category_email: 'E-mail',
search_category_name: 'Név',
search_category_phone: 'Telefon',
search_category_id: 'Azonosító',
search_category_address: 'Cím',
search_placeholder: 'Keresés...',
search_button: 'Keresés',
clear_search: 'Keresés törlése',
filter_all_roles: 'Összes szerepkör',
filter_all_status: 'Összes állapot',
status_active: 'Aktív',
status_inactive: 'Inaktív',
status_deleted: 'Törölt',
refresh: 'Frissítés',
// Bulk actions
n_selected: '{count} felhasználó kiválasztva',
bulk_ban: 'Tiltás',
bulk_unban: 'Tiltás feloldása',
bulk_soft_delete: 'Lágy törlés',
bulk_restore: 'Visszaállítás',
bulk_hard_delete: 'Végleges törlés',
clear_selection: 'Kijelölés törlése',
loading: 'Betöltés...',
// Table columns
col_email: 'E-mail',
col_name: 'Név',
col_phone: 'Telefon',
col_address: 'Cím',
col_role: 'Szerepkör',
col_status: 'Állapot',
col_subscription: 'Előfizetés',
col_region: 'Régió',
col_created: 'Létrehozva',
col_actions: 'Műveletek',
// Individual actions (kebab menu)
actions: 'Műveletek',
action_edit: 'Szerkesztés',
action_password_reset: 'Jelszó visszaállító e-mail',
action_ban: 'Tiltás',
action_unban: 'Tiltás feloldása',
action_soft_delete: 'Lágy törlés',
action_restore: 'Visszaállítás',
action_hard_delete: 'Végleges törlés',
// Empty states
empty_search: 'Nincs a keresésnek megfelelő felhasználó',
empty_search_hint: 'Próbáld meg más keresési kategóriával vagy kifejezéssel.',
empty_no_users: 'Még nincsenek felhasználók az adatbázisban.',
// Pagination
showing_of: '{showing} / {total} felhasználó',
pagination_prev: 'Előző',
pagination_next: 'Következő',
pagination_page: '{current}. oldal / {total}',
},
},
}