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'],
+ }"
/>