fix: show asterisk for mandatory fields and also validate before saving
This commit is contained in:
parent
6773266667
commit
f4cd8bf6b3
@ -188,11 +188,16 @@ def get_doctype_fields(doctype):
|
|||||||
else:
|
else:
|
||||||
section_fields.append(get_field_obj(field))
|
section_fields.append(get_field_obj(field))
|
||||||
|
|
||||||
all_fields = []
|
section_fields = []
|
||||||
for section in sections:
|
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):
|
def get_field_obj(field):
|
||||||
|
|||||||
@ -27,7 +27,7 @@ def get_deal(name):
|
|||||||
fields=["contact", "is_primary"],
|
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["doctype"] = "CRM Deal"
|
||||||
deal["_form_script"] = get_form_script('CRM Deal')
|
deal["_form_script"] = get_form_script('CRM Deal')
|
||||||
return deal
|
return deal
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
>
|
>
|
||||||
<div class="w-[106px] shrink-0 text-sm text-gray-600">
|
<div class="w-[106px] shrink-0 text-sm text-gray-600">
|
||||||
{{ field.label }}
|
{{ field.label }}
|
||||||
|
<span class="text-red-500">{{ field.reqd ? ' *' : '' }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="grid min-h-[28px] flex-1 items-center overflow-hidden text-base"
|
class="grid min-h-[28px] flex-1 items-center overflow-hidden text-base"
|
||||||
|
|||||||
@ -355,6 +355,8 @@ const organization = computed(() => {
|
|||||||
function updateDeal(fieldname, value, callback) {
|
function updateDeal(fieldname, value, callback) {
|
||||||
value = Array.isArray(fieldname) ? '' : value
|
value = Array.isArray(fieldname) ? '' : value
|
||||||
|
|
||||||
|
if (validateRequired(fieldname, value)) return
|
||||||
|
|
||||||
createResource({
|
createResource({
|
||||||
url: 'frappe.client.set_value',
|
url: 'frappe.client.set_value',
|
||||||
params: {
|
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(() => {
|
const breadcrumbs = computed(() => {
|
||||||
let items = [{ label: 'Deals', route: { name: 'Deals' } }]
|
let items = [{ label: 'Deals', route: { name: 'Deals' } }]
|
||||||
items.push({
|
items.push({
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user