murph-skeleton/assets/js/admin/modules/modal.js

57 lines
1.2 KiB
JavaScript
Raw Normal View History

2021-06-15 14:16:07 +02:00
const $ = require('jquery')
2021-03-24 12:27:07 +01:00
2021-06-15 14:16:07 +02:00
module.exports = function () {
let click = 0
2021-06-15 11:31:52 +02:00
2021-06-15 14:16:07 +02:00
$('body').on('click', '*[data-modal]', (e) => {
e.preventDefault()
e.stopPropagation()
2021-03-24 12:27:07 +01:00
2021-06-15 14:16:07 +02:00
++click
2021-06-15 11:31:52 +02:00
2021-06-15 14:16:07 +02:00
window.setTimeout(() => {
if (click !== 1) {
click = 0
2021-06-15 11:31:52 +02:00
2021-06-15 14:16:07 +02:00
return
}
2021-06-15 11:31:52 +02:00
2021-06-15 14:16:07 +02:00
click = 0
2021-06-15 11:31:52 +02:00
2021-06-15 14:16:07 +02:00
let container = $('#modal-container')
const body = $('body')
2021-06-15 11:31:52 +02:00
2021-06-15 14:16:07 +02:00
if (!container.length) {
container = $('<div id="modal-container" class="modal">')
2021-06-15 11:31:52 +02:00
2021-06-15 14:16:07 +02:00
body.append(container)
}
2021-03-24 12:27:07 +01:00
2021-06-15 14:16:07 +02:00
const loader = $('<div style="position: absolute; top: 25vh; left: 50vw; z-index: 2000">')
loader.html('<div class="spinner-border text-primary" role="status"><span class="sr-only">Loading...</span></div>')
body.append(loader)
2021-03-24 12:27:07 +01:00
2021-06-15 14:16:07 +02:00
container.html('')
2021-03-24 12:27:07 +01:00
2021-06-15 14:16:07 +02:00
let url = $(e.target).attr('data-modal')
2021-05-24 18:41:57 +02:00
2021-06-15 14:16:07 +02:00
if (!url) {
url = $(e.target).parents('*[data-modal]').first().attr('data-modal')
}
2021-03-24 12:27:07 +01:00
2021-06-15 14:16:07 +02:00
$(container).modal('show')
2021-03-24 12:27:07 +01:00
2021-06-15 14:16:07 +02:00
container.load(url, function () {
loader.remove()
})
}, 250)
})
2021-03-24 12:27:07 +01:00
2021-06-15 14:16:07 +02:00
const urlParams = new URLSearchParams(window.location.search)
const dataModal = urlParams.get('data-modal')
2021-03-24 12:27:07 +01:00
2021-06-15 14:16:07 +02:00
if (dataModal) {
$('*[data-modal="' + dataModal + '"]').first().click()
}
2021-03-24 12:27:07 +01:00
}