asdasd
All checks were successful
Deploy / deploy-staging (push) Successful in 5s
Deploy / deploy-production (push) Has been skipped

This commit is contained in:
2026-05-01 02:14:25 +02:00
parent 8ec7270128
commit eb864077bf

View File

@@ -1742,12 +1742,27 @@ $activeDbGroup = $testGroup !== null && array_key_exists($testGroup, $dbGroups)
});
});
});
try {
console.groupCollapsed('[scheduler] collect payload');
for (const pair of payload.entries()) {
console.log(pair[0], pair[1]);
}
console.groupEnd();
} catch (error) {
console.warn('[scheduler] payload debug failed', error);
}
return payload;
};
const persistScheduler = async () => {
if (!form) return true;
const response = await fetch(form.action || window.location.href, {
const url = form.action || window.location.href;
console.log('[scheduler] persist start', {
url,
method: 'POST',
hasForm: !!form,
});
const response = await fetch(url, {
method: 'POST',
body: collectSchedulerPayload(),
credentials: 'same-origin',
@@ -1756,20 +1771,31 @@ $activeDbGroup = $testGroup !== null && array_key_exists($testGroup, $dbGroups)
'X-Requested-With': 'XMLHttpRequest',
},
});
console.log('[scheduler] persist response meta', {
ok: response.ok,
status: response.status,
redirected: response.redirected,
contentType: response.headers.get('content-type'),
url: response.url,
});
if (!response.ok) {
throw new Error(`Scheduler konnte nicht gespeichert werden (${response.status}).`);
}
const raw = await response.text();
console.log('[scheduler] persist raw response', raw);
let data = null;
try {
data = JSON.parse(raw);
} catch (error) {
console.error('[scheduler] persist json parse failed', error);
throw new Error(`Scheduler-Antwort war kein JSON: ${raw.slice(0, 160)}`);
}
console.log('[scheduler] persist parsed response', data);
if (!data || data.ok !== true) {
throw new Error(data?.message || 'Scheduler konnte nicht gespeichert werden.');
}
applyStatusUpdates(data.statuses || []);
console.log('[scheduler] persist success');
return true;
};
@@ -1888,6 +1914,12 @@ $activeDbGroup = $testGroup !== null && array_key_exists($testGroup, $dbGroups)
const saveModal = async () => {
const entry = modalState.entry;
if (!entry) return;
console.log('[scheduler] modal save click', {
tab: modalState.tab,
entryIndex: entry.dataset.entryIndex || null,
enabled: modalFields.enabled.value,
timezone: modalFields.timezone.value,
});
const modeNode = getEntryField(entry, '[data-cron-builder-mode]');
const kindNode = getEntryField(entry, '[data-cron-builder-kind]');
@@ -1901,6 +1933,7 @@ $activeDbGroup = $testGroup !== null && array_key_exists($testGroup, $dbGroups)
const timezoneNode = getEntryField(entry, '[data-cron-timezone]');
if (!modeNode || !kindNode || !timeNode || !weekdayNode || !monthDayNode || !intervalHoursNode || !intervalDaysNode || !enabledNode || !expressionNode || !timezoneNode) {
console.error('[scheduler] modal save aborted: missing entry fields');
return;
}
@@ -1931,8 +1964,10 @@ $activeDbGroup = $testGroup !== null && array_key_exists($testGroup, $dbGroups)
}
try {
await persistScheduler();
console.log('[scheduler] modal save complete, closing modal');
closeModal();
} catch (error) {
console.error('[scheduler] modal save failed', error);
alert(error instanceof Error ? error.message : 'Scheduler konnte nicht gespeichert werden.');
} finally {
if (modalFields.saveButton) {