Spaces:
Running
Running
Upload 8 files
Browse files- src/views/AdminView.js +12 -3
- src/views/InstructorView.js +13 -3
src/views/AdminView.js
CHANGED
|
@@ -4,9 +4,14 @@ export function renderAdminView() {
|
|
| 4 |
return `
|
| 5 |
<div class="min-h-screen p-6 pb-20">
|
| 6 |
<header class="flex justify-between items-center mb-10 bg-gray-800 bg-opacity-50 p-4 rounded-xl border border-gray-700 backdrop-blur-sm">
|
| 7 |
-
<
|
| 8 |
-
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
<button id="add-challenge-btn" class="bg-green-600 hover:bg-green-500 text-white font-bold py-2 px-6 rounded-lg transition-all shadow-lg">
|
| 11 |
+ 新增題目
|
| 12 |
</button>
|
|
@@ -63,6 +68,10 @@ export function renderAdminView() {
|
|
| 63 |
export function setupAdminEvents() {
|
| 64 |
loadChallenges();
|
| 65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
document.getElementById('add-challenge-btn').addEventListener('click', () => {
|
| 67 |
openModal();
|
| 68 |
});
|
|
|
|
| 4 |
return `
|
| 5 |
<div class="min-h-screen p-6 pb-20">
|
| 6 |
<header class="flex justify-between items-center mb-10 bg-gray-800 bg-opacity-50 p-4 rounded-xl border border-gray-700 backdrop-blur-sm">
|
| 7 |
+
<div class="flex items-center space-x-4">
|
| 8 |
+
<button id="back-instructor-btn" class="bg-gray-700 hover:bg-gray-600 text-white p-2 rounded-lg transition-all">
|
| 9 |
+
← 回講師端
|
| 10 |
+
</button>
|
| 11 |
+
<h1 class="text-2xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-red-400 to-orange-600">
|
| 12 |
+
後台管理系統 Admin Panel
|
| 13 |
+
</h1>
|
| 14 |
+
</div>
|
| 15 |
<button id="add-challenge-btn" class="bg-green-600 hover:bg-green-500 text-white font-bold py-2 px-6 rounded-lg transition-all shadow-lg">
|
| 16 |
+ 新增題目
|
| 17 |
</button>
|
|
|
|
| 68 |
export function setupAdminEvents() {
|
| 69 |
loadChallenges();
|
| 70 |
|
| 71 |
+
document.getElementById('back-instructor-btn').addEventListener('click', () => {
|
| 72 |
+
window.location.hash = 'instructor';
|
| 73 |
+
});
|
| 74 |
+
|
| 75 |
document.getElementById('add-challenge-btn').addEventListener('click', () => {
|
| 76 |
openModal();
|
| 77 |
});
|
src/views/InstructorView.js
CHANGED
|
@@ -25,10 +25,15 @@ export async function renderInstructorView() {
|
|
| 25 |
<span class="text-gray-400">教室代碼</span>
|
| 26 |
<span id="display-room-code" class="text-3xl font-mono font-bold text-cyan-400 tracking-widest bg-gray-900 px-4 py-2 rounded-lg border border-cyan-500/30 shadow-[0_0_15px_rgba(34,211,238,0.3)]"></span>
|
| 27 |
</div>
|
| 28 |
-
<div
|
| 29 |
-
<button id="
|
| 30 |
-
|
| 31 |
</button>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
</div>
|
| 33 |
</header>
|
| 34 |
|
|
@@ -71,6 +76,11 @@ export function setupInstructorEvents() {
|
|
| 71 |
const dashboardContent = document.getElementById('dashboard-content');
|
| 72 |
const displayRoomCode = document.getElementById('display-room-code');
|
| 73 |
const studentsGrid = document.getElementById('students-grid');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 74 |
|
| 75 |
createBtn.addEventListener('click', async () => {
|
| 76 |
try {
|
|
|
|
| 25 |
<span class="text-gray-400">教室代碼</span>
|
| 26 |
<span id="display-room-code" class="text-3xl font-mono font-bold text-cyan-400 tracking-widest bg-gray-900 px-4 py-2 rounded-lg border border-cyan-500/30 shadow-[0_0_15px_rgba(34,211,238,0.3)]"></span>
|
| 27 |
</div>
|
| 28 |
+
<div class="flex space-x-3">
|
| 29 |
+
<button id="nav-admin-btn" class="bg-gray-700 hover:bg-gray-600 text-white font-bold py-2 px-4 rounded-lg transition-all border border-gray-600">
|
| 30 |
+
管理題目 (Admin)
|
| 31 |
</button>
|
| 32 |
+
<div id="create-room-container">
|
| 33 |
+
<button id="create-room-btn" class="bg-purple-600 hover:bg-purple-500 text-white font-bold py-2 px-6 rounded-lg transition-all shadow-lg shadow-purple-500/30">
|
| 34 |
+
建立新教室
|
| 35 |
+
</button>
|
| 36 |
+
</div>
|
| 37 |
</div>
|
| 38 |
</header>
|
| 39 |
|
|
|
|
| 76 |
const dashboardContent = document.getElementById('dashboard-content');
|
| 77 |
const displayRoomCode = document.getElementById('display-room-code');
|
| 78 |
const studentsGrid = document.getElementById('students-grid');
|
| 79 |
+
const navAdminBtn = document.getElementById('nav-admin-btn');
|
| 80 |
+
|
| 81 |
+
navAdminBtn.addEventListener('click', () => {
|
| 82 |
+
window.location.hash = 'admin';
|
| 83 |
+
});
|
| 84 |
|
| 85 |
createBtn.addEventListener('click', async () => {
|
| 86 |
try {
|