added multiple tested components

This commit is contained in:
2026-02-17 09:04:30 +01:00
parent 78154e43a9
commit cd3bccd183
4 changed files with 109 additions and 46 deletions
+41 -23
View File
@@ -1964,50 +1964,68 @@ function fixedDefaultValue(array $f): string
const $cell = $(this).closest('.grid-cell');
const $input = $cell.find('input[name^="rows["][name$="[tested_component]"]');
const partDescription = ($input.val() || '').trim();
const raw = ($input.val() || '').trim();
if (!iddatadb) {
alert('❌ iddatadb not found on row');
return;
}
// ✅ split multiplo con "|"
const parts = raw
.split('|')
.map(s => s.trim())
.filter(s => s.length > 0);
if (!partDescription) {
// (opzionale) dedup per evitare doppioni tipo "Cap | Cap"
const uniqueParts = [...new Set(parts)];
if (!uniqueParts.length) {
alert('⚠️ Inserisci prima una descrizione nel campo Tested Component.');
$input.focus();
return;
}
try {
const formData = new FormData();
formData.append('iddatadb', iddatadb);
formData.append('part_description', partDescription);
let okCount = 0;
const errors = [];
const resp = await fetch('add_part_quick.php', {
method: 'POST',
body: formData
});
// ✅ esegue una chiamata per ogni parte (compatibile con lattuale add_part_quick.php)
for (const p of uniqueParts) {
const formData = new FormData();
formData.append('iddatadb', iddatadb);
formData.append('part_description', p);
const data = await resp.json();
const resp = await fetch('add_part_quick.php', {
method: 'POST',
body: formData
});
if (!resp.ok || !data.success) {
throw new Error(data.message || ('HTTP ' + resp.status));
let data = {};
try {
data = await resp.json();
} catch (e) {}
if (!resp.ok || !data.success) {
errors.push(`"${p}": ${(data && data.message) ? data.message : ('HTTP ' + resp.status)}`);
} else {
okCount++;
}
}
// ✅ Do NOT clear tested_component: keep it as a warning/notice
// feedback UI
$input.addClass('cell-changed');
setTimeout(() => $input.removeClass('cell-changed'), 1200);
// opzionale: se vuoi comunque “registrare” il cambiamento nel tracker unsaved
$input.trigger('change');
showQuickPartModal('✅ Parte aggiunta con successo!');
if (errors.length === 0) {
showQuickPartModal(`✅ Parti aggiunte: ${okCount}`);
} else {
// aggiunge comunque se alcune sono ok
showQuickPartModal(`⚠️ Parti aggiunte: ${okCount}\nErrori:\n- ${errors.join('\n- ')}`);
console.error('Add parts errors:', errors);
}
} catch (err) {
alert('❌ Errore aggiunta parte: ' + err.message);
alert('❌ Errore aggiunta parti: ' + err.message);
console.error(err);
}
});
function showQuickPartModal(message) {