From 36cb477380ff4e67e4653df80db4d75e8f9917ac Mon Sep 17 00:00:00 2001 From: Saurabh Date: Mon, 6 Jun 2016 12:29:30 +0530 Subject: [PATCH] [enhancement] depends on for modal --- frappe/public/js/frappe/form/control.js | 4 ++++ frappe/public/js/frappe/form/layout.js | 8 +++++++- frappe/public/js/frappe/model/perm.js | 2 +- frappe/public/js/frappe/ui/field_group.js | 20 +++++++++++++++----- frappe/public/js/frappe/views/treeview.js | 7 ++++++- 5 files changed, 33 insertions(+), 8 deletions(-) diff --git a/frappe/public/js/frappe/form/control.js b/frappe/public/js/frappe/form/control.js index 4bb0c78564..e94734ca65 100644 --- a/frappe/public/js/frappe/form/control.js +++ b/frappe/public/js/frappe/form/control.js @@ -55,6 +55,10 @@ frappe.ui.form.Control = Class.extend({ if(explain) console.log("By Hidden: None"); return "None"; + } else if (cint(this.df.hidden_due_to_dependency)) { + if(explain) console.log("By Hidden Dependency: None"); + return "None"; + } else if (cint(this.df.read_only)) { if(explain) console.log("By Read Only: Read"); return "Read"; diff --git a/frappe/public/js/frappe/form/layout.js b/frappe/public/js/frappe/form/layout.js index 46332f6bf9..817eca7494 100644 --- a/frappe/public/js/frappe/form/layout.js +++ b/frappe/public/js/frappe/form/layout.js @@ -397,7 +397,13 @@ frappe.ui.form.Layout = Class.extend({ var out = null; var doc = this.doc; - if (!doc) return; + if (!doc && this.get_values) { + var doc = this.get_values(true); + } + + if (!doc) { + return; + } var parent = this.frm ? this.frm.doc : null; diff --git a/frappe/public/js/frappe/model/perm.js b/frappe/public/js/frappe/model/perm.js index 541756d578..f83e56f47e 100644 --- a/frappe/public/js/frappe/model/perm.js +++ b/frappe/public/js/frappe/model/perm.js @@ -256,7 +256,7 @@ $.extend(frappe.perm, { get_field_display_status: function(df, doc, perm, explain) { if(!doc) { - return (df && cint(df.hidden)) ? "None": "Write"; + return (df && (cint(df.hidden) || cint(df.hidden_due_to_dependency))) ? "None": "Write"; } perm = perm || frappe.perm.get_perm(doc.doctype, doc); diff --git a/frappe/public/js/frappe/ui/field_group.js b/frappe/public/js/frappe/ui/field_group.js index b3001f2fb3..2ec5eac6c7 100644 --- a/frappe/public/js/frappe/ui/field_group.js +++ b/frappe/public/js/frappe/ui/field_group.js @@ -14,19 +14,28 @@ frappe.ui.FieldGroup = frappe.ui.form.Layout.extend({ }) }, make: function() { + var me = this; if(this.fields) { this._super(); this.refresh(); // set default - $.each(this.fields_list, function(i, f) { - if(f.df["default"]) { - f.set_input(f.df["default"]); + $.each(this.fields_list, function(i, field) { + if(field.df["default"]) { + field.set_input(f.df["default"]); } - }) + if(!this.no_submit_on_enter) { this.catch_enter_as_submit(); } + + $(this.body).find('input').on('change', function() { + me.refresh_dependency(); + }) + + $(this.body).find('select').on("change", function() { + me.refresh_dependency(); + }) } }, first_button: false, @@ -77,6 +86,7 @@ frappe.ui.FieldGroup = frappe.ui.form.Layout.extend({ var f = this.fields_dict[key]; if(f) { f.set_input(val); + this.refresh_dependency(); } }, set_input: function(key, val) { @@ -96,5 +106,5 @@ frappe.ui.FieldGroup = frappe.ui.form.Layout.extend({ f.set_input(f.df['default'] || ''); } } - }, + } }); diff --git a/frappe/public/js/frappe/views/treeview.js b/frappe/public/js/frappe/views/treeview.js index 776a77b09b..843da3c408 100644 --- a/frappe/public/js/frappe/views/treeview.js +++ b/frappe/public/js/frappe/views/treeview.js @@ -74,6 +74,10 @@ frappe.views.TreeView = Class.extend({ me.args[$(this).attr("data-fieldname")] = $(this).val(); me.make_tree(); }) + + if (filter.default) { + $("[data-fieldname='"+filter.fieldname+"']").trigger("change"); + } }) }, get_root: function() { @@ -98,7 +102,8 @@ frappe.views.TreeView = Class.extend({ args: me.args, method: me.get_tree_nodes, toolbar: me.get_toolbar(), - get_label: me.opts.get_label + get_label: me.opts.get_label, + onrender: me.opts.onrender }); }, get_toolbar: function(){