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.
This commit is contained in:
2025-08-03 18:01:22 +05:45
parent 5e4cb2767c
commit afc7c61f86
5 changed files with 582 additions and 450 deletions

View File

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