This commit is contained in:
Jonas Heinrich 2025-04-10 09:28:04 +02:00
parent 5b4e779145
commit f8715e6c8b
2 changed files with 72 additions and 15 deletions

View file

@ -21,6 +21,12 @@
overlays = [
(self: super: {
froide-govplan = super.froide-govplan.overrideAttrs (oldAttrs: rec {
src = pkgs.fetchFromGitHub {
owner = "onny";
repo = "froide-govplan";
rev = "81697ce37cfdee7b5d0f667c50b13062ed9786c3";
hash = "sha256-ooHGlCKgZL+TMh6OtopKtbkV0MhT4udLCOIC+C3Ytdw=";
};
postInstall = oldAttrs.postInstall + ''
rm -r $out/${pkgs.python3.sitePackages}/froide_govplan/templates
ln -sf /var/lib/froide-govplan/templates $out/${pkgs.python3.sitePackages}/froide_govplan/templates
@ -38,21 +44,6 @@
cores = 4;
};
nixpkgs = {
overlays = [
(self: super: {
froide-govplan = nixpkgs-master.froide-govplan.overridePythonAttrs (oldAttrs: {
src = pkgs.fetchFromGitHub {
owner = "onny";
repo = "froide-govplan";
rev = "b0bc48da19c40ac7288da088638a0c699075c556";
hash = "sha256-wvI6HdDZnp45cRVXxiiWWyGZMd1rCT7r3NQk1Fa/oS4=";
};
});
})
];
};
services.froide-govplan = {
enable = true;
settings = {

View file

@ -129,6 +129,72 @@
{% block scripts %}
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script lang="javascript">
const Ze = t => {
const e = t.dataset.confirm;
return e ? !!window.confirm(e) : !0
};
const ke = '<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>',
Ye = t => {
Array.from(t.querySelectorAll("button, input")).forEach(e => {
e.getAttribute("type") === "submit" && (e.innerHTML = `${ke}${e.innerHTML}`), e.setAttribute("disabled", "")
})
},
Je = t => {
Array.from(t.querySelectorAll("button, input")).forEach(e => {
e.getAttribute("type") === "submit" && (e.innerHTML = e.innerHTML.replace(ke, "")), e.removeAttribute("disabled")
})
};
function Xe() {
const t = document.querySelectorAll("form.ajaxified");
Array.from(t).forEach(e => {
e.addEventListener("submit", n => {
if (n.preventDefault(), !Ze(e)) return !1;
const r = e.getAttribute("method") || "post";
let o = e.getAttribute("action") || "";
const i = new FormData(e),
s = Array.from(i).map(c => c.map(l => encodeURIComponent(l)).join("=")).join("&");
r.toLowerCase() === "get" && (o = `${o}?${s}`);
const a = new XMLHttpRequest;
a.open(r, o, !0), a.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), a.setRequestHeader("X-Requested-With", "XMLHttpRequest"), a.onload = () => {
var l, u;
if (e.dataset.modalcontainer) {
const d = document.querySelector(e.dataset.modalcontainer);
d != null && (new $(d).show(), console.log("got modal"));
const modalElement = document.getElementById('govplan-searchmodal-275111');
const modal = new bootstrap.Modal(modalElement);
modal.show();
} else if (e.dataset.modal) {
const d = document.getElementById(e.dataset.modal);
(l = d == null ? void 0 : d.dataset) != null && l.bsTarget && ((u = $.getInstance(document.querySelector(d.dataset.bsTarget))) == null || u.hide())
}
const c = a.responseText;
if (c[0] === "/") {
window.location.href = c, c.includes("#") && window.location.reload();
return
}
if (e.dataset.container) {
Je(e);
const d = document.querySelector(e.dataset.container);
d != null && (d.innerHTML = c)
} else {
const d = e.closest(".ajax-parent");
if (d != null)
if (c[0] === "{") {
const f = JSON.parse(c);
f.errors && (d.outerHTML = `<div class="alert alert-danger">${f.errors}</div>`)
} else d.outerHTML = c;
else e.outerHTML = c
}
}, r.toLowerCase() !== "get" ? a.send(s) : a.send(), Ye(e)
})
})
}
Xe();
</script>
{% endblock %}
{% render_block "js" %}