-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
56 lines (44 loc) · 1.65 KB
/
script.js
File metadata and controls
56 lines (44 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
const form = document.getElementById('class-form');
const classList = document.getElementById('class-list');
let classes = JSON.parse(localStorage.getItem('classes')) || [];
// Render classes on page load
function renderClasses() {
classList.innerHTML = '';
classes.forEach((cls, idx) => {
const div = document.createElement('div');
div.className = 'class-item';
div.style.borderColor = cls.color;
div.innerHTML = `
<div class="class-info">
<strong>${cls.name} (${cls.code})</strong><br/>
<small>${cls.time}</small>
</div>
<button class="delete-btn" data-index="${idx}">Delete</button>
`;
classList.appendChild(div);
});
}
// Add new class
form.addEventListener('submit', (e) => {
e.preventDefault();
const name = document.getElementById('class-name').value.trim();
const code = document.getElementById('class-code').value.trim();
const color = document.getElementById('class-color').value;
const time = document.getElementById('class-time').value.trim();
if (!name || !code || !time) return alert('Please fill all required fields.');
classes.push({ name, code, color, time });
localStorage.setItem('classes', JSON.stringify(classes));
renderClasses();
form.reset();
document.getElementById('class-color').value = '#007BFF';
});
// Delete class
classList.addEventListener('click', (e) => {
if (e.target.classList.contains('delete-btn')) {
const index = e.target.getAttribute('data-index');
classes.splice(index, 1);
localStorage.setItem('classes', JSON.stringify(classes));
renderClasses();
}
});
renderClasses();