feat: replace checkbox with radio buttons for exercise type selection
- Replace the checkbox "Générer uniquement des multiplications" with radio buttons for "Multiplications uniquement" and "Multiplications ET divisions" - Update JavaScript code to handle radio button values instead of checkbox - Maintain backward compatibility with old localStorage format - Ensure all functionality remains intact
This commit is contained in:
@@ -61,9 +61,20 @@
|
|||||||
<div class="form-text">Nombre total d'exercices à générer (entre 1 et 100)</div>
|
<div class="form-text">Nombre total d'exercices à générer (entre 1 et 100)</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3 form-check">
|
<div class="mb-3">
|
||||||
<input type="checkbox" class="form-check-input" id="multiplicationOnly">
|
<label class="form-label">Types d'exercices</label>
|
||||||
<label class="form-check-label" for="multiplicationOnly">Générer uniquement des multiplications</label>
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="exerciseType" id="multiplicationOnly" value="multiplication" checked>
|
||||||
|
<label class="form-check-label" for="multiplicationOnly">
|
||||||
|
Multiplications uniquement
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="exerciseType" id="multiplicationAndDivision" value="both">
|
||||||
|
<label class="form-check-label" for="multiplicationAndDivision">
|
||||||
|
Multiplications ET divisions
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
@@ -258,7 +269,7 @@
|
|||||||
minTable: document.getElementById('minTable').value,
|
minTable: document.getElementById('minTable').value,
|
||||||
maxTable: document.getElementById('maxTable').value,
|
maxTable: document.getElementById('maxTable').value,
|
||||||
numExercises: document.getElementById('numExercises').value,
|
numExercises: document.getElementById('numExercises').value,
|
||||||
multiplicationOnly: document.getElementById('multiplicationOnly').checked,
|
exerciseType: document.querySelector('input[name="exerciseType"]:checked').value,
|
||||||
maxFirstOperand: document.getElementById('maxFirstOperand').value
|
maxFirstOperand: document.getElementById('maxFirstOperand').value
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -279,7 +290,18 @@
|
|||||||
document.getElementById('minTable').value = exerciseValues.minTable || 1;
|
document.getElementById('minTable').value = exerciseValues.minTable || 1;
|
||||||
document.getElementById('maxTable').value = exerciseValues.maxTable || 10;
|
document.getElementById('maxTable').value = exerciseValues.maxTable || 10;
|
||||||
document.getElementById('numExercises').value = exerciseValues.numExercises || 15;
|
document.getElementById('numExercises').value = exerciseValues.numExercises || 15;
|
||||||
document.getElementById('multiplicationOnly').checked = exerciseValues.multiplicationOnly || false;
|
|
||||||
|
// Restore radio button selection
|
||||||
|
if (exerciseValues.exerciseType) {
|
||||||
|
const radio = document.querySelector(`input[name="exerciseType"][value="${exerciseValues.exerciseType}"]`);
|
||||||
|
if (radio) {
|
||||||
|
radio.checked = true;
|
||||||
|
}
|
||||||
|
} else if (exerciseValues.multiplicationOnly !== undefined) {
|
||||||
|
// Handle legacy storage format
|
||||||
|
document.getElementById('multiplicationOnly').checked = exerciseValues.multiplicationOnly;
|
||||||
|
}
|
||||||
|
|
||||||
document.getElementById('maxFirstOperand').value = exerciseValues.maxFirstOperand || 10;
|
document.getElementById('maxFirstOperand').value = exerciseValues.maxFirstOperand || 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -471,10 +493,14 @@
|
|||||||
document.getElementById('minTable').addEventListener('change', saveFormValues);
|
document.getElementById('minTable').addEventListener('change', saveFormValues);
|
||||||
document.getElementById('maxTable').addEventListener('change', saveFormValues);
|
document.getElementById('maxTable').addEventListener('change', saveFormValues);
|
||||||
document.getElementById('numExercises').addEventListener('change', saveFormValues);
|
document.getElementById('numExercises').addEventListener('change', saveFormValues);
|
||||||
document.getElementById('multiplicationOnly').addEventListener('change', saveFormValues);
|
|
||||||
document.getElementById('maxFirstOperand').addEventListener('change', saveFormValues);
|
document.getElementById('maxFirstOperand').addEventListener('change', saveFormValues);
|
||||||
document.getElementById('numOperationExercises').addEventListener('change', saveFormValues);
|
document.getElementById('numOperationExercises').addEventListener('change', saveFormValues);
|
||||||
|
|
||||||
|
// Add event listeners for radio buttons
|
||||||
|
document.querySelectorAll('input[name="exerciseType"]').forEach(radio => {
|
||||||
|
radio.addEventListener('change', saveFormValues);
|
||||||
|
});
|
||||||
|
|
||||||
// Event listener for select all button
|
// Event listener for select all button
|
||||||
document.getElementById('selectAllBtn').addEventListener('click', function() {
|
document.getElementById('selectAllBtn').addEventListener('click', function() {
|
||||||
document.querySelectorAll('.file-checkbox').forEach(checkbox => {
|
document.querySelectorAll('.file-checkbox').forEach(checkbox => {
|
||||||
@@ -577,7 +603,8 @@
|
|||||||
const minTable = parseInt(document.getElementById('minTable').value);
|
const minTable = parseInt(document.getElementById('minTable').value);
|
||||||
const maxTable = parseInt(document.getElementById('maxTable').value);
|
const maxTable = parseInt(document.getElementById('maxTable').value);
|
||||||
const numExercises = parseInt(document.getElementById('numExercises').value);
|
const numExercises = parseInt(document.getElementById('numExercises').value);
|
||||||
const multiplicationOnly = document.getElementById('multiplicationOnly').checked;
|
const exerciseType = document.querySelector('input[name="exerciseType"]:checked').value;
|
||||||
|
const multiplicationOnly = (exerciseType === 'multiplication');
|
||||||
const maxFirstOperand = parseInt(document.getElementById('maxFirstOperand').value);
|
const maxFirstOperand = parseInt(document.getElementById('maxFirstOperand').value);
|
||||||
|
|
||||||
const generateBtn = document.getElementById('generateBtn');
|
const generateBtn = document.getElementById('generateBtn');
|
||||||
|
|||||||
Reference in New Issue
Block a user