fix: allow group by view only for lead & deal

This commit is contained in:
Shariq Ansari 2024-06-01 15:53:48 +05:30
parent 0fcae3e20e
commit d53891c0ca
3 changed files with 22 additions and 10 deletions

View File

@ -320,6 +320,7 @@ const props = defineProps({
default: { default: {
hideColumnsButton: false, hideColumnsButton: false,
defaultViewName: '', defaultViewName: '',
allowedViews: ['list'],
}, },
}, },
}) })
@ -345,14 +346,14 @@ const currentViewType = computed(() => route.params.viewType || 'list')
function getViewType() { function getViewType() {
let types = { let types = {
group_by: {
label: __('Group By View'),
icon: h(DetailsIcon, { class: 'size-4' }),
},
list: { list: {
label: __('List View'), label: __('List View'),
icon: 'list', icon: 'list',
}, },
group_by: {
label: __('Group By View'),
icon: h(DetailsIcon, { class: 'size-4' }),
},
} }
return types[currentViewType.value] return types[currentViewType.value]
@ -512,24 +513,29 @@ async function exportRows() {
export_type.value = 'Excel' export_type.value = 'Excel'
} }
const defaultViews = [ let defaultViews = []
{ let allowedViews = props.options.allowedViews || ['list']
if (allowedViews.includes('list')) {
defaultViews.push({
label: __(props.options?.defaultViewName) || __('List View'), label: __(props.options?.defaultViewName) || __('List View'),
icon: 'list', icon: 'list',
onClick() { onClick() {
viewUpdated.value = false viewUpdated.value = false
router.push({ name: route.name }) router.push({ name: route.name })
}, },
}, })
{ }
if (allowedViews.includes('group_by')) {
defaultViews.push({
label: __(props.options?.defaultViewName) || __('Group By View'), label: __(props.options?.defaultViewName) || __('Group By View'),
icon: h(DetailsIcon, { class: 'size-4' }), icon: h(DetailsIcon, { class: 'size-4' }),
onClick() { onClick() {
viewUpdated.value = false viewUpdated.value = false
router.push({ name: route.name, params: { viewType: 'group_by' } }) router.push({ name: route.name, params: { viewType: 'group_by' } })
}, },
}, })
] }
function getIcon(icon) { function getIcon(icon) {
if (isEmoji(icon)) { if (isEmoji(icon)) {

View File

@ -24,6 +24,9 @@
v-model:resizeColumn="triggerResize" v-model:resizeColumn="triggerResize"
v-model:updatedPageCount="updatedPageCount" v-model:updatedPageCount="updatedPageCount"
doctype="CRM Deal" doctype="CRM Deal"
:options="{
allowedViews: ['list', 'group_by'],
}"
/> />
<DealsListView <DealsListView
ref="dealsListView" ref="dealsListView"

View File

@ -25,6 +25,9 @@
v-model:updatedPageCount="updatedPageCount" v-model:updatedPageCount="updatedPageCount"
doctype="CRM Lead" doctype="CRM Lead"
:filters="{ converted: 0 }" :filters="{ converted: 0 }"
:options="{
allowedViews: ['list', 'group_by'],
}"
/> />
<LeadsListView <LeadsListView
ref="leadsListView" ref="leadsListView"