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}); -