From c829ab65d99f24c63081f806b00d4f889d7d919b Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Mon, 19 Jan 2026 16:28:16 +0530 Subject: [PATCH] fix: payment gateway form --- .../Settings/PaymentGatewayDetails.vue | 59 ++++++++++--------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/frontend/src/components/Settings/PaymentGatewayDetails.vue b/frontend/src/components/Settings/PaymentGatewayDetails.vue index c6392140..feb21f88 100644 --- a/frontend/src/components/Settings/PaymentGatewayDetails.vue +++ b/frontend/src/components/Settings/PaymentGatewayDetails.vue @@ -2,21 +2,25 @@ + @@ -56,7 +59,7 @@ import SettingFields from '@/components/Settings/SettingFields.vue' const show = defineModel({ required: true, default: false }) const paymentGateways = defineModel('paymentGateways') const newGateway = ref(null) -const newGatewayFields = ref([]) +const newGatewayFields = ref<{ columns: { fields: any[] }[] }[]>([]) const newGatewayData = ref>({}) const props = defineProps<{ @@ -72,6 +75,7 @@ const paymentGateway = createResource({ }, transform(data: any) { arrangeFields(data.fields) + data.sections = makeSections(data.fields) return data }, }) @@ -102,10 +106,6 @@ const arrangeFields = (fields: any[]) => { } return 0 }) - - fields.splice(3, 0, { - type: 'Column Break', - }) } watch( @@ -130,7 +130,7 @@ watch(newGateway, () => { gatewayFields.reload({ doctype: gatewayDoc.name }).then(() => { let fields = gatewayFields.data || [] arrangeFields(fields) - newGatewayFields.value = fields + newGatewayFields.value = makeSections(fields) prepareGatewayData() }) }) @@ -192,19 +192,6 @@ const getGatewayFields = () => { }, {}) } -const createGatewayRecord = (gatewayDoc: any, data: any = {}) => { - call('frappe.client.insert', { - doc: { - doctype: 'Payment Gateway', - gateway: newGateway.value, - gateway_controller: gatewayDoc.issingle ? '' : gatewayDoc.name, - gateway_settings: gatewayDoc.issingle ? '' : data.name, - }, - }).then(() => { - paymentGateways.value?.reload() - }) -} - const allGatewayOptions = computed(() => { let options: string[] = [] let gatewayList = allGateways.data?.map((gateway: any) => gateway.name) || [] @@ -230,4 +217,20 @@ const prepareGatewayData = () => { }) } } + +const makeSections = (fields: any[]) => { + const columnCount = fields.length / 3 + let sections: { columns: { fields: any[] }[] }[] = [ + { + columns: [], + }, + ] + + for (let i = 0; i < columnCount; i++) { + sections[0].columns.push({ + fields: fields.slice(i * 3, i * 3 + 3), + }) + } + return sections +}