forked from hestiacp/hestiacp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathformSubmit.js
More file actions
49 lines (43 loc) · 1.54 KB
/
formSubmit.js
File metadata and controls
49 lines (43 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import { enableUnlimitedInputs } from './unlimitedInput';
import { updateAdvancedTextarea } from './toggleAdvanced';
import { isDesktopSafari, showSpinner } from './helpers';
export default function handleFormSubmit() {
const mainForm = document.querySelector('#main-form');
if (mainForm) {
mainForm.addEventListener('submit', (event) => {
// Show loading spinner
showSpinner();
// Wait a bit if Desktop Safari to ensure spinner is shown
if (isDesktopSafari()) {
const submitButton = document.querySelector('button[type="submit"]');
if (!submitButton.dataset.clicked) {
event.preventDefault();
submitButton.dataset.clicked = 'true';
setTimeout(() => {
mainForm.submit();
}, 500);
}
}
// Enable any disabled inputs to ensure all fields are submitted
if (mainForm.classList.contains('js-enable-inputs-on-submit')) {
document.querySelectorAll('input[disabled]').forEach((input) => {
input.disabled = false;
});
}
// Enable any disabled unlimited inputs and set their value to "unlimited"
enableUnlimitedInputs();
// Update the "advanced options" textarea with "basic options" input values
const basicOptionsWrapper = document.querySelector('.js-basic-options');
if (basicOptionsWrapper && !basicOptionsWrapper.classList.contains('u-hidden')) {
updateAdvancedTextarea();
}
});
}
const bulkEditForm = document.querySelector('[x-bind="BulkEdit"]');
if (bulkEditForm) {
bulkEditForm.addEventListener('submit', () => {
// Show loading spinner
showSpinner();
});
}
}