Merge pull request #5011 from pratu16x7/treeview-fixes

[minor] more treeview decoupling
This commit is contained in:
Prateeksha Singh 2018-02-15 11:07:04 +05:30 committed by GitHub
commit 3e181bae51
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 40 deletions

View file

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

View file

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

View file

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