From 5244fed549ffc357c41cad15b18a06de8c429955 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Wed, 20 Aug 2025 16:43:09 -0700 Subject: [PATCH] feat(Settings): add legal notices page --- admin/app/controllers/settings_controller.ts | 4 +++ admin/inertia/layouts/SettingsLayout.tsx | 2 ++ admin/inertia/pages/settings/legal.tsx | 34 ++++++++++++++++++++ admin/start/routes.ts | 1 + 4 files changed, 41 insertions(+) create mode 100644 admin/inertia/pages/settings/legal.tsx diff --git a/admin/app/controllers/settings_controller.ts b/admin/app/controllers/settings_controller.ts index c59b625..eb8a165 100644 --- a/admin/app/controllers/settings_controller.ts +++ b/admin/app/controllers/settings_controller.ts @@ -26,6 +26,10 @@ export default class SettingsController { }); } + async legal({ inertia }: HttpContext) { + return inertia.render('settings/legal'); + } + async zim({ inertia }: HttpContext) { return inertia.render('settings/zim/index') } diff --git a/admin/inertia/layouts/SettingsLayout.tsx b/admin/inertia/layouts/SettingsLayout.tsx index 94779db..186b856 100644 --- a/admin/inertia/layouts/SettingsLayout.tsx +++ b/admin/inertia/layouts/SettingsLayout.tsx @@ -4,10 +4,12 @@ import { FolderIcon, MagnifyingGlassIcon, } from '@heroicons/react/24/outline' +import { IconGavel } from '@tabler/icons-react' import StyledSidebar from '~/components/StyledSidebar' const navigation = [ { name: 'Apps', href: '/settings/apps', icon: CommandLineIcon, current: false }, + { name: 'Legal Notices', href: '/settings/legal', icon: IconGavel, current: false }, { name: 'ZIM Manager', href: '/settings/zim', icon: FolderIcon, current: false }, { name: 'Zim Remote Explorer', diff --git a/admin/inertia/pages/settings/legal.tsx b/admin/inertia/pages/settings/legal.tsx new file mode 100644 index 0000000..aeb1945 --- /dev/null +++ b/admin/inertia/pages/settings/legal.tsx @@ -0,0 +1,34 @@ +import { Head } from '@inertiajs/react' +import SettingsLayout from '~/layouts/SettingsLayout' + +export default function SettingsPage() { + return ( + + +
+
+

Legal Notices

+

License Agreement & Terms of Use

+

Copyright 2025 Crosstalk Solutions, LLC

+

+ Permission is hereby granted, free of charge, to any person obtaining a copy of this + software and associated documentation files (the “Software”), to deal in the Software + without restriction, including without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to the following + conditions: The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. +

+

+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT + OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. +

+
+
+
+ ) +} diff --git a/admin/start/routes.ts b/admin/start/routes.ts index 3d87420..3d6f650 100644 --- a/admin/start/routes.ts +++ b/admin/start/routes.ts @@ -23,6 +23,7 @@ router.on('/about').renderInertia('about') router.group(() => { router.get('/system', [SettingsController, 'system']) router.get('/apps', [SettingsController, 'apps']) + router.get('/legal', [SettingsController, 'legal']) router.get('/zim', [SettingsController, 'zim']) router.get('/zim/remote-explorer', [SettingsController, 'zimRemote']) }).prefix('/settings')