Explorar el Código

fix UiAutocompleteAccesses

Olivier Massot hace 2 años
padre
commit
fe8898797e

+ 0 - 4
README.md

@@ -51,10 +51,6 @@ Lancer le serveur de développement :
 
 
 On commence par cloner le projet app, puis par se placer dans le répertoire ainsi créé.
 On commence par cloner le projet app, puis par se placer dans le répertoire ainsi créé.
 
 
-On créé un symlink vers le fichier .env.xxx voulu sous le nom de .env (selon l'environnement)
-
-    ln -s .env.xxx .env
-
 Pour déployer le projet en mode SSR, on commence par mettre à jour et compiler avec la commande custom :
 Pour déployer le projet en mode SSR, on commence par mettre à jour et compiler avec la commande custom :
 
 
     yarn deploy
     yarn deploy

+ 0 - 1
components/Layout/Parameters/Website.vue

@@ -142,7 +142,6 @@ const { data: subdomains, pending: subdomainsPending } = fetchCollection(Subdoma
 const canAddNewSubdomain: ComputedRef<boolean> = computed(() => subdomains.value && subdomains.value.items.length < 3)
 const canAddNewSubdomain: ComputedRef<boolean> = computed(() => subdomains.value && subdomains.value.items.length < 3)
 
 
 const goToEditPage = (id: number) => {
 const goToEditPage = (id: number) => {
-  console.log(parameters.value)
   navigateTo(`parameters/subdomains/${id}`)
   navigateTo(`parameters/subdomains/${id}`)
 }
 }
 
 

+ 18 - 10
components/Ui/Input/Autocomplete/Accesses.vue

@@ -123,7 +123,7 @@ const i18n = useI18n()
 const accessToItem = (access: Access): AccessListItem => {
 const accessToItem = (access: Access): AccessListItem => {
   return {
   return {
     id: access.id,
     id: access.id,
-    title: access.person ? `${access.person.givenName} ${access.person.name}` : i18n.t('unknown')
+    title: access.person ? `${access.person.name} ${access.person.givenName}` : i18n.t('unknown')
   }
   }
 }
 }
 
 
@@ -142,7 +142,7 @@ const nameFilter: Ref<string | null> = ref(null)
  * Query transmise à l'API lors des changements de filtre de recherche
  * Query transmise à l'API lors des changements de filtre de recherche
  */
  */
 const query: ComputedRef<AnyJson> = computed(() => {
 const query: ComputedRef<AnyJson> = computed(() => {
-  let q: AnyJson = {'groups[]': 'access_people_ref'}
+  let q: AnyJson = {'groups[]': 'access_people_ref', 'order[name]': 'asc'}
 
 
   if (!initialized.value && props.modelValue) {
   if (!initialized.value && props.modelValue) {
     if (Array.isArray(props.modelValue) && props.modelValue.length > 0) {
     if (Array.isArray(props.modelValue) && props.modelValue.length > 0) {
@@ -153,7 +153,7 @@ const query: ComputedRef<AnyJson> = computed(() => {
     return q
     return q
   }
   }
 
 
-  if (nameFilter.value !== null) {
+  if (nameFilter.value) {
     q['fullname'] = nameFilter.value
     q['fullname'] = nameFilter.value
   }
   }
 
 
@@ -169,23 +169,32 @@ const { data: collection, pending, refresh } = await fetchCollection(
     query
     query
 )
 )
 initialized.value = true
 initialized.value = true
+// On relance une requête pour récupérer la première page
+refresh()
 
 
 /**
 /**
  * Contenu de la liste autocomplete
  * Contenu de la liste autocomplete
  */
  */
 const items: ComputedRef<Array<AccessListItem>> = computed(() => {
 const items: ComputedRef<Array<AccessListItem>> = computed(() => {
-  let items = props.modelValue.map(getFromStore).map(accessToItem)
+  if (pending.value || !collection.value) {
+    return []
+  }
 
 
   //@ts-ignore
   //@ts-ignore
   const fetchedItems = collection.value.items.map(accessToItem)
   const fetchedItems = collection.value.items.map(accessToItem)
 
 
-  for (let item of fetchedItems) {
-    if (!items.some((existingItem: AccessListItem) => existingItem.id === item.id)) {
-      items.push(item)
+  // move the active items to the top and sort by name
+  fetchedItems.sort((a, b) => {
+    if (props.modelValue.includes(a.id) && !props.modelValue.includes(b.id)) {
+      return -1
+    } else if (!props.modelValue.includes(a.id) && props.modelValue.includes(b.id)) {
+      return 1
+    } else {
+      return a.title.localeCompare(b.title)
     }
     }
-  }
+  })
 
 
-  return ArrayUtils.sortObjectsByProp(items, 'title') as Array<AccessListItem>
+  return fetchedItems
 })
 })
 
 
 
 
@@ -220,7 +229,6 @@ const onUpdateModelValue = (event: Array<number>) => {
   }
   }
   emit('update:model-value', event)
   emit('update:model-value', event)
 }
 }
-
 </script>
 </script>
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">