Add Wiki accordion with topics and subtopics

This commit is contained in:
Kato
2026-09-02 21:11:35 +00:00
parent 9b61ee0111
commit 623c3e9ab5
3 changed files with 83 additions and 2 deletions
+70
View File
@@ -2,6 +2,7 @@ document.addEventListener('DOMContentLoaded', () => {
checkSession();
if (getCookie('sessionid')) {
loadUsers();
loadWiki();
}
});
@@ -22,6 +23,7 @@ const API_URL = 'https://n8n.odoo4projects.com/webhook/paraguay/login';
const NEWSLETTER_URL = 'https://n8n.odoo4projects.com/webhook/paraguay/newsletter';
const USER_URL = 'https://n8n.odoo4projects.com/webhook/paraguay/user';
const PROFILE_URL = 'https://n8n.odoo4projects.com/webhook/paraguay/profile';
const WIKI_URL = 'https://n8n.odoo4projects.com/webhook/paraguay/wiki';
function checkSession() {
const sessionid = getCookie('sessionid');
@@ -63,6 +65,7 @@ document.querySelectorAll('.notebook .tab').forEach(tab => {
document.querySelectorAll('.notebook .tab-content').forEach(c => c.classList.add('hidden'));
document.getElementById('tab-' + tabName).classList.remove('hidden');
if (tabName === 'users') loadUsers();
if (tabName === 'wiki') loadWiki();
});
});
@@ -304,6 +307,73 @@ function closeProfileModal() {
document.getElementById('profile-modal').classList.add('hidden');
}
async function loadWiki() {
const wikiContainer = document.getElementById('wiki-content');
if (!wikiContainer) return;
console.log('loadWiki: starting fetch from', WIKI_URL);
try {
const response = await fetch(WIKI_URL);
console.log('loadWiki: response status =', response.status);
if (!response.ok) throw new Error('Failed to fetch wiki');
const result = await response.json();
console.log('loadWiki: response data =', result);
if (result.data && Array.isArray(result.data)) {
wikiContainer.innerHTML = '';
const topics = {};
result.data.forEach(item => {
const topic = item.topic || 'Unknown';
if (!topics[topic]) topics[topic] = [];
topics[topic].push(item);
});
for (const [topicName, subtopics] of Object.entries(topics)) {
const topicDiv = document.createElement('div');
topicDiv.className = 'wiki-topic';
topicDiv.innerHTML = `
<h4 class="hide-de">${topicName}</h4>
<h4 class="hide-en">${topicName}</h4>
<div class="wiki-subtopics"></div>
`;
wikiContainer.appendChild(topicDiv);
const subtopicsDiv = topicDiv.querySelector('.wiki-subtopics');
subtopics.forEach(sub => {
const subtopicDiv = document.createElement('div');
subtopicDiv.className = 'wiki-subtopic hidden';
subtopicDiv.innerHTML = `
<div class="wiki-subtopic-title hide-de">${sub.subtopic}</div>
<div class="wiki-subtopic-title hide-en">${sub.subtopic}</div>
<div class="wiki-subtopic-content">
<p class="hide-de">${sub.wiki || 'Keine Informationen verfügbar.'}</p>
<p class="hide-en">${sub.wiki || 'No information available.'}</p>
</div>
`;
subtopicsDiv.appendChild(subtopicDiv);
const title = subtopicDiv.querySelector('.wiki-subtopic-title');
title.onclick = () => {
subtopicDiv.classList.toggle('hidden');
};
});
// Auto-expand first subtopic
if (subtopics.length > 0) {
setTimeout(() => {
subtopicsDiv.lastElementChild.classList.remove('hidden');
}, 100);
}
}
} else {
wikiContainer.innerHTML = '<p>No wiki data found.</p>';
}
} catch (error) {
console.error('loadWiki error:', error);
wikiContainer.innerHTML = '<p>Error loading wiki: ' + error.message + '</p>';
}
}
function logout() {
setCookie('sessionid', '', -1);
checkSession();