81 lines
2.5 KiB
HTML
81 lines
2.5 KiB
HTML
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Actix Admin</title>
|
|
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css"
|
|
integrity="sha512-1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMfw5BC1A=="
|
|
crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
<script src="https://unpkg.com/htmx.org@1.7.0"></script>
|
|
|
|
<script>
|
|
function checkAll(bx) {
|
|
var cbs = document.getElementsByTagName('input');
|
|
for (var i = 0; i < cbs.length; i++) {
|
|
if (cbs[i].type == 'checkbox') {
|
|
cbs[i].checked = bx.checked;
|
|
}
|
|
}
|
|
}
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
// Get all "navbar-burger" elements
|
|
const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);
|
|
|
|
// Add a click event on each of them
|
|
$navbarBurgers.forEach(el => {
|
|
el.addEventListener('click', () => {
|
|
|
|
// Get the target from the "data-target" attribute
|
|
const target = el.dataset.target;
|
|
const $target = document.getElementById(target);
|
|
|
|
// Toggle the "is-active" class on both the "navbar-burger" and the "navbar-menu"
|
|
el.classList.toggle('is-active');
|
|
$target.classList.toggle('is-active');
|
|
|
|
});
|
|
});
|
|
});
|
|
|
|
htmx.on("htmx:responseError", function () {
|
|
document.getElementById("notifications").insertAdjacentHTML(
|
|
"afterend",
|
|
"<div class=\"notification mb-4 is-light is-danger\"><button class=\"delete\" onclick=\"this.parentElement.remove()\"></button>An Error occurred</div>");
|
|
})
|
|
</script>
|
|
|
|
<style>
|
|
.loader-wrapper {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
height: 100%;
|
|
width: 100%;
|
|
display: flex;
|
|
background: rgba(255, 255, 255, 0.3);
|
|
justify-content: center;
|
|
align-items: center;
|
|
z-index: 6;
|
|
pointer-events: none
|
|
}
|
|
|
|
.fade-in {
|
|
opacity: 1;
|
|
animation-name: fadeInOpacity;
|
|
animation-iteration-count: 1;
|
|
animation-timing-function: ease-in;
|
|
animation-duration: 0.2s;
|
|
}
|
|
|
|
|
|
@keyframes fadeInOpacity {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
</style> |