Actualiser assets/js/app.js
CI / PHP Syntax Check (push) Has been cancelled
CI / JavaScript Lint (push) Has been cancelled
CI / Docker Build Test (push) Has been cancelled
CI / Validate Translation Files (push) Has been cancelled
CI / Auto-merge develop → main (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled

This commit is contained in:
2026-06-27 17:31:38 +00:00
parent a6369765b0
commit ef73630cad
+33
View File
@@ -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 });