diff --git a/frontend/src/components/ViewControls.vue b/frontend/src/components/ViewControls.vue index cdd9b227..63b4b70f 100644 --- a/frontend/src/components/ViewControls.vue +++ b/frontend/src/components/ViewControls.vue @@ -320,6 +320,7 @@ const props = defineProps({ default: { hideColumnsButton: false, defaultViewName: '', + allowedViews: ['list'], }, }, }) @@ -345,14 +346,14 @@ const currentViewType = computed(() => route.params.viewType || 'list') function getViewType() { let types = { - group_by: { - label: __('Group By View'), - icon: h(DetailsIcon, { class: 'size-4' }), - }, list: { label: __('List View'), icon: 'list', }, + group_by: { + label: __('Group By View'), + icon: h(DetailsIcon, { class: 'size-4' }), + }, } return types[currentViewType.value] @@ -512,24 +513,29 @@ async function exportRows() { 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'), icon: 'list', onClick() { viewUpdated.value = false router.push({ name: route.name }) }, - }, - { + }) +} +if (allowedViews.includes('group_by')) { + defaultViews.push({ label: __(props.options?.defaultViewName) || __('Group By View'), icon: h(DetailsIcon, { class: 'size-4' }), onClick() { viewUpdated.value = false router.push({ name: route.name, params: { viewType: 'group_by' } }) }, - }, -] + }) +} function getIcon(icon) { if (isEmoji(icon)) { diff --git a/frontend/src/pages/Deals.vue b/frontend/src/pages/Deals.vue index 1b1881a6..13ba5882 100644 --- a/frontend/src/pages/Deals.vue +++ b/frontend/src/pages/Deals.vue @@ -24,6 +24,9 @@ v-model:resizeColumn="triggerResize" v-model:updatedPageCount="updatedPageCount" doctype="CRM Deal" + :options="{ + allowedViews: ['list', 'group_by'], + }" />