|
1 | 1 | (() => { |
2 | 2 | // ** получение существующих, создание "новых" элементов (глобальное объявление) |
3 | | - const crm = document.getElementById('crm'); |
4 | | - const crmSearch = document.getElementById('crm-search'); |
5 | | - const crmOutput = document.getElementById('crm-output'); |
6 | | - const crmAdd = document.getElementById('crm-add'); |
7 | 3 | const crmSearchContainer = document.querySelector('.crm__search-container'); |
8 | 4 | const crmOutputContainer = document.querySelector('.crm__output-container'); |
9 | 5 | const crmAddContainer = document.querySelector('.crm__add-container'); |
|
231 | 227 | outputTable.append(outTableHead, outTableBody); |
232 | 228 | crmOutputContainer.append(outputTitleWrap, outputTable); |
233 | 229 |
|
234 | | - // организация кнопки для добавления "нового" клиента (последующее открытие модального окна) |
| 230 | + // ** организация кнопки для добавления "нового" клиента (последующее открытие модального окна) |
235 | 231 | const addBtnWrap = document.createElement('div'); |
236 | 232 | const addBtn = document.createElement('button'); |
237 | 233 | const addBtnIcon = document.createElement('i'); |
|
242 | 238 |
|
243 | 239 | addBtn.setAttribute('id', 'add-btn'); |
244 | 240 | addBtn.setAttribute('type', 'button'); |
245 | | - addBtn.setAttribute('data-bs-toggle', 'modal'); |
246 | | - // ! нужно как то увязать id для этой кнопки, т.е. это id от modalWrap который по сути ещё не создан?? |
247 | | - // ! нужна наверное функция, которая через клик по этой кнопке будет инициировать.. |
248 | | - // ! const bootstrapModal = new bootstrap.Modal(modal); |
249 | | - // ! bootstrapModal.show(); |
250 | | - addBtn.setAttribute('data-bs-target', '#add-modal'); |
251 | 241 |
|
252 | 242 | addBtn.textContent = 'Добавить клиента'; |
253 | 243 |
|
254 | 244 | addBtn.append(addBtnIcon); |
255 | 245 | addBtnWrap.append(addBtn); |
256 | 246 | crmAddContainer.append(addBtnWrap); |
257 | 247 |
|
258 | | - // основные блоки/составляющие элементы приложения |
259 | | - crm.append(crmSearch, crmOutput, crmAdd); |
| 248 | + // обработка клика по кнопке, создание/отображение модального окна |
| 249 | + addBtn.addEventListener('click', () => { |
| 250 | + const modalWrap = createModalWindowByType('add'); // создание по типу "add" |
| 251 | + |
| 252 | + crmAddContainer.append(modalWrap); // добавление в DOM |
| 253 | + |
| 254 | + // инициализация через Bootstrap API |
| 255 | + const bootstrapModal = new bootstrap.Modal(modalWrap); |
| 256 | + bootstrapModal.show(); // отображение |
| 257 | + }); |
260 | 258 |
|
261 | 259 | // ** появление/скрытие поля для ввода данных/фильтрационного инпута (по нажатию на logo, на 320px) |
262 | 260 | searchLogoImg.addEventListener('click', () => { |
|
1142 | 1140 | modalContent.append(modalHeader, modalBody, modalFooter); |
1143 | 1141 | modalDialog.append(modalContent); |
1144 | 1142 | modalWrap.append(modalDialog); |
1145 | | - crmAddContainer.append(modalWrap); |
1146 | | - } |
1147 | 1143 |
|
1148 | | - addBtn.addEventListener('click', () => { |
1149 | | - createModalWindowByType('add'); |
1150 | | - }); |
| 1144 | + return modalWrap; // возврат модального окна (т.е. здесь/без добавления в DOM.. позже, при клике) |
| 1145 | + } |
1151 | 1146 |
|
1152 | 1147 | // ! корректировка |
1153 | 1148 | // ** организация принудительного удаления атрибута aria-hidden="true" с модальных окон (исключение ошибок с ARIA) |
|
0 commit comments