Skip to content

Commit

Permalink
fix: ensure avablePlugins is refresh when showAll change
Browse files Browse the repository at this point in the history
  • Loading branch information
BatLeDev committed Nov 8, 2024
1 parent 4c164e3 commit 7f1cc3c
Showing 1 changed file with 17 additions and 12 deletions.
29 changes: 17 additions & 12 deletions ui/src/pages/admin/plugins.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<template>
<v-container data-iframe-height>
<v-text-field
v-model="urlSearchParams.q"
v-model="search"
:append-inner-icon="mdiMagnify"
class="my-2"
clearable
Expand Down Expand Up @@ -143,13 +143,12 @@
</template>
<v-col>
<v-row>
<v-list-subheader>{{ (availablePlugins && availablePlugins.length) || 0 }} plugins disponibles</v-list-subheader>
<v-list-subheader>{{ (filteredAvailablePlugins && filteredAvailablePlugins.length) || 0 }} plugins disponibles</v-list-subheader>
<v-checkbox
:model-value="urlSearchParams.showAll === 'true'"
v-model="query.showAll"
label="Afficher les versions de test des plugins"
color="primary"
density="compact"
@update:model-value="value => urlSearchParams.showAll = '' + value"
/>
</v-row>
</v-col>
Expand All @@ -168,7 +167,6 @@
:key="'available-' + result.name + '-' + result.version"
>
<v-card
v-if="!installedPlugins.find(r => r.name === result.name && r.distTag === result.distTag)"
class="mb-4"
>
<v-progress-linear
Expand Down Expand Up @@ -208,12 +206,12 @@

<script setup lang="ts">
import setBreadcrumbs from '~/utils/breadcrumbs'
import useUrlSearchParams from '@data-fair/lib-vue/reactive-search-params.js'
import Vjsf from '@koumoul/vjsf'
import { v2compat } from '@koumoul/vjsf/compat/v2'
const session = useSession()
const urlSearchParams = useUrlSearchParams()
const search = useStringSearchParam('q')
const query = ref({ showAll: false })
if (!session.state.user) {
throw new Error('Authentification nécessaire')
Expand Down Expand Up @@ -262,22 +260,29 @@ const installedPlugins = computed(() => {
const availablePluginsFetch = useFetch<{
results: AvailablePlugin[],
count: number
}>(`${$apiPath}/plugins-registry`, { query: { showAll: urlSearchParams.showAll } })
}>(`${$apiPath}/plugins-registry`, { query: query.value })
const availablePlugins = computed(() => {
const results = availablePluginsFetch.data.value?.results || []
results.sort((a, b) => a.name.localeCompare(b.name) || a.version.localeCompare(b.version))
return results
})
const filteredInstalledPlugins = computed(() => {
if (!urlSearchParams.q) return installedPlugins.value
if (!search.value) return installedPlugins.value
return installedPlugins.value
.filter(r => r.name.includes(urlSearchParams.q) || (r.description && r.description.includes(urlSearchParams.q)))
.filter(r => r.name.includes(search.value) || (r.description && r.description.includes(search.value)))
})
const filteredAvailablePlugins = computed(() => {
if (!urlSearchParams.q) return availablePlugins.value
return availablePlugins.value.filter(r => r.name.includes(urlSearchParams.q) || (r.description && r.description.includes(urlSearchParams.q)))
const filteredPlugins = availablePlugins.value.filter(result =>
!installedPlugins.value.find(r => r.name === result.name && r.distTag === result.distTag)
)
if (!search.value) return filteredPlugins
return filteredPlugins.filter(result =>
result.name.includes(search.value) ||
(result.description && result.description.includes(search.value))
)
})
const deleteMenuShowed = ref(null) as Ref<string | null>
Expand Down

0 comments on commit 7f1cc3c

Please sign in to comment.