From afc7c61f863cef5d1e5134a8510568f6021b53fe Mon Sep 17 00:00:00 2001 From: Subash Date: Sun, 3 Aug 2025 18:01:22 +0545 Subject: [PATCH] Refactor course finder and resources templates for improved readability and functionality - Updated course finder form to use HTML helper methods for cleaner syntax. - Enhanced form structure with better class management and attributes. - Implemented AJAX pagination for course listings to improve user experience. - Cleaned up resource template code for consistency and readability. - Ensured proper indentation and spacing for better maintainability. - Added missing target="_blank" attribute for external links in resource documents. --- .../Http/Controllers/ProgramController.php | 63 +- .../resources/views/program/index.blade.php | 73 +-- .../raffles/pages/course/list.blade.php | 82 +++ .../pages/coursefinder-template.blade.php | 552 +++++++++--------- .../pages/resources-template.blade.php | 262 +++++---- 5 files changed, 582 insertions(+), 450 deletions(-) create mode 100644 resources/views/client/raffles/pages/course/list.blade.php diff --git a/Modules/CourseFinder/app/Http/Controllers/ProgramController.php b/Modules/CourseFinder/app/Http/Controllers/ProgramController.php index 4078e2a..997c749 100644 --- a/Modules/CourseFinder/app/Http/Controllers/ProgramController.php +++ b/Modules/CourseFinder/app/Http/Controllers/ProgramController.php @@ -93,7 +93,6 @@ class ProgramController extends Controller $program->tests()->sync($attachData); flash()->success('Program has been created!'); - }); return redirect()->route('program.index'); @@ -148,7 +147,6 @@ class ProgramController extends Controller } $program->tests()->sync($attachData); - }); flash()->success('program has been updated!'); @@ -166,12 +164,10 @@ class ProgramController extends Controller $program->delete(); flash()->success('Program has been deleted!'); - } catch (\Throwable $th) { flash()->error($th->getMessage()); } return response()->json(['status' => 200, 'message' => 'Program has been deleted!'], 200); - } public function getProgramByInstitution(Request $request) @@ -190,7 +186,6 @@ class ProgramController extends Controller 'status' => false, 'msg' => $th->getMessage(), ], 500); - } } @@ -206,4 +201,62 @@ class ProgramController extends Controller return redirect()->back()->with('error', $th->getMessage()); } } + + public function getCoursesList(Request $request) + { + $data['intakes'] = Program::INTAKE; + + $query = Program::query(); + + if ($request->filled('countries_id')) { + $query->whereRelation('institution', 'countries_id', $request->countries_id); + } + + if ($request->filled('institution_id')) { + $query->where('institutions_id', $request->institution_id); + } + + if ($request->filled('search')) { + $query->where(function ($q) use ($request) { + $q->where('keywords', 'like', "%{$request->search}%") + ->orWhere('title', 'like', "%{$request->search}%"); + }); + } + + if ($request->filled('programlevels_id')) { + $query->where('programlevels_id', $request->programlevels_id); + } + + if ($request->filled('intake_id')) { + $query->whereJsonContains('intakes', $request->intake_id); + } + + if ($request->filled('preffered_location')) { + $query->where('location', 'like', "%{$request->preffered_location}%"); + } + + if ($request->filled('service_id')) { + $query->whereRelation('services', 'service_id', '=', $request->service_id); + + if ($request->filled('min_score')) { + $query->whereRelation('services', 'min_score', '<=', $request->min_score); + } + + if ($request->filled('max_score')) { + $query->whereRelation('services', 'band_score', '<=', $request->max_score); + } + } + + $data['courses'] = $query + ->orderBy('title', 'asc') + ->paginate(10) + ->withQueryString(); + + $queryCount = $data['courses']->total(); + + if ($request->ajax()) { + $view = view('client.raffles.pages.course.list', $data)->render(); + return response()->json(['html' => $view, 'queryCount' => $queryCount]); + } + } } diff --git a/Modules/CourseFinder/resources/views/program/index.blade.php b/Modules/CourseFinder/resources/views/program/index.blade.php index c39f056..d9d7e83 100644 --- a/Modules/CourseFinder/resources/views/program/index.blade.php +++ b/Modules/CourseFinder/resources/views/program/index.blade.php @@ -188,45 +188,46 @@ @endsection @push('js') +@endpush + diff --git a/resources/views/client/raffles/pages/resources-template.blade.php b/resources/views/client/raffles/pages/resources-template.blade.php index 1167c58..e897bb9 100644 --- a/resources/views/client/raffles/pages/resources-template.blade.php +++ b/resources/views/client/raffles/pages/resources-template.blade.php @@ -1,6 +1,5 @@ @extends('client.raffles.layouts.app') @section('content') -
@@ -26,7 +25,8 @@ data-bs-toggle="collapse" data-bs-parent="#accordion-questions" href="index.php#collapse-question-item-1" aria-expanded="false" aria-controls="collapse-question-item-1"> - +
Countries
@@ -36,12 +36,12 @@ data-bs-parent="#accordion-questions" role="tabpanel" aria-labelledby="heading-question-1"> - @foreach($countries as $country) -
- -

{{$country->title}}

-
+ @foreach ($countries as $country) +
+ +

{{ $country->title }}

+
@endforeach @@ -60,7 +60,8 @@ data-bs-toggle="collapse" data-bs-parent="#accordion-questions" href="index.php#collapse-question-item-2" aria-expanded="false" aria-controls="collapse-question-item-2"> - +
Language Test
@@ -70,12 +71,12 @@ data-bs-parent="#accordion-questions" role="tabpanel" aria-labelledby="heading-question-2"> - @foreach($tests as $test) -
- -

{{$test->title}}

-
+ @foreach ($tests as $test) +
+ +

{{ $test->title }}

+
@endforeach @@ -93,7 +94,9 @@ data-bs-toggle="collapse" data-bs-parent="#accordion-questions" href="index.php#collapse-question-item-3" aria-expanded="false" aria-controls="collapse-question-item-3"> - +
Support Services
@@ -103,13 +106,13 @@ data-bs-parent="#accordion-questions" role="tabpanel" aria-labelledby="heading-question-2"> - @foreach($services as $service) -
- -

{{$service->title}}

+ @foreach ($services as $service) +
+ +

{{ $service->title }}

-
+
@endforeach @@ -127,7 +130,7 @@
- +
@@ -151,139 +154,141 @@
- @foreach($countries as $country) -
-
+ @foreach ($countries as $country) +
+
-
+
-

{{$country->title}}

+

{{ $country->title }}

- +
- @php - $countryDocs = $country->documents()->get(); - @endphp + @php + $countryDocs = $country->documents()->get(); + @endphp - @foreach($countryDocs as $doc) + @foreach ($countryDocs as $doc) + @php + $path = $doc->collection_name . '/' . $doc->file_path; + $full_path = Storage::disk('public')->url($path); + @endphp - @php - $path = $doc->collection_name . '/' . $doc->file_path; - $full_path = Storage::disk('public')->url($path) - @endphp - - - - - - - @endforeach -
{{$loop->index + 1}}{{$doc->title}} - - - - - - -
+ + {{ $loop->index + 1 }} + {{ $doc->title }} + + + + + + + + + + @endforeach + +
-
@endforeach - @foreach($tests as $test) -
+ @foreach ($tests as $test) +
-
+
-
-

{{$test->title}}

+
+

{{ $test->title }}

- +
- @php - $testDocs = $test->documents()->get(); - @endphp + @php + $testDocs = $test->documents()->get(); + @endphp - @foreach($testDocs as $docs) + @foreach ($testDocs as $docs) + @php + $paths = $docs->collection_name . '/' . $docs->file_path; + $full_paths = Storage::disk('public')->url($paths); + @endphp - @php - $paths = $docs->collection_name . '/' . $docs->file_path; - $full_paths = Storage::disk('public')->url($paths) - @endphp + + + + + + @endforeach - - - - - - - @endforeach - -
{{ $loop->index + 1 }}{{ $docs->title }} + + + + + + +
{{$loop->index + 1}}{{$docs->title}} - - - - - - -
+ +
-
@endforeach - @foreach($services as $service) -
+ @foreach ($services as $service) +
-
+
-
-

{{$service->title}}

+
+

{{ $service->title }}

- +
- @php - $serviceDocs = $service->documents()->get(); - @endphp + @php + $serviceDocs = $service->documents()->get(); + @endphp - @foreach($serviceDocs as $docss) + @foreach ($serviceDocs as $docss) + @php + $pathss = $docss->collection_name . '/' . $docss->file_path; + $full_pathss = Storage::disk('public')->url($pathss); + @endphp - @php - $pathss = $docss->collection_name . '/' . $docss->file_path; - $full_pathss = Storage::disk('public')->url($pathss) - @endphp - - - - - - - @endforeach -
{{$loop->index + 1}}{{$docss->title}} - - - - - - -
+ + {{ $loop->index + 1 }} + {{ $docss->title }} + + + + + + + + + + @endforeach + +
-
@endforeach
@@ -299,9 +304,10 @@