Compare commits

...

4 Commits

Author SHA1 Message Date
joerglohrer d3c9a4169f efabi ressourcen bei seitenstart aktiviert 2025-10-23 14:26:45 +00:00
joerglohrer 3b57255083 bugfix hidden events
Die .network.hidden Klasse fehlte in der CSS-Regel.
2025-10-23 13:57:15 +00:00
buchwaldchassee d8c77bbf36 Dokumentation/Arbeitsbericht-CI-25-26.md aktualisiert 2025-10-23 13:56:17 +00:00
joerglohrer 6595ebaae9 buttons funktionieren 2025-10-23 12:00:33 +00:00
2 changed files with 59 additions and 15 deletions

View File

@ -14,6 +14,14 @@ Klammer "Hub"
| **Community & Netzwerk** | aktive, vernetzte OER-Communities | Partizipation, Ökosystembildung |
| **Didaktik & Wissenschaft** | qualitätsgesicherte, reflexive Bildungspraxis | Professionalisierung, Innovation |
**Vorschlag Gina zur Einführung:**
Der Arbeitsbereich Digitalisierung am Comenius-Institut versteht sich als Knotenpunkt, der digitale Netzwerke, Projekte und Aktivitäten miteinander verbindet. Ausgangspunkt ist dabei die Idee der digitalen Vernetzung als arbeitsbereichs- und institutionsübergreifendes Prinzip. Im Zentrum steht der Hub-Gedanke: religiöses Bildungshandeln sichtbar zu machen, Menschen zu vernetzen und bestehende Initiativen anschlussfähig zu gestalten über den eigenen Arbeitsbereich/Tellerrand hinaus. Der entstehende Community-Hub bildet dafür den gemeinsamen Raum, in dem Akteurinnen und Akteure, Projekte und Infrastrukturen der religiösen Bildung zusammenwirken. In diesem Rahmen entfaltet sich die Dreigliedrigkeit des Digitalisierungsbereichs als integratives Konzept, das technische, soziale und fachlich-wissenschaftliche Dimensionen systematisch miteinander verbindet und gegenseitig stärkt.
Würde dann weitermachen ab "Im Bereich Technik..."
---
Die Dreigliedrigkeit des Digitalisierungsbereichs am Comenius-Institut lässt sich als integratives Konzept verstehen, das technische, soziale und fachlich-wissenschaftliche Dimensionen des digitalen Bildungshandelns systematisch miteinander verbindet. Der entstehende Community-Hub bildet dabei die Klammer, in der diese drei Dimensionen ineinandergreifen und sich gegenseitig stärken.
Im Bereich Technik und Infrastruktur stehen der Aufbau und die Pflege stabiler, offener und zunehmend KI-gestützter Plattformen im Zentrum. Sie bilden die technische Grundlage, auf der digitale Bildungsprozesse gestaltet, geteilt und weiterentwickelt werden können. Durch die konsequente Ausrichtung auf Nachhaltigkeit und Interoperabilität wird eine Infrastruktur geschaffen, die langfristig tragfähig ist und den Austausch über institutionelle Grenzen hinweg ermöglicht. Systeme wie rpi-virtuell, material.rpi-virtuell.de und oer.community fungieren dabei als technische Träger einer vernetzten Bildungslandschaft.
Die Dimension Community und Netzwerk beschreibt das soziale Gefüge, das diese Infrastruktur mit Leben füllt. Hier entstehen durch Austausch, Kooperation und gemeinsame Verantwortung aktive OER-Communities, die offen, partizipativ und verlässlich miteinander arbeiten. Projekte wie relilab und FOERBICO zeigen exemplarisch, wie digitale Vernetzung und gemeinsames Lernen zur Bildung eines Ökosystems religionspädagogischer Akteure führen. Der Community-Gedanke trägt wesentlich dazu bei, digitale Bildung nicht nur technologisch, sondern auch sozial und kulturell nachhaltig zu gestalten.

View File

@ -143,7 +143,7 @@
gap: 28px;
}
.articles.hidden, .events.hidden {
.articles.hidden, .events.hidden, .network.hidden {
display: none;
}
@ -638,21 +638,21 @@
<div class="status connecting" id="status">Verbinde zu Relays...</div>
<div class="tabs">
<button class="tab-btn active" onclick="switchTab('articles')">📄 FOERBICO Artikel</button>
<button class="tab-btn" onclick="switchTab('articles')">📄 FOERBICO Artikel</button>
<button class="tab-btn" onclick="switchTab('events')">📅 relilab Events</button>
</div>
<div class="tabs">
<button class="tab-btn" onclick="switchTab('efabi-resources')">📝 efabi Ressourcen</button>
<button class="tab-btn active" onclick="switchTab('efabi-resources')">📝 efabi Ressourcen</button>
<button class="tab-btn" onclick="switchTab('efabi-events')">📆 efabi Veranstaltungen</button>
<button class="tab-btn" onclick="switchTab('efabi-network')">👤 efabi Netzwerkstatt</button>
</div>
</header>
<div class="loading" id="loading">Lade Inhalte...</div>
<div class="articles" id="articles"></div>
<div class="articles hidden" id="articles"></div>
<div class="events hidden" id="events"></div>
<div class="articles hidden" id="efabi-resources"></div>
<div class="articles" id="efabi-resources"></div>
<div class="events hidden" id="efabi-events"></div>
<div class="network hidden" id="efabi-network"></div>
</div>
@ -739,19 +739,40 @@
}
function switchTab(tab) {
// Alle Container
const articlesDiv = document.getElementById('articles');
const eventsDiv = document.getElementById('events');
const efabiResourcesDiv = document.getElementById('efabi-resources');
const efabiEventsDiv = document.getElementById('efabi-events');
const efabiNetworkDiv = document.getElementById('efabi-network');
const allContainers = [articlesDiv, eventsDiv, efabiResourcesDiv, efabiEventsDiv, efabiNetworkDiv];
// Alle Buttons
const btns = document.querySelectorAll('.tab-btn');
btns.forEach(btn => btn.classList.remove('active'));
event.target.classList.add('active');
// Verstecke alle Container
allContainers.forEach(container => container.classList.add('hidden'));
// Zeige nur den gewählten Container
console.log('[SWITCH-TAB] Selected tab:', tab);
if (tab === 'articles') {
articlesDiv.classList.remove('hidden');
eventsDiv.classList.add('hidden');
} else {
articlesDiv.classList.add('hidden');
console.log('[SWITCH-TAB] Showing articles');
} else if (tab === 'events') {
eventsDiv.classList.remove('hidden');
console.log('[SWITCH-TAB] Showing events');
} else if (tab === 'efabi-resources') {
efabiResourcesDiv.classList.remove('hidden');
console.log('[SWITCH-TAB] Showing efabi-resources, innerHTML length:', efabiResourcesDiv.innerHTML.length);
} else if (tab === 'efabi-events') {
efabiEventsDiv.classList.remove('hidden');
console.log('[SWITCH-TAB] Showing efabi-events, innerHTML length:', efabiEventsDiv.innerHTML.length);
} else if (tab === 'efabi-network') {
efabiNetworkDiv.classList.remove('hidden');
console.log('[SWITCH-TAB] Showing efabi-network, innerHTML length:', efabiNetworkDiv.innerHTML.length);
}
}
@ -973,9 +994,9 @@
authors: [efabiHex],
limit: 50
};
console.log('🔍 EFABI Ressourcen-Filter:', efabiResourceFilter);
console.log('[LOAD] EFABI Ressourcen-Filter:', efabiResourceFilter);
efabiResources = await pool.querySync(relays, efabiResourceFilter);
console.log('📥 EFABI Ressourcen erhalten:', efabiResources.length);
console.log('[LOAD] EFABI Ressourcen erhalten:', efabiResources.length, 'kind:', efabiResources[0]?.kind);
// Lade EFABI Veranstaltungen (NIP-52: Calendar Events)
const efabiEventFilter = {
@ -983,9 +1004,9 @@
authors: [efabiHex],
limit: 50
};
console.log('🔍 EFABI Event-Filter:', efabiEventFilter);
console.log('[LOAD] EFABI Event-Filter:', efabiEventFilter);
efabiEvents = await pool.querySync(relays, efabiEventFilter);
console.log('📥 EFABI Events erhalten:', efabiEvents.length);
console.log('[LOAD] EFABI Events erhalten:', efabiEvents.length, 'kind:', efabiEvents[0]?.kind);
// Lade EFABI Netzwerkstatt Profile (NIP-05: User Metadata)
const efabiNetworkFilter = {
@ -993,9 +1014,9 @@
authors: [efabiHex],
limit: 50
};
console.log('🔍 EFABI Netzwerkstatt-Filter:', efabiNetworkFilter);
console.log('[LOAD] EFABI Netzwerkstatt-Filter:', efabiNetworkFilter);
efabiNetwork = await pool.querySync(relays, efabiNetworkFilter);
console.log('📥 EFABI Netzwerk-Profile erhalten:', efabiNetwork.length);
console.log('[LOAD] EFABI Netzwerk-Profile erhalten:', efabiNetwork.length, 'kind:', efabiNetwork[0]?.kind);
console.log('✅ FOERBICO Artikel geladen:', articles.length);
console.log('✅ relilab Events geladen:', events.length);
@ -1026,6 +1047,11 @@
function renderEfabiResources() {
const container = document.getElementById('efabi-resources');
console.log('[RENDER-EFABI-RESOURCES] Container:', container);
console.log('[RENDER-EFABI-RESOURCES] efabiResources.length:', efabiResources.length);
if (efabiResources.length > 0) {
console.log('[RENDER-EFABI-RESOURCES] First event kind:', efabiResources[0].kind);
}
if (efabiResources.length === 0) {
container.innerHTML = '<div class="no-items">Keine efabi Ressourcen gefunden.</div>';
@ -1078,6 +1104,11 @@
function renderEfabiEvents() {
const container = document.getElementById('efabi-events');
console.log('[RENDER-EFABI-EVENTS] Container:', container);
console.log('[RENDER-EFABI-EVENTS] efabiEvents.length:', efabiEvents.length);
if (efabiEvents.length > 0) {
console.log('[RENDER-EFABI-EVENTS] First event kind:', efabiEvents[0].kind);
}
if (efabiEvents.length === 0) {
container.innerHTML = '<div class="no-items">Keine efabi Veranstaltungen gefunden.</div>';
@ -1153,6 +1184,11 @@
function renderEfabiNetwork() {
const container = document.getElementById('efabi-network');
console.log('[RENDER-EFABI-NETWORK] Container:', container);
console.log('[RENDER-EFABI-NETWORK] efabiNetwork.length:', efabiNetwork.length);
if (efabiNetwork.length > 0) {
console.log('[RENDER-EFABI-NETWORK] First event kind:', efabiNetwork[0].kind);
}
if (efabiNetwork.length === 0) {
container.innerHTML = '<div class="no-items">Keine Netzwerk-Profile gefunden.</div>';