From bdddf9e84a45d9558d212c36bdf812ad86f711bf Mon Sep 17 00:00:00 2001 From: theo-chmbn Date: Thu, 13 Jul 2023 14:02:04 +0200 Subject: [PATCH 1/2] scroll behavior router --- src/router/index.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index eb8731ae..f727f303 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,8 +1,6 @@ import { createRouter, createWebHistory } from "vue-router"; const HomeView = () => import("../views/HomeView.vue") const ResultView = () => import("../views/ResultView.vue") -const TheseView = () => import("../views/TheseView.vue") -const PersonneView = () => import("../views/PersonneView.vue") const DetailView = () => import("../views/DetailView.vue") const APropos = () => import("../components/footer-pages/APropos.vue") const AccessibilitePage = () => import("../components/footer-pages/AccessibilitePage.vue") @@ -56,6 +54,9 @@ export const router = createRouter({ component: MentionsPage } ], + scrollBehavior() { + return { top: 0, left: 0 } + } }); export default router; From 61d937e81a40f97de1f253d12cef9249cf423351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Delafontaine?= Date: Thu, 13 Jul 2023 15:09:31 +0200 Subject: [PATCH 2/2] =?UTF-8?q?FIX=20:=20r=C3=A9duction=20des=20mise=20?= =?UTF-8?q?=C3=A0=20jour=20de=20l'url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/results/ResultComponents.vue | 4 ++-- src/services/StrategyAPI.js | 15 +++++++++++---- src/views/ResultView.vue | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/components/common/results/ResultComponents.vue b/src/components/common/results/ResultComponents.vue index 3c2bf2f8..4f0cdfb1 100644 --- a/src/components/common/results/ResultComponents.vue +++ b/src/components/common/results/ResultComponents.vue @@ -60,7 +60,7 @@ import SortingSelect from "@/components/common/results/SortingSelect.vue"; const currentRoute = useRoute(); const { mobile } = useDisplay(); -const { setShowingNumber } = APIService(); +const { setShowingNumber, setShowingNumberMobile } = APIService(); const props = defineProps({ result: { @@ -125,7 +125,7 @@ function updateShowingNumber(newValue) { function addTenResultsToList() { currentShowingNumber.value += 10; - setShowingNumber(currentShowingNumber.value); + setShowingNumberMobile(currentShowingNumber.value); } function updatePage(newPage) { diff --git a/src/services/StrategyAPI.js b/src/services/StrategyAPI.js index 62447462..e19fa577 100644 --- a/src/services/StrategyAPI.js +++ b/src/services/StrategyAPI.js @@ -5,7 +5,6 @@ import { thesesAPIService } from "@/services/ThesesAPI"; import { personnesAPIService } from "@/services/PersonnesAPI"; import { referentielsAPIService } from "@/services/ReferentielsAPI"; import { replaceAndEscape } from "@/services/Common"; -import {useRoute} from "vue-router"; // import fonctions const { fetchCodeLangues, createLabels, getLabelFromCode } = referentielsAPIService(); @@ -51,6 +50,10 @@ function setShowingNumber(value) { updateURL(); } +function setShowingNumberMobile(value) { + currentShowingNumber.value = parseInt(value); +} + function getCurrentShowingNumber() { if(typeof currentShowingNumber.value !== 'undefined') { return parseInt(currentShowingNumber.value); @@ -81,7 +84,6 @@ function getCurrentSorting() { function setQuery(newQuery) { query.value = (typeof newQuery !== 'undefined' && newQuery !== '') ? newQuery : '*'; - updateURL(); } function setCheckedFilters(objectsArray) { @@ -196,9 +198,13 @@ function disableOrFilters() { /** * Routes */ -function queryAPI() { +function queryAPI(mobile) { query.value = (typeof query.value === 'undefined') ? '*' : query.value; + if (!mobile._object.mobile) { + updateURL(); + } + if(domaine.value === "personnes") return queryPersonnesAPI(replaceAndEscape(query.value), getFacetsRequest(), currentPageNumber.value, currentShowingNumber.value, currentSorting.value); else @@ -542,6 +548,7 @@ export function APIService() { setWorkingFacetName, addToFiltersLabelsMap, getTriMap, - reinitializeResultData + reinitializeResultData, + setShowingNumberMobile }; } diff --git a/src/views/ResultView.vue b/src/views/ResultView.vue index ef2050e2..8703818b 100644 --- a/src/views/ResultView.vue +++ b/src/views/ResultView.vue @@ -142,7 +142,7 @@ async function search(firstLoad = false) { /** * Chargement des donnees */ - return queryAPI().then((response) => { + return queryAPI(mobile).then((response) => { if (!["theses", "personnes"].includes(currentRoute.query.domaine)) { throw new Error("Erreur de nom de paramètres"); }