J0BL1N commited on
Commit
382056c
·
verified ·
1 Parent(s): 5844b9e

add a color choice when making an event.

Browse files
Files changed (2) hide show
  1. index.html +37 -7
  2. 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 class="flex space-x-3">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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">${event.title}</h4>
251
- <p class="text-sm text-gray-600">${eventDate.toLocaleDateString()} ${event.time ? 'at ' + event.time : ''}</p>
 
 
 
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
- const eventData = {
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.getElementById('delete-event').classList.remove('hidden');
 
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
+ }