function submitScheduledReportSubscription(overlay) { const $form = overlay.$dialogue.find('form'); const url = new Curl($form.attr('action')); const recipient = $('#recipientid').multiSelect('getData'); if (recipient.length) { $('#recipient_name').val(recipient[0]['name']); } 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}; } new ReportSubscription(response, response.edit ? overlay.element.closest('tr') : null); overlayDialogueDestroy(overlay.dialogueid); }) .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(); }); }