diff --git a/js/admin.js b/js/admin.js index 485fb0f..dde6d6a 100644 --- a/js/admin.js +++ b/js/admin.js @@ -472,27 +472,35 @@ async function handleCsvUpload(input) { } } -async function saveTmdbKey() { - const input = document.getElementById('tmdb-key-input'); - if (input && input.value) { - try { - const res = await fetch(`${API_URL}?action=save_config`, { - method: 'POST', - headers: { 'Authorization': localStorage.getItem('token'), 'Content-Type': 'application/json' }, - body: JSON.stringify({ key_name: 'tmdb_api_key', key_value: input.value }) - }); - const data = await res.json(); - if (data.success) { - alert('✅ Clé API sauvegardée !'); - closeConfigModal(); - } else { - alert(' Erreur : ' + (data.error || 'Impossible de sauvegarder.')); - } - } catch (err) { - console.error('Erreur sauvegarde clé :', err); - alert('Erreur de communication avec le serveur.'); +async function saveConfigKeys() { + const keys = { + 'tmdb_api_key': document.getElementById('tmdb-key-input')?.value || '', + 'ean_search_key': document.getElementById('ean-search-key-input')?.value || '', + 'barcode_lookup_key': document.getElementById('barcode-lookup-key-input')?.value || '' + }; + + let successCount = 0; + // Sauvegarde uniquement les champs qui ont été remplis/modifiés + for (const [keyName, keyValue] of Object.entries(keys)) { + if (keyValue) { + try { + const res = await fetch(`${API_URL}?action=save_config`, { + method: 'POST', + headers: { 'Authorization': localStorage.getItem('token'), 'Content-Type': 'application/json' }, + body: JSON.stringify({ key_name: keyName, key_value: keyValue }) + }); + const data = await res.json(); + if (data.success) successCount++; + } catch (err) { console.error(err); } } } + + if (successCount > 0) { + alert('✅ Clés API sauvegardées !'); + closeConfigModal(); + } else { + alert('Aucune nouvelle clé valide à sauvegarder.'); + } } async function saveNewPassword() {