function submitScheduledReport(overlay) { const $form = overlay.$dialogue.find('form'); const url = new Curl($form.attr('action')); $form.trimValues(['#name', '#subject', '#message', '#description']); fetch(url.getUrl(), { method: 'POST', body: new URLSearchParams(new FormData($form.get(0))) }) .then(response => response.json()) .then(response => { if ('error' in response) { throw {error: response.error}; } postMessageOk(response.success.title); if ('messages' in response.success) { postMessageDetails('success', response.success.messages); } overlayDialogueDestroy(overlay.dialogueid); location.href = location.href; }) .catch((exception) => { overlay.$dialogue.find('.').remove(); let title, messages; if (typeof exception === 'object' && 'error' in exception) { title = exception.error.title; messages = exception.error.messages; } else { messages = []; } const message_box = makeMessageBox('bad', messages, title); message_box.insertBefore($form); }) .finally(() => { overlay.unsetLoading(); }); }