|
2759 | 2759 | try { |
2760 | 2760 | if (type === 'add') { |
2761 | 2761 | await addClientToServer(client); // отправка клиента на сервер |
2762 | | - alert('Клиент успешно добавлен!'); |
2763 | 2762 | } else if (type === 'edit' && clientData.id) { |
2764 | 2763 | await editClientOnServer(clientData.id, client); // изменение данных клиента на сервере |
2765 | | - alert('Клиент успешно обновлён!'); |
2766 | 2764 | } else { |
2767 | 2765 | throw new Error( |
2768 | 2766 | 'Неизвестный тип модального окна или отсутствует ID клиента!' |
2769 | 2767 | ); |
2770 | 2768 | } |
2771 | 2769 |
|
| 2770 | + // по-шаговая отработка setTimeout/задержек, т.е. валидное выделение формы/инпутов и потом/уже.. вывод сообщений, очистка/закрытие, перемещение фокуса |
2772 | 2771 | setTimeout(() => { |
2773 | | - // очистка всех полей формы (удаление классов/сообщений ошибок) |
2774 | | - allModalInputs.forEach((input) => { |
2775 | | - input.value = ''; |
2776 | | - input.classList.remove('is-invalid'); |
2777 | | - }); |
2778 | | - modalBodyForm.classList.remove('was-validated'); // удаление класса "was-validated" |
2779 | | - |
2780 | | - // закрытие модального окна (через/посредствам Bootstrap API) |
2781 | | - const bootstrapModal = bootstrap.Modal.getInstance( |
2782 | | - modalBodyForm.closest('.modal') |
| 2772 | + alert( |
| 2773 | + type === 'add' |
| 2774 | + ? 'Клиент успешно добавлен!' |
| 2775 | + : 'Клиент успешно обновлён!' |
2783 | 2776 | ); |
2784 | | - if (bootstrapModal) { |
2785 | | - bootstrapModal.hide(); |
2786 | | - } |
2787 | 2777 |
|
2788 | | - // выделение/показ только что добавленного/от редактируемого клиента/строки (исходя из типа) |
2789 | | - if (type === 'add') { |
2790 | | - setTimeout(() => { |
2791 | | - moveToAndHighlightClientRow('add'); // перемещение фокуса на только, что добавленного клиента |
2792 | | - }, 300); // временная задержка, больше.. чтобы модальное окно успело закрыться |
2793 | | - } else if (type === 'edit' && clientData.id) { |
| 2778 | + setTimeout(() => { |
| 2779 | + // очистка всех полей формы (удаление классов/сообщений ошибок) |
| 2780 | + allModalInputs.forEach((input) => { |
| 2781 | + input.value = ''; |
| 2782 | + input.classList.remove('is-invalid'); |
| 2783 | + }); |
| 2784 | + modalBodyForm.classList.remove('was-validated'); // удаление класса "was-validated" |
| 2785 | + |
| 2786 | + // закрытие модального окна (через/посредствам Bootstrap API) |
| 2787 | + const bootstrapModal = bootstrap.Modal.getInstance( |
| 2788 | + modalBodyForm.closest('.modal') |
| 2789 | + ); |
| 2790 | + if (bootstrapModal) { |
| 2791 | + bootstrapModal.hide(); |
| 2792 | + } |
| 2793 | + |
| 2794 | + // выделение/показ только что добавленного/от редактируемого клиента/строки (исходя из типа) |
2794 | 2795 | setTimeout(() => { |
2795 | | - moveToAndHighlightClientRow('edit', clientData.id); // перемещение фокуса на только, что от редактируемого клиента |
| 2796 | + moveToAndHighlightClientRow(type, clientData.id); // перемещение фокуса на только, что добавленного/изменённого клиента |
2796 | 2797 | }, 300); // временная задержка, больше.. чтобы модальное окно успело закрыться |
2797 | | - } |
2798 | | - }, 200); |
| 2798 | + }, 200); |
| 2799 | + }, 100); |
2799 | 2800 | } catch (error) { |
2800 | 2801 | console.error( |
2801 | 2802 | `Ошибка при ${ |
|
3027 | 3028 | td.style.fontWeight = 'normal'; |
3028 | 3029 | td.style.color = color; |
3029 | 3030 | }); |
3030 | | - }, 2000); |
| 3031 | + }, 3000); |
3031 | 3032 | } |
3032 | 3033 | })(); |
0 commit comments