59 lines
2.7 KiB
JavaScript
59 lines
2.7 KiB
JavaScript
window.addEventListener('load', function () {
|
|
setTimeout(() => {
|
|
// Try different selectors for nested admin vorgabe elements
|
|
const selectors = [
|
|
'.djn-dynamic-form-dokumente-vorgabe',
|
|
'.djn-dynamic-form-Standards-vorgabe',
|
|
'.inline-related[data-inline-type="stacked"]',
|
|
'.nested-inline'
|
|
];
|
|
|
|
let vorgabenBlocks = [];
|
|
for (const selector of selectors) {
|
|
vorgabenBlocks = document.querySelectorAll(selector);
|
|
if (vorgabenBlocks.length > 0) {
|
|
console.log("Found", vorgabenBlocks.length, "Vorgaben blocks with selector:", selector);
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (vorgabenBlocks.length === 0) {
|
|
console.log("No Vorgaben blocks found, trying fallback...");
|
|
// Fallback: look for any inline with vorgabe in the class
|
|
vorgabenBlocks = document.querySelectorAll('[class*="vorgabe"]');
|
|
}
|
|
|
|
vorgabenBlocks.forEach((block, index) => {
|
|
// Find the existing title/header within the vorgabe block
|
|
const existingHeader = block.querySelector('h3, .inline-label, .module h2, .djn-inline-header');
|
|
|
|
if (existingHeader) {
|
|
// Make the existing header clickable for collapse/expand
|
|
existingHeader.style.cursor = 'pointer';
|
|
existingHeader.addEventListener('click', (e) => {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
|
|
// Find all content to collapse - everything except the header itself
|
|
const allChildren = Array.from(block.children);
|
|
const contentElements = allChildren.filter(child => child !== existingHeader && !child.contains(existingHeader));
|
|
|
|
contentElements.forEach(element => {
|
|
const isHidden = element.style.display === 'none';
|
|
element.style.display = isHidden ? '' : 'none';
|
|
});
|
|
|
|
// Update the header text to show collapse state
|
|
const originalText = existingHeader.textContent.replace(/[▼▶]\s*/, '');
|
|
const anyHidden = contentElements.some(el => el.style.display === 'none');
|
|
existingHeader.innerHTML = `${anyHidden ? '▶' : '▼'} ${originalText}`;
|
|
});
|
|
|
|
// Add initial collapse indicator
|
|
const originalText = existingHeader.textContent;
|
|
existingHeader.innerHTML = `▼ ${originalText}`;
|
|
}
|
|
});
|
|
}, 1000); // wait longer to allow nested inlines to render
|
|
});
|