From ef73630cadbcd924a0c22869ef58e934c0c42bac Mon Sep 17 00:00:00 2001 From: morgane Date: Sat, 27 Jun 2026 17:31:38 +0000 Subject: [PATCH] Actualiser assets/js/app.js --- assets/js/app.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/assets/js/app.js b/assets/js/app.js index a5c3821..0f31137 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -3591,6 +3591,39 @@ async function _backupNow() { } } +async function _importMergeFile(input) { + const file = input.files[0]; + if (!file) return; + const statusEl = document.getElementById('import-merge-status'); + statusEl.style.display = 'block'; + statusEl.textContent = '⏳ Import en cours...'; + statusEl.className = 'settings-status'; + + const formData = new FormData(); + formData.append('file', file); + + try { + const resp = await fetch('api/index.php?action=import_merge', { + method: 'POST', + headers: { 'X-EverShelf-Request': '1' }, + body: formData, + }); + const data = await resp.json(); + if (data.success) { + const s = data.stats; + statusEl.textContent = `✅ Import réussi — produits: ${s.products}, inventaire: ${s.inventory}, transactions: ${s.transactions}, recettes: ${s.recipe_library}`; + statusEl.className = 'settings-status settings-status-success'; + } else { + statusEl.textContent = '❌ Erreur: ' + (data.error || 'inconnue'); + statusEl.className = 'settings-status settings-status-error'; + } + } catch (e) { + statusEl.textContent = '❌ Erreur réseau: ' + e.message; + statusEl.className = 'settings-status settings-status-error'; + } + input.value = ''; +} + async function _backupDelete(filename) { if (!confirm(`${t('settings.backup.delete_confirm') || 'Eliminare il backup'} ${filename}?`)) return; const r = await api('backup_delete', {}, 'POST', { filename });