chore: update apis with update_docfield_property

This commit is contained in:
hrwx 2022-02-12 22:20:02 +00:00
parent e84748f850
commit 8c873b7bc1
4 changed files with 12 additions and 42 deletions

View file

@ -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;
});
}

View file

@ -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();
}

View file

@ -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

View file

@ -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');
}
}