mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 16:19:19 +02:00
- Delete file-upload-queue.js (495 lines of custom queue logic) - Delete sortable.min.js dependency - Add file-upload-filepond.js: thin wrapper that upgrades .tfe-file-picker inputs to FilePond instances with storeAsFile:true for native multipart form submission (no form-submit interception needed) - Update fichiers-fragment.php: replace queue container <ul> elements and empty-state <p> with bare <input> elements that FilePond upgrades; change name attributes to queue_file[tfe][] etc. for PHP compatibility - Update add.php, edit.php, partage/index.php: swap JS/CSS refs - Clean up form.css: remove .fq-* and .tfe-file-queue custom styles, add FilePond theme overrides matching xamxam design tokens - Update dead-code fieldset-files.php for consistency Server-side stays unchanged: PHP receives ['queue_file']['tfe'][] exactly as before through native multipart submission.
26 lines
884 B
JavaScript
26 lines
884 B
JavaScript
/**
|
|
* Beforeunload guard — prompts the user before navigating away from unsaved changes.
|
|
*
|
|
* Attach to any form with a data-beforeunload-guard attribute.
|
|
* Also watches window.__xamxamDirty (set by file-upload-filepond.js on FilePond events).
|
|
* No effect when JavaScript is unavailable (form posts normally).
|
|
*/
|
|
(() => {
|
|
const forms = document.querySelectorAll('form[data-beforeunload-guard]');
|
|
if (!forms.length) return;
|
|
|
|
let dirty = false;
|
|
|
|
for (const form of forms) {
|
|
form.addEventListener('input', () => { dirty = true; });
|
|
form.addEventListener('change', () => { dirty = true; });
|
|
form.addEventListener('submit', () => { dirty = false; window.__xamxamDirty = false; });
|
|
}
|
|
|
|
window.addEventListener('beforeunload', (e) => {
|
|
if (dirty || window.__xamxamDirty) {
|
|
e.preventDefault();
|
|
}
|
|
});
|
|
})();
|