From c5c9677ffcebf3d843033a80a72d1bf7a890c450 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Tue, 7 Apr 2026 01:17:00 +0200 Subject: [PATCH] Add Admin Fonts settings page to install CJK font packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds AdminFontView with package list, install buttons, status indicators and toast notifications backed by /api/v1/fonts/status and /api/v1/fonts/{package}/install. Wires the new admin.settings.fonts lazy route and a Languages-icon menu entry under Admin → Settings. --- resources/scripts-v2/features/admin/routes.ts | 9 ++ .../admin/views/AdminSettingsView.vue | 5 + .../admin/views/settings/AdminFontView.vue | 118 ++++++++++++++++++ 3 files changed, 132 insertions(+) create mode 100644 resources/scripts-v2/features/admin/views/settings/AdminFontView.vue diff --git a/resources/scripts-v2/features/admin/routes.ts b/resources/scripts-v2/features/admin/routes.ts index 00773de3..e295e5d0 100644 --- a/resources/scripts-v2/features/admin/routes.ts +++ b/resources/scripts-v2/features/admin/routes.ts @@ -11,6 +11,7 @@ const AdminMailConfigView = () => import('./views/settings/AdminMailConfigView.v const AdminPdfGenerationView = () => import('./views/settings/AdminPdfGenerationView.vue') const AdminBackupView = () => import('./views/settings/AdminBackupView.vue') const AdminFileDiskView = () => import('./views/settings/AdminFileDiskView.vue') +const AdminFontView = () => import('./views/settings/AdminFontView.vue') const AdminUpdateAppView = () => import('./views/settings/AdminUpdateAppView.vue') export const adminRoutes: RouteRecordRaw[] = [ @@ -107,6 +108,14 @@ export const adminRoutes: RouteRecordRaw[] = [ }, component: AdminFileDiskView, }, + { + path: 'fonts', + name: 'admin.settings.fonts', + meta: { + isSuperAdmin: true, + }, + component: AdminFontView, + }, { path: 'update-app', name: 'admin.settings.update', diff --git a/resources/scripts-v2/features/admin/views/AdminSettingsView.vue b/resources/scripts-v2/features/admin/views/AdminSettingsView.vue index c065e254..03e49a92 100644 --- a/resources/scripts-v2/features/admin/views/AdminSettingsView.vue +++ b/resources/scripts-v2/features/admin/views/AdminSettingsView.vue @@ -88,6 +88,11 @@ const menuItems = computed(() => [ link: '/admin/administration/settings/file-disk', icon: 'FolderIcon', }, + { + title: t('settings.menu_title.fonts'), + link: '/admin/administration/settings/fonts', + icon: 'LanguageIcon', + }, { title: t('settings.menu_title.update_app'), link: '/admin/administration/settings/update-app', diff --git a/resources/scripts-v2/features/admin/views/settings/AdminFontView.vue b/resources/scripts-v2/features/admin/views/settings/AdminFontView.vue new file mode 100644 index 00000000..e0e6abef --- /dev/null +++ b/resources/scripts-v2/features/admin/views/settings/AdminFontView.vue @@ -0,0 +1,118 @@ + + +