csv should now be checked when pressing the "csv verarbeiten" button
This commit is contained in:
parent
531fc8e741
commit
0c1399d583
@ -441,30 +441,46 @@ declare(strict_types=1);
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Intercept submit: require preview validation or loaded file to have been checked
|
// Intercept submit: read file if needed, validate preview passwords, then submit
|
||||||
form.addEventListener('submit', function (e) {
|
function handleCsvSubmit(e) {
|
||||||
|
e.preventDefault();
|
||||||
const delim = document.getElementById('csvdelimiter').value || ',';
|
const delim = document.getElementById('csvdelimiter').value || ',';
|
||||||
const file = fileInput.files && fileInput.files[0];
|
const file = fileInput.files && fileInput.files[0];
|
||||||
// If no preview is present, require user to load preview first to ensure validation
|
|
||||||
|
const proceedWithText = function (text) {
|
||||||
|
const res = renderCsvPreview(text, delim);
|
||||||
|
if (res.invalidCount > 0) {
|
||||||
|
alert('Import abgebrochen: Es gibt ungültige Passwörter in der CSV-Vorschau. Bitte korrigieren Sie diese zuerst.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// ensure preview textarea contains the text we'll submit
|
||||||
|
preview.value = text;
|
||||||
|
// Remove handler to avoid re-validation loop and submit the form
|
||||||
|
form.removeEventListener('submit', handleCsvSubmit);
|
||||||
|
form.submit();
|
||||||
|
};
|
||||||
|
|
||||||
if (preview.value.trim() === '') {
|
if (preview.value.trim() === '') {
|
||||||
if (file) {
|
if (file) {
|
||||||
e.preventDefault();
|
const reader = new FileReader();
|
||||||
alert('Bitte klicken Sie auf "In Vorschau laden" bevor Sie die CSV verarbeiten, damit Passwörter validiert werden.');
|
reader.onload = function (ev) {
|
||||||
return false;
|
const text = ev.target.result || '';
|
||||||
|
proceedWithText(text);
|
||||||
|
};
|
||||||
|
reader.onerror = function () {
|
||||||
|
alert('Fehler beim Lesen der Datei. Bitte versuchen Sie es erneut.');
|
||||||
|
};
|
||||||
|
reader.readAsText(file, 'utf-8');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
e.preventDefault();
|
|
||||||
alert('Die CSV-Vorschau ist leer. Bitte wählen Sie eine Datei oder fügen Sie CSV-Inhalt ein.');
|
alert('Die CSV-Vorschau ist leer. Bitte wählen Sie eine Datei oder fügen Sie CSV-Inhalt ein.');
|
||||||
return false;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const res = renderCsvPreview(preview.value, delim);
|
proceedWithText(preview.value);
|
||||||
if (res.invalidCount > 0) {
|
|
||||||
e.preventDefault();
|
|
||||||
alert('Import abgebrochen: Es gibt ungültige Passwörter in der CSV-Vorschau. Bitte korrigieren Sie diese zuerst.');
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
});
|
form.addEventListener('submit', handleCsvSubmit);
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user