瀏覽代碼

[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) { frappe.views.set_list_as_dirty = function(doctype) {
if(frappe.views.trees[doctype]) {
frappe.views.trees[doctype].tree.refresh();
}

var list_page = "List/" + doctype; var list_page = "List/" + doctype;
if(frappe.pages[list_page]) { if(frappe.pages[list_page]) {
if(frappe.pages[list_page].doclistview) { 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(); this.rootnode.toggle();
}, },
refresh: function() {
this.selected_node.reload_parent();
},
get_selected_node: function() { get_selected_node: function() {
return this.selected_node; return this.selected_node;
}, },
@@ -50,11 +53,11 @@ frappe.ui.TreeNode = Class.extend({
}, },
make: function() { make: function() {
var me = this; var me = this;
this.$a = $('<span class="tree-link">')
this.tree_link = $('<span class="tree-link">')
.click(function(event) { .click(function(event) {
me.tree.selected_node = me; me.tree.selected_node = me;
me.tree.wrapper.find(".tree-link.active").removeClass("active"); me.tree.wrapper.find(".tree-link.active").removeClass("active");
me.$a.addClass("active");
me.tree_link.addClass("active");
if(me.tree.toolbar) { if(me.tree.toolbar) {
me.show_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 = '<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>"). $(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); setTimeout(function() { me.toolbar.find(".btn-expand").click(); }, 100);
}); });
}, },
@@ -113,7 +116,7 @@ frappe.ui.TreeNode = Class.extend({
}, },
make_toolbar: function() { make_toolbar: function() {
var me = this; 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) { $.each(this.tree.toolbar, function(i, item) {
if(item.toggle_btn) { if(item.toggle_btn) {
@@ -179,20 +182,20 @@ frappe.ui.TreeNode = Class.extend({
} }


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


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

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


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


frappe.views.TreeFactory = frappe.views.Factory.extend({ frappe.views.TreeFactory = frappe.views.Factory.extend({
@@ -17,7 +18,7 @@ frappe.views.TreeFactory = frappe.views.Factory.extend({
return false; return false;
} }
$.extend(options, frappe.treeview_settings[route[1]] || {}); $.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; }, condition: function(node) { return !node.root && me.can_write; },
click: function(node) { click: function(node) {
frappe.model.rename_doc(me.doctype, node.label, function(new_name) { 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" btnClass: "hidden-xs"
@@ -185,12 +187,13 @@ frappe.views.TreeView = Class.extend({
var d = new frappe.ui.Dialog({ var d = new frappe.ui.Dialog({
title: __('New {0}',[__(me.doctype)]), title: __('New {0}',[__(me.doctype)]),
fields: me.fields 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_value("is_group", 0);
d.set_values(me.args);
d.set_values(args);


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


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


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


Loading…
取消
儲存