import { getChallenges, createChallenge, updateChallenge, deleteChallenge } from "../services/classroom.js";
export function renderAdminView() {
return `
`;
}
export function setupAdminEvents() {
loadChallenges();
document.getElementById('back-instructor-btn').addEventListener('click', () => {
window.location.hash = 'instructor';
});
document.getElementById('add-challenge-btn').addEventListener('click', () => {
openModal();
});
document.getElementById('save-challenge-btn').addEventListener('click', async () => {
const id = document.getElementById('edit-id').value;
const data = {
title: document.getElementById('edit-title').value,
level: document.getElementById('edit-level').value,
description: document.getElementById('edit-desc').value,
link: document.getElementById('edit-link').value,
order: parseInt(document.getElementById('edit-order').value) || 0
};
if (id) {
await updateChallenge(id, data);
} else {
await createChallenge(data);
}
closeChallengeModal();
loadChallenges();
});
}
async function loadChallenges() {
const list = document.getElementById('challenges-list');
const challenges = await getChallenges();
list.innerHTML = challenges.map(c => `
${c.level}
${c.title}
${c.description}
`).join('');
// Expose helpers globally for onclick
window.editChallenge = (id) => {
const c = challenges.find(x => x.id === id);
if (c) openModal(c);
};
window.deleteChallenge = async (id) => {
if (confirm('確定刪除?')) {
await deleteChallenge(id);
loadChallenges();
}
};
}
function openModal(challenge = null) {
const modal = document.getElementById('challenge-modal');
const title = document.getElementById('modal-title');
// Reset or Fill
document.getElementById('edit-id').value = challenge ? challenge.id : '';
document.getElementById('edit-title').value = challenge ? challenge.title : '';
document.getElementById('edit-level').value = challenge ? challenge.level : 'beginner';
document.getElementById('edit-desc').value = challenge ? challenge.description : '';
document.getElementById('edit-link').value = challenge ? challenge.link : '';
document.getElementById('edit-order').value = challenge ? challenge.order : '1';
title.textContent = challenge ? '編輯題目' : '新增題目';
modal.classList.remove('hidden');
}
window.closeChallengeModal = () => {
document.getElementById('challenge-modal').classList.add('hidden');
};