Skip to content
Snippets Groups Projects
Commit 275c4f44 authored by Remi  PLANEL's avatar Remi PLANEL
Browse files

disabled filter if no facetDistribution

parent 3e0e2036
No related branches found
No related tags found
2 merge requests!203Foldseek pages,!186Refactor facet autocomplete
Pipeline #120236 passed with warnings
...@@ -180,7 +180,12 @@ const autocompleteItems = computed(() => { ...@@ -180,7 +180,12 @@ const autocompleteItems = computed(() => {
} }
}) })
const hasFacetDistribution = computed(() => {
const toValFacetDistribution = toValue(props.facetDistribution)
return toValFacetDistribution !== undefined && Object.keys(toValFacetDistribution).length > 0
})
function updateAutocompleteFocused(isFocused: boolean) { function updateAutocompleteFocused(isFocused: boolean) {
isAutocompleteFocused.value = isFocused isAutocompleteFocused.value = isFocused
...@@ -188,11 +193,6 @@ function updateAutocompleteFocused(isFocused: boolean) { ...@@ -188,11 +193,6 @@ function updateAutocompleteFocused(isFocused: boolean) {
function emitUpdateModelValue(filters: MaybeRef<FilterItem[] | undefined>) { function emitUpdateModelValue(filters: MaybeRef<FilterItem[] | undefined>) {
console.log("dans emit model")
console.log(filters)
// const meiliFilter = toMeiliFilter(toValue(filters))
// emit("meiliFilters", meiliFilter)
emit('update:modelValue', toValue(filters)) emit('update:modelValue', toValue(filters))
} }
...@@ -227,7 +227,7 @@ function isItemFilter(type: string | undefined) { ...@@ -227,7 +227,7 @@ function isItemFilter(type: string | undefined) {
</script> </script>
<template> <template>
<v-autocomplete :model-value="props.modelValue" class="mx-2" @click:clear="clearFilters" v-bind="autocompleteProps" <v-autocomplete :model-value="props.modelValue" class="mx-2" @click:clear="clearFilters" v-bind="autocompleteProps"
@update:focused="updateAutocompleteFocused" @update:modelValue="emitUpdateModelValue"> @update:focused="updateAutocompleteFocused" @update:modelValue="emitUpdateModelValue" :disabled="!hasFacetDistribution">
<template #item="{ props, item }"> <template #item="{ props, item }">
<v-list-item v-if="isItemFilter(item?.raw?.type)" v-bind="{ ...props, active: false }" :title="item.title" <v-list-item v-if="isItemFilter(item?.raw?.type)" v-bind="{ ...props, active: false }" :title="item.title"
:prepend-icon="item?.raw?.icon ? item.raw.icon : undefined" :prepend-icon="item?.raw?.icon ? item.raw.icon : undefined"
......
...@@ -58,6 +58,8 @@ const props = withDefaults(defineProps<Props>(), { ...@@ -58,6 +58,8 @@ const props = withDefaults(defineProps<Props>(), {
} }
}); });
// const facetDistribution: Ref<Record<string, Record<string, number>> | undefined> = useState(`refseqFacetDistribution`) // const facetDistribution: Ref<Record<string, Record<string, number>> | undefined> = useState(`refseqFacetDistribution`)
...@@ -140,8 +142,6 @@ const msFilterCompo = ref<FilterItem[] | undefined>(undefined) ...@@ -140,8 +142,6 @@ const msFilterCompo = ref<FilterItem[] | undefined>(undefined)
const computedFilter = computed(() => { const computedFilter = computed(() => {
const toValFilters = toValue(msFilterCompo) const toValFilters = toValue(msFilterCompo)
let filtersStr: string | undefined = undefined let filtersStr: string | undefined = undefined
if (toValFilters !== undefined && toValFilters.length > 0) { if (toValFilters !== undefined && toValFilters.length > 0) {
...@@ -170,8 +170,6 @@ const computedFilter = computed(() => { ...@@ -170,8 +170,6 @@ const computedFilter = computed(() => {
watch(computedFilter, () => { watch(computedFilter, () => {
console.log("dans le watch meilifilters")
console.log(toValue(computedFilter))
if (toValue(isValidFilters) && (toValue(computedFilter) !== undefined || toValue(filterInputValues) === null)) { if (toValue(isValidFilters) && (toValue(computedFilter) !== undefined || toValue(filterInputValues) === null)) {
searchOrFilter() searchOrFilter()
emitRefreshRes() emitRefreshRes()
...@@ -199,22 +197,12 @@ const lastFilterItem = computed(() => { ...@@ -199,22 +197,12 @@ const lastFilterItem = computed(() => {
}) })
const isValidFilters = computed(() => { const isValidFilters = computed(() => {
console.log("dans is valid filter")
console.log("idvalidfilters", msFilterCompo)
const toValFilterItems = toValue(msFilterCompo) const toValFilterItems = toValue(msFilterCompo)
console.log(toValFilterItems)
console.log(typeof toValFilterItems)
console.log(Array.isArray(toValFilterItems))
console.log(toValFilterItems?.length)
if (toValFilterItems === undefined || Array.isArray(toValFilterItems) && toValFilterItems?.length === 0) { if (toValFilterItems === undefined || Array.isArray(toValFilterItems) && toValFilterItems?.length === 0) {
return true return true
} }
else { else {
const toValLastFilterItem = toValue(lastFilterItem) const toValLastFilterItem = toValue(lastFilterItem)
console.log("the last filter")
console.log(toValFilterItems)
if (toValLastFilterItem !== undefined) { if (toValLastFilterItem !== undefined) {
console.log(toValLastFilterItem.type) console.log(toValLastFilterItem.type)
console.log(toValLastFilterItem.type === 'value') console.log(toValLastFilterItem.type === 'value')
...@@ -223,14 +211,11 @@ const isValidFilters = computed(() => { ...@@ -223,14 +211,11 @@ const isValidFilters = computed(() => {
// || (toValFilterStep === 0 && toValLastFilterItem.type === "outerOperator" && toValLastFilterItem.value.split("-")[0] === "AND") // || (toValFilterStep === 0 && toValLastFilterItem.type === "outerOperator" && toValLastFilterItem.value.split("-")[0] === "AND")
} }
} }
console.log("retrun false")
return false return false
}) })
async function searchOrFilter() { async function searchOrFilter() {
console.log("dans searchOrFilter")
console.log("is valide filter : ", toValue(isValidFilters))
if (toValue(isValidFilters)) { if (toValue(isValidFilters)) {
// do something, it will be called at most 1 time per second // do something, it will be called at most 1 time per second
try { try {
...@@ -253,7 +238,6 @@ async function searchOrFilter() { ...@@ -253,7 +238,6 @@ async function searchOrFilter() {
function emitRefreshRes() { function emitRefreshRes() {
const q = search.value const q = search.value
console.log("dans le emitrefresh res")
emit("refresh:search", { emit("refresh:search", {
index: props.autocompleteMeiliFacetsProps.db, index: props.autocompleteMeiliFacetsProps.db,
query: q, query: q,
...@@ -300,6 +284,8 @@ function focusedOrBlur(isFocused: boolean) { ...@@ -300,6 +284,8 @@ function focusedOrBlur(isFocused: boolean) {
} }
} }
</script> </script>
<template> <template>
<v-card flat color="transparent"> <v-card flat color="transparent">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment