1
0
forked from test/crm

fix: show asterisk for mandatory fields and also validate before saving

This commit is contained in:
Shariq Ansari 2024-01-04 21:26:18 +05:30
parent 6773266667
commit f4cd8bf6b3
4 changed files with 26 additions and 4 deletions

View File

@ -188,11 +188,16 @@ def get_doctype_fields(doctype):
else:
section_fields.append(get_field_obj(field))
all_fields = []
section_fields = []
for section in sections:
all_fields.append(sections[section])
section_fields.append(sections[section])
return all_fields
fields = [field for field in fields if field.fieldtype not in "Tab Break"]
fields_meta = {}
for field in fields:
fields_meta[field.fieldname] = field
return section_fields, fields_meta
def get_field_obj(field):

View File

@ -27,7 +27,7 @@ def get_deal(name):
fields=["contact", "is_primary"],
)
deal["doctype_fields"] = get_doctype_fields("CRM Deal")
deal["doctype_fields"], deal["all_fields"] = get_doctype_fields("CRM Deal")
deal["doctype"] = "CRM Deal"
deal["_form_script"] = get_form_script('CRM Deal')
return deal

View File

@ -8,6 +8,7 @@
>
<div class="w-[106px] shrink-0 text-sm text-gray-600">
{{ field.label }}
<span class="text-red-500">{{ field.reqd ? ' *' : '' }}</span>
</div>
<div
class="grid min-h-[28px] flex-1 items-center overflow-hidden text-base"

View File

@ -355,6 +355,8 @@ const organization = computed(() => {
function updateDeal(fieldname, value, callback) {
value = Array.isArray(fieldname) ? '' : value
if (validateRequired(fieldname, value)) return
createResource({
url: 'frappe.client.set_value',
params: {
@ -386,6 +388,20 @@ function updateDeal(fieldname, value, callback) {
})
}
function validateRequired(fieldname, value) {
let meta = deal.data.all_fields || {}
if (meta[fieldname]?.reqd && !value) {
createToast({
title: 'Error Updating Deal',
text: `${meta[fieldname].label} is a required field`,
icon: 'x',
iconClasses: 'text-red-600',
})
return true
}
return false
}
const breadcrumbs = computed(() => {
let items = [{ label: 'Deals', route: { name: 'Deals' } }]
items.push({