diff --git a/src/pages/public/PointsOfInterestPage.vue b/src/pages/public/PointsOfInterestPage.vue
deleted file mode 100644
index fb03db8..0000000
--- a/src/pages/public/PointsOfInterestPage.vue
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
diff --git a/src/pages/public/AircraftDetailPage.vue b/src/pages/public/aircraft/AircraftDetailPage.vue
similarity index 80%
rename from src/pages/public/AircraftDetailPage.vue
rename to src/pages/public/aircraft/AircraftDetailPage.vue
index 66b13c5..307fd46 100644
--- a/src/pages/public/AircraftDetailPage.vue
+++ b/src/pages/public/aircraft/AircraftDetailPage.vue
@@ -19,20 +19,19 @@ import {metaData} from "src/composables/meta";
import PhotoGallery from "components/photos/PhotoGallery.vue";
import ContentCard from "components/ContentCard.vue";
import AircraftInfo from "components/aircrafts/AircraftInfo.vue";
-import {useUserStore} from "stores/User";
import {usePhotosStore} from "stores/Photos";
import {useFlightsStore} from "stores/Flights";
import FlightsListSkeleton from "components/flights/skeletons/FlightsListSkeleton.vue";
import BasicInfoBanner from "components/banners/BasicInfoBanner.vue";
import PhotoGallerySkeleton from "components/photos/skeletons/PhotoGallerySkeleton.vue";
+import {loadPage, paginationLimit} from "src/composables/pagination";
const $q = useQuasar();
const $router = useRouter();
-const loggedUser = storeToRefs(useUserStore()).user;
const {aircraft, isQueryRunning} = storeToRefs(useAircraftsStore());
const {photos, isQueryRunning: arePhotosLoading} = storeToRefs(usePhotosStore());
-const {flights, isQueryRunning: areFlightsLoading} = storeToRefs(useFlightsStore());
+const {flights, totalItemsCount, isQueryRunning: areFlightsLoading} = storeToRefs(useFlightsStore());
useAppStore().setPageTitle(aircraft.value.callSign);
useMeta(() => metaData({
@@ -52,9 +51,16 @@ useAppStore().setBreadcrumbs([
{label: aircraft.value.callSign}
]);
+
+const loadNextFlightsPage = (appendItems) => loadPage({
+ fetchFunc: useFlightsStore().fetchPublic,
+ filters: {aircraftId: aircraft.value.id},
+ appendItems
+});
+
onMounted(() => {
+ loadNextFlightsPage(false);
usePhotosStore().fetchPublic({aircraftId: aircraft.value.id});
- useFlightsStore().fetchPublic({aircraftId: aircraft.value.id})
});
@@ -76,12 +82,17 @@ onMounted(() => {
U tohoto letadla nejsou publikované žádné lety.
-
+
-
-
-
diff --git a/src/pages/public/pilotProfile/CopilotDetailPage.vue b/src/pages/public/pilotProfile/CopilotDetailPage.vue
index 32bcf14..307bcc1 100644
--- a/src/pages/public/pilotProfile/CopilotDetailPage.vue
+++ b/src/pages/public/pilotProfile/CopilotDetailPage.vue
@@ -10,9 +10,8 @@ export default {
-
-
-
+
Společné lety
-
-
diff --git a/src/pages/public/pilotProfile/EventDetailPage.vue b/src/pages/public/pilotProfile/EventDetailPage.vue
index 6a16a3a..8d3d556 100644
--- a/src/pages/public/pilotProfile/EventDetailPage.vue
+++ b/src/pages/public/pilotProfile/EventDetailPage.vue
@@ -3,33 +3,53 @@ import {useEventsStore} from "stores/Events";
export default {
preFetch({currentRoute}) {
- return useEventsStore().fetchDetail(currentRoute.params.id, currentRoute.params.username);
+ return useEventsStore().fetchPublicDetail(currentRoute.params.id, currentRoute.params.username);
}
}
@@ -37,11 +57,6 @@ watch(() => event.value, (newVal) => {
-
- Pozor! Tento event není publikován a nebude tak dostupný pro ostatní!
-
-
-
@@ -63,11 +78,16 @@ watch(() => event.value, (newVal) => {
Zatím tu nemáš uložené žádné lety.
+
+
diff --git a/src/pages/public/pilotProfile/EventsListPage.vue b/src/pages/public/pilotProfile/EventsListPage.vue
index f3c6328..1c600f5 100644
--- a/src/pages/public/pilotProfile/EventsListPage.vue
+++ b/src/pages/public/pilotProfile/EventsListPage.vue
@@ -17,7 +17,7 @@ const props = defineProps({
useMeta(() => metaData({
title: `${props.pilot.publicUsername} - Události`,
- keywords: [...commonKeywords, "pilot"],
+ keywords: [...commonKeywords, "události", "letecký den",],
description: "Detail pilota na poletani.cz",
}));
@@ -28,24 +28,24 @@ useAppStore().setBreadcrumbs([
{label: "Události"}
]);
-useEventsStore().fetch(props.pilot.publicUsername);
+useEventsStore().fetchPublic(props.pilot.publicUsername);
const {isQueryRunning, events} = storeToRefs(useEventsStore());
-
+
+
-
- Tento pilot zatím nepublikoval žádnou udalost.
-
+
+ Tento pilot zatím nepublikoval žádnou udalost.
+
-
-
+
diff --git a/src/pages/public/pilotProfile/FlightDetailPage.vue b/src/pages/public/pilotProfile/FlightDetailPage.vue
index 750e61e..f414b08 100644
--- a/src/pages/public/pilotProfile/FlightDetailPage.vue
+++ b/src/pages/public/pilotProfile/FlightDetailPage.vue
@@ -15,16 +15,19 @@ import FlightDetailSkeleton from "components/flights/skeletons/FlightDetailSkele
import PhotoGallery from "components/photos/PhotoGallery.vue";
import {storeToRefs} from "pinia";
import {flightName} from "src/composables/flight";
-import {useRoute} from "vue-router";
-import {useUserStore} from "stores/User";
import {useMeta} from "quasar";
import {metaData} from "src/composables/meta";
import ContentCard from "components/ContentCard.vue";
import {usePhotosStore} from "stores/Photos";
const {isQueryRunning, flight} = storeToRefs(useFlightsStore());
-const routeParams = useRoute().params;
-const pilot = storeToRefs(useUserStore()).publicUser;
+
+const props = defineProps({
+ pilot: {
+ type: Object,
+ required: true
+ }
+});
usePhotosStore().fetchPublic({flightId: flight.value.id});
const {isQueryRunning: arePhotosLoading, photos: flightPhotos} = storeToRefs(usePhotosStore());
@@ -33,13 +36,13 @@ const flightNameFormatted = flightName(flight.value);
useAppStore().setPageTitle(flightNameFormatted);
useAppStore().setBreadcrumbs([
{to: {name: 'homepage'}, label: "Polétání.cz"},
- {to: {name: "publicProfileDetail", params: {username: routeParams.username}}, label: `@${routeParams.username}`},
+ {to: {name: "publicProfileDetail", params: {username: props.pilot.publicUsername}}, label: `@${props.pilot.publicUsername}`},
{label: flightNameFormatted}
]);
useMeta(() => metaData({
- title: `${flightNameFormatted} - ${pilot.value.name}`,
- keywords: ["let", "výlet", "letadlo", pilot.value.name, flight.value.aircraft.callSign],
+ title: `${flightNameFormatted} - ${props.pilot.name}`,
+ keywords: ["let", "výlet", "letadlo", props.pilot.name, flight.value.aircraft.callSign],
description: flight.description,
image: flight.titlePhoto?.url
}
@@ -57,7 +60,7 @@ useMeta(() => metaData({
:flight="flight"
:poi-detail-route="{name: 'publicPOIDetail'}"
:aircraft-detail-route="flight.aircraft.isPublic ? {name: 'publicAircraftDetail'} : null"
- :copilot-detail-route="{name: 'publicCopilotDetail', params: {username: routeParams.username}}"
+ :copilot-detail-route="{name: 'publicCopilotDetail', params: {username: pilot.publicUsername}}"
/>
diff --git a/src/pages/public/pilotProfile/FlightsListPage.vue b/src/pages/public/pilotProfile/FlightsListPage.vue
index 2408fde..89805cf 100644
--- a/src/pages/public/pilotProfile/FlightsListPage.vue
+++ b/src/pages/public/pilotProfile/FlightsListPage.vue
@@ -7,12 +7,12 @@ import {useFlightsStore} from "stores/Flights";
import {storeToRefs} from "pinia";
import {commonKeywords, metaData} from "src/composables/meta";
import {useMeta} from "quasar";
-import {useUserStore} from "stores/User";
+import {loadPage, paginationLimit} from "src/composables/pagination";
const props = defineProps({
pilot: {
type: Object,
- required: true,
+ required: true
}
});
@@ -29,24 +29,32 @@ useAppStore().setBreadcrumbs([
{label: `@${props.pilot.publicUsername}`},
])
-useFlightsStore().fetchPublic({username: props.pilot.publicUsername});
-const {flights, isQueryRunning: areFlightsLoading} = storeToRefs(useFlightsStore());
-const loggedUser = storeToRefs(useUserStore()).user;
+const loadNextFlightsPage = (appendItems) => loadPage({
+ fetchFunc: useFlightsStore().fetchPublic,
+ filters: {username: props.pilot.publicUsername},
+ appendItems
+});
+loadNextFlightsPage(false);
+
+const {flights, totalItemsCount, isQueryRunning: areFlightsLoading} = storeToRefs(useFlightsStore());
-
+
Tento pilot zatím nepublikoval žádný let.
diff --git a/src/pages/public/PointOfInterestDetailPage.vue b/src/pages/public/poi/PointOfInterestDetailPage.vue
similarity index 72%
rename from src/pages/public/PointOfInterestDetailPage.vue
rename to src/pages/public/poi/PointOfInterestDetailPage.vue
index 71f3e2b..1c14936 100644
--- a/src/pages/public/PointOfInterestDetailPage.vue
+++ b/src/pages/public/poi/PointOfInterestDetailPage.vue
@@ -23,10 +23,11 @@ import FlightsListSkeleton from "components/flights/skeletons/FlightsListSkeleto
import BasicInfoBanner from "components/banners/BasicInfoBanner.vue";
import {onMounted} from "vue";
import PhotoGallerySkeleton from "components/photos/skeletons/PhotoGallerySkeleton.vue";
+import {loadPage, paginationLimit} from "src/composables/pagination";
const {pointOfInterest, isQueryRunning} = storeToRefs(usePointsOfInterestStore());
const {photos, isQueryRunning: arePhotosLoading} = storeToRefs(usePhotosStore());
-const {flights, isQueryRunning: areFlightsLoading} = storeToRefs(useFlightsStore());
+const {flights, totalItemsCount, isQueryRunning: areFlightsLoading} = storeToRefs(useFlightsStore());
useAppStore().setPageTitle(pointOfInterest.value.name);
useMeta(() => metaData({
@@ -40,9 +41,16 @@ useAppStore().setBreadcrumbs([
{label: pointOfInterest.value.name}
]);
+
+const loadNextFlightsPage = (appendItems) => loadPage({
+ fetchFunc: useFlightsStore().fetchPublic,
+ filters: {pointOfInterestId: pointOfInterest.value.id},
+ appendItems
+});
+
onMounted(() => {
usePhotosStore().fetchPublic({pointOfInterestId: pointOfInterest.value.id});
- useFlightsStore().fetchPublic({pointOfInterestId: pointOfInterest.value.id});
+ loadNextFlightsPage(false);
});
@@ -55,14 +63,14 @@ onMounted(() => {
-
-
+
+
Lety na místo {{ pointOfInterest.name }}
@@ -70,7 +78,15 @@ onMounted(() => {
Zdá se, že na toto místo ještě nikdo neletěl. Zatím tu nejsou ještě žádné lety.
-
+
diff --git a/src/pages/public/poi/PointsOfInterestPage.vue b/src/pages/public/poi/PointsOfInterestPage.vue
new file mode 100644
index 0000000..17f6e0b
--- /dev/null
+++ b/src/pages/public/poi/PointsOfInterestPage.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
diff --git a/src/pages/public/LoginPage.vue b/src/pages/public/user/LoginPage.vue
similarity index 80%
rename from src/pages/public/LoginPage.vue
rename to src/pages/public/user/LoginPage.vue
index 7f1c769..5d20e10 100644
--- a/src/pages/public/LoginPage.vue
+++ b/src/pages/public/user/LoginPage.vue
@@ -1,18 +1,16 @@
@@ -36,12 +38,12 @@ const rules = {
-
+
-
+
diff --git a/src/pages/public/RegisterPage.vue b/src/pages/public/user/RegisterPage.vue
similarity index 89%
rename from src/pages/public/RegisterPage.vue
rename to src/pages/public/user/RegisterPage.vue
index c08cbdf..36abbfb 100644
--- a/src/pages/public/RegisterPage.vue
+++ b/src/pages/public/user/RegisterPage.vue
@@ -1,23 +1,27 @@