fix: send viewObj to modal only if needed

This commit is contained in:
Shariq Ansari 2024-05-20 19:47:59 +05:30
parent f3e02974b9
commit bb49f92c63
2 changed files with 15 additions and 8 deletions

View File

@ -25,16 +25,14 @@
{{ __('View Name') }} {{ __('View Name') }}
</div> </div>
<div class="flex gap-2"> <div class="flex gap-2">
<IconPicker v-model="view.icon" v-slot="{ isOpen, togglePopover }"> <IconPicker v-model="view.icon" v-slot="{ togglePopover }">
<Button <Button
variant="outline" variant="outline"
size="md" size="md"
class="flex size-8 text-2xl leading-none" class="flex size-8 text-2xl leading-none"
:class="isOpen ? 'bg-gray-200' : 'hover:bg-gray-100'" :label="view.icon"
@click="togglePopover" @click="togglePopover"
> />
{{ view.icon }}
</Button>
</IconPicker> </IconPicker>
<TextInput <TextInput
class="flex-1" class="flex-1"

View File

@ -127,6 +127,8 @@
</div> </div>
</div> </div>
<ViewModal <ViewModal
v-model="showViewModal"
v-model:view="viewModalObj"
:doctype="doctype" :doctype="doctype"
:options="{ :options="{
afterCreate: async (v) => { afterCreate: async (v) => {
@ -139,8 +141,6 @@
reloadView() reloadView()
}, },
}" }"
v-model:view="view"
v-model="showViewModal"
/> />
<Dialog <Dialog
v-model="showExportDialog" v-model="showExportDialog"
@ -574,6 +574,7 @@ function create_or_update_default_view() {
reloadView() reloadView()
view.value = { view.value = {
label: view.value.label, label: view.value.label,
icon: view.value.icon,
name: view.value.name, name: view.value.name,
filters: defaultParams.value.filters, filters: defaultParams.value.filters,
order_by: defaultParams.value.order_by, order_by: defaultParams.value.order_by,
@ -677,16 +678,22 @@ const viewActions = computed(() => {
return actions return actions
}) })
const viewModalObj = ref({})
function duplicateView() { function duplicateView() {
let label = __(getView(route.query.view)?.label) || __('List View') let label = __(getView(route.query.view)?.label) || __('List View')
view.value.name = '' view.value.name = ''
view.value.label = label + __(' (New)') view.value.label = label + __(' (New)')
viewModalObj.value = view.value
showViewModal.value = true showViewModal.value = true
} }
function editView() { function editView() {
let cView = getView(route.query.view)
view.value.name = route.query.view view.value.name = route.query.view
view.value.label = __(getView(route.query.view).label) view.value.label = __(cView?.label) || __('List View')
view.value.icon = cView?.icon || ''
viewModalObj.value = view.value
showViewModal.value = true showViewModal.value = true
} }
@ -728,6 +735,7 @@ function cancelChanges() {
function saveView() { function saveView() {
view.value = { view.value = {
label: view.value.label, label: view.value.label,
icon: view.value.icon,
name: view.value.name, name: view.value.name,
filters: defaultParams.value.filters, filters: defaultParams.value.filters,
order_by: defaultParams.value.order_by, order_by: defaultParams.value.order_by,
@ -736,6 +744,7 @@ function saveView() {
route_name: route.name, route_name: route.name,
load_default_columns: view.value.load_default_columns, load_default_columns: view.value.load_default_columns,
} }
viewModalObj.value = view.value
showViewModal.value = true showViewModal.value = true
} }