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:
@@ -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]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -188,45 +188,46 @@
|
||||
</div>
|
||||
|
||||
<div id="myModal" class="modal fade" tabindex="-1" aria-labelledby="myModalLabel" aria-hidden="false"
|
||||
style="display: none;">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="myModalLabel">Program Import</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"> </button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<form action="{{ route('program.import') }}" method="post" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="form-group">
|
||||
<div class="form-control-wrap mb-1">
|
||||
<input class="form-control" id="formFileLg" type="file" name="file"
|
||||
accept=".xlsx, .xls, .csv" required>
|
||||
</div>
|
||||
style="display: none;">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="myModalLabel">Program Import</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"> </button>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary btn-md float-right mt-3">Upload</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="card text-center">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Sample Sheet</h5>
|
||||
<p class="card-text text-danger">Note: Do not change sheet header.
|
||||
</p>
|
||||
<a href="{{ asset('samples/CourseSample.xlsx') }}" class="btn btn-secondary btn-md">Download
|
||||
Sample</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<form action="{{ route('program.import') }}" method="post" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="form-group">
|
||||
<div class="form-control-wrap mb-1">
|
||||
<input class="form-control" id="formFileLg" type="file" name="file"
|
||||
accept=".xlsx, .xls, .csv" required>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary btn-md float-right mt-3">Upload</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="card text-center">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Sample Sheet</h5>
|
||||
<p class="card-text text-danger">Note: Do not change sheet header.
|
||||
</p>
|
||||
<a href="{{ asset('samples/CourseSample.xlsx') }}"
|
||||
class="btn btn-secondary btn-md">Download
|
||||
Sample</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
</div>
|
||||
@endsection
|
||||
@push('js')
|
||||
<script>
|
||||
|
Reference in New Issue
Block a user