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