Add Wiki accordion with topics and subtopics
This commit is contained in:
+70
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user