diff --git a/app/Actions/Analytics/UserRequest/UI/IndexUserRequestLogs.php b/app/Actions/Analytics/UserRequest/UI/IndexUserRequestLogs.php index b8515a07a0..7d8085839a 100644 --- a/app/Actions/Analytics/UserRequest/UI/IndexUserRequestLogs.php +++ b/app/Actions/Analytics/UserRequest/UI/IndexUserRequestLogs.php @@ -120,7 +120,7 @@ public function getBreadcrumbs($suffix = null): array 'type' => 'simple', 'simple' => [ 'route' => [ - 'name' => 'grp.sysadmin.users.request.index', + 'name' => 'grp.sysadmin.analytics.request.index', ], 'label' => __('User Requests'), 'icon' => 'fal fa-bars', diff --git a/app/Actions/SysAdmin/Group/GetOverview.php b/app/Actions/SysAdmin/Group/GetOverview.php index c7bcbdbc35..8b26c73972 100644 --- a/app/Actions/SysAdmin/Group/GetOverview.php +++ b/app/Actions/SysAdmin/Group/GetOverview.php @@ -63,7 +63,7 @@ public function getSection(Group $group): array [ 'name' => __('User Requests'), 'icon' => 'fal fa-road', - 'route' => route('grp.sysadmin.users.request.index'), + 'route' => route('grp.sysadmin.analytics.request.index'), 'count' => $group->sysadminStats->number_user_requests ?? 0 ], ], diff --git a/app/Actions/SysAdmin/UI/ShowSysAdminAnalyticsDashboard.php b/app/Actions/SysAdmin/UI/ShowSysAdminAnalyticsDashboard.php new file mode 100644 index 0000000000..1fc7822c8f --- /dev/null +++ b/app/Actions/SysAdmin/UI/ShowSysAdminAnalyticsDashboard.php @@ -0,0 +1,81 @@ + + * Created: Sun, 05 Jan 2025 14:59:28 Malaysia Time, Kuala Lumpur, Malaysia + * Copyright (c) 2025, Raul A Perusquia Flores + */ + +namespace App\Actions\SysAdmin\UI; + +use App\Actions\OrgAction; +use App\Actions\UI\Dashboards\ShowGroupDashboard; +use App\Enums\UI\SysAdmin\SysAdminAnalyticsDashboardTabsEnum; +use App\Models\SysAdmin\Group; +use Inertia\Inertia; +use Inertia\Response; +use Lorisleiva\Actions\ActionRequest; + +class ShowSysAdminAnalyticsDashboard extends OrgAction +{ + public function authorize(ActionRequest $request): bool + { + return $request->user()->hasPermissionTo("sysadmin.view"); + } + + + public function handle(Group $group): Group + { + return $group; + } + + public function asController(ActionRequest $request): Group + { + $group = group(); + $this->initialisationFromGroup($group, $request)->withTab(SysAdminAnalyticsDashboardTabsEnum::values()); + + return $this->handle($group); + } + + + public function htmlResponse(Group $group): Response + { + return Inertia::render( + 'SysAdmin/SysAdminAnalyticsDashboard', + [ + 'breadcrumbs' => $this->getBreadcrumbs(), + 'title' => __('System analytics'), + 'pageHead' => [ + 'icon' => [ + 'icon' => ['fal', 'fa-analytics'], + 'title' => __('System analytics') + ], + 'title' => __('System analytics'), + ], + 'tabs' => [ + 'current' => $this->tab, + 'navigation' => SysAdminAnalyticsDashboardTabsEnum::navigation() + ], + ] + ); + } + + public function getBreadcrumbs(): array + { + return + array_merge( + ShowGroupDashboard::make()->getBreadcrumbs(), + [ + [ + 'type' => 'simple', + 'simple' => [ + 'route' => [ + 'name' => 'grp.sysadmin.analytics.dashboard' + ], + 'label' => __('analytics'), + ] + ] + ] + ); + } +} diff --git a/app/Actions/SysAdmin/User/WithUserSubNavigation.php b/app/Actions/SysAdmin/User/WithUserSubNavigation.php index a4453346bc..e5591e7c67 100644 --- a/app/Actions/SysAdmin/User/WithUserSubNavigation.php +++ b/app/Actions/SysAdmin/User/WithUserSubNavigation.php @@ -33,7 +33,7 @@ protected function getUserNavigation(User $user, ActionRequest $request): array [ "label" => __("Visit Logs"), "route" => [ - // "name" => "grp.sysadmin.users.request.index", + // "name" => "grp.sysadmin.analytics.request.index", // "parameters" => [ // 'user' => $user->username // ], diff --git a/app/Actions/UI/Grp/Layout/GetGroupNavigation.php b/app/Actions/UI/Grp/Layout/GetGroupNavigation.php index a64b9f3c1e..b72d745bad 100644 --- a/app/Actions/UI/Grp/Layout/GetGroupNavigation.php +++ b/app/Actions/UI/Grp/Layout/GetGroupNavigation.php @@ -175,7 +175,7 @@ public function handle(User $user): array 'subSections' => [ [ 'label' => __('users'), - 'icon' => ['fal', 'fa-terminal'], + 'icon' => ['fal', 'fa-user-circle'], 'root' => 'grp.sysadmin.users.', 'route' => [ 'name' => 'grp.sysadmin.users.index', @@ -191,6 +191,15 @@ public function handle(User $user): array ] ], + [ + 'label' => __('analytics'), + 'icon' => ['fal', 'fa-analytics'], + 'root' => 'grp.sysadmin.analytics.', + 'route' => [ + 'name' => 'grp.sysadmin.analytics.dashboard', + + ] + ], [ 'label' => __('system settings'), 'icon' => ['fal', 'fa-cog'], diff --git a/resources/js/Pages/Grp/SysAdmin/SysAdminAnalyticsDashboard.vue b/resources/js/Pages/Grp/SysAdmin/SysAdminAnalyticsDashboard.vue new file mode 100644 index 0000000000..03c429a9e8 --- /dev/null +++ b/resources/js/Pages/Grp/SysAdmin/SysAdminAnalyticsDashboard.vue @@ -0,0 +1,56 @@ + + + + + +