From 3bd4d7ba523996019e86aa70c64951350cf3336c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Mon, 4 Dec 2023 22:46:23 +0100 Subject: [PATCH] Lepsi verejna cast, ssr, lepsi prace s fotkamaa --- src/boot/apollo.js | 2 +- src/components/ContentCard.vue | 32 ++++++ .../aircrafts/AircraftDetailCard.vue | 66 ----------- .../aircrafts/AircraftDetailSkeleton.vue | 6 +- src/components/aircrafts/AircraftForm.vue | 13 +-- src/components/aircrafts/AircraftInfo.vue | 30 +++++ src/components/aircrafts/AircraftsList.vue | 4 +- .../copilots/CopilotDetailSkeleton.vue | 2 +- src/components/flights/FlightBasicInfo.vue | 37 +++++- src/components/flights/FlightTrackMap.vue | 6 +- src/components/flights/FlightsList.vue | 33 +++--- .../photos/BatchPhotoFormDialog.vue | 34 ++++-- src/components/photos/PhotoFormDialog.vue | 29 ++++- src/components/photos/PhotoGallery.vue | 89 ++++++++++----- src/components/photos/PhotosEditorList.vue | 74 +++++++----- .../photos/TitlePhotoWithGallery.vue | 31 +++++ src/css/quasar.variables.scss | 2 +- src/graphql/fragments/aircraft.js | 37 ++++-- src/graphql/fragments/aircraft_basic.js | 14 +++ src/graphql/fragments/copilot.js | 5 + src/graphql/fragments/flight.js | 51 +++++---- src/graphql/fragments/flight_list.js | 6 +- src/graphql/fragments/organization.js | 2 +- src/graphql/fragments/photo.js | 9 +- src/graphql/fragments/poi.js | 37 ++++-- src/graphql/mutations/aircrafts.js | 10 +- src/graphql/mutations/flight.js | 10 +- src/graphql/mutations/poi.js | 10 +- src/graphql/queries/aircrafts.js | 18 +-- src/graphql/queries/copilots.js | 16 +++ src/graphql/queries/event.js | 2 +- src/graphql/queries/flights.js | 31 ++++- src/graphql/queries/photo.js | 20 ++++ src/graphql/queries/poi.js | 22 +++- src/layouts/ProfileLayout.vue | 7 +- .../profile/aircraft/AircraftDetailPage.vue | 73 ++++++++---- .../profile/aircraft/EditAircraftPage.vue | 69 ++++++++--- .../profile/copilot/CopilotDetailPage.vue | 48 ++++++-- src/pages/profile/event/EventDetailPage.vue | 2 +- src/pages/profile/flight/EditFlightPage.vue | 98 +++++++++------- src/pages/profile/flight/FlightDetailPage.vue | 107 +++++++++--------- src/pages/profile/flight/FlightsPage.vue | 2 +- src/pages/profile/flight/PhotoEditorPage.vue | 2 +- .../profile/poi/EditPointOfInterestPage.vue | 53 ++++++++- .../profile/poi/PointOfInterestDetailPage.vue | 69 +++++++---- src/pages/public/AircraftDetailPage.vue | 72 ++++++++++++ src/pages/public/PilotProfilePage.vue | 4 +- .../public/PointOfInterestDetailPage.vue | 64 +++++++++++ src/pages/public/PointsOfInterestMapPage.vue | 7 ++ .../public/pilotProfile/CopilotDetailPage.vue | 58 +++++++--- .../public/pilotProfile/EventDetailPage.vue | 2 +- .../public/pilotProfile/FlightDetailPage.vue | 41 +++---- .../public/pilotProfile/FlightsListPage.vue | 7 +- src/router/routes.js | 7 +- src/stores/Aircrafts.js | 17 ++- src/stores/Copilots.js | 12 +- src/stores/Flights.js | 88 +++++++------- src/stores/Photo.js | 79 ------------- src/stores/Photos.js | 93 +++++++++++++++ src/stores/PointsOfInterest.js | 76 +++++++------ src/stores/User.js | 1 + src/stores/helpers.js | 2 +- 62 files changed, 1331 insertions(+), 619 deletions(-) create mode 100644 src/components/ContentCard.vue delete mode 100644 src/components/aircrafts/AircraftDetailCard.vue create mode 100644 src/components/aircrafts/AircraftInfo.vue create mode 100644 src/components/photos/TitlePhotoWithGallery.vue create mode 100644 src/graphql/fragments/aircraft_basic.js create mode 100644 src/pages/public/AircraftDetailPage.vue create mode 100644 src/pages/public/PointOfInterestDetailPage.vue create mode 100644 src/pages/public/PointsOfInterestMapPage.vue delete mode 100644 src/stores/Photo.js create mode 100644 src/stores/Photos.js diff --git a/src/boot/apollo.js b/src/boot/apollo.js index dfd699a..00cce77 100644 --- a/src/boot/apollo.js +++ b/src/boot/apollo.js @@ -7,7 +7,7 @@ import {Notify} from "quasar"; import {errorObject, warningObject} from "src/composables/dialog"; const handleRefreshToken = (store, forward, operation) => { - if (!operation._refreshUnauthorizedUser) return; + if (!operation.query?._refreshUnauthorizedUser) return; return fromPromise(useUserStore(store).refreshAccessToken() .catch((error) => { diff --git a/src/components/ContentCard.vue b/src/components/ContentCard.vue new file mode 100644 index 0000000..d277fdd --- /dev/null +++ b/src/components/ContentCard.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/components/aircrafts/AircraftDetailCard.vue b/src/components/aircrafts/AircraftDetailCard.vue deleted file mode 100644 index 02e0d1f..0000000 --- a/src/components/aircrafts/AircraftDetailCard.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - diff --git a/src/components/aircrafts/AircraftDetailSkeleton.vue b/src/components/aircrafts/AircraftDetailSkeleton.vue index 2368f8f..73e18e4 100644 --- a/src/components/aircrafts/AircraftDetailSkeleton.vue +++ b/src/components/aircrafts/AircraftDetailSkeleton.vue @@ -15,9 +15,9 @@ import BasicTextSkeleton from "components/basicSkeletons/BasicTextSkeleton.vue"; - - - + +

Lety

+
diff --git a/src/components/aircrafts/AircraftForm.vue b/src/components/aircrafts/AircraftForm.vue index 6451bb7..9efe705 100644 --- a/src/components/aircrafts/AircraftForm.vue +++ b/src/components/aircrafts/AircraftForm.vue @@ -14,8 +14,8 @@ const formData = reactive({ seats: null, manufacturer: "", description: "", - photo: null, - organization: null + organization: null, + isPublic: false }); const props = defineProps({ @@ -84,8 +84,6 @@ onMounted(() => { v-bind="commonProps" /> - - { v-bind="commonProps" /> - - - + + diff --git a/src/components/aircrafts/AircraftInfo.vue b/src/components/aircrafts/AircraftInfo.vue new file mode 100644 index 0000000..5e3717e --- /dev/null +++ b/src/components/aircrafts/AircraftInfo.vue @@ -0,0 +1,30 @@ + + + diff --git a/src/components/aircrafts/AircraftsList.vue b/src/components/aircrafts/AircraftsList.vue index e0cb78c..cf55784 100644 --- a/src/components/aircrafts/AircraftsList.vue +++ b/src/components/aircrafts/AircraftsList.vue @@ -21,8 +21,8 @@ useAppStore().setPageTitle("Letadla"); v-for="aircraft of props.items" :key="aircraft" > - - + + diff --git a/src/components/copilots/CopilotDetailSkeleton.vue b/src/components/copilots/CopilotDetailSkeleton.vue index a58eca0..3f0e335 100644 --- a/src/components/copilots/CopilotDetailSkeleton.vue +++ b/src/components/copilots/CopilotDetailSkeleton.vue @@ -4,5 +4,5 @@ import BasicListSkeleton from "components/basicSkeletons/BasicListSkeleton.vue"; diff --git a/src/components/flights/FlightBasicInfo.vue b/src/components/flights/FlightBasicInfo.vue index dade41b..3e2f944 100644 --- a/src/components/flights/FlightBasicInfo.vue +++ b/src/components/flights/FlightBasicInfo.vue @@ -11,7 +11,18 @@ const props = defineProps({ type: Object, required: false, default: null + }, + aircraftDetailRoute: { + type: Object, + required: false, + default: null + }, + poiDetailRoute: { + type: Object, + required: false, + default: null } + }) @@ -22,7 +33,15 @@ const props = defineProps({ - {{ flight.aircraft.callSign }} + + {{ flight.aircraft.callSign }} + + @@ -53,12 +72,18 @@ const props = defineProps({ - - + + {{ poi.airport.icaoCode }} ({{ poi.airport.name }}), @@ -98,8 +123,8 @@ const props = defineProps({ {{ copilot.name }} diff --git a/src/components/flights/FlightTrackMap.vue b/src/components/flights/FlightTrackMap.vue index 38ba255..c3cc94d 100644 --- a/src/components/flights/FlightTrackMap.vue +++ b/src/components/flights/FlightTrackMap.vue @@ -7,11 +7,15 @@ const props = defineProps({ flight: { type: Object, required: true + }, + photos: { + type: Array, + required: false, } }) -const mapPhotos = computed(() => props.flight.photos.filter(photo => photo.gpsLatitude && photo.gpsLongitude)); +const mapPhotos = computed(() => props.photos.filter(photo => photo.gpsLatitude && photo.gpsLongitude)); const poisWithGPS = computed(() => props.flight.track.map(poi => poi.pointOfInterest || poi.airport)); const mapMarkers = [props.flight.takeoffAirport].concat(poisWithGPS.value).concat([props.flight.landingAirport]); diff --git a/src/components/flights/FlightsList.vue b/src/components/flights/FlightsList.vue index c27966e..62503a6 100644 --- a/src/components/flights/FlightsList.vue +++ b/src/components/flights/FlightsList.vue @@ -8,18 +8,18 @@ const props = defineProps({ type: Array, required: true }, - routeDetail: { - type: Object, - required: false, - default: () => ({name: 'flightDetail', params: {}}) - }, - displayVisibilityInfo: { + public: { type: Boolean, - required: false, - default: true - } + required: true + }, }); +const routeDetail = (flight) => { + if (props.public) + return {name: "publicFlightDetail", params: {username: flight.pilot.publicUsername, id: flight.id}} + else + return {name: "flightDetail", params: {id: flight.id}} +};