16 lines
766 B
JavaScript
16 lines
766 B
JavaScript
|
function initModal(target, url, content_id = 'form-content') {
|
||
|
document.querySelector('[data-bs-target="#' + target + 'Modal"]').addEventListener('click', () => {
|
||
|
let modalBody = document.querySelector("#" + target + "Modal div.modal-body")
|
||
|
|
||
|
if (!modalBody.innerHTML.trim()) {
|
||
|
if (url instanceof Function) url = url()
|
||
|
|
||
|
fetch(url, {headers: {'CONTENT-ONLY': '1'}})
|
||
|
.then(resp => resp.text())
|
||
|
.then(resp => new DOMParser().parseFromString(resp, 'text/html'))
|
||
|
.then(res => modalBody.innerHTML = res.getElementById(content_id).outerHTML)
|
||
|
.then(() => $('.selectpicker').selectpicker()) // TODO Update that when the library will be JQuery-free
|
||
|
}
|
||
|
})
|
||
|
}
|