mirror of
https://github.com/fruithost/Panel.git
synced 2026-10-30 08:36:49 +09:00
158 lines
4.6 KiB
JavaScript
158 lines
4.6 KiB
JavaScript
(() => {
|
|
function show(event) {
|
|
[].map.call(document.querySelectorAll('.bi[data-bs-toggle="collapse"][data-bs-target="#' + event.target.id + '"], [data-bs-toggle="collapse"][data-bs-target="#' + event.target.id + '"] .bi'), function(icon) {
|
|
icon.classList.remove('bi-caret-up-square-fill');
|
|
icon.classList.remove('bi-caret-down-square-fill');
|
|
icon.classList.add('bi-caret-up-square-fill');
|
|
});
|
|
};
|
|
|
|
function hide(event) {
|
|
[].map.call(document.querySelectorAll('.bi[data-bs-toggle="collapse"][data-bs-target="#' + event.target.id + '"], [data-bs-toggle="collapse"][data-bs-target="#' + event.target.id + '"] .bi'), function(icon) {
|
|
icon.classList.remove('bi-caret-up-square-fill');
|
|
icon.classList.remove('bi-caret-down-square-fill');
|
|
icon.classList.add('bi-caret-down-square-fill');
|
|
});
|
|
};
|
|
|
|
[].map.call(document.querySelectorAll('.collapse'), function(collapse) {
|
|
collapse.addEventListener('show.bs.collapse', show);
|
|
collapse.addEventListener('shown.bs.collapse', show);
|
|
collapse.addEventListener('hide.bs.collapse', hide);
|
|
collapse.addEventListener('hidden.bs.collapse', hide);
|
|
});
|
|
|
|
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
|
|
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
|
|
|
|
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"], [data-bs-toggle="hover"]')
|
|
const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl, {
|
|
trigger: 'hover',
|
|
html: true
|
|
}))
|
|
|
|
function serialize(form) {
|
|
var obj = {};
|
|
var formData = new FormData(form);
|
|
for (var key of formData.keys()) {
|
|
obj[key] = formData.get(key);
|
|
}
|
|
return obj;
|
|
};
|
|
|
|
function ajaxSubmit(event) {
|
|
event.preventDefault();
|
|
|
|
try {
|
|
let form = this;
|
|
|
|
// @ToDo add onError?
|
|
|
|
new Ajax(form.action).onSuccess(function(response) {
|
|
if(response.toLowerCase() === 'true' || response.toLowerCase() === '1') {
|
|
//form.closest('.modal').modal('hide');
|
|
window.location.reload();
|
|
return;
|
|
} else if(response.toLowerCase() === 'false') {
|
|
response = 'An unknown error has occurred.';
|
|
}
|
|
|
|
let content = form.querySelector('.modal-body');
|
|
let alert = content.querySelector('.alert');
|
|
|
|
if(alert) {
|
|
content.removeChild(alert);
|
|
}
|
|
|
|
alert = document.createElement('div');
|
|
alert.classList.add('alert');
|
|
alert.classList.add('alert-danger');
|
|
alert.setAttribute('role', 'alert');
|
|
alert.innerHTML = response;
|
|
content.prepend(alert);
|
|
}).post(serialize(form));
|
|
} catch(e) {
|
|
|
|
}
|
|
|
|
return false;
|
|
};
|
|
|
|
[].map.call(document.querySelectorAll('.ajax'), function(form) {
|
|
/*form.addEventListener('click', function(event) {
|
|
ajaxSubmit.apply(form, [ event ]);
|
|
});*/
|
|
|
|
form.addEventListener('submit', function(event) {
|
|
ajaxSubmit.apply(form, [ event ]);
|
|
});
|
|
});
|
|
})();
|
|
|
|
|
|
/*
|
|
|
|
(function($) {
|
|
$('[data-confirm]').on('mousedown', function(event) {
|
|
let target = $(this);
|
|
let popup = $('#confirmation');
|
|
let prevent = true;
|
|
|
|
$('.modal-body, p', popup).remove();
|
|
$('.modal-footer', popup).addClass('text-center');
|
|
$('.modal-footer', popup).css('justify-content', 'center');
|
|
$('<p class="m-0 text-center p-3">' + target.data('confirm') + '</p>').insertAfter($('.modal-header', popup));
|
|
$('<p class="modal-body d-none">' + target.data('confirm') + '</p>').insertAfter($('.modal-header', popup));
|
|
popup.modal('show');
|
|
|
|
let _watcher = setInterval(function() {
|
|
var state = $('.alert', popup).text();
|
|
|
|
if(state === 'CONFIRMED') {
|
|
clearInterval(_watcher);
|
|
|
|
if(target.prop('tagName') == 'A') {
|
|
window.location.href = target.attr('href');
|
|
} else {
|
|
target.trigger('click');
|
|
}
|
|
}
|
|
}, 500);
|
|
|
|
popup.on('hide.bs.modal', function(event) {
|
|
clearInterval(_watcher);
|
|
});
|
|
|
|
if(prevent) {
|
|
event.preventDefault();
|
|
return false;
|
|
}
|
|
});
|
|
|
|
$('.sortable').sortable({
|
|
appendTo: 'parent',
|
|
cursor: 'move',
|
|
handle: '.moveable',
|
|
dropOnEmpty: false,
|
|
forceHelperSize: false,
|
|
forcePlaceholderSize: false,
|
|
helper: 'original',
|
|
items: '> li',
|
|
placeholder: {
|
|
element: function(currentItem) {
|
|
return $('<div class="sortable-placeholder"><div class="card m-2">Drop here</div></div>')[0];
|
|
},
|
|
update: function(container, p) {
|
|
return;
|
|
}
|
|
},
|
|
scroll: false,
|
|
beforeStop: function onBeforeClose(event, ui) {
|
|
$('body').removeClass('sortable');
|
|
},
|
|
start: function onStart(event, ui) {
|
|
$('body').addClass('sortable');
|
|
ui.placeholder.addClass('col-6');
|
|
}
|
|
});
|
|
}(jQuery));*/ |