Feat: Filter and improved UI

This commit is contained in:
Sallu9007
2025-04-16 15:32:59 +05:30
parent 411cc7fe03
commit 355eee4892
7 changed files with 520 additions and 161 deletions

View File

@@ -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[] = '<button type="button" class="btn btn-sm btn-danger delete-btn" data-id="' . $response->id . '" data-url="' . $deleteRoute . '">Delete</button>';
return implode(' ', $actions);
})
->rawColumns(['action'])

View File

@@ -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()
{

View File

@@ -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');
}
}

View File

@@ -73,4 +73,10 @@ class DepartmentController extends Controller
$department->delete();
return response()->noContent();
}
public function getDepartments()
{
$departments = Department::all();
return response()->json($departments);
}
}

View File

@@ -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()
{