From 355eee48922ba351e22a14a39e81dd9df201b592 Mon Sep 17 00:00:00 2001 From: Sallu9007 Date: Wed, 16 Apr 2025 15:32:59 +0530 Subject: [PATCH] Feat: Filter and improved UI --- .../ActivitiesAttendedController.php | 22 +- app/Http/Controllers/AdminController.php | 4 +- .../Controllers/CoordinatorController.php | 5 +- app/Http/Controllers/DepartmentController.php | 6 + app/Http/Controllers/FacultyController.php | 4 +- .../views/activities-attended/index.blade.php | 414 ++++++++++++------ resources/views/layouts/app.blade.php | 226 ++++++++-- 7 files changed, 520 insertions(+), 161 deletions(-) diff --git a/app/Http/Controllers/ActivitiesAttendedController.php b/app/Http/Controllers/ActivitiesAttendedController.php index 5cb600b..cada4f9 100644 --- a/app/Http/Controllers/ActivitiesAttendedController.php +++ b/app/Http/Controllers/ActivitiesAttendedController.php @@ -108,7 +108,7 @@ class ActivitiesAttendedController extends Controller return response()->json(['success' => 'Record deleted successfully']); } - public function getActivitiesAttendedResponses() + public function getActivitiesAttendedResponses(Request $request) { $user = auth()->user(); $isAdmin = $user->role->name === 'Admin'; @@ -130,6 +130,25 @@ class ActivitiesAttendedController extends Controller ->where('faculty_id', $user->id); } + // Apply filters + if ($request->has('department') && !empty($request->department)) { + $responses->whereHas('department', function ($query) use ($request) { + $query->where('id', $request->department); + }); + } + + if ($request->has('category') && !empty($request->category)) { + $responses->where('category', $request->category); + } + + if ($request->has('dateFrom') && !empty($request->dateFrom)) { + $responses->where('start_date', '>=', $request->dateFrom); + } + + if ($request->has('dateTo') && !empty($request->dateTo)) { + $responses->where('end_date', '<=', $request->dateTo); + } + return DataTables::of($responses) ->addColumn('user_name', function ($response) { return $response->user->name ?? 'Unknown'; @@ -175,7 +194,6 @@ class ActivitiesAttendedController extends Controller $deleteRoute = route('activitiesAttended.destroy', $response->id); $actions[] = ''; - return implode(' ', $actions); }) ->rawColumns(['action']) diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 48c68af..0f7846e 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -7,6 +7,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use Yajra\DataTables\Facades\DataTables; use App\Models\ActivitiesAttended; +use App\Models\Department; use Illuminate\Support\Facades\Storage; class AdminController extends Controller @@ -20,7 +21,8 @@ class AdminController extends Controller // View responses submitted by users public function viewActivitiesAttendedResponses() { - return view('activities-attended.index'); + $departments = Department::all(); + return view('activities-attended.index', compact('departments')); } public function viewActivitiesOrganisedResponses() { diff --git a/app/Http/Controllers/CoordinatorController.php b/app/Http/Controllers/CoordinatorController.php index 5feb1e6..632faaa 100644 --- a/app/Http/Controllers/CoordinatorController.php +++ b/app/Http/Controllers/CoordinatorController.php @@ -6,6 +6,7 @@ use Illuminate\Http\Request; use Yajra\DataTables\Facades\DataTables; use Illuminate\Support\Facades\Auth; use App\Models\ActivitiesAttended; +use App\Models\Department; class CoordinatorController extends Controller { @@ -18,7 +19,8 @@ class CoordinatorController extends Controller // View responses submitted by users public function viewActivitiesAttendedResponses() { - return view('activities-attended.index'); + $departments = Department::all(); + return view('activities-attended.index', compact('departments')); } public function viewActivitiesOrganisedResponses() @@ -53,5 +55,4 @@ class CoordinatorController extends Controller { return view('patents.index'); } - } diff --git a/app/Http/Controllers/DepartmentController.php b/app/Http/Controllers/DepartmentController.php index 3133f84..dcb67e8 100644 --- a/app/Http/Controllers/DepartmentController.php +++ b/app/Http/Controllers/DepartmentController.php @@ -73,4 +73,10 @@ class DepartmentController extends Controller $department->delete(); return response()->noContent(); } + + public function getDepartments() + { + $departments = Department::all(); + return response()->json($departments); + } } diff --git a/app/Http/Controllers/FacultyController.php b/app/Http/Controllers/FacultyController.php index aa27aaf..a43a194 100644 --- a/app/Http/Controllers/FacultyController.php +++ b/app/Http/Controllers/FacultyController.php @@ -6,6 +6,7 @@ use Illuminate\Http\Request; use App\Models\ActivitiesAttended; use App\Models\ActivitiesOrganised; use App\Models\BooksPublished; +use App\Models\Department; use App\Models\ExternalEngagement; use App\Models\IvOrganised; use App\Models\OnlineCourse; @@ -29,7 +30,8 @@ class FacultyController extends Controller public function viewActivitiesAttendedResponses() { - return view('activities-attended.index'); + $departments = Department::all(); + return view('activities-attended.index', compact('departments')); } public function ActivitiesOrganisedForm() { diff --git a/resources/views/activities-attended/index.blade.php b/resources/views/activities-attended/index.blade.php index 885aa3b..59f251c 100644 --- a/resources/views/activities-attended/index.blade.php +++ b/resources/views/activities-attended/index.blade.php @@ -1,69 +1,209 @@ @extends('layouts.app') @section('content') -
-
-
-

- All Responses -

-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
IDTitleOrganising InstituteAddressDepartmentFacultyStart DateEnd DateNum DaysActivity TypeCategoryLevelProof
+
+
+
+
+
+

+ All Responses +

+ @if(auth()->user()->role->name === 'Admin') + + @endif +
+
+ +
+
+
+ Department + +
+
+ +
+
+ Category + +
+
+
+
+ Date Range + + to + +
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + +
IDTitleOrganising InstituteAddressDepartmentFacultyStart DateEnd DateDaysActivity TypeCategoryLevelActions
+
+
+ + +@if(auth()->user()->role->name === 'Admin') + +@endif + @endsection @section('scripts') - - - - - - - - - - - - - + - @endsection \ No newline at end of file diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 79bd902..b4cfb67 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -1,37 +1,205 @@ - - - - + + + + - {{ config('app.name', 'Laravel') }} + {{ config('app.name', 'Faculty Portal') }} - - - + + + + + + + + + + + + + + - - @vite(['resources/css/app.css', 'resources/js/app.js']) - - -
- @include('layouts.navigation') + + @vite(['resources/css/app.css', 'resources/js/app.js']) + - - @hasSection('header') -
-
- @yield('header') -
-
- @endif + +
+ @include('layouts.navigation') - -
- @yield('content') -
-
- + + @hasSection('header') +
+
+ @yield('header') +
+
+ @endif + + +
+ @yield('content') +
+ + +
+
+

© {{ date('Y') }} {{ config('app.name', 'Faculty Portal') }}. All rights reserved.

+
+
+
+ + + + + + + + + + + + + + + + + + @yield('scripts') - + + \ No newline at end of file