No courses added yet.
`;
return;
}
courses.forEach(course => {
const item = document.createElement('div');
item.className = 'bg-white p-4 rounded-md shadow-sm border flex items-center justify-between';
item.innerHTML = `
${course.name}
`;
manageListContainer.appendChild(item);
});
};
const renderFeedbackSelects = () => {
const defaultOption = '
';
const courseOptions = courses.map(c => `
`).join('');
feedbackCourseSelect.innerHTML = defaultOption + courseOptions;
viewFeedbackCourseSelect.innerHTML = defaultOption + courseOptions;
};
const displayFeedbackForCourse = (courseId) => {
feedbackDisplayContainer.innerHTML = '';
if (!courseId) {
feedbackDisplayContainer.innerHTML = '
Select a course to see feedback.
';
return;
}
const courseFeedback = feedback.filter(f => f.courseId == courseId);
if (courseFeedback.length === 0) {
feedbackDisplayContainer.innerHTML = '
No feedback has been submitted for this course yet.
';
return;
}
courseFeedback.forEach(f => {
const card = document.createElement('div');
card.className = 'bg-white p-4 rounded-lg shadow border';
card.innerHTML = `
${Array(5).fill(0).map((_, i) => `★`).join('')}
${new Date(f.id).toLocaleDateString()}
What was liked:
${f.likes || 'N/A'}
Suggestions for improvement:
${f.improvements || 'N/A'}
`;
feedbackDisplayContainer.appendChild(card);
});
};
const handleAddCourse = (e) => {
e.preventDefault();
const name = courseNameInput.value.trim();
if (name) {
courses.push({ id: Date.now(), name });
saveData();
renderAll();
addCourseForm.reset();
showMessage('Course added successfully!');
} else {
showMessage('Please provide a valid course name.', 'error');
}
};
const handleManageListClick = (e) => {
const target = e.target.closest('button');
if (!target || target.dataset.action !== 'delete') return;
const id = parseInt(target.dataset.id, 10);
// Directly delete without confirmation
courses = courses.filter(c => c.id !== id);
feedback = feedback.filter(f => f.courseId !== id);
saveData();
renderAll();
showMessage('Course deleted.');
};
const handleFeedbackSubmit = (e) => {
e.preventDefault();
const courseId = feedbackCourseSelect.value;
const rating = feedbackForm.querySelector('input[name="rating"]:checked')?.value;
if (!courseId || !rating) {
showMessage('Please select a course and provide a rating.', 'error');
return;
}
const newFeedback = {
id: Date.now(),
courseId: parseInt(courseId, 10),
rating: parseInt(rating, 10),
likes: document.getElementById('feedbackLikes').value.trim(),
improvements: document.getElementById('feedbackImprovements').value.trim()
};
feedback.push(newFeedback);
saveData();
showMessage('Thank you for your feedback!');
feedbackForm.reset();
renderAll();
};
// --- Event Listeners ---
addCourseForm.addEventListener('submit', handleAddCourse);
manageListContainer.addEventListener('click', handleManageListClick);
feedbackForm.addEventListener('submit', handleFeedbackSubmit);
viewFeedbackCourseSelect.addEventListener('change', (e) => displayFeedbackForCourse(e.target.value));
// --- Initial Load ---
loadData();
renderAll();
});