Agent-Fernsteuerung: Neustart-Befehl + Logs an Directus

- bootstrap: Collections agent_logs (Logs/Fehler von Agent & AutoRecover) und
  agent_commands (Befehle an den Agenten, Typ restart; Agent arbeitet „pending“ ab).
- Produktion: Button „🔄 Programm neustarten“ legt einen restart-Befehl für die
  aktive Maschine an.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
s4luorth
2026-09-11 19:57:50 +02:00
parent 4aa3fd04e6
commit cc39dade9e
2 changed files with 32 additions and 0 deletions

View File

@@ -921,6 +921,17 @@ const Board = defineComponent({
}
function closeDateien() { pvClear(); dateien.open = false; }
// Neustart-Befehl an den Agenten (Programm auf dem Windows-Rechner neu starten).
// Der Agent pollt agent_commands und führt den Neustart aus (Ziel = Agent-Config).
async function programmNeustarten() {
const m = aktiveMaschinen.value[0];
if (typeof window !== 'undefined' && !window.confirm(`Programm auf dem Agenten${m ? ' (' + m.name + ')' : ''} neu starten?`)) return;
try {
await api.post('/items/agent_commands', { type: 'restart', status: 'pending', machine: m?.id ?? null });
flash('Neustart-Befehl an den Agenten gesendet – wird beim nächsten Poll ausgeführt.');
} catch (e) { fehler.value = e?.response?.data?.errors?.[0]?.message || e?.message || 'Konnte Neustart-Befehl nicht senden.'; }
}
// ── Render-Bausteine ──────────────────────────────────────────────────
function actionButtons(order) {
// Drucken + Empfänger immer sichtbar; Rest hinter „Weiteres".
@@ -1407,6 +1418,7 @@ const Board = defineComponent({
style: S_INPUT + 'flex:1;min-width:240px;', onInput: (e) => { suche.value = e.target.value; } }),
sichtbareOrders().length ? btn(alleSichtbarGewaehlt() ? '☐ Auswahl aufheben' : '☑ Alle auswählen', alleAuswaehlen) : null,
btn('↻ Aktualisieren', laden),
btn('🔄 Programm neustarten', programmNeustarten),
]);
// Leicht getönte Inhaltsfläche → weiße Karten heben sich klar ab (wie im Referenz-Dashboard).