Rebuild workspace widgets and behavioral graph views

This commit is contained in:
2026-03-13 16:48:24 +00:00
parent f8a6d1d41c
commit 57269770b5
47 changed files with 2951 additions and 1077 deletions

View File

@@ -43,7 +43,7 @@
<link rel="preload" href="{% static 'vendor/fontawesome/webfonts/fa-regular-400.woff2' %}" as="font" type="font/woff2" integrity="sha512-qioT43fXB5q4Bbpn8sPQE9OIZLjKD0c0lVmpm6KmT8k34LM6gkRcOOMi1BOl2lohFG/7p9tzKfTP5G563BQq1g==" crossorigin="anonymous">
<link rel="stylesheet" href="{% static 'css/bulma.min.css' %}" integrity="sha512-yh2RE0wZCVZeysGiqTwDTO/dKelCbS9bP2L94UvOFtl/FKXcNAje3Y2oBg/ZMZ3LS1sicYk4dYVGtDex75fvvA==" crossorigin="anonymous">
<link rel="stylesheet" href="{% static 'vendor/fontawesome/css/all.css' %}" integrity="sha512-UKBBxJ5N3/MYiSsYTlEsARsp4vELKVRIklED4Mb6wpuVFOgy5Blt+sXUdz1TDReqWsm64xxBA2QoBJRCxI0x5Q==" crossorigin="anonymous">
<link rel="stylesheet" href="{% static 'css/gia-theme.css' %}" integrity="sha512-17wNDv0gA1saxAIzoySMcOef4/8dKEo2eZcWGhVHUjKolxhbfYVia9i/wExDqEw8MhfP4Kk8BrMajcOHngqJJg==" crossorigin="anonymous">
<link rel="stylesheet" href="{% static 'css/gia-theme.css' %}" integrity="sha512-Lnmy74rBeyPt8DwWBqsRj9hFqTXuXZqkIgIeIm+inhoXpOfGjsvlealaDwRNVv/ou0Bta6h/RmOkjOJYOkALCw==" crossorigin="anonymous">
{% block extra_head_assets %}{% endblock %}
<script src="{% static 'js/htmx.min.js' %}" integrity="sha512-CGXFnDNv5q48ciFeIyWFcfZhqYW0sSBiPO+HZDO3XLM+p8xjhezz5CCxtkXVDKfCbvF+iUhel7xoeSp19o7x7g==" crossorigin="anonymous"></script>
<script defer src="{% static 'js/remove-me.js' %}" integrity="sha512-uhE4kDw2+tXdJPDKSttOEYhVnwYq310+d5DMQnTjafJ58QLlYPyx0RTCNbjcrTiGfCjAhaQob4AumEUa2m3TaQ==" crossorigin="anonymous"></script>
@@ -163,6 +163,49 @@
});
});
var closeGiaDropdowns = function (exceptNode) {
document.querySelectorAll(".dropdown[data-gia-dropdown].is-active").forEach(function (node) {
if (exceptNode && node === exceptNode) {
return;
}
node.classList.remove("is-active");
var trigger = node.querySelector(".js-gia-dropdown-toggle");
if (trigger) {
trigger.setAttribute("aria-expanded", "false");
}
});
};
document.addEventListener("click", function (event) {
var toggle = event.target.closest(".js-gia-dropdown-toggle");
if (toggle) {
event.preventDefault();
event.stopPropagation();
var dropdown = toggle.closest(".dropdown[data-gia-dropdown]");
if (!dropdown) {
return;
}
var nextState = !dropdown.classList.contains("is-active");
closeGiaDropdowns(nextState ? dropdown : null);
dropdown.classList.toggle("is-active", nextState);
toggle.setAttribute("aria-expanded", nextState ? "true" : "false");
return;
}
if (!event.target.closest(".dropdown[data-gia-dropdown]")) {
closeGiaDropdowns(null);
return;
}
if (event.target.closest(".dropdown[data-gia-dropdown] .dropdown-item") && !event.target.closest("summary")) {
closeGiaDropdowns(null);
}
});
document.addEventListener("keydown", function (event) {
if (event.key === "Escape") {
closeGiaDropdowns(null);
}
});
document.body.addEventListener("htmx:afterRequest", function (event) {
const detail = (event && event.detail) || null;
const source = detail && detail.elt ? detail.elt : null;