From b0aa6b5628d711f29fc54bbc578e7520bd7d7b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Sat, 20 Jan 2024 15:40:31 +0100 Subject: [PATCH] Uprava setovani 404 (asi porad nefunguje), ruzne podminky, priprava na zapomenute heslo, sjednoceni nacitani letu v profilu --- docker-compose.yml | 4 +- quasar.config.js | 4 +- src-ssr/middlewares/render.js | 2 + src/boot/apollo.js | 4 + src/components/AppFooter.vue | 39 ++++++-- src/components/flights/FlightsList.vue | 11 ++- src/layouts/PublicLayout.vue | 2 +- src/pages/profile/ProfileRefreshPage.vue | 37 +++++++- src/pages/profile/flight/FlightsPage.vue | 20 +--- src/pages/public/ContactPage.vue | 40 +++++++- src/pages/public/FeaturesPage.vue | 26 ++++++ src/pages/public/PersonalInformationPage.vue | 59 ++++++++++++ src/pages/public/PilotProfileWrapper.vue | 6 +- src/pages/public/TermsAndConditionsPage.vue | 71 ++++++++++++++ .../public/user/ForgottenPasswordPage.vue | 93 +++++++++++++++++++ src/pages/public/user/LoginPage.vue | 23 +++-- src/pages/public/user/RegisterPage.vue | 82 ++++++++-------- src/router/routes.js | 18 ++-- 18 files changed, 444 insertions(+), 97 deletions(-) create mode 100644 src/pages/public/FeaturesPage.vue create mode 100644 src/pages/public/PersonalInformationPage.vue create mode 100644 src/pages/public/TermsAndConditionsPage.vue create mode 100644 src/pages/public/user/ForgottenPasswordPage.vue diff --git a/docker-compose.yml b/docker-compose.yml index 240d5dc..1db0210 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,7 +24,7 @@ services: ## command: ls -l /app app: -# network_mode: host + network_mode: host build: context: . target: "develop-stage" @@ -36,7 +36,7 @@ services: - ./src-ssr:/app/src-ssr - ./public:/app/public # - ./node_modules:/app/node_modules:delegated - command: quasar dev # -m ssr + command: quasar dev -m ssr environment: API_URL: "http://127.0.0.1:8000" diff --git a/quasar.config.js b/quasar.config.js index cebc930..f58ef65 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -119,7 +119,9 @@ module.exports = configure(function (ctx) { // animations: 'all', // --- includes all animations // https://v2.quasar.dev/options/animations - animations: [], + animations: [ + "fadeIn", "fadeOut" + ], // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#property-sourcefiles sourceFiles: { diff --git a/src-ssr/middlewares/render.js b/src-ssr/middlewares/render.js index e70c9c5..a89b3b3 100644 --- a/src-ssr/middlewares/render.js +++ b/src-ssr/middlewares/render.js @@ -28,6 +28,8 @@ export default ssrMiddleware(({ app, resolve, render, serve }) => { } else if (err.code === 404) { // hmm, Vue Router could not find the requested route + console.log("404 v renderu") + // Should reach here only if no "catch-all" route // is defined in /src/routes // res.status(404).send('404 | Page Not Found') diff --git a/src/boot/apollo.js b/src/boot/apollo.js index 341c47f..a858868 100644 --- a/src/boot/apollo.js +++ b/src/boot/apollo.js @@ -5,6 +5,7 @@ import {Notify} from "quasar"; import {errorObject, warningObject} from "src/composables/dialog"; import {createUploadLink} from "apollo-upload-client"; import {useAuthStore} from "stores/Auth"; +import {useRouter} from "vue-router"; // import createUploadLink from "apollo-upload-client/createUploadLink.mjs"; const handleRefreshToken = (store, router, forward, operation) => { @@ -57,6 +58,9 @@ export default (({store, router}) => { for (const error of graphQLErrors) { if (error.message.includes("401") || error.message.includes("Not authorized")) { return handleRefreshToken(store, router, forward, operation); + } else if (error.message.includes("404") || error.message.includes("Not found")) { + useAppStore(store).appStatus = 404; + console.log("not found"); } else { Notify.create(errorObject("API error: " + error.message)); } diff --git a/src/components/AppFooter.vue b/src/components/AppFooter.vue index c6f582d..1d8cabc 100644 --- a/src/components/AppFooter.vue +++ b/src/components/AppFooter.vue @@ -1,30 +1,49 @@ - + diff --git a/src/components/flights/FlightsList.vue b/src/components/flights/FlightsList.vue index f02aec5..79b4feb 100644 --- a/src/components/flights/FlightsList.vue +++ b/src/components/flights/FlightsList.vue @@ -63,6 +63,7 @@ const loadMoreCount = computed(() => { > +
{{ flightName(flight) }}
@@ -93,9 +94,15 @@ const loadMoreCount = computed(() => {
- + - + + + + + Let je sice publikovaný, nemá ale nastavenou URL adresu! + + diff --git a/src/layouts/PublicLayout.vue b/src/layouts/PublicLayout.vue index 9f45e32..c1715a4 100644 --- a/src/layouts/PublicLayout.vue +++ b/src/layouts/PublicLayout.vue @@ -29,7 +29,7 @@ - + diff --git a/src/pages/profile/ProfileRefreshPage.vue b/src/pages/profile/ProfileRefreshPage.vue index 40a462f..dc70a15 100644 --- a/src/pages/profile/ProfileRefreshPage.vue +++ b/src/pages/profile/ProfileRefreshPage.vue @@ -1,14 +1,16 @@ diff --git a/src/pages/profile/flight/FlightsPage.vue b/src/pages/profile/flight/FlightsPage.vue index 339543d..762d0d6 100644 --- a/src/pages/profile/flight/FlightsPage.vue +++ b/src/pages/profile/flight/FlightsPage.vue @@ -6,29 +6,19 @@ import {useAppStore} from "stores/App"; import BasicInfoBanner from "components/banners/BasicInfoBanner.vue"; import {useFlightsStore} from "stores/Flights"; import {storeToRefs} from "pinia"; -import {ref} from "vue"; +import {loadPage, paginationLimit} from "src/composables/pagination"; useAppStore().setPageTitle("Moje lety"); -const paginationLimit = ref(10); -const paginationOffset = ref(0); - -const loadNextPage = (appendItems) => { - return useFlightsStore().fetch({ - limit: paginationLimit.value, - offset: paginationOffset.value, - appendItems - }).then(() => { - paginationOffset.value += paginationLimit.value; - }) -} - +const loadNextPage = (appendItems) => loadPage({ + fetchFunc: useFlightsStore().fetch, appendItems +}); loadNextPage(false); const {flights, totalItemsCount, isQueryRunning} = storeToRefs(useFlightsStore());