remove the school reference
Deploy to Shared Hosting / Shared hosting deploy (push) Failing after 47s
Tests / PHPUnit (push) Successful in 1m22s

This commit is contained in:
root
2026-08-30 22:04:31 -04:00
parent 8d83cf84ab
commit 849a4579e9
5 changed files with 66 additions and 153 deletions
+34 -96
View File
@@ -1,22 +1,25 @@
<div class="student-form border rounded p-3 mb-4 bg-light position-relative">
<?php
$publicGradeOptions = [
'NA' => 'Not enrolled in public school',
'KG' => 'Pre-K / Kindergarten',
'1' => 'Grade 1',
'2' => 'Grade 2',
'3' => 'Grade 3',
'4' => 'Grade 4',
'5' => 'Grade 5',
'6' => 'Grade 6',
'7' => 'Grade 7',
'8' => 'Grade 8',
'9' => 'Grade 9',
'10' => 'Grade 10',
'11' => 'Grade 11',
'12' => 'Grade 12',
];
?>
<button type="button" class="btn-close position-absolute end-0 top-0 m-2 js-remove-student" aria-label="Close"></button>
<h5 class="mb-3 text-primary">Student Information</h5>
<div class="col-md-12 mb-3">
<label class="form-label fw-bold mb-2 d-block">
Was your child enrolled in Al Rahma Sunday School last year? <span class="text-danger">*</span>
</label>
<div class="d-flex align-items-center flex-wrap gap-3">
<div class="form-check ps-3">
<input class="form-check-input" type="radio" name="last_year_0" value="yes" data-base-name="last_year" required autocomplete="off">
<label class="form-check-label">Yes</label>
</div>
<div class="form-check ps-3">
<input class="form-check-input" type="radio" name="last_year_0" value="no" data-base-name="last_year" required autocomplete="off">
<label class="form-check-label">No</label>
</div>
</div>
</div>
<input type="hidden" name="last_year_0" value="no" data-last-year-default>
<div class="row">
<div class="col-md-6 mb-3">
<label class="form-label">First Name <span class="text-danger">*</span></label>
@@ -50,12 +53,14 @@
<small class="text-danger age-error d-none">Student must be between 5 and 18 years old.</small>
</div>
<div class="col-6 mb-3">
<label class="form-label grade-label">Last Year Grade <span class="text-danger">*</span></label>
<label class="form-label grade-label">Public School Last Year Grade <span class="text-danger">*</span></label>
<select class="form-select dynamic-grade grade-select"
name="registration_grade[]"
required data-base-name="registration_grade"
disabled>
required data-base-name="registration_grade">
<option value="">Select Grade</option>
<?php foreach ($publicGradeOptions as $value => $label): ?>
<option value="<?= esc($value) ?>"><?= esc($label) ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
@@ -231,46 +236,6 @@
value: "12",
text: "Grade 12"
}
],
alrahma: [{
value: "KG",
text: "Pre-K / Kindergarten"
},
{
value: "1",
text: "Grade 1"
}, {
value: "2",
text: "Grade 2"
},
{
value: "3",
text: "Grade 3"
}, {
value: "4",
text: "Grade 4"
},
{
value: "5",
text: "Grade 5"
}, {
value: "6",
text: "Grade 6"
},
{
value: "7",
text: "Grade 7"
}, {
value: "8",
text: "Grade 8"
},
{
value: "9",
text: "Grade 9"
}, {
value: "10",
text: "Youth"
}
]
};
@@ -278,8 +243,9 @@
if (!gradeSelect || !gradeLabel) return;
gradeSelect.innerHTML = '<option value="">Select Grade</option>';
gradeSelect.value = '';
gradeSelect.disabled = true; // keep disabled until a radio is chosen
gradeLabel.innerHTML = 'Last Year Grade <span class="text-danger">*</span>';
gradeSelect.disabled = false;
gradeLabel.innerHTML = 'Public School Last Year Grade <span class="text-danger">*</span>';
populateSelect(gradeSelect, gradeOptions.public);
}
function populateSelect(gradeSelect, options) {
@@ -292,50 +258,22 @@
});
}
function updateGradeOptions(studentForm, type) {
function updateGradeOptions(studentForm) {
const gradeSelect = studentForm.querySelector('.grade-select');
const gradeLabel = studentForm.querySelector('.grade-label');
if (!gradeSelect || !gradeLabel) return;
gradeSelect.disabled = false; // enable now that a choice was made
gradeSelect.disabled = false;
gradeSelect.value = ''; // clear any stale selection
if (type === 'yes') {
gradeLabel.innerHTML = 'Al Rahma School Last Year Grade <span class="text-danger">*</span>';
populateSelect(gradeSelect, gradeOptions.alrahma);
} else if (type === 'no') {
gradeLabel.innerHTML = 'Public School Last Year Grade <span class="text-danger">*</span>';
populateSelect(gradeSelect, gradeOptions.public);
} else {
resetGradeSelect(gradeSelect, gradeLabel);
}
gradeLabel.innerHTML = 'Public School Last Year Grade <span class="text-danger">*</span>';
populateSelect(gradeSelect, gradeOptions.public);
}
// Event: when a radio is chosen, update this form's select
document.addEventListener('change', function(e) {
if (e.target.matches('input[type="radio"][data-base-name="last_year"]')) {
const form = e.target.closest('.student-form');
if (form && e.target.checked) {
updateGradeOptions(form, e.target.value);
}
}
});
// On load: enforce disabled unless a radio is already checked (server repopulation)
// On load: ensure grade dropdown is populated.
(function initStudentForms() {
const forms = document.querySelectorAll('.student-form');
forms.forEach(form => {
const gradeSelect = form.querySelector('.grade-select');
const gradeLabel = form.querySelector('.grade-label');
// Start disabled (HTML already has disabled, but enforce from JS too)
resetGradeSelect(gradeSelect, gradeLabel);
// If a radio is already checked (e.g., after validation error), enable/populate accordingly
const checked = form.querySelector('input[type="radio"][data-base-name="last_year"]:checked');
if (checked) {
updateGradeOptions(form, checked.value);
}
updateGradeOptions(form);
});
})();
</script>
</script>