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

Merge branch 'dev' into matrix-pdock

parents db2b7036 57eb2907
No related branches found
No related tags found
1 merge request!226Resolve "Design of the structure section in a system's page"
Pipeline #127496 failed
......@@ -7,6 +7,7 @@ import { useDisplay } from "vuetify";
import { toValue, useThrottleFn } from '@vueuse/core'
import type { FacetInputItem, FilterItem } from '@/components/AutocompleteMeiliFacets.vue'
import { useMeiliSearch } from "#imports"
import type { SearchResponse } from 'meilisearch'
// import { saveAs } from "file-saver";
export interface SortItem {
key: string,
......@@ -57,9 +58,11 @@ const props = withDefaults(defineProps<Props>(), {
});
const slots = useSlots()
const client = useMeiliSearchRef()
const sortByRef = toRef(props.sortBy)
const emit = defineEmits(["refresh:search"])
const { search: msSearch, result: msResult } = useMeiliSearch(props.autocompleteMeiliFacetsProps.db)
const msResult = ref()
// const { search: msSearch, result: msResult } = useMeiliSearch(props.autocompleteMeiliFacetsProps.db)
const search: Ref<string> = ref("");
const filterOrSearch: Ref<FilterItem[] | null> = ref(null)
const hitsPerPage: Ref<number> = ref(25)
......@@ -120,7 +123,7 @@ watch([paginationParams, msSortBy, page], ([newParams, newSort, newPage]) => {
}
})
onBeforeMount(async () => {
onMounted(async () => {
searchOrFilter()
emitRefreshRes()
})
......@@ -181,7 +184,15 @@ async function searchOrFilter() {
try {
loading.value = true
const q = search.value
await msSearch(q, { ...paginationParams.value, filter: toValue(computedFilter), sort: msSortBy.value })
const response = await client
.index(props.autocompleteMeiliFacetsProps.db)
.search(q, {
...paginationParams.value,
filter: toValue(computedFilter),
sort: msSortBy.value
})
// await msSearch(q, { ...paginationParams.value, filter: toValue(computedFilter), sort: msSortBy.value })
msResult.value = response
} catch (error: any) {
filterError.value = error
console.log(error)
......@@ -219,13 +230,23 @@ watch(search, () => {
async function downloadData() {
pendingDownloadData.value = true
try {
const { data } = await useAsyncMeiliSearch({
index: props.autocompleteMeiliFacetsProps.db,
params: { ...toValue(notPaginatedParams), filter: toValue(computedFilter), sort: toValue(msSortBy) },
query: toValue(search),
})
pendingDownloadData.value = true
const data = await client
.index(props.autocompleteMeiliFacetsProps.db)
.search(
toValue(search),
{
...toValue(notPaginatedParams), filter: toValue(computedFilter), sort: toValue(msSortBy)
})
// const { data } = await useAsyncMeiliSearch({
// index: props.autocompleteMeiliFacetsProps.db,
// params: { ...toValue(notPaginatedParams), filter: toValue(computedFilter), sort: toValue(msSortBy) },
// query: toValue(search),
// })
useCsvDownload(data, props.columnsToDownload, props.title)
} finally {
......
......@@ -25,76 +25,39 @@ const cellPlotMargin = ref({
marginRight: 50
})
const client = useMeiliSearchRef()
onBeforeMount(async () => {
const { data } = await useAsyncMeiliSearch({
index: toValue(dbName), query: "", params: {
facets: ["*"],
filter: [],
page: 1,
hitsPerPage: 25,
}
})
await getAllHits({
index: toValue(dbName), query: "", params: {
facets: ["*"],
filter: [],
// page: 1,
// hitsPerPage: 25,
limit: 500000,
sort: ["type:asc"]
}
})
autocompleteMeiliFacetsProps.value.facetDistribution = toValue(data)?.facetDistribution
// allHitsDb.value = toValue(data)?.hits
const { data: taxo } = await useAsyncMeiliSearch({
index: toValue("refseqtaxo"), query: "", params: {
facets: ["*"],
filter: [],
page: 1,
hitsPerPage: 25,
}
})
taxonomyFacet.value = toValue(taxo)?.facetDistribution
})
onMounted(async () => {
const { data } = await useAsyncMeiliSearch({
index: toValue(dbName), query: "", params: {
try {
const data = await client.index(toValue(dbName)).search("", {
facets: ["*"],
filter: [],
page: 1,
hitsPerPage: 25,
// limit: 500000,
// sort: ["type:asc"]
}
})
})
autocompleteMeiliFacetsProps.value.facetDistribution = data?.facetDistribution
} catch (error) {
}
await getAllHits({
index: toValue(dbName), query: "", params: {
facets: ["*"],
filter: [],
// page: 1,
// hitsPerPage: 25,
limit: 500000,
sort: ["type:asc"]
}
})
autocompleteMeiliFacetsProps.value.facetDistribution = toValue(data)?.facetDistribution
// allHitsDb.value = toValue(data)?.hits
const { data: taxo } = await useAsyncMeiliSearch({
index: toValue("refseqtaxo"), query: "", params: {
try {
const taxo = await client.index("refseqtaxo").search("", {
facets: ["*"],
filter: [],
page: 1,
hitsPerPage: 25,
}
})
taxonomyFacet.value = toValue(taxo)?.facetDistribution
})
taxonomyFacet.value = taxo?.facetDistribution
} catch (error) {
}
})
const { serialize } = useSerialize()
......@@ -221,16 +184,14 @@ async function getAllHits(params: { index: string, params: Record<string, any>,
pendingAllHits.value = true
try {
const { data, error } = await useAsyncMeiliSearch({
...params,
index: "refseqsanitized",
params: {
const data = await client
.index("refseqsanitized")
.search("", {
...params.params,
'attributesToRetrieve': ['type', 'Assembly', ...toValue(availableTaxo)]
}
})
allHits.value = data.value
})
allHits.value = data
} finally {
pendingAllHits.value = false
......
......@@ -15,34 +15,29 @@ interface Item {
const sortBy: Ref<SortItem[]> = ref([{ key: 'System', order: "asc" }])
const itemValue = ref("id");
const dbName = ref("structure")
const client = useMeiliSearchRef()
onBeforeMount(async () => {
const { data } = await useAsyncMeiliSearch({
index: toValue(dbName), query: "", params: {
onMounted(async () => {
try {
const data = await client.index(toValue(dbName)).search("", {
facets: ["*"],
filter: [],
page: 1,
hitsPerPage: 25,
}
})
autocompleteMeiliFacetsProps.value.facetDistribution = toValue(data)?.facetDistribution
})
autocompleteMeiliFacetsProps.value.facetDistribution = data?.facetDistribution
} catch (error) {
throw createError("Unable to get structures")
})
}
onMounted(async () => {
const { data } = await useAsyncMeiliSearch({
index: toValue(dbName), query: "", params: {
facets: ["*"],
filter: [],
page: 1,
hitsPerPage: 25,
}
})
autocompleteMeiliFacetsProps.value.facetDistribution = toValue(data)?.facetDistribution
})
const autocompleteMeiliFacetsProps = ref<AutocompleteMeiliFacetProps>({
db: toValue(dbName),
facets: [
......
......@@ -5,31 +5,36 @@ const sortBy: Ref<SortItem[]> = ref([{ key: 'title', order: "asc" }])
const itemValue = ref("title");
const dbName = ref("systems")
onBeforeMount(async () => {
const { data } = await useAsyncMeiliSearch({
index: toValue(dbName), query: "", params: {
facets: ["*"],
filter: [],
page: 1,
hitsPerPage: 25,
}
})
const client = useMeiliSearchRef()
autocompleteMeiliFacetsProps.value.facetDistribution = toValue(data)?.facetDistribution
})
onMounted(async () => {
const { data } = await useAsyncMeiliSearch({
index: toValue(dbName), query: "", params: {
facets: ["*"],
filter: [],
page: 1,
hitsPerPage: 25,
}
})
// onBeforeMount(async () => {
// const { data } = await useAsyncMeiliSearch({
// index: toValue(dbName), query: "", params: {
// facets: ["*"],
// filter: [],
// page: 1,
// hitsPerPage: 25,
// }
// })
autocompleteMeiliFacetsProps.value.facetDistribution = toValue(data)?.facetDistribution
// autocompleteMeiliFacetsProps.value.facetDistribution = toValue(data)?.facetDistribution
// })
onMounted(async () => {
try {
const data = await client
.index(toValue(dbName))
.search("", {
facets: ["*"],
filter: [],
page: 1,
hitsPerPage: 25,
})
autocompleteMeiliFacetsProps.value.facetDistribution = data?.facetDistribution
} catch (error) {
throw createError("Unable to get list of systems")
}
})
......@@ -118,18 +123,19 @@ const columnsToDownload = ref(['title', 'doi', 'Sensor', 'Activator', 'Effector'
<template #[`item.title`]="{ item }">
<v-chip color="info" link :to="`/defense-systems/${item.title.toLowerCase()}`">{{
item.title
}}</v-chip>
item.title
}}</v-chip>
</template>
<template #[`item.doi`]="{ item }">
<ArticleDoi v-if="item?.doi" :doi="item.doi" :abstract="item?.abstract" :divider="false" :enumerate="false" />
<ArticleDoi v-if="item?.doi" :doi="item.doi" :abstract="item?.abstract" :divider="false"
:enumerate="false" />
</template>
<template #[`item.PFAM`]="{ item }">
<pfam-chips v-if="item?.PFAM" :pfams="item.PFAM"></pfam-chips>
</template>
<template #[`item.contributors`]="{ item }">
<CollapsibleChips v-if="item?.contributors" :items="item.contributors.map(it => ({ title: it }))">
<CollapsibleChips v-if="item?.contributors" :items="item.contributors.map(it => ({ title: it })) ">
</CollapsibleChips>
</template>
</ServerDbTable>
......
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