|
|
@@ -7,7 +7,8 @@ frappe.views.TreeFactory = frappe.views.Factory.extend({ |
|
|
|
make: function(route) { |
|
|
|
frappe.model.with_doctype(route[1], function() { |
|
|
|
var options = { |
|
|
|
doctype: route[1] |
|
|
|
doctype: route[1], |
|
|
|
meta: frappe.get_meta(route[1]) |
|
|
|
}; |
|
|
|
|
|
|
|
if (!frappe.treeview_settings[route[1]] && !frappe.meta.get_docfield(route[1], "is_group")) { |
|
|
@@ -166,7 +167,7 @@ frappe.views.TreeView = Class.extend({ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
this.prepare_fields() |
|
|
|
this.prepare_fields(); |
|
|
|
|
|
|
|
// the dialog |
|
|
|
var d = new frappe.ui.Dialog({ |
|
|
@@ -174,7 +175,25 @@ frappe.views.TreeView = Class.extend({ |
|
|
|
fields: me.fields |
|
|
|
}) |
|
|
|
|
|
|
|
me.args["parent_"+me.doctype.toLowerCase()] = me.args["parent"]; |
|
|
|
d.set_value("is_group", 0); |
|
|
|
d.set_values(me.args); |
|
|
|
|
|
|
|
// set query to all link fields if company field exists |
|
|
|
if (me.args["company"]) { |
|
|
|
$.each(me.fields, function(i, field){ |
|
|
|
if(field.fieldtype == "Link") { |
|
|
|
d.fields_dict[field.fieldname].get_query = function() { |
|
|
|
return { |
|
|
|
filters:{ |
|
|
|
"company": me.args["company"] |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
// create |
|
|
|
d.set_primary_action(__("Create New"), function() { |
|
|
|
var btn = this; |
|
|
@@ -215,15 +234,26 @@ frappe.views.TreeView = Class.extend({ |
|
|
|
var me = this; |
|
|
|
|
|
|
|
this.fields = [ |
|
|
|
{fieldtype:'Data', fieldname: 'name_field', |
|
|
|
label:__('New {0} Name',[__(me.doctype)]), reqd:true}, |
|
|
|
{fieldtype:'Check', fieldname:'is_group', label:__('Group Node'), |
|
|
|
description: __("Further nodes can be only created under 'Group' type nodes")} |
|
|
|
] |
|
|
|
|
|
|
|
if (me.opts.fields) { |
|
|
|
me.fields = me.opts.fields; |
|
|
|
if (this.opts.fields) { |
|
|
|
this.fields = this.opts.fields; |
|
|
|
} |
|
|
|
|
|
|
|
var mandatory_fields = $.map(me.opts.meta.fields, |
|
|
|
function(d) { return (d.reqd || d.bold && !d.read_only) ? d : null }); |
|
|
|
|
|
|
|
var opts_field_names = this.fields.map(function(d) { |
|
|
|
return d.fieldname |
|
|
|
}) |
|
|
|
|
|
|
|
mandatory_fields.map(function(d) { |
|
|
|
if($.inArray(d.fieldname, opts_field_names) === -1) { |
|
|
|
me.fields.push(d) |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
set_primary_action: function(){ |
|
|
|
var me = this; |
|
|
|