document.addEventListener('DOMContentLoaded', function() { // DOM Elements const previewContainer = document.getElementById('previewContainer'); const lessonsContainer = document.getElementById('lessonsContainer'); const addModuleBtn = document.getElementById('addModuleBtn'); const addLessonBtn = document.getElementById('addLessonBtn'); const saveCurriculumBtn = document.getElementById('saveCurriculumBtn'); const closeEditorBtn = document.getElementById('closeEditorBtn'); const builderView = document.getElementById('builderView'); const editorView = document.getElementById('editorView'); const moduleTitleInput = document.querySelector('.module-title-input'); const editableTitle = document.querySelector('.editable-title'); // State let currentModule = null; let modules = []; // Add Module addModuleBtn.addEventListener('click', function() { const newModule = { id: Date.now(), title: 'New Module', description: '', lessons: [] }; modules.push(newModule); renderModulePreview(newModule); openModuleEditor(newModule); }); // Add Lesson addLessonBtn.addEventListener('click', function() { if (!currentModule) return; const newLesson = { id: Date.now(), type: 'video', title: 'New Lesson', duration: '', content: '' }; currentModule.lessons.push(newLesson); renderLesson(newLesson); }); // Save Curriculum saveCurriculumBtn.addEventListener('click', function() { alert('Curriculum saved successfully!'); console.log('Saved modules:', modules); }); // Close Editor closeEditorBtn.addEventListener('click', function() { editorView.classList.add('hidden'); builderView.classList.remove('hidden'); currentModule = null; }); // Module Title Update moduleTitleInput.addEventListener('input', function() { if (currentModule) { currentModule.title = this.value; editableTitle.textContent = this.value; updateModulePreview(currentModule); } }); // Functions function openModuleEditor(module) { currentModule = module; moduleTitleInput.value = module.title; editableTitle.textContent = module.title; lessonsContainer.innerHTML = ''; module.lessons.forEach(lesson => { renderLesson(lesson); }); builderView.classList.add('hidden'); editorView.classList.remove('hidden'); } function renderModulePreview(module) { const moduleEl = document.createElement('div'); moduleEl.className = 'bg-gray-50 p-3 rounded-lg border border-gray-200 cursor-pointer hover:bg-gray-100'; moduleEl.dataset.moduleId = module.id; moduleEl.innerHTML = `
No lessons yet
' }No lessons yet
'; feather.replace(); } } function renderLesson(lesson) { const lessonEl = document.createElement('div'); lessonEl.className = 'bg-gray-50 p-4 rounded-lg border border-gray-200'; lessonEl.innerHTML = `${lesson.content || 'No content yet'}
`; lessonsContainer.appendChild(lessonEl); feather.replace(); // Add event handlers lessonEl.querySelector('.edit-lesson-btn').addEventListener('click', () => { editLesson(lesson); }); lessonEl.querySelector('.delete-lesson-btn').addEventListener('click', () => { deleteLesson(lesson); }); } function editLesson(lesson) { // In a real app, you'd open a modal or form to edit the lesson const newTitle = prompt('Edit lesson title:', lesson.title); if (newTitle !== null) { lesson.title = newTitle; const moduleIndex = modules.findIndex(m => m.id === currentModule.id); if (moduleIndex !== -1) { const lessonIndex = modules[moduleIndex].lessons.findIndex(l => l.id === lesson.id); if (lessonIndex !== -1) { modules[moduleIndex].lessons[lessonIndex] = lesson; updateModulePreview(currentModule); lessonsContainer.innerHTML = ''; currentModule.lessons.forEach(l => renderLesson(l)); } } } } function deleteLesson(lesson) { if (confirm('Are you sure you want to delete this lesson?')) { const moduleIndex = modules.findIndex(m => m.id === currentModule.id); if (moduleIndex !== -1) { modules[moduleIndex].lessons = modules[moduleIndex].lessons.filter(l => l.id !== lesson.id); updateModulePreview(currentModule); lessonsContainer.innerHTML = ''; currentModule.lessons.forEach(l => renderLesson(l)); } } } function getLessonIcon(type) { switch(type.toLowerCase()) { case 'video': return 'play'; case 'reading': return 'file-text'; case 'quiz': return 'check-circle'; case 'assignment': return 'edit-3'; default: return 'file'; } } // Add support link functionality document.addEventListener('DOMContentLoaded', function() { const sidebarItems = document.querySelectorAll('.sidebar-item'); sidebarItems.forEach(item => { item.addEventListener('click', function() { const text = this.textContent.trim(); if (text === 'Support') { window.location.href = '/support.html'; } }); }); }); });