diff --git a/index.html b/index.html new file mode 100644 index 0000000..f1dd4a5 --- /dev/null +++ b/index.html @@ -0,0 +1,26 @@ + + + + + +Room Booking App + + + +
+

Room Booking

+
+ + + + + + + +
+

Bookings

+
+
+ + + diff --git a/script.js b/script.js new file mode 100644 index 0000000..1793fa2 --- /dev/null +++ b/script.js @@ -0,0 +1,37 @@ +const form = document.getElementById('booking-form'); +const table = document.getElementById('bookings'); + +function loadBookings() { + const bookings = JSON.parse(localStorage.getItem('bookings') || '[]'); + table.innerHTML = 'NameEmailRoomDateStartEndEmail'; + bookings.forEach((b, i) => { + const row = document.createElement('tr'); + row.innerHTML = `${b.name}${b.email}${b.room}${b.date}${b.start}${b.end}`; + const emailLink = document.createElement('a'); + emailLink.href = `mailto:${b.email}?subject=Booking%20Details&body=Room:%20${b.room}%0ADate:%20${b.date}%0AStart:%20${b.start}%0AEnd:%20${b.end}`; + emailLink.textContent = 'Send'; + const cell = document.createElement('td'); + cell.appendChild(emailLink); + row.appendChild(cell); + table.appendChild(row); + }); +} + +form.addEventListener('submit', e => { + e.preventDefault(); + const booking = { + name: form.name.value, + email: form.email.value, + room: form.room.value, + date: form.date.value, + start: form.start.value, + end: form.end.value + }; + const bookings = JSON.parse(localStorage.getItem('bookings') || '[]'); + bookings.push(booking); + localStorage.setItem('bookings', JSON.stringify(bookings)); + form.reset(); + loadBookings(); +}); + +window.addEventListener('load', loadBookings); diff --git a/style.css b/style.css new file mode 100644 index 0000000..cece92d --- /dev/null +++ b/style.css @@ -0,0 +1,9 @@ +body { font-family: Arial, sans-serif; margin: 0; padding: 0; } +.container { max-width: 600px; margin: auto; padding: 20px; } +form label { display: block; margin-bottom: 10px; } +#bookings { width: 100%; border-collapse: collapse; margin-top: 20px; } +#bookings th, #bookings td { border: 1px solid #ccc; padding: 8px; text-align: left; } +#bookings tr:nth-child(even) { background-color: #f2f2f2; } +@media (max-width: 600px) { + form label { display: flex; flex-direction: column; } +}