From a78cb14b8c2e285124c0eac6f94facbd84ecdfe9 Mon Sep 17 00:00:00 2001 From: Mathieu Massaviol <mathieu.massaviol@univ-amu.fr> Date: Fri, 8 Nov 2024 09:02:11 +0100 Subject: [PATCH] Corrections after review #29 --- .../OcResourceSearchSimple.vue | 43 ++++++++++++------- .../OcSearchResultCard/OcSearchResultCard.vue | 2 +- src/locales/en.ts | 1 + src/locales/fr.ts | 1 + src/pages/community/[community].search.vue | 2 +- src/sparql/search.ts | 11 ++--- 6 files changed, 37 insertions(+), 23 deletions(-) diff --git a/src/components/Search/OcResourceSearchSimple/OcResourceSearchSimple.vue b/src/components/Search/OcResourceSearchSimple/OcResourceSearchSimple.vue index 0a43426..cf40269 100644 --- a/src/components/Search/OcResourceSearchSimple/OcResourceSearchSimple.vue +++ b/src/components/Search/OcResourceSearchSimple/OcResourceSearchSimple.vue @@ -1,25 +1,34 @@ <template> - <IconField class="w-full mt-8 mb-4"> - <InputIcon class="fa-solid fa-magnifying-glass cursor-pointer hover:text-primary" @click="emit('submit')" /> - <InputText - id="search" - v-model="model.q" - fluid - size="large" - :placeholder="t('community.homepage.searchBarPlaceholder')" - v-on:keyup.enter="emit('submit')" - :disabled="props.loading" - /> - <InputIcon + <InputGroup class="w-full mt-8 mb-4"> + <InputGroupAddon> + <i + class="fa-solid fa-magnifying-glass cursor-pointer hover:text-primary" + @click="emit('submit')" + /> + </InputGroupAddon> + <InputText + id="search" + v-model="model.q" + fluid + size="large" + :placeholder="t('community.homepage.searchBarPlaceholder')" + v-on:keyup.enter="emit('submit')" + :disabled="props.loading" + /> + <InputGroupAddon v-if="searchPop" - :class="{ + class="inline-flex gap-2 text-gray-500 hover:text-gray-800" + @click="searchPop.toggle" + > + <h3>{{ t('search.searchBarParamButtonLabel') }}</h3> + <i :class="{ 'fa-chevron-down': !searchPop.visible, 'fa-chevron-up': searchPop.visible }" class="fa-solid" - @click="searchPop.toggle" - /> - </IconField> + /> + </InputGroupAddon> + </InputGroup> <div id="popoverPlace" class="h-0 m-0 p-0" /> <Popover id="popover" class="h-fit w-full" ref="searchPop" appendTo="#popoverPlace"> <div v-for="key in Object.keys(SearchQueryParams)" v-bind:key="key"> @@ -46,6 +55,8 @@ import IconField from 'primevue/iconfield' import InputText from 'primevue/inputtext' import InputIcon from 'primevue/inputicon' +import InputGroup from 'primevue/inputgroup'; +import InputGroupAddon from 'primevue/inputgroupaddon'; import Button from 'primevue/button' import Popover from 'primevue/popover' import { SearchQueryParams, type OcSearchQuery } from '@/declarations' diff --git a/src/components/Search/OcSearchResultCard/OcSearchResultCard.vue b/src/components/Search/OcSearchResultCard/OcSearchResultCard.vue index eecfa29..08ed9b3 100644 --- a/src/components/Search/OcSearchResultCard/OcSearchResultCard.vue +++ b/src/components/Search/OcSearchResultCard/OcSearchResultCard.vue @@ -8,7 +8,7 @@ <OcVisibilityIcon v-if="visibility !== 'public'" :visibility="visibility" - class="text-[0.8rem] pt-1 -ml-3 mr-0.5" + class="text-[0.8rem] pt-2 -ml-4 mr-0.5" :color="props.community.color" /> <OcLink diff --git a/src/locales/en.ts b/src/locales/en.ts index 6d7a47e..fbc0c51 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -349,6 +349,7 @@ Greetings, resourceType: "Resource type", results: "Results", launchSearch: "Launch the search", + searchBarParamButtonLabel: "Parameters", searchResult: { description: "Description", datasets: "Datasets", diff --git a/src/locales/fr.ts b/src/locales/fr.ts index f797786..808ba9f 100644 --- a/src/locales/fr.ts +++ b/src/locales/fr.ts @@ -364,6 +364,7 @@ Cordialement, resourceType: "Type de ressource", results: "Résultats", launchSearch: "Lancer la recherche", + searchBarParamButtonLabel: "Paramètres", searchResult: { description: "Description", catalogues: "Sous-catalogues", diff --git a/src/pages/community/[community].search.vue b/src/pages/community/[community].search.vue index 8423e6f..960b7c7 100644 --- a/src/pages/community/[community].search.vue +++ b/src/pages/community/[community].search.vue @@ -118,7 +118,7 @@ const search = async () => { errorMessage.value = (e as Error).message ?? 'Error' } - getResultsForStart(start.value) + await getResultsForStart(start.value) searching.value = false searched.value = true diff --git a/src/sparql/search.ts b/src/sparql/search.ts index 8d7a0df..ce520a4 100644 --- a/src/sparql/search.ts +++ b/src/sparql/search.ts @@ -7,10 +7,13 @@ import { resourceContext } from './resource' * Get results URI of a search query */ export const searchResources = async (query: OcSearchQuery, auth?: Credentials) => { - console.log(query) let queryFilter = '' if (query.q) { - queryFilter = `FILTER regex(?o, "${query.q}", "i")` + queryFilter = ` + VALUES ?p { dct:title dct:description } + ?resource ?p ?o. + FILTER regex(?o, "${query.q}", "i") + ` } if (query.params?.title){ @@ -18,7 +21,7 @@ export const searchResources = async (query: OcSearchQuery, auth?: Credentials) queryFilter += ` ?resource dct:title ?title${index}. FILTER regex(?title${index}, "${title}", "i") - ` + ` }) } @@ -49,8 +52,6 @@ export const searchResources = async (query: OcSearchQuery, auth?: Credentials) ?resource rdf:type ?type. ?resource dct:identifier ?identifier. - VALUES ?p { dct:title dct:description } - ?resource ?p ?o. ${queryFilter} } ORDER BY ASC(?resource) -- GitLab