Files
new_raffles/Modules/CourseFinder/resources/views/program/partials/form.blade.php
2025-07-27 17:40:56 +05:45

416 lines
20 KiB
PHP

<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-header">
<div class="d-flex align-items-center">
<div class="flex-grow-1">
<h6 class="card-title mb-0">Course Information</h6>
</div>
<div class="flex-shrink-0">
<ul class="list-inline card-toolbar-menu d-flex align-items-center mb-0">
<li class="list-inline-item">
<a class="minimize-card align-middle" data-bs-toggle="collapse"
href="#collapse-personal" role="button" aria-expanded="true"
aria-controls="collapseExample2">
<i class="mdi mdi-plus plus align-middle"></i>
<i class="mdi mdi-minus minus align-middle"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="card-body show collapse" id="collapse-personal">
<div class="row gy-3">
<div class="col-md-8">
{{ html()->label('Title')->class('form-label') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->text('title')->class('form-control')->placeholder('Enter Program Title')->required() }}
{{ html()->div('Please enter program title')->class('invalid-feedback') }}
</div>
<div class="col-md-4">
{{ html()->label('Code')->class('form-label')->for('code') }}
{{ html()->text('code')->class('form-control')->placeholder('Enter Program Code') }}
{{ html()->div('Please enter code')->class('invalid-feedback') }}
</div>
<div class="col-md-4">
{{ html()->label('Institution')->class('form-label')->for('institution_id') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->select('institution_id', $institutionOptions)->placeholder('Select')->class('form-select choices-select')->required() }}
{{ html()->div('Please select institution')->class('invalid-feedback') }}
</div>
<div class="col-md-4">
{{ html()->label('Level')->class('form-label')->for('programlevel_id') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->select('programlevel_id', $programLevelOptions)->placeholder('Select')->class('form-select choices-select')->required() }}
{{ html()->div('Please select program level')->class('invalid-feedback') }}
</div>
<div class="col-md-4">
{{ html()->label('Cooperative Program (Co op)')->class('form-label')->for('coop_id') }}
{{ html()->select('coop_id', $coopOptions)->placeholder('Select')->class('form-select choices-select') }}
</div>
<div class="col-md-12">
{{ html()->label('Description')->class('form-label')->for('description') }}
{{ html()->textarea('description')->class('form-control ckeditor-classic') }}
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-8">
<div class="card">
<div class="card-header">
<div class="d-flex align-items-center">
<div class="flex-grow-1">
<h6 class="card-title mb-0">Other Information</h6>
</div>
<div class="flex-shrink-0">
<ul class="list-inline card-toolbar-menu d-flex align-items-center mb-0">
<li class="list-inline-item">
<a class="minimize-card align-middle" data-bs-toggle="collapse"
href="#collapse-preference" role="button" aria-expanded="true"
aria-controls="collapseExample2">
<i class="mdi mdi-plus plus align-middle"></i>
<i class="mdi mdi-minus minus align-middle"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="card-body show collapse" id="collapse-preference">
<div class="row gy-3">
<div class="col-md-6">
{{ html()->label('Duration (Year)')->class('form-label')->for('year') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->text('year')->class('form-control')->placeholder('Program Duration')->required() }}
{{ html()->div('Please enter program duration')->class('invalid-feedback') }}
</div>
<div class="col-md-6">
{{ html()->label('PSW')->class('form-label')->for('psw') }}
{{ html()->text('psw')->class('form-control')->placeholder('Enter PSW') }}
</div>
<div class="col-md-6">
{{ html()->label('Fee')->class('form-label')->for('fee') }}
{{ html()->text('fee')->class('form-control')->placeholder('Program Fee') }}
</div>
<div class="col-md-6">
{{ html()->label('Scholarship')->class('form-label')->for('scholarship') }}
{{ html()->text('scholarship')->class('form-control')->placeholder('Scholarship offered') }}
</div>
<div class="col-md-6">
{{ html()->label('Open Date')->class('form-label')->for('application_open') }}
{{ html()->date('application_open')->class('form-control')->placeholder('Enter application open') }}
</div>
<div class="col-md-6">
{{ html()->label('Close Date')->class('form-label')->for('application_deadline') }}
{{ html()->date('application_deadline')->class('form-control')->placeholder('Enter application close') }}
</div>
<div class="col-md-12">
{{ html()->label('Prospect')->class('form-label')->for('prospects') }}
{{ html()->textarea('prospects')->class('form-control') }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<div class="card">
<div class="card-header">
<div class="d-flex align-items-center">
<div class="flex-grow-1">
<h6 class="card-title mb-0">Qualification Requirements</h6>
</div>
<div class="flex-shrink-0">
<ul class="list-inline card-toolbar-menu d-flex align-items-center mb-0">
<li class="list-inline-item">
<a class="minimize-card collapsed align-middle" data-bs-toggle="collapse"
href="#collapse-preparation" role="button" aria-expanded="false"
aria-controls="collapseExample2">
<i class="mdi mdi-plus plus align-middle"></i>
<i class="mdi mdi-minus minus align-middle"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="card-body show collapse" id="collapse-preparation">
<div class="table-responsive">
<table class="table-borderless table-nowrap table-sm table" id="qualificationTable">
<thead class="table-primary text-center">
<tr>
<th scope="col" width=30%>Level</th>
<th scope="col" width=30%>Faculty</th>
<th scope="col" width=15%>Score/GPA</th>
<th scope="col" width=15%>Year</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
@if ($editable)
@if ($program->level)
@forelse ($program->level as $key => $item)
@include('coursefinder::program.partials.qualification-form', [
'numInc' => $key,
'value' => $item,
])
@empty
@endforelse
@else
@include('coursefinder::program.partials.qualification-form', [
'numInc' => 0,
])
@endif
@else
@include('coursefinder::program.partials.qualification-form', [
'numInc' => 0,
])
@endif
</tbody>
</table>
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<div class="d-flex align-items-center">
<div class="flex-grow-1">
<h6 class="card-title mb-0">Proficiency Test Requirements</h6>
</div>
<div class="flex-shrink-0">
<ul class="list-inline card-toolbar-menu d-flex align-items-center mb-0">
<li class="list-inline-item">
<a class="minimize-card collapsed align-middle" data-bs-toggle="collapse"
href="#collapse-proficiency" role="button" aria-expanded="false"
aria-controls="collapseExample2">
<i class="mdi mdi-minus minus align-middle"></i>
<i class="mdi mdi-plus plus align-middle"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="card-body show collapse" id="collapse-proficiency">
<div class="table-responsive">
<table class="table-borderless table-nowrap table-sm table" id="proficiency-table">
<thead class="table-primary text-center">
<tr>
<th scope="col" width=30%>Prof Test</th>
<th scope="col" width=30%>Min Score</th>
<th scope="col" width=30%>Band Score</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
@if ($editable)
@forelse ($program->tests as $key => $item)
@include('coursefinder::program.partials.proficiency-form', [
'numInc' => $key,
'value' => $item,
])
@empty
@include('coursefinder::program.partials.proficiency-form', [
'numInc' => 0,
])
@endforelse
@else
@include('coursefinder::program.partials.proficiency-form', [
'numInc' => 0,
])
@endif
</tbody>
</table>
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
<div class="mb-3 text-end">
<a href="{{ route('program.index') }}" class="btn btn-danger w-sm">Cancel</a>
<button type="submit" class="btn btn-success w-sm">Save</button>
</div>
</div>
<div class="col-lg-4">
<div class="card">
<div class="card-header">
<div class="d-flex align-items-center">
<div class="flex-grow-1">
<h6 class="card-title mb-0">Program URL</h6>
</div>
<div class="flex-shrink-0">
<ul class="list-inline card-toolbar-menu d-flex align-items-center mb-0">
<li class="list-inline-item">
<a class="minimize-card align-middle" data-bs-toggle="collapse" href="#collapse-url"
role="button" aria-expanded="true" aria-controls="collapseExample2">
<i class="mdi mdi-plus plus align-middle"></i>
<i class="mdi mdi-minus minus align-middle"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="card-body show collapse" id="collapse-url">
<div class="col-md-12">
{{ html()->textarea('program_url')->class('form-control')->required()->rows(4)->placeholder('https://www.example.com') }}
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
<div class="card">
<div class="card-header">
<div class="d-flex align-items-center">
<div class="flex-grow-1">
<h6 class="card-title mb-0">Intake Information</h6>
</div>
<div class="flex-shrink-0">
<ul class="list-inline card-toolbar-menu d-flex align-items-center mb-0">
<li class="list-inline-item">
<a class="minimize-card align-middle" data-bs-toggle="collapse"
href="#collapse-followUp" role="button" aria-expanded="true"
aria-controls="collapseExample2">
<i class="mdi mdi-plus plus align-middle"></i>
<i class="mdi mdi-minus minus align-middle"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="card-body show collapse" id="collapse-followUp">
<div class="d-flex flex-row flex-wrap gap-2">
@foreach ($intakeOptions as $index => $item)
<div class="form-check form-check-success">
{{ html()->checkbox('intakes[]', $editable && in_array($index, $program->intakes) ? true : false)->id('permission_' . $index)->value($index)->class('form-check-input child-checkbox') }}
{{ html()->label($item)->for('permission_' . $index)->class('form-check-label ms-1') }}
</div>
@endforeach
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
<div class="card bg-white">
<div class="card-header">
<div class="d-flex align-items-center">
<div class="flex-grow-1">
<h6 class="card-title mb-0">Document Requirements</h6>
</div>
<div class="flex-shrink-0">
<ul class="list-inline card-toolbar-menu d-flex align-items-center mb-0">
<li class="list-inline-item">
<a class="minimize-card align-middle" data-bs-toggle="collapse"
href="#collapse-documents" role="button" aria-expanded="true"
aria-controls="collapseExample2">
<i class="mdi mdi-plus plus align-middle"></i>
<i class="mdi mdi-minus minus align-middle"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="card-body show collapse" id="collapse-documents">
<div class="d-flex flex-column flex-wrap gap-2">
@foreach ($requiredDocumentOptions as $index => $item)
<div class="form-check form-check-info">
{{ html()->checkbox('required_documents[]', $editable && in_array($index, $program->required_documents ?? []))->id('doc_' . $index)->value($index)->class('form-check-input child-checkbox') }}
{{ html()->label($item)->for('doc_' . $index)->class('form-check-label') }}
</div>
@endforeach
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
<div class="card bg-white">
<div class="card-header">
<div class="d-flex align-items-center">
<div class="flex-grow-1">
<h6 class="card-title mb-0">Keywords</h6>
</div>
<div class="flex-shrink-0">
<ul class="list-inline card-toolbar-menu d-flex align-items-center mb-0">
<li class="list-inline-item">
<a class="minimize-card align-middle" data-bs-toggle="collapse"
href="#collapse-documents" role="button" aria-expanded="true"
aria-controls="collapseExample2">
<i class="mdi mdi-plus plus align-middle"></i>
<i class="mdi mdi-minus minus align-middle"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="card-body show collapse" id="collapse-documents">
<div class="d-flex flex-column flex-wrap gap-2">
{{ html()->text('keywords')->class('form-control')->attributes([
'data-choices' => 'true',
'data-choices-removeItem' => 'true',
'data-choices-create' => 'true',
'multiple' => true,
]) }}
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
</div>
</div>
@push('js')
<script>
let numInc = 0;
const cloneRow = (element) => {
let newRow = $(element).closest('tr').clone();
numInc++;
newRow.find('input, select').each(function() {
let name = $(this).attr('name');
name = name.replace(/\[\d+\]/, '[' + numInc + ']');
$(this).attr('name', name);
});
newRow.find('input').val('');
$(element).parents('table').find('tbody').append(newRow);
}
const removeRow = (element) => {
count = $(element).closest('tbody').find('tr').length;
console.log(count);
if (count > 1) {
$(element).closest('tr').remove();
}
}
</script>
@endpush