Merge pull request #5011 from pratu16x7/treeview-fixes
[minor] more treeview decoupling
This commit is contained in:
commit
3e181bae51
3 changed files with 45 additions and 40 deletions
|
|
@ -50,8 +50,6 @@ def sync_for(app_name, force=0, sync_everything = False, verbose=False, reset_pe
|
|||
# show progress bar
|
||||
update_progress_bar("Updating DocTypes for {0}".format(app_name), i, l)
|
||||
|
||||
print()
|
||||
|
||||
|
||||
def get_doc_files(files, start_path, force=0, sync_everything = False, verbose=False):
|
||||
"""walk and sync all doctypes and pages"""
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ frappe.ui.Tree = class {
|
|||
constructor({
|
||||
parent, label, icon_set, toolbar, expandable, with_skeleton=1, // eslint-disable-line
|
||||
|
||||
get_nodes, get_all_nodes, get_label, on_render, on_click // eslint-disable-line
|
||||
args, method, get_label, on_render, on_click // eslint-disable-line
|
||||
}) {
|
||||
$.extend(this, arguments[0]);
|
||||
this.setup_treenode_class();
|
||||
|
|
@ -26,6 +26,40 @@ frappe.ui.Tree = class {
|
|||
this.setup_root_node();
|
||||
}
|
||||
|
||||
get_nodes(value, is_root) {
|
||||
var args = Object.assign({}, this.args);
|
||||
args.parent = value;
|
||||
args.is_root = is_root;
|
||||
|
||||
return new Promise(resolve => {
|
||||
frappe.call({
|
||||
method: this.method,
|
||||
args: args,
|
||||
callback: (r) => {
|
||||
resolve(r.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
get_all_nodes(value, is_root) {
|
||||
var args = Object.assign({}, this.args);
|
||||
args.parent = value;
|
||||
args.is_root = is_root;
|
||||
|
||||
args.tree_method = this.method;
|
||||
|
||||
return new Promise(resolve => {
|
||||
frappe.call({
|
||||
method: 'frappe.desk.treeview.get_all_nodes',
|
||||
args: args,
|
||||
callback: (r) => {
|
||||
resolve(r.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
setup_treenode_class() {
|
||||
let tree = this;
|
||||
this.TreeNode = class {
|
||||
|
|
@ -57,7 +91,7 @@ frappe.ui.Tree = class {
|
|||
value: this.label
|
||||
}
|
||||
});
|
||||
this.expand_node(this.root_node);
|
||||
this.expand_node(this.root_node, false);
|
||||
}
|
||||
|
||||
refresh() {
|
||||
|
|
@ -107,7 +141,6 @@ frappe.ui.Tree = class {
|
|||
|
||||
set_selected_node(node) {
|
||||
this.selected_node = node;
|
||||
this.on_click && this.on_click(node);
|
||||
}
|
||||
|
||||
load_children(node, deep=false) {
|
||||
|
|
@ -154,8 +187,13 @@ frappe.ui.Tree = class {
|
|||
if(node.$toolbar) this.show_toolbar(node);
|
||||
}
|
||||
|
||||
expand_node(node) {
|
||||
expand_node(node, click = true) {
|
||||
this.set_selected_node(node);
|
||||
|
||||
if(click) {
|
||||
this.on_click && this.on_click(node);
|
||||
}
|
||||
|
||||
if(node.expandable) {
|
||||
this.toggle_node(node);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,49 +132,18 @@ frappe.views.TreeView = Class.extend({
|
|||
},
|
||||
make_tree: function() {
|
||||
$(this.parent).find(".tree").remove();
|
||||
let get_nodes = (value, is_root) => {
|
||||
var args = Object.assign({}, this.args);
|
||||
args.parent = value;
|
||||
args.is_root = is_root;
|
||||
|
||||
return new Promise(resolve => {
|
||||
frappe.call({
|
||||
method: this.get_tree_nodes,
|
||||
args: args,
|
||||
callback: (r) => { resolve(r.message); }
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
let get_all_nodes = (value, is_root) => {
|
||||
var args = Object.assign({}, this.args);
|
||||
args.parent = value;
|
||||
args.is_root = is_root;
|
||||
|
||||
args.tree_method = this.get_tree_nodes;
|
||||
|
||||
return new Promise(resolve => {
|
||||
frappe.call({
|
||||
method: 'frappe.desk.treeview.get_all_nodes',
|
||||
args: args,
|
||||
callback: (r) => {
|
||||
resolve(r.message);
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
this.tree = new frappe.ui.Tree({
|
||||
parent: this.body,
|
||||
label: this.args[this.opts.root_label] || this.root_label || this.opts.root_label,
|
||||
expandable: true,
|
||||
|
||||
args: this.args,
|
||||
method: this.get_tree_nodes,
|
||||
|
||||
// array of button props: {label, condition, click, btnClass}
|
||||
toolbar: this.get_toolbar(),
|
||||
|
||||
get_nodes: get_nodes,
|
||||
get_all_nodes: get_all_nodes,
|
||||
|
||||
get_label: this.opts.get_label,
|
||||
on_render: this.opts.onrender,
|
||||
on_click: (node) => { this.select_node(node); },
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue