-
Edit Booking
+
Editare rezervare
@@ -209,8 +252,10 @@ const editingBooking = ref
(null)
const editForm = ref({
title: '',
description: '',
- start_datetime: '',
- end_datetime: ''
+ start_date: '',
+ start_time: '',
+ end_date: '',
+ end_time: ''
})
const editError = ref('')
const saving = ref(false)
@@ -251,12 +296,22 @@ const formatStatus = (status: string): string => {
const openEditModal = (booking: Booking) => {
editingBooking.value = booking
- // Convert ISO datetime to datetime-local format in user's timezone
+
+ // Extract date and time from ISO datetime
+ const startLocal = isoToLocalDateTime(booking.start_datetime, userTimezone.value)
+ const endLocal = isoToLocalDateTime(booking.end_datetime, userTimezone.value)
+
+ // Split YYYY-MM-DDTHH:mm into date and time parts
+ const [startDate, startTime] = startLocal.split('T')
+ const [endDate, endTime] = endLocal.split('T')
+
editForm.value = {
title: booking.title,
description: booking.description || '',
- start_datetime: isoToLocalDateTime(booking.start_datetime, userTimezone.value),
- end_datetime: isoToLocalDateTime(booking.end_datetime, userTimezone.value)
+ start_date: startDate,
+ start_time: startTime,
+ end_date: endDate,
+ end_time: endTime
}
editError.value = ''
showEditModal.value = true
@@ -275,12 +330,15 @@ const saveEdit = async () => {
editError.value = ''
try {
- // Convert datetime-local format to ISO without Z (backend will handle timezone conversion)
+ // Combine date and time, then convert to ISO
+ const startDateTime = `${editForm.value.start_date}T${editForm.value.start_time}`
+ const endDateTime = `${editForm.value.end_date}T${editForm.value.end_time}`
+
const updateData = {
title: editForm.value.title,
description: editForm.value.description,
- start_datetime: localDateTimeToISO(editForm.value.start_datetime),
- end_datetime: localDateTimeToISO(editForm.value.end_datetime)
+ start_datetime: localDateTimeToISO(startDateTime),
+ end_datetime: localDateTimeToISO(endDateTime)
}
await bookingsApi.update(editingBooking.value.id, updateData)
@@ -558,6 +616,33 @@ onMounted(() => {
color: #374151;
}
+.form-label {
+ display: block;
+ margin-bottom: 8px;
+ font-weight: 500;
+ color: #374151;
+ font-size: 14px;
+}
+
+.form-sublabel {
+ display: block;
+ margin-bottom: 4px;
+ font-weight: 400;
+ color: #6b7280;
+ font-size: 12px;
+}
+
+.datetime-row {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 12px;
+}
+
+.datetime-field {
+ display: flex;
+ flex-direction: column;
+}
+
.form-group input,
.form-group textarea {
width: 100%;
diff --git a/frontend/src/views/SpaceDetail.vue b/frontend/src/views/SpaceDetail.vue
index 5a31f7c..a134015 100644
--- a/frontend/src/views/SpaceDetail.vue
+++ b/frontend/src/views/SpaceDetail.vue
@@ -61,7 +61,7 @@
d="M12 6v6m0 0v6m0-6h6m-6 0H6"
/>
- Reserve Space
+ {{ showBookingForm ? 'Cancel Reservation' : 'Reserve Space' }}