Spaces:
Running
Running
add a color choice when making an event.
Browse files- index.html +37 -7
- style.css +4 -1
index.html
CHANGED
|
@@ -140,7 +140,32 @@
|
|
| 140 |
<label class="block text-sm font-medium text-gray-700 mb-1">Description</label>
|
| 141 |
<textarea id="event-description" rows="3" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></textarea>
|
| 142 |
</div>
|
| 143 |
-
<div
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 144 |
<button type="submit" class="flex-1 bg-indigo-600 text-white py-2 rounded-lg hover:bg-indigo-700 transition-colors">
|
| 145 |
Save
|
| 146 |
</button>
|
|
@@ -247,8 +272,11 @@ updateEventsList();
|
|
| 247 |
eventElement.innerHTML = `
|
| 248 |
<div class="flex justify-between items-start">
|
| 249 |
<div>
|
| 250 |
-
<h4 class="font-semibold text-gray-800">
|
| 251 |
-
|
|
|
|
|
|
|
|
|
|
| 252 |
${event.description ? `<p class="text-sm text-gray-500 mt-1">${event.description}</p>` : ''}
|
| 253 |
</div>
|
| 254 |
<button class="text-red-500 hover:text-red-700 delete-event" data-id="${event.id}">
|
|
@@ -298,13 +326,14 @@ document.getElementById('close-modal').addEventListener('click', () => {
|
|
| 298 |
e.preventDefault();
|
| 299 |
|
| 300 |
const eventId = document.getElementById('event-id').value;
|
| 301 |
-
|
| 302 |
id: eventId || Date.now().toString(),
|
| 303 |
title: document.getElementById('event-title').value,
|
| 304 |
date: document.getElementById('event-date').value,
|
| 305 |
time: document.getElementById('event-time').value,
|
| 306 |
-
description: document.getElementById('event-description').value
|
| 307 |
-
|
|
|
|
| 308 |
|
| 309 |
if (eventId) {
|
| 310 |
// Update existing event
|
|
@@ -346,7 +375,8 @@ document.getElementById('close-modal').addEventListener('click', () => {
|
|
| 346 |
document.getElementById('event-date').value = event.date;
|
| 347 |
document.getElementById('event-time').value = event.time || '';
|
| 348 |
document.getElementById('event-description').value = event.description || '';
|
| 349 |
-
document.
|
|
|
|
| 350 |
document.getElementById('event-modal').classList.remove('hidden');
|
| 351 |
}
|
| 352 |
}
|
|
|
|
| 140 |
<label class="block text-sm font-medium text-gray-700 mb-1">Description</label>
|
| 141 |
<textarea id="event-description" rows="3" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></textarea>
|
| 142 |
</div>
|
| 143 |
+
<div>
|
| 144 |
+
<label class="block text-sm font-medium text-gray-700 mb-1">Color</label>
|
| 145 |
+
<div class="flex space-x-2">
|
| 146 |
+
<label class="inline-flex items-center">
|
| 147 |
+
<input type="radio" name="event-color" value="indigo" checked class="hidden peer">
|
| 148 |
+
<span class="w-8 h-8 rounded-full bg-indigo-500 peer-checked:ring-2 peer-checked:ring-indigo-700 cursor-pointer"></span>
|
| 149 |
+
</label>
|
| 150 |
+
<label class="inline-flex items-center">
|
| 151 |
+
<input type="radio" name="event-color" value="red" class="hidden peer">
|
| 152 |
+
<span class="w-8 h-8 rounded-full bg-red-500 peer-checked:ring-2 peer-checked:ring-red-700 cursor-pointer"></span>
|
| 153 |
+
</label>
|
| 154 |
+
<label class="inline-flex items-center">
|
| 155 |
+
<input type="radio" name="event-color" value="green" class="hidden peer">
|
| 156 |
+
<span class="w-8 h-8 rounded-full bg-green-500 peer-checked:ring-2 peer-checked:ring-green-700 cursor-pointer"></span>
|
| 157 |
+
</label>
|
| 158 |
+
<label class="inline-flex items-center">
|
| 159 |
+
<input type="radio" name="event-color" value="yellow" class="hidden peer">
|
| 160 |
+
<span class="w-8 h-8 rounded-full bg-yellow-500 peer-checked:ring-2 peer-checked:ring-yellow-700 cursor-pointer"></span>
|
| 161 |
+
</label>
|
| 162 |
+
<label class="inline-flex items-center">
|
| 163 |
+
<input type="radio" name="event-color" value="purple" class="hidden peer">
|
| 164 |
+
<span class="w-8 h-8 rounded-full bg-purple-500 peer-checked:ring-2 peer-checked:ring-purple-700 cursor-pointer"></span>
|
| 165 |
+
</label>
|
| 166 |
+
</div>
|
| 167 |
+
</div>
|
| 168 |
+
<div class="flex space-x-3">
|
| 169 |
<button type="submit" class="flex-1 bg-indigo-600 text-white py-2 rounded-lg hover:bg-indigo-700 transition-colors">
|
| 170 |
Save
|
| 171 |
</button>
|
|
|
|
| 272 |
eventElement.innerHTML = `
|
| 273 |
<div class="flex justify-between items-start">
|
| 274 |
<div>
|
| 275 |
+
<h4 class="font-semibold text-gray-800 flex items-center">
|
| 276 |
+
<span class="w-3 h-3 rounded-full mr-2 bg-${event.color}-500"></span>
|
| 277 |
+
${event.title}
|
| 278 |
+
</h4>
|
| 279 |
+
<p class="text-sm text-gray-600">${eventDate.toLocaleDateString()} ${event.time ? 'at ' + event.time : ''}</p>
|
| 280 |
${event.description ? `<p class="text-sm text-gray-500 mt-1">${event.description}</p>` : ''}
|
| 281 |
</div>
|
| 282 |
<button class="text-red-500 hover:text-red-700 delete-event" data-id="${event.id}">
|
|
|
|
| 326 |
e.preventDefault();
|
| 327 |
|
| 328 |
const eventId = document.getElementById('event-id').value;
|
| 329 |
+
const eventData = {
|
| 330 |
id: eventId || Date.now().toString(),
|
| 331 |
title: document.getElementById('event-title').value,
|
| 332 |
date: document.getElementById('event-date').value,
|
| 333 |
time: document.getElementById('event-time').value,
|
| 334 |
+
description: document.getElementById('event-description').value,
|
| 335 |
+
color: document.querySelector('input[name="event-color"]:checked').value
|
| 336 |
+
};
|
| 337 |
|
| 338 |
if (eventId) {
|
| 339 |
// Update existing event
|
|
|
|
| 375 |
document.getElementById('event-date').value = event.date;
|
| 376 |
document.getElementById('event-time').value = event.time || '';
|
| 377 |
document.getElementById('event-description').value = event.description || '';
|
| 378 |
+
document.querySelector(`input[name="event-color"][value="${event.color || 'indigo'}"]`).checked = true;
|
| 379 |
+
document.getElementById('delete-event').classList.remove('hidden');
|
| 380 |
document.getElementById('event-modal').classList.remove('hidden');
|
| 381 |
}
|
| 382 |
}
|
style.css
CHANGED
|
@@ -29,7 +29,10 @@ p {
|
|
| 29 |
#events-container [data-id] {
|
| 30 |
transition: background-color 0.2s ease;
|
| 31 |
}
|
| 32 |
-
|
| 33 |
#events-container [data-id]:hover {
|
| 34 |
background-color: rgba(243, 244, 246, 0.5);
|
| 35 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
#events-container [data-id] {
|
| 30 |
transition: background-color 0.2s ease;
|
| 31 |
}
|
|
|
|
| 32 |
#events-container [data-id]:hover {
|
| 33 |
background-color: rgba(243, 244, 246, 0.5);
|
| 34 |
}
|
| 35 |
+
|
| 36 |
+
input[type="radio"]:checked + span {
|
| 37 |
+
box-shadow: 0 0 0 2px white, 0 0 0 4px currentColor;
|
| 38 |
+
}
|