浏览代码

[fix] treeview fixes frappe/erpnext#7318

version-14
Rushabh Mehta 8 年前
父节点
当前提交
9eb24e8a13
共有 3 个文件被更改,包括 30 次插入20 次删除
  1. +4
    -0
      frappe/public/js/frappe/list/doclistview.js
  2. +15
    -12
      frappe/public/js/frappe/ui/tree.js
  3. +11
    -8
      frappe/public/js/frappe/views/treeview.js

+ 4
- 0
frappe/public/js/frappe/list/doclistview.js 查看文件

@@ -60,6 +60,10 @@ $(document).on("save", function(event, doc) {
});

frappe.views.set_list_as_dirty = function(doctype) {
if(frappe.views.trees[doctype]) {
frappe.views.trees[doctype].tree.refresh();
}

var list_page = "List/" + doctype;
if(frappe.pages[list_page]) {
if(frappe.pages[list_page].doclistview) {


+ 15
- 12
frappe/public/js/frappe/ui/tree.js 查看文件

@@ -24,6 +24,9 @@ frappe.ui.Tree = Class.extend({
});
this.rootnode.toggle();
},
refresh: function() {
this.selected_node.reload_parent();
},
get_selected_node: function() {
return this.selected_node;
},
@@ -50,11 +53,11 @@ frappe.ui.TreeNode = Class.extend({
},
make: function() {
var me = this;
this.$a = $('<span class="tree-link">')
this.tree_link = $('<span class="tree-link">')
.click(function(event) {
me.tree.selected_node = me;
me.tree.wrapper.find(".tree-link.active").removeClass("active");
me.$a.addClass("active");
me.tree_link.addClass("active");
if(me.tree.toolbar) {
me.show_toolbar();
}
@@ -82,9 +85,9 @@ frappe.ui.TreeNode = Class.extend({
icon_html = '<i class="fa fa-fw fa-folder text-muted" style="font-size: 14px;"></i>';
}
$(icon_html + ' <a class="tree-label grey h6">' + this.get_label() + "</a>").
appendTo(this.$a);
appendTo(this.tree_link);

this.$a.find('i, a').click(function() {
this.tree_link.find('i, a').click(function() {
setTimeout(function() { me.toolbar.find(".btn-expand").click(); }, 100);
});
},
@@ -113,7 +116,7 @@ frappe.ui.TreeNode = Class.extend({
},
make_toolbar: function() {
var me = this;
this.toolbar = $('<span class="tree-node-toolbar btn-group"></span>').insertAfter(this.$a);
this.toolbar = $('<span class="tree-node-toolbar btn-group"></span>').insertAfter(this.tree_link);

$.each(this.tree.toolbar, function(i, item) {
if(item.toggle_btn) {
@@ -179,20 +182,20 @@ frappe.ui.TreeNode = Class.extend({
}

// open close icon
this.$a.find('i').removeClass();
this.tree_link.find('i').removeClass();
if(!this.expanded) {
this.$a.find('i').addClass('fa fa-fw fa-folder-open text-muted');
this.tree_link.find('i').addClass('fa fa-fw fa-folder-open text-muted');
} else {
this.$a.find('i').addClass('fa fa-fw fa-folder text-muted');
this.tree_link.find('i').addClass('fa fa-fw fa-folder text-muted');
}
}

// select this link
this.tree.wrapper.find('.selected')
.removeClass('selected');
this.$a.toggleClass('selected');
this.tree_link.toggleClass('selected');
this.expanded = !this.expanded;
this.expanded ?
this.parent.addClass('opened') :
this.parent.removeClass('opened');
@@ -202,7 +205,7 @@ frappe.ui.TreeNode = Class.extend({
this.load();
},
reload_parent: function() {
this.parent_node.load();
this.parent_node.load_all();
},
load_all: function(callback) {
var me = this;
@@ -240,7 +243,7 @@ frappe.ui.TreeNode = Class.extend({
if (data) {
$.each(data, function(i, v) {
var child_node = node.addnode(v);
child_node.$a
child_node.tree_link
.data('node-data', v)
.data('node', child_node);
});


+ 11
- 8
frappe/public/js/frappe/views/treeview.js 查看文件

@@ -2,6 +2,7 @@
// MIT License. See license.txt

frappe.provide("frappe.treeview_settings");
frappe.provide('frappe.views.trees');
cur_tree = null;

frappe.views.TreeFactory = frappe.views.Factory.extend({
@@ -17,7 +18,7 @@ frappe.views.TreeFactory = frappe.views.Factory.extend({
return false;
}
$.extend(options, frappe.treeview_settings[route[1]] || {});
new frappe.views.TreeView(options);
frappe.views.trees[options.doctype] = new frappe.views.TreeView(options);
});
}
});
@@ -145,7 +146,8 @@ frappe.views.TreeView = Class.extend({
condition: function(node) { return !node.root && me.can_write; },
click: function(node) {
frappe.model.rename_doc(me.doctype, node.label, function(new_name) {
node.$a.html(new_name);
node.tree_link.find('a').text(new_name);
node.label = new_name;
});
},
btnClass: "hidden-xs"
@@ -185,12 +187,13 @@ frappe.views.TreeView = Class.extend({
var d = new frappe.ui.Dialog({
title: __('New {0}',[__(me.doctype)]),
fields: me.fields
})
});

me.args["parent_"+me.doctype.toLowerCase().replace(/ /g,'_')] = me.args["parent"];
var args = $.extend({}, me.args);
args["parent_"+me.doctype.toLowerCase().replace(/ /g,'_')] = me.args["parent"];

d.set_value("is_group", 0);
d.set_values(me.args);
d.set_values(args);

// create
d.set_primary_action(__("Create New"), function() {
@@ -210,18 +213,18 @@ frappe.views.TreeView = Class.extend({
v.root_type = null;
}

$.extend(me.args, v)
$.extend(args, v)

return frappe.call({
method: me.opts.add_tree_node || "frappe.desk.treeview.add_node",
args: me.args,
args: args,
callback: function(r) {
if(!r.exc) {
d.hide();
if(node.expanded) {
node.toggle_node();
}
node.reload();
node.load_all();
}
}
});


正在加载...
取消
保存