From e0985d0c4f00bfc8a76cba555940ea639b08cec0 Mon Sep 17 00:00:00 2001 From: Sallu9007 Date: Thu, 17 Apr 2025 09:56:38 +0530 Subject: [PATCH] Feat: Implement Select2 for User Dropdowns --- app/Http/Controllers/UserController.php | 8 +- .../views/activities-organised/edit.blade.php | 76 ++++++++++++++++++- .../activities-organised/index.blade.php | 59 +++++++------- .../activities-organised-form.blade.php | 54 ++++++++++++- resources/views/layouts/app.blade.php | 6 ++ routes/web.php | 2 + 6 files changed, 168 insertions(+), 37 deletions(-) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index eac0c39..969570a 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -6,9 +6,15 @@ use Illuminate\Http\Request; class UserController extends Controller { + /** + * Fetch all user names. + * + * @return \Illuminate\Http\JsonResponse + */ public function index() { - return User::with(['role', 'department'])->get(); + $users = User::select('name')->get(); + return response()->json($users); } public function store(Request $request) diff --git a/resources/views/activities-organised/edit.blade.php b/resources/views/activities-organised/edit.blade.php index 9ee4805..9c47cea 100644 --- a/resources/views/activities-organised/edit.blade.php +++ b/resources/views/activities-organised/edit.blade.php @@ -1,4 +1,3 @@ -```blade @extends('layouts.app') @section('content') @@ -35,7 +34,8 @@
- + +
@@ -190,6 +190,36 @@ @section('scripts') -@endsection -``` \ No newline at end of file +@endsection \ No newline at end of file diff --git a/resources/views/activities-organised/index.blade.php b/resources/views/activities-organised/index.blade.php index e5f92b4..2d5d054 100644 --- a/resources/views/activities-organised/index.blade.php +++ b/resources/views/activities-organised/index.blade.php @@ -13,22 +13,19 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -98,21 +95,21 @@ name: 'user_name', orderable: false }, - { - data: 'start_date', - name: 'start_date', - orderable: false - }, - { - data: 'end_date', - name: 'end_date', - orderable: false - }, - { - data: 'num_days', - name: 'num_days', - orderable: false - }, + // { + // data: 'start_date', + // name: 'start_date', + // orderable: false + // }, + // { + // data: 'end_date', + // name: 'end_date', + // orderable: false + // }, + // { + // data: 'num_days', + // name: 'num_days', + // orderable: false + // }, { data: 'venue', name: 'venue', diff --git a/resources/views/faculty/activities-organised-form.blade.php b/resources/views/faculty/activities-organised-form.blade.php index 67bc648..39be9bc 100644 --- a/resources/views/faculty/activities-organised-form.blade.php +++ b/resources/views/faculty/activities-organised-form.blade.php @@ -27,7 +27,8 @@
- + +
@@ -172,5 +173,56 @@ document.getElementById('num_days').value = numDays; } } + + document.addEventListener('DOMContentLoaded', function () { + // Initialize Select2 for resource_person_name + $('#resource_person_name').select2({ + tags: true, + tokenSeparators: [','], + ajax: { + url: '{{ route('api.users.index') }}', // Adjust this route to fetch user names + dataType: 'json', + delay: 250, + processResults: function (data) { + return { + results: data.map(user => ({ id: user.name, text: user.name })) + }; + }, + cache: true + } + }); + + $('#resource_person_name').on('change', function () { + const selectedValues = $(this).val(); + document.getElementById('resource_person_name_hidden').value = selectedValues.join(', '); + }); + + // Initialize Select2 for activity_type, category, and level + $('#activity_type').select2({ + placeholder: 'Select Activity Type', + allowClear: true + }); + + $('#category').select2({ + placeholder: 'Select Category', + allowClear: true + }); + + $('#level').select2({ + placeholder: 'Select Level', + allowClear: true + }); + + // const form = document.querySelector('form'); + // form.addEventListener('submit', function () { + // const resourcePersonNameSelect = document.getElementById('resource_person_name'); + // const resourcePersonNameHidden = document.getElementById('resource_person_name_hidden'); + + // if (resourcePersonNameSelect) { + // const selectedValues = $(resourcePersonNameSelect).val(); + // resourcePersonNameHidden.value = selectedValues ? selectedValues.join(', ') : ''; + // } + // }); + }); @endsection \ No newline at end of file diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index b30d13a..951f0a5 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -22,6 +22,9 @@ + + +
IDTitleResource PersonOrganisationTarget AudienceDepartmentFacultyStart DateEnd DateNum DaysVenueActivity TypeCategoryLevelParticipantsActionsIDTitleResource PersonOrganisationTarget AudienceDepartmentFacultyVenueActivity TypeCategoryLevelParticipantsActions