-
${label}
-
${name}
-
${addr}
-
-
${s.assigned_name || 'Sin asignar'}
- ${raw.scheduled_date ? `
${cita}
` : ''}
+
+
${label}
+
${name}
+
${addr}
+
+
${s.assigned_name || 'Sin asignar'}
+ ${raw.scheduled_date ? `
${cita}
` : ''}
-
+
`;
}
@@ -178,6 +193,10 @@
document.getElementById('detWorker').innerText = s.assigned_name || "Pendiente";
document.getElementById('dateInput').value = raw.scheduled_date || "";
document.getElementById('timeInput').value = raw.scheduled_time || "";
+
+ // Cargar mapa de estados guardado
+ document.getElementById('detStatusMap').value = raw.status_operativo || 'citado';
+
document.getElementById('detailModal').classList.remove('hidden');
lucide.createIcons();
}
@@ -186,12 +205,14 @@
const id = document.getElementById('detId').value;
const date = document.getElementById('dateInput').value;
const time = document.getElementById('timeInput').value;
+ const statusMap = document.getElementById('detStatusMap').value;
+
if(!date || !time) return alert("Indica fecha y hora");
const res = await fetch(`${API_URL}/services/set-appointment/${id}`, {
method: 'PUT',
headers: { "Content-Type": "application/json", "Authorization": `Bearer ${localStorage.getItem("token")}` },
- body: JSON.stringify({ date, time })
+ body: JSON.stringify({ date, time, status_operativo: statusMap })
});
if(res.ok) { closeDetailModal(); refreshPanel(); }
}
@@ -207,12 +228,14 @@
guild_id: document.getElementById('nGuild').value,
assigned_to: document.getElementById('nWorker').value || null
};
- const res = await fetch(`${API_URL}/services/manual-high`, {
- method: 'POST',
- headers: { "Content-Type": "application/json", "Authorization": `Bearer ${localStorage.getItem("token")}` },
- body: JSON.stringify({ ...data, mode: action })
- });
- if (res.ok) { closeCreateModal(); refreshPanel(); }
+ try {
+ const res = await fetch(`${API_URL}/services/manual-high`, {
+ method: 'POST',
+ headers: { "Content-Type": "application/json", "Authorization": `Bearer ${localStorage.getItem("token")}` },
+ body: JSON.stringify({ ...data, mode: action })
+ });
+ if (res.ok) { closeCreateModal(); refreshPanel(); }
+ } catch(e) { alert("Error al guardar"); }
}
function closeDetailModal() { document.getElementById('detailModal').classList.add('hidden'); }
@@ -222,13 +245,15 @@
async function loadGuilds() {
const res = await fetch(`${API_URL}/guilds`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } });
const data = await res.json();
- if(data.ok) document.getElementById('nGuild').innerHTML += data.guilds.map(g => `
`).join('');
+ if(data.ok) document.getElementById('nGuild').innerHTML = '
' + data.guilds.map(g => `
`).join('');
}
async function loadOps(gid) {
+ const sel = document.getElementById('nWorker');
+ if(!gid) { sel.innerHTML = '
'; return; }
const res = await fetch(`${API_URL}/operators?guild_id=${gid}`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } });
const data = await res.json();
- if(data.ok) document.getElementById('nWorker').innerHTML = data.operators.map(o => `
`).join('');
+ if(data.ok) sel.innerHTML = '
' + data.operators.map(o => `
`).join('');
}