From c4603cf090d275854d1695e52603ee3440d1cc7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Mon, 7 Aug 2023 23:22:28 +0200 Subject: [PATCH] Prace s mapu, zobrazeni GPX, editace kopilota, skeletony --- public/mapIcons/photo-16x16.png | Bin 0 -> 610 bytes public/mapIcons/photo-32x32.png | Bin 0 -> 803 bytes public/mapIcons/photo-512x512.png | Bin 0 -> 10900 bytes quasar.config.js | 7 +- src/components/MapWithMarkers.vue | 58 ---------- src/components/MapWrapper.vue | 12 -- .../aircrafts/AircraftsListSkeleton.vue | 4 +- src/components/copilots/CopilotEditForm.vue | 5 - src/components/copilots/CopilotForm.vue | 30 +++++ .../copilots/CopilotListSkeleton.vue | 15 ++- src/components/copilots/CopilotsList.vue | 2 +- src/components/flights/FlightBasicInfo.vue | 24 ++-- src/components/flights/FlightsList.vue | 56 +++++----- .../flights/FlightsListSkeleton.vue | 21 +++- .../flights/form/FlightFormBasic.vue | 100 ++++++++++------- .../flights/form/FlightFormCopilot.vue | 25 +++-- .../flights/form/FlightFormNotes.vue | 5 +- .../flights/form/FlightFormTrack.vue | 16 ++- .../inputs/AirportLocationInput.vue | 52 --------- src/components/inputs/ComboboxInput.vue | 13 ++- src/components/inputs/DatetimePicker.vue | 17 ++- src/components/inputs/MapGPSInput.vue | 2 +- src/components/map/EmbeddedMap.vue | 42 +++++++ src/components/map/MapWithMarkers.vue | 71 ++++++++++++ src/components/map/MapWrapper.vue | 36 ++++++ src/components/photos/PhotoDetail.vue | 105 ++++++++++++++++++ .../{flights => photos}/PhotoForm.vue | 2 +- src/components/photos/PhotosList.vue | 20 ++-- src/components/poi/POIEditForm.vue | 4 - src/components/weather/CloudCoverIcon.vue | 14 +++ src/components/weather/WeatherInfo.vue | 74 ++++++++++++ src/composables/inputs.js | 5 + src/composables/objects/aircraft.js | 2 +- src/composables/objects/flight.js | 10 +- src/graphql/fragments/copilot.js | 15 +++ src/graphql/fragments/flight.js | 40 ++++--- src/graphql/fragments/photo.js | 4 + src/graphql/mutations/copilot.js | 29 +++++ src/graphql/queries/aircrafts.js | 8 +- src/graphql/queries/copilots.js | 12 +- src/layouts/ProfileLayout.vue | 25 +++-- src/pages/profile/ProfilePage.vue | 8 -- .../profile/details/AircraftDetailPage.vue | 29 ++--- .../profile/details/CopilotDetailPage.vue | 4 +- .../profile/details/FlightDetailPage.vue | 91 +++++++++++---- .../details/PointOfInterestDetailPage.vue | 10 +- src/pages/profile/forms/EditAircraftPage.vue | 31 +++--- src/pages/profile/forms/EditCopilotPage.vue | 25 +++-- src/pages/profile/forms/EditFlightPage.vue | 2 +- src/pages/profile/forms/NewAircraftsPage.vue | 12 +- src/pages/profile/forms/NewCopilotPage.vue | 27 +++-- src/pages/profile/forms/NewFlightPage.vue | 40 +++---- src/router/routes.js | 8 +- src/stores/Aircrafts.js | 3 - src/stores/Copilots.js | 27 +++-- 55 files changed, 891 insertions(+), 408 deletions(-) create mode 100644 public/mapIcons/photo-16x16.png create mode 100644 public/mapIcons/photo-32x32.png create mode 100644 public/mapIcons/photo-512x512.png delete mode 100644 src/components/MapWithMarkers.vue delete mode 100644 src/components/MapWrapper.vue delete mode 100644 src/components/copilots/CopilotEditForm.vue create mode 100644 src/components/copilots/CopilotForm.vue delete mode 100644 src/components/inputs/AirportLocationInput.vue create mode 100644 src/components/map/EmbeddedMap.vue create mode 100644 src/components/map/MapWithMarkers.vue create mode 100644 src/components/map/MapWrapper.vue create mode 100644 src/components/photos/PhotoDetail.vue rename src/components/{flights => photos}/PhotoForm.vue (96%) create mode 100644 src/components/weather/CloudCoverIcon.vue create mode 100644 src/components/weather/WeatherInfo.vue create mode 100644 src/composables/inputs.js create mode 100644 src/graphql/fragments/copilot.js create mode 100644 src/graphql/mutations/copilot.js diff --git a/public/mapIcons/photo-16x16.png b/public/mapIcons/photo-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..40b9b37b0e2acb46f2b0cb44201f8ff2cbd115dd GIT binary patch literal 610 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf66p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`kNVGw3Kp1&dm zD9B#o>Fdh=oP(W5$a>ZFNremyj69w$jv*T7YcK5AYc7;H`tkhxx7xRk1az8oIBwX` zIk!>G>4@4(-U7}?QZWq$%&tirJv=zd8(2Keo0syat=;!F`-ME`BcJD%&v(yJ{}JYP zrBL^5on_`=Y-$(m3bB-gH*uiU3hX(`P!@1lG*hlzwL$%f{I71$qz9bto9U4D$5z zJGqq8;L*ChHdi;TSoG#_`=+j??{=&(H(r11bLh|e2i97$1{gfwCVkxY!L3cU$8UVN z@;6!9!{KZnuj|2;%BHt`b+WH^H(co!HaS!NF7Rf;>f(P(ulPFr;h#{$sMg?_`uo*% zJz!9&mbgZgq$HN4S|t~y0x1R~10!Qy0}EXP^AJNLD?NoH@Q`9M9AAU(nPX(i=} nMX3zs<>h*rdD+Fui3O>8`9k4zl0AZa85pY67#JE_7#My5g&JNk zFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{XiaPfk$L90|Vb-5N14{zaj-F z$X?><>&pI|gPli+LzMkJk#R+_ z{M%|a&6PgvSQ>pvZ)?Qq*Ue@nl?lGC0wHTES7-~p*bvg&aK!&I8*8U%wO&=$9drFP zNe4QP=k0i(U1vD$72B2!zYPf<+8L%Pjt0vm+$X3TEX#>}FSzddrcE0o6y_Z{(y}P> zwfl|I&0T7b(vCCbvc0Vm|M>o`)D$yu4X@O1O8?q@UilO^Zt_{B`{?#kqo>c9W{Tc@ z=kh1_uGgjx`%G~^8}^M$H|9qzFI>OJa?X*@akI9~FSb@^>ia96RP+7F=Ue%Aw#@l0 z9k_Li6SMKnygxiDTp~FyKEIHcU3vak{f8rq*Zui!QS$WivHaJko?c}uT%-?-Yt<6h zh?11Vl2ohYqEsNoU}RuqtZQJQYhWH?Xk=w*U}b8gZD3$!V4x(o>l2EG-29Zxv`S13 zMrIHVYftLC05xd9Z79jiO)V}-%q>9IV_{`r0nzhY(8wRCM-rqbI6tkVJh3R1p}f3Y gFEcN@I61K(RWH9NefB#WDWD<-Pgg&ebxsLQ00tB|5&!@I literal 0 HcmV?d00001 diff --git a/public/mapIcons/photo-512x512.png b/public/mapIcons/photo-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..5be0f44e8b36bfb7c41152ccccf2783d8fb2be5d GIT binary patch literal 10900 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 literal 0 HcmV?d00001 diff --git a/quasar.config.js b/quasar.config.js index 3b1ac1a..e5e4faa 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -41,15 +41,14 @@ module.exports = configure(function (/* ctx */) { // https://github.com/quasarframework/quasar/tree/dev/extras extras: [ // 'ionicons-v4', - 'mdi-v5', + // 'line-awesome', // 'fontawesome-v6', // 'eva-icons', // 'themify', - // 'line-awesome', // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! - - 'roboto-font', // optional, you are not bound to it + 'mdi-v5', 'material-icons', // optional, you are not bound to it + 'roboto-font', // optional, you are not bound to it ], // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#build diff --git a/src/components/MapWithMarkers.vue b/src/components/MapWithMarkers.vue deleted file mode 100644 index 11a3f14..0000000 --- a/src/components/MapWithMarkers.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/src/components/MapWrapper.vue b/src/components/MapWrapper.vue deleted file mode 100644 index 4f36f45..0000000 --- a/src/components/MapWrapper.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/src/components/aircrafts/AircraftsListSkeleton.vue b/src/components/aircrafts/AircraftsListSkeleton.vue index 4731599..908841d 100644 --- a/src/components/aircrafts/AircraftsListSkeleton.vue +++ b/src/components/aircrafts/AircraftsListSkeleton.vue @@ -6,10 +6,10 @@ import {randomInt} from "src/composables/random"; - + - + diff --git a/src/components/copilots/CopilotEditForm.vue b/src/components/copilots/CopilotEditForm.vue deleted file mode 100644 index 10801af..0000000 --- a/src/components/copilots/CopilotEditForm.vue +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/src/components/copilots/CopilotForm.vue b/src/components/copilots/CopilotForm.vue new file mode 100644 index 0000000..f9625d3 --- /dev/null +++ b/src/components/copilots/CopilotForm.vue @@ -0,0 +1,30 @@ + + + diff --git a/src/components/copilots/CopilotListSkeleton.vue b/src/components/copilots/CopilotListSkeleton.vue index ad40fc1..f4ab8d8 100644 --- a/src/components/copilots/CopilotListSkeleton.vue +++ b/src/components/copilots/CopilotListSkeleton.vue @@ -1,5 +1,16 @@ - + diff --git a/src/components/copilots/CopilotsList.vue b/src/components/copilots/CopilotsList.vue index 7ebdc7d..88c7e1c 100644 --- a/src/components/copilots/CopilotsList.vue +++ b/src/components/copilots/CopilotsList.vue @@ -16,7 +16,7 @@ const props = defineProps({ - + {{ pilot.name }} diff --git a/src/components/flights/FlightBasicInfo.vue b/src/components/flights/FlightBasicInfo.vue index 956663f..d9bd939 100644 --- a/src/components/flights/FlightBasicInfo.vue +++ b/src/components/flights/FlightBasicInfo.vue @@ -1,6 +1,7 @@ diff --git a/src/components/flights/FlightsListSkeleton.vue b/src/components/flights/FlightsListSkeleton.vue index 1edf1b7..0d4a220 100644 --- a/src/components/flights/FlightsListSkeleton.vue +++ b/src/components/flights/FlightsListSkeleton.vue @@ -1,3 +1,22 @@ + + diff --git a/src/components/flights/form/FlightFormBasic.vue b/src/components/flights/form/FlightFormBasic.vue index e94b78e..3c01512 100644 --- a/src/components/flights/form/FlightFormBasic.vue +++ b/src/components/flights/form/FlightFormBasic.vue @@ -1,9 +1,10 @@ diff --git a/src/components/flights/form/FlightFormCopilot.vue b/src/components/flights/form/FlightFormCopilot.vue index cc41a30..2420fdd 100644 --- a/src/components/flights/form/FlightFormCopilot.vue +++ b/src/components/flights/form/FlightFormCopilot.vue @@ -1,5 +1,5 @@ - - diff --git a/src/components/inputs/ComboboxInput.vue b/src/components/inputs/ComboboxInput.vue index b44c1a4..d9c14e4 100644 --- a/src/components/inputs/ComboboxInput.vue +++ b/src/components/inputs/ComboboxInput.vue @@ -10,6 +10,11 @@ const props = defineProps({ required: false, default: () => [] }, + enableNewValues: { + type: Boolean, + required: false, + default: true, + }, options: { type: Array, required: true, @@ -17,9 +22,9 @@ const props = defineProps({ }) const model = ref({}); -onMounted(() => { - model.value = props.modelValue; -}) +watch(() => props.modelValue, (newVal) => { + model.value = newVal; +}, {immediate: true}); const emit = defineEmits(['update:modelValue', 'clear']); watch(model, (val) => { @@ -84,7 +89,7 @@ const filterFn = (val, update, abort) => { :options="availableOptions" option-label="name" option-value="id" - new-value-mode="add" + :new-value-mode="enableNewValues ? 'add' : 'toggle'" clear-icon="clear" :v-bind="$attrs" > diff --git a/src/components/inputs/DatetimePicker.vue b/src/components/inputs/DatetimePicker.vue index 0db6f94..05d40ec 100644 --- a/src/components/inputs/DatetimePicker.vue +++ b/src/components/inputs/DatetimePicker.vue @@ -10,8 +10,11 @@ const props = defineProps({ type: [String, Boolean], required: false, default: FORMAT_DATETIME_LONG + }, + minDate: { + type: [String, Date], + required: false } - }) let dateModel = ref(""); @@ -36,6 +39,7 @@ onMounted(() => { emitModelUpdate(); } }); +// TODO: ^^ by asi slo prepsat do watchera, viz ComboboxInput const publicModel = computed(() => { @@ -92,7 +96,12 @@ const myLocale = { pluralDay: 'dny' } -// https://quasar.dev/vue-composables/use-form-child - mozna resi ohack s onMounted()? +const isDateValid = (date) => { + if (!props.minDate) return true; + + const minDate = formatDatetime(props.minDate, "YYYY/MM/DD"); + return date >= minDate; +} @@ -107,10 +116,10 @@ const myLocale = {
- +
- +
diff --git a/src/components/inputs/MapGPSInput.vue b/src/components/inputs/MapGPSInput.vue index 7727e76..7b56603 100644 --- a/src/components/inputs/MapGPSInput.vue +++ b/src/components/inputs/MapGPSInput.vue @@ -2,7 +2,7 @@ import {Marker} from "vue3-google-map"; import {onMounted, ref} from "vue"; import axios from "axios"; -import MapWrapper from "components/MapWrapper.vue"; +import MapWrapper from "components/map/MapWrapper.vue"; const center = ref({ lat: 50.1314, diff --git a/src/components/map/EmbeddedMap.vue b/src/components/map/EmbeddedMap.vue new file mode 100644 index 0000000..3e4978a --- /dev/null +++ b/src/components/map/EmbeddedMap.vue @@ -0,0 +1,42 @@ + + +