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 = `

${module.title}

${module.lessons.length > 0 ? module.lessons.map(lesson => `
${lesson.title}${lesson.duration ? ` (${lesson.duration} min)` : ''}
`).join('') : '

No lessons yet

' }
`; previewContainer.appendChild(moduleEl); feather.replace(); // Add click handler for edit button moduleEl.querySelector('.edit-module-btn').addEventListener('click', (e) => { e.stopPropagation(); openModuleEditor(module); }); // Add click handler for entire module moduleEl.addEventListener('click', () => { openModuleEditor(module); }); } function updateModulePreview(module) { const moduleEl = previewContainer.querySelector(`[data-module-id="${module.id}"]`); if (moduleEl) { moduleEl.querySelector('h3').textContent = module.title; const lessonsContainer = moduleEl.querySelector(`#module-lessons-${module.id}`); lessonsContainer.innerHTML = module.lessons.length > 0 ? module.lessons.map(lesson => `
${lesson.title}${lesson.duration ? ` (${lesson.duration} min)` : ''}
`).join('') : '

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.title}

${lesson.type} ${lesson.duration ? `${lesson.duration} min` : ''}

${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'; } }); }); }); });