From 883196d39bc907b683d215797ce3b2f1c04bcb16 Mon Sep 17 00:00:00 2001 From: Akhil Narang Date: Tue, 9 Apr 2024 11:54:17 +0530 Subject: [PATCH] fix(layout): handle `fieldobj` being null `make_control` doesn't return anything when the control name is invalid Handle in `make_field` and `init_field` Signed-off-by: Akhil Narang --- frappe/public/js/frappe/form/layout.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/form/layout.js b/frappe/public/js/frappe/form/layout.js index 30e6e2d6ae..78f535e91c 100644 --- a/frappe/public/js/frappe/form/layout.js +++ b/frappe/public/js/frappe/form/layout.js @@ -212,6 +212,10 @@ frappe.ui.form.Layout = class Layout { const parent = this.column.form.get(0); const fieldobj = this.init_field(df, parent, render); + + // An invalid control name will return in a null fieldobj + if (!fieldobj) return; + this.fields_list.push(fieldobj); this.fields_dict[df.fieldname] = fieldobj; @@ -234,7 +238,11 @@ frappe.ui.form.Layout = class Layout { layout: this, }); - fieldobj.layout = this; + // make_control can return null for invalid control names + if (fieldobj) { + fieldobj.layout = this; + } + return fieldobj; }