fix: added list view cache
This commit is contained in:
parent
6cabe46852
commit
374ef6fc79
@ -125,6 +125,10 @@ const props = defineProps({
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
default_filters: {
|
||||
type: Object,
|
||||
default: {},
|
||||
},
|
||||
})
|
||||
|
||||
const emit = defineEmits(['update'])
|
||||
@ -155,8 +159,8 @@ const filters = computed(() => {
|
||||
let allFilters = list.value?.params?.filters
|
||||
if (!allFilters || !filterableFields.data) return new Set()
|
||||
// remove default filters
|
||||
if (list.value.data._defaultFilters) {
|
||||
allFilters = removeCommonFilters(list.value.data._defaultFilters, allFilters)
|
||||
if (props.default_filters) {
|
||||
allFilters = removeCommonFilters(props.default_filters, allFilters)
|
||||
}
|
||||
return convertFilters(filterableFields.data, allFilters)
|
||||
})
|
||||
@ -165,11 +169,11 @@ function removeCommonFilters(commonFilters, allFilters) {
|
||||
for (const key in commonFilters) {
|
||||
if (commonFilters.hasOwnProperty(key) && allFilters.hasOwnProperty(key)) {
|
||||
if (commonFilters[key] === allFilters[key]) {
|
||||
delete allFilters[key];
|
||||
delete allFilters[key]
|
||||
}
|
||||
}
|
||||
}
|
||||
return allFilters;
|
||||
return allFilters
|
||||
}
|
||||
|
||||
function convertFilters(data, allFilters) {
|
||||
|
||||
@ -26,7 +26,12 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="flex items-center gap-2">
|
||||
<Filter v-model="list" :doctype="doctype" @update="updateFilter" />
|
||||
<Filter
|
||||
v-model="list"
|
||||
:doctype="doctype"
|
||||
:default_filters="filters"
|
||||
@update="updateFilter"
|
||||
/>
|
||||
<SortBy v-model="list" :doctype="doctype" @update="updateSort" />
|
||||
<ViewSettings
|
||||
v-model="list"
|
||||
@ -101,9 +106,11 @@ const defaultParams = ref('')
|
||||
const viewUpdated = ref(false)
|
||||
const showViewModal = ref(false)
|
||||
|
||||
const currentView = ref({
|
||||
label: 'List View',
|
||||
icon: 'list',
|
||||
const currentView = computed(() => {
|
||||
return {
|
||||
label: view.value.label || 'List View',
|
||||
icon: view.value.icon || 'list',
|
||||
}
|
||||
})
|
||||
|
||||
const view = ref({
|
||||
@ -163,6 +170,7 @@ function getParams() {
|
||||
list.value = createResource({
|
||||
url: 'crm.api.doc.get_list_data',
|
||||
params: getParams(),
|
||||
cache: [props.doctype, route.query.view],
|
||||
onSuccess(data) {
|
||||
setupViews(data.views)
|
||||
setupDefaults(data)
|
||||
@ -228,10 +236,6 @@ function setupViews(views) {
|
||||
|
||||
function setupDefaults(data) {
|
||||
let cv = getView(route.query.view)
|
||||
currentView.value = {
|
||||
label: cv?.label || 'List View',
|
||||
icon: cv?.icon || 'list',
|
||||
}
|
||||
|
||||
defaultParams.value = {
|
||||
doctype: props.doctype,
|
||||
@ -241,8 +245,6 @@ function setupDefaults(data) {
|
||||
rows: data.rows,
|
||||
custom_view_name: cv?.name || '',
|
||||
}
|
||||
|
||||
data._defaultFilters = props.filters
|
||||
}
|
||||
|
||||
function updateFilter(filters) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user