From 36b0178b970c8ceebf3d5e1af8958effb0b2abeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Mon, 25 Sep 2023 06:25:53 +0200 Subject: [PATCH] Pridani od/do k eventum, fix datetime pickeru pro vyber pouze data, pridano URL k otevrene fotce --- src/components/event/EventDetailSkeleton.vue | 14 ++++++-- src/components/event/EventForm.vue | 8 +++++ src/components/flights/FlightEditSkeleton.vue | 12 +++++-- src/components/inputs/DatetimePicker.vue | 32 +++++++++++-------- src/components/photos/PhotoCarousel.vue | 15 +++++++-- src/components/photos/PhotoDetail.vue | 17 ++++++++++ src/graphql/fragments/event.js | 2 ++ src/pages/profile/event/EventDetailPage.vue | 19 ++++++++++- src/pages/profile/flight/EditFlightPage.vue | 15 ++++++--- 9 files changed, 106 insertions(+), 28 deletions(-) diff --git a/src/components/event/EventDetailSkeleton.vue b/src/components/event/EventDetailSkeleton.vue index 2d3855b..abc52d5 100644 --- a/src/components/event/EventDetailSkeleton.vue +++ b/src/components/event/EventDetailSkeleton.vue @@ -1,9 +1,17 @@ diff --git a/src/components/event/EventForm.vue b/src/components/event/EventForm.vue index 53facff..3535df5 100644 --- a/src/components/event/EventForm.vue +++ b/src/components/event/EventForm.vue @@ -7,6 +7,8 @@ import {commonProps} from "src/composables/inputs"; import {isRequestPending} from "src/composables/form/props"; import {isRequired} from "src/composables/form/rules"; import RichTextEditor from "components/inputs/RichTextEditor.vue"; +import DatetimePicker from "components/inputs/DatetimePicker.vue"; +import {FORMAT_DATE, FORMAT_DATETIME_LONG} from "src/composables/datetimeUtils"; const props = defineProps({ event: { @@ -19,6 +21,8 @@ const formData = reactive({ name: null, isPublic: false, description: "", + dateFrom: null, + dateTo: null, }); const rules = { @@ -41,6 +45,10 @@ onMounted(() => { :rules="rules.name" v-model="formData.name" /> + + + + diff --git a/src/components/flights/FlightEditSkeleton.vue b/src/components/flights/FlightEditSkeleton.vue index 4ccb57e..9c0cfcc 100644 --- a/src/components/flights/FlightEditSkeleton.vue +++ b/src/components/flights/FlightEditSkeleton.vue @@ -58,9 +58,15 @@ const props = defineProps({ - - - +
+
+ + + +
+
+ +
diff --git a/src/components/inputs/DatetimePicker.vue b/src/components/inputs/DatetimePicker.vue index ba049ed..2b42e9c 100644 --- a/src/components/inputs/DatetimePicker.vue +++ b/src/components/inputs/DatetimePicker.vue @@ -26,12 +26,10 @@ const props = defineProps({ const emit = defineEmits(['update:modelValue']); const dateModel = ref(""); -const timeModel = ref(""); +const timeModel = ref("00:00:00"); const tab = ref("date"); let originalTime, originalDate; - - const popupProxy = ref(null); const publicModel = computed(() => { @@ -42,19 +40,20 @@ const publicModel = computed(() => { return formatDatetime(dateObject, props.mask); }); -const showTimePicker = computed(() => containsAnyOf(["H", "h", "m"], props.mask)); - -watch(() => dateModel.value, (newVal, oldVal) => { - tab.value = "time"; -}); - const model = computed(() => { - if (dateModel.value === '' || timeModel.value === '') return null; - return dateModel.value + "T" + timeModel.value + if (dateModel.value === '') return null; + let modelVal = dateModel.value; + if (showTimePicker.value) { + modelVal += "T" + timeModel.value; + } else { + modelVal += "T00:00:00" + } + + return modelVal }); + const emitModelUpdate = () => { if (dateModel.value === '' || timeModel.value === '') { - // console.log(dateModel.value, timeModel.value); return; } @@ -65,6 +64,12 @@ const emitModelUpdate = () => { popupProxy.value.hide(); } +const showTimePicker = computed(() => containsAnyOf(["H", "h", "m"], props.mask)); + +watch(() => dateModel.value, (newVal, oldVal) => { + if (showTimePicker.value) + tab.value = "time"; +}); const containsAnyOf = (needles, haystack) => { for (const i in needles) { if (haystack.includes(needles[i])) return true; @@ -123,7 +128,6 @@ watch(() => props.modelValue, (newVal) => { emitModelUpdate(); } }, {immediate: true}); -