first commit

This commit is contained in:
Patrick
2026-05-01 20:02:13 +02:00
commit 75fb753fc0
77 changed files with 4793 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
// ═══════════════════════════════════════════════════════
// Cron Parser
// ═══════════════════════════════════════════════════════
function setCronPreset(expr) {
document.getElementById('cronInput').value = expr;
parseCron();
}
async function parseCron() {
const expr = document.getElementById('cronInput').value.trim();
if (!expr) return setStatus('cronStatus', 'error', 'Enter a cron expression.');
const d = await apiPost('/api/cron/parse', { expression: expr });
if (d.success) {
document.getElementById('cronResult').style.display = 'block';
document.getElementById('cronDescription').textContent = d.description;
document.getElementById('cronFields').innerHTML = Object.entries(d.fields).map(([k, v]) =>
`<div class="result-row"><div class="label">${k}</div><div class="value">${v}</div></div>`
).join('');
document.getElementById('cronNextRuns').innerHTML = d.nextRuns.map((t, i) =>
`<div class="result-row"><div class="label">Run #${i + 1}</div><div class="value" onclick="copyText(this.textContent)" title="Click to copy">${t}</div></div>`
).join('');
setStatus('cronStatus', 'success', 'Parsed ✓');
} else {
document.getElementById('cronResult').style.display = 'none';
setStatus('cronStatus', 'error', d.error);
}
}