import { getChallenges, createChallenge, updateChallenge, deleteChallenge } from "../services/classroom.js"; export function renderAdminView() { return `

後台管理系統 Admin Panel

載入中...
`; } 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'); };