From 8c873b7bc1dfb9ceeaf02ffe6be1a0db2d41d633 Mon Sep 17 00:00:00 2001 From: hrwx Date: Sat, 12 Feb 2022 22:20:02 +0000 Subject: [PATCH] chore: update apis with update_docfield_property --- frappe/public/js/frappe/form/form.js | 10 ---------- frappe/public/js/frappe/form/grid.js | 20 ++++++-------------- frappe/public/js/frappe/form/grid_row.js | 11 +++-------- frappe/public/js/frappe/form/layout.js | 13 +++---------- 4 files changed, 12 insertions(+), 42 deletions(-) diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js index c03b590927..53e86b9cde 100644 --- a/frappe/public/js/frappe/form/form.js +++ b/frappe/public/js/frappe/form/form.js @@ -1363,12 +1363,6 @@ frappe.ui.form.Form = class FrappeForm { set_df_property(fieldname, property, value, docname, table_field, table_row_name=null) { let df; - let override_depends_on_properties_map = { - "reqd": "override_mandatory_depends_on", - "read_only": "override_read_only_depends_on", - "hidden": "override_depends_on" - }; - let override_property = override_depends_on_properties_map[property]; if (!docname || !table_field) { df = this.get_docfield(fieldname); @@ -1382,7 +1376,6 @@ frappe.ui.form.Form = class FrappeForm { if (df && df[property] != value) { df[property] = value; - if (override_property) df[override_property] = true; if (table_field && table_row_name) { if (this.fields_dict[fieldname].grid.grid_rows_by_docname[table_row_name]) { @@ -1397,21 +1390,18 @@ frappe.ui.form.Form = class FrappeForm { toggle_enable(fnames, enable) { this.field_map(fnames, function(field) { field.read_only = enable ? 0 : 1; - field.override_read_only_depends_on = true; }); } toggle_reqd(fnames, mandatory) { this.field_map(fnames, function(field) { field.reqd = mandatory ? true : false; - field.override_mandatory_depends_on = true; }); } toggle_display(fnames, show) { this.field_map(fnames, function(field) { field.hidden = show ? 0 : 1; - field.override_hidden_depends_on = true; }); } diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index f3635077f1..0fa36e7e5d 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -368,7 +368,6 @@ export default class Grid { if (this.grid_rows[ri] && !append_row) { var grid_row = this.grid_rows[ri]; grid_row.doc = d; - grid_row.set_docfields(this.docfields); grid_row.refresh(); } else { var grid_row = new GridRow({ @@ -503,10 +502,9 @@ export default class Grid { set_column_disp(fieldname, show) { if ($.isArray(fieldname)) { - for (var i = 0, l = fieldname.length; i < l; i++) { - var fname = fieldname[i]; - this.get_docfield(fname).hidden = show ? 0 : 1; - this.set_editable_grid_column_disp(fname, show); + for (let field of fieldname) { + this.update_docfield_property(field, "hidden", show) + this.set_editable_grid_column_disp(field, show); } } else { this.get_docfield(fieldname).hidden = show ? 0 : 1; @@ -556,23 +554,17 @@ export default class Grid { } toggle_reqd(fieldname, reqd) { - let field = this.get_docfield(fieldname); - field.reqd = reqd; - field.override_mandatory_depends_on = true; + this.update_docfield_property(fieldname, "reqd", reqd); this.debounced_refresh(); } toggle_enable(fieldname, enable) { - let field = this.get_docfield(fieldname); - field.read_only = enable ? 0 : 1; - field.override_read_only_depends_on = true; + this.update_docfield_property(fieldname, "read_only", enable ? 0 : 1); this.debounced_refresh(); } toggle_display(fieldname, show) { - let field = this.get_docfield(fieldname); - field.hidden = show ? 0 : 1; - field.override_hidden_depends_on = true; + this.update_docfield_property(fieldname, "hidden", show ? 0 : 1); this.debounced_refresh(); } diff --git a/frappe/public/js/frappe/form/grid_row.js b/frappe/public/js/frappe/form/grid_row.js index cb42ec5da1..a40f428969 100644 --- a/frappe/public/js/frappe/form/grid_row.js +++ b/frappe/public/js/frappe/form/grid_row.js @@ -6,7 +6,9 @@ export default class GridRow { this.on_grid_fields = []; $.extend(this, opts); if (this.doc && this.parent_df.options) { - this.set_docfields(); + frappe.meta.make_docfield_copy_for(this.parent_df.options, this.doc.name, this.docfields); + const docfields = frappe.meta.get_docfields(this.parent_df.options, this.doc.name); + this.docfields = docfields.length ? docfields : opts.docfields; } this.columns = {}; this.columns_list = []; @@ -39,13 +41,6 @@ export default class GridRow { this.set_data(); } } - set_docfields(_docfields) { - if (_docfields) this.docfields = _docfields; - - frappe.meta.make_docfield_copy_for(this.parent_df.options, this.doc.name, this.docfields); - const docfields = frappe.meta.get_docfields(this.parent_df.options, this.doc.name); - this.docfields = docfields.length ? docfields : this.docfields; - } set_data() { this.wrapper.data({ "doc": this.doc diff --git a/frappe/public/js/frappe/form/layout.js b/frappe/public/js/frappe/form/layout.js index 0ce84cb486..1378718495 100644 --- a/frappe/public/js/frappe/form/layout.js +++ b/frappe/public/js/frappe/form/layout.js @@ -550,13 +550,6 @@ frappe.ui.form.Layout = class Layout { /** Resolve "depends_on" and show / hide accordingly build dependants' dictionary - - Allows to override depends_on, mandatory_depends_on and read_only_depends_on - if either of the override_depends_on, override_mandatory_depends_on and override_read_only_depends_on - flags are set in df. - - The override flag is set in in grid and form js when we try and override df property. - */ let has_dep = false; @@ -575,7 +568,7 @@ frappe.ui.form.Layout = class Layout { for (let i = this.fields_list.length - 1; i >= 0; i--) { let f = this.fields_list[i]; f.guardian_has_value = true; - if (f.df.depends_on && !f.df.override_hidden_depends_on) { + if (f.df.depends_on) { // evaluate guardian f.guardian_has_value = this.evaluate_depends_on_value(f.df.depends_on); @@ -594,11 +587,11 @@ frappe.ui.form.Layout = class Layout { } } - if (f.df.mandatory_depends_on && !f.df.override_mandatory_depends_on) { + if (f.df.mandatory_depends_on) { this.set_dependant_property(f.df.mandatory_depends_on, f.df.fieldname, 'reqd'); } - if (f.df.read_only_depends_on && !f.df.override_read_only_depends_on) { + if (f.df.read_only_depends_on) { this.set_dependant_property(f.df.read_only_depends_on, f.df.fieldname, 'read_only'); } }