From 227ae7e96dc769cafbc8cb94cd5cf4d77ed78438 Mon Sep 17 00:00:00 2001 From: Ism1tha Date: Mon, 17 Feb 2025 12:38:25 +0100 Subject: [PATCH 01/47] feat(admin): add controllers for managing users, contracts, resources, task types, and tree types; update WorkOrder model relationship --- .../Controllers/Admin/ContractController.php | 16 +++ .../Admin/ElementTypeController.php | 16 +++ .../Controllers/Admin/ResourceController.php | 16 +++ .../Admin/ResourceTypeController.php | 16 +++ .../Controllers/Admin/StatsController.php | 11 ++ .../Controllers/Admin/TaskTypeController.php | 16 +++ .../Controllers/Admin/TreeTypeController.php | 16 +++ app/Http/Controllers/Admin/UserController.php | 16 +++ .../Controllers/Admin/WorkOrderController.php | 16 +++ .../ts/components/Admin/Dashboard/Stats.tsx | 4 +- .../ts/components/Admin/Dashboard/Welcome.tsx | 2 +- resources/ts/layouts/AdminLayout.tsx | 113 +++++++++--------- resources/ts/pages/Admin/Contracts.tsx | 53 ++++++++ resources/ts/pages/Admin/ElementTypes.tsx | 52 ++++++++ resources/ts/pages/Admin/ResourceTypes.tsx | 49 ++++++++ resources/ts/pages/Admin/Resources.tsx | 50 ++++++++ resources/ts/pages/Admin/Stats.tsx | 36 ++++++ resources/ts/pages/Admin/TaskTypes.tsx | 49 ++++++++ resources/ts/pages/Admin/TreeTypes.tsx | 50 ++++++++ resources/ts/pages/Admin/Users.tsx | 64 +++++++++- resources/ts/pages/Admin/WorkOrders.tsx | 50 ++++++++ resources/ts/routes/AdminRoutes.tsx | 96 +++++++++++++++ routes/api.php | 18 ++- 23 files changed, 766 insertions(+), 59 deletions(-) create mode 100644 app/Http/Controllers/Admin/ContractController.php create mode 100644 app/Http/Controllers/Admin/ElementTypeController.php create mode 100644 app/Http/Controllers/Admin/ResourceController.php create mode 100644 app/Http/Controllers/Admin/ResourceTypeController.php create mode 100644 app/Http/Controllers/Admin/StatsController.php create mode 100644 app/Http/Controllers/Admin/TaskTypeController.php create mode 100644 app/Http/Controllers/Admin/TreeTypeController.php create mode 100644 app/Http/Controllers/Admin/UserController.php create mode 100644 app/Http/Controllers/Admin/WorkOrderController.php create mode 100644 resources/ts/pages/Admin/Contracts.tsx create mode 100644 resources/ts/pages/Admin/ElementTypes.tsx create mode 100644 resources/ts/pages/Admin/ResourceTypes.tsx create mode 100644 resources/ts/pages/Admin/Resources.tsx create mode 100644 resources/ts/pages/Admin/Stats.tsx create mode 100644 resources/ts/pages/Admin/TaskTypes.tsx create mode 100644 resources/ts/pages/Admin/TreeTypes.tsx create mode 100644 resources/ts/pages/Admin/WorkOrders.tsx diff --git a/app/Http/Controllers/Admin/ContractController.php b/app/Http/Controllers/Admin/ContractController.php new file mode 100644 index 0000000..e87460e --- /dev/null +++ b/app/Http/Controllers/Admin/ContractController.php @@ -0,0 +1,16 @@ + (
+ className="bg-white rounded p-6 flex flex-col items-center text-center border border-gray-300">

Loading...

0

@@ -69,7 +69,7 @@ export function Stats() { {statsData.map((item) => (
+ className="bg-white rounded p-6 flex flex-col items-center text-center border border-gray-300">
diff --git a/resources/ts/components/Admin/Dashboard/Welcome.tsx b/resources/ts/components/Admin/Dashboard/Welcome.tsx index 06c3965..fe343c6 100644 --- a/resources/ts/components/Admin/Dashboard/Welcome.tsx +++ b/resources/ts/components/Admin/Dashboard/Welcome.tsx @@ -7,7 +7,7 @@ export function Welcome() { const { user } = useAuth(); const { t } = useI18n(); return ( -
+
diff --git a/resources/ts/layouts/AdminLayout.tsx b/resources/ts/layouts/AdminLayout.tsx index bc88d39..6be60ec 100644 --- a/resources/ts/layouts/AdminLayout.tsx +++ b/resources/ts/layouts/AdminLayout.tsx @@ -76,9 +76,29 @@ const AdminLayout: React.FC = ({
+ className={`${menuOpen ? '' : 'hidden'} md:hidden px-8 py-6 bg-gray-100`}> - {' '} + {' '} {t('admin.menu.management')} + + {' '} + {t('admin.menu.settings')} + - {' '} + {' '} {t('admin.menu.inventory')}
@@ -189,8 +195,8 @@ const AdminLayout: React.FC = ({ ); }; From ac7b7c2bafaed46347adc98fbd9b84943124fddc Mon Sep 17 00:00:00 2001 From: Ism1tha Date: Mon, 17 Feb 2025 21:02:45 +0100 Subject: [PATCH 19/47] fix(AdminLayout): update document title handling to use useEffect for better performance --- resources/ts/layouts/AdminLayout.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/resources/ts/layouts/AdminLayout.tsx b/resources/ts/layouts/AdminLayout.tsx index 9a9da7f..eb334f5 100644 --- a/resources/ts/layouts/AdminLayout.tsx +++ b/resources/ts/layouts/AdminLayout.tsx @@ -26,9 +26,12 @@ const AdminLayout: React.FC = ({ currentContract, }) => { const { t } = useI18n(); - document.title = titleI18n - ? `${t(titleI18n)} - ${import.meta.env.VITE_APP_NAME}` - : import.meta.env.VITE_APP_NAME; + + useEffect(() => { + document.title = titleI18n + ? `${t(titleI18n)} - ${import.meta.env.VITE_APP_NAME}` + : import.meta.env.VITE_APP_NAME; + }, [titleI18n, t]); const location = useLocation(); From 6166880b88dda659754ddd368fccdc226b3f20ce Mon Sep 17 00:00:00 2001 From: Ism1tha Date: Mon, 17 Feb 2025 21:10:32 +0100 Subject: [PATCH 20/47] feat(Error): add icon prop to Error component for customizable error display --- resources/ts/AppRoutes.tsx | 2 +- resources/ts/pages/Error.tsx | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/resources/ts/AppRoutes.tsx b/resources/ts/AppRoutes.tsx index 32a7228..e5e0321 100644 --- a/resources/ts/AppRoutes.tsx +++ b/resources/ts/AppRoutes.tsx @@ -19,7 +19,7 @@ export default function AppRoutes() { ...routesConfig, { path: '*', - element: , + element: , }, ]); } diff --git a/resources/ts/pages/Error.tsx b/resources/ts/pages/Error.tsx index b758896..a99ade9 100644 --- a/resources/ts/pages/Error.tsx +++ b/resources/ts/pages/Error.tsx @@ -5,15 +5,17 @@ import { Button } from 'primereact/button'; import { Icon } from '@iconify/react'; interface ErrorProps { + icon?: string; errorCode?: string; } -export default function Error({ errorCode }: ErrorProps) { +export default function Error({ icon, errorCode }: ErrorProps) { const { t } = useTranslation(); return (
-

+ {icon && } +

{t('public.error.title', { errorCode })}

From 9d7b65fec2578f9987ce091468d0f5e958697c1a Mon Sep 17 00:00:00 2001 From: Ism1tha Date: Mon, 17 Feb 2025 21:13:18 +0100 Subject: [PATCH 21/47] fix(Stats): update chart height for improved visibility and adjust background color --- resources/ts/pages/Admin/Manage/Stats.tsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/resources/ts/pages/Admin/Manage/Stats.tsx b/resources/ts/pages/Admin/Manage/Stats.tsx index b5c1d4e..098b870 100644 --- a/resources/ts/pages/Admin/Manage/Stats.tsx +++ b/resources/ts/pages/Admin/Manage/Stats.tsx @@ -6,8 +6,7 @@ export default function Users() { datasets: [ { label: 'Demo Data', - backgroundColor: '#42A5F5', - borderColor: '#1E88E5', + backgroundColor: '#4f46e5', data: [65, 59, 80, 81, 56, 55, 40], }, ], @@ -27,22 +26,22 @@ export default function Users() {

+ style={{ height: '300px' }}>
+ style={{ height: '300px' }}>
+ style={{ height: '300px' }}>
+ style={{ height: '300px' }}>
From 9b57da6d8c69638d26286d8d7c7f1dec8cf27f54 Mon Sep 17 00:00:00 2001 From: Ism1tha Date: Mon, 17 Feb 2025 21:15:39 +0100 Subject: [PATCH 22/47] fix(LangSelector): update language display to uppercase and adjust width for better layout --- resources/ts/components/LangSelector.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/ts/components/LangSelector.tsx b/resources/ts/components/LangSelector.tsx index d5be54e..24c1d79 100644 --- a/resources/ts/components/LangSelector.tsx +++ b/resources/ts/components/LangSelector.tsx @@ -25,7 +25,7 @@ export default function LangSelector({ className }: LangSelectorProps) { height="20" style={{ marginRight: '8px' }} /> - {option.label} + {option.value.toUpperCase()}

); }; @@ -41,7 +41,7 @@ export default function LangSelector({ className }: LangSelectorProps) { onChange={(e) => setLanguage(e.value)} itemTemplate={languageTemplate} valueTemplate={selectedLanguageTemplate} - className={className ? className : 'w-40'} + className={className ? className : 'w-32'} /> ); } From fbf2d0eed9ae778e002038587c0aabcfdc67d054 Mon Sep 17 00:00:00 2001 From: Ism1tha Date: Mon, 17 Feb 2025 21:18:21 +0100 Subject: [PATCH 23/47] fix(AdminLayout): adjust contract button width for improved layout --- resources/ts/layouts/AdminLayout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/ts/layouts/AdminLayout.tsx b/resources/ts/layouts/AdminLayout.tsx index eb334f5..b295eb1 100644 --- a/resources/ts/layouts/AdminLayout.tsx +++ b/resources/ts/layouts/AdminLayout.tsx @@ -117,7 +117,7 @@ const AdminLayout: React.FC = ({ Date: Mon, 17 Feb 2025 21:22:18 +0100 Subject: [PATCH 24/47] fix(AdminLayout): update responsive visibility for navigation elements --- resources/ts/layouts/AdminLayout.tsx | 47 +++++++++++++++++----------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/resources/ts/layouts/AdminLayout.tsx b/resources/ts/layouts/AdminLayout.tsx index b295eb1..aae76d3 100644 --- a/resources/ts/layouts/AdminLayout.tsx +++ b/resources/ts/layouts/AdminLayout.tsx @@ -80,7 +80,7 @@ const AdminLayout: React.FC = ({
-
- + className={`${menuOpen ? '' : 'hidden'} lg:hidden px-8 py-6 bg-gray-100`}> + {' '} {t('admin.menu.management')} - - + + {' '} {t('admin.menu.settings')} - - + + {' '} {t('admin.menu.inventory')} - +
= ({