Files
finanzen/public/js/accounts.js
Markus 995e2ec111 redesign for mulituser
change validation concept (client and server)
using entities
2026-10-06 08:55:35 +02:00

71 lines
3.5 KiB
JavaScript

function moveEditor(){
treepos = 90 - document.getElementById("tree").getBoundingClientRect().top;
editor.style.position = 'relative';
editor.style.top = treepos+'px';
}
function scrollToEditor(){
let editor = document.getElementById("editor");
editor.scrollIntoView( {behavior: "smooth" });
}
function newCat(){
document.getElementById("editor").classList.remove("d-none");
document.getElementById("id").value = 0;
document.getElementById("bookable").checked = true;
document.getElementById("account").checked = false;
document.getElementById("monitor").checked = false;
document.getElementById("deleted_at").checked = false;
document.getElementById("parent").value = 0;
document.getElementById("description").value = "";
// scrollEditor();
}
document.addEventListener("DOMContentLoaded", function(event) {
editor = document.getElementById("editor");
document.querySelectorAll('.tree li:has(ul)').forEach((single) => {
single.classList.add("parent_li");
single.getElementsByTagName("i")[0].classList.add("fa-square-minus");
});
document.querySelectorAll(".tree span").forEach((spa) => {
spa.addEventListener("dblclick", (event) => {
const viewportWidth = document.documentElement.clientWidth;
if (viewportWidth < 768)
scrollToEditor();
else
moveEditor();
editor.classList.remove("d-none");
document.getElementById("bookable").checked = event.target.getAttribute("data-bookable")=="true";
document.getElementById("account").checked = event.target.getAttribute("data-account")=="true";
document.getElementById("monitor").checked = event.target.getAttribute("data-monitor")=="true";
document.getElementById("deleted_at").checked = event.target.getAttribute("data-deleted")!== "";
document.getElementById("id").value = event.target.getAttribute("data-id");
document.getElementById("parent").value = event.target.getAttribute("data-pid");
document.getElementById("description").value = event.target.getAttribute("data-description");
// scrollEditor();
});
});
document.querySelectorAll('.tree li.parent_li > span, .tree li.parent_li > i').forEach((parent) => {
parent.addEventListener("click",(event) => {
let single = event.target.parentElement.querySelector('ul,li');
let visible = single.classList.toggle("d-none");
if (visible) {
event.target.parentElement.querySelector("i").classList.add("fa-square-plus");
event.target.parentElement.querySelector("i").classList.remove("fa-square-minus");
} else {
event.target.parentElement.querySelector("i").classList.add("fa-square-minus");
event.target.parentElement.querySelector("i").classList.remove("fa-square-plus");
}
});
});
document.getElementById("viewdeleted").addEventListener("click",(event) => {
document.querySelectorAll(".tree span").forEach((spa) => {
if (event.currentTarget.checked && spa.getAttribute("data-deleted")!== "")
spa.parentElement.classList.remove("d-none");
else if ((!event.currentTarget.checked) && spa.getAttribute("data-deleted")!== "")
spa.parentElement.classList.add("d-none");
});
});
});