1
0
forked from test/crm

fix: made views dropdown options computed

This commit is contained in:
Shariq Ansari 2024-01-02 12:59:54 +05:30
parent 374ef6fc79
commit 5147a22adc

View File

@ -107,9 +107,10 @@ const viewUpdated = ref(false)
const showViewModal = ref(false) const showViewModal = ref(false)
const currentView = computed(() => { const currentView = computed(() => {
let _view = getView(route.query.view)
return { return {
label: view.value.label || 'List View', label: _view?.label || 'List View',
icon: view.value.icon || 'list', icon: _view?.icon || 'list',
} }
}) })
@ -172,7 +173,6 @@ list.value = createResource({
params: getParams(), params: getParams(),
cache: [props.doctype, route.query.view], cache: [props.doctype, route.query.view],
onSuccess(data) { onSuccess(data) {
setupViews(data.views)
setupDefaults(data) setupDefaults(data)
}, },
}) })
@ -186,8 +186,6 @@ function reload() {
list.value.reload() list.value.reload()
} }
const viewsDropdownOptions = ref([])
const defaultViews = [ const defaultViews = [
{ {
label: 'List View', label: 'List View',
@ -199,8 +197,8 @@ const defaultViews = [
}, },
] ]
function setupViews(views) { const viewsDropdownOptions = computed(() => {
viewsDropdownOptions.value = [ let _views = [
{ {
group: 'Default Views', group: 'Default Views',
hideLabel: true, hideLabel: true,
@ -208,31 +206,24 @@ function setupViews(views) {
}, },
] ]
views?.forEach((view) => { if (list.value?.data?.views) {
view.icon = view.icon || 'list' let savedViews = list.value.data.views.filter((v) => !v.pinned)
view.filters = JSON.parse(view.filters) let pinnedViews = list.value.data.views.filter((v) => v.pinned)
view.onClick = () => {
viewUpdated.value = false
router.push({ ...route, query: { view: view.name } })
}
})
let pinnedViews = views?.filter((v) => v.pinned) || [] savedViews.length &&
let savedViews = views?.filter((v) => !v.pinned) || [] _views.push({
group: 'Saved Views',
items: savedViews,
})
pinnedViews.length &&
_views.push({
group: 'Pinned Views',
items: pinnedViews,
})
}
if (savedViews.length) { return _views
viewsDropdownOptions.value.push({ })
group: 'Saved Views',
items: savedViews,
})
}
if (pinnedViews.length) {
viewsDropdownOptions.value.push({
group: 'Pinned Views',
items: pinnedViews,
})
}
}
function setupDefaults(data) { function setupDefaults(data) {
let cv = getView(route.query.view) let cv = getView(route.query.view)