Merge github.com:frappe/erpnext into develop
diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js
index 9500a70..e5b04dd 100644
--- a/erpnext/accounts/page/accounts_browser/accounts_browser.js
+++ b/erpnext/accounts/page/accounts_browser/accounts_browser.js
@@ -109,97 +109,75 @@
args: {ctype: ctype, comp: company},
method: 'erpnext.accounts.page.accounts_browser.accounts_browser.get_children',
click: function(link) {
- if(me.cur_toolbar)
- $(me.cur_toolbar).toggle(false);
-
- if(!link.toolbar)
- me.make_link_toolbar(link);
-
- if(link.toolbar) {
- me.cur_toolbar = link.toolbar;
- $(me.cur_toolbar).toggle(true);
- }
-
// bold
$('.bold').removeClass('bold'); // deselect
$(link).parent().find('.balance-area:first').addClass('bold'); // select
},
- onrender: function(treenode) {
- if (ctype == 'Account' && treenode.data) {
- if(treenode.data.balance) {
- treenode.parent.append('<span class="balance-area pull-right">'
- + format_currency(treenode.data.balance, treenode.data.currency)
- + '</span>');
+ toolbar: [
+ { toggle_btn: true },
+ {
+ label: __("Open"),
+ condition: function(node) { return !node.root },
+ click: function(node, btn) {
+ frappe.set_route("Form", me.ctype, node.label);
}
+ },
+ {
+ condition: function(node) { return !node.root && node.expandable; },
+ label: __("Add Child"),
+ click: function() {
+ if(me.ctype=='Account') {
+ me.new_account();
+ } else {
+ me.new_cost_center();
+ }
+ }
+ },
+ {
+ condition: function(node) {
+ return !node.root && me.ctype === 'Account'
+ && frappe.boot.profile.can_read.indexOf("GL Entry") !== -1
+ },
+ label: __("View Ledger"),
+ click: function(node, btn) {
+ frappe.route_options = {
+ "account": node.label,
+ "from_date": sys_defaults.year_start_date,
+ "to_date": sys_defaults.year_end_date,
+ "company": me.company
+ };
+ frappe.set_route("query-report", "General Ledger");
+ }
+
+ },
+ {
+ condition: function(node) { return !node.root && me.can_write },
+ label: __("Rename"),
+ click: function(node) {
+ frappe.model.rename_doc(me.ctype, node.label, function(new_name) {
+ node.reload();
+ });
+ }
+ },
+ {
+ condition: function(node) { return !node.root && me.can_delete },
+ label: __("Delete"),
+ click: function(node) {
+ frappe.model.delete_doc(me.ctype, node.label, function() {
+ node.parent.remove();
+ });
+ }
+ }
+ ],
+ onrender: function(node) {
+ if (me.ctype == 'Account' && node.data && node.data.balance!==undefined) {
+ $('<span class="balance-area pull-right text-muted">'
+ + format_currency(node.data.balance, node.data.currency)
+ + '</span>').insertBefore(node.$ul);
}
}
});
- this.tree.rootnode.$a.click();
- },
- make_link_toolbar: function(link) {
- var data = $(link).data('node-data');
- if(!data) return;
-
- link.toolbar = $('<span class="tree-node-toolbar highlight"></span>').insertAfter(link);
-
- var node_links = [];
- // edit
- if (frappe.model.can_read(this.ctype) !== -1) {
- node_links.push('<a onclick="erpnext.account_chart.open();">'+frappe._('Edit')+'</a>');
- }
- if (data.expandable && frappe.boot.profile.in_create.indexOf(this.ctype) !== -1) {
- node_links.push('<a onclick="erpnext.account_chart.new_node();">'+frappe._('Add Child')+'</a>');
- } else if (this.ctype === 'Account' && frappe.boot.profile.can_read.indexOf("GL Entry") !== -1) {
- node_links.push('<a onclick="erpnext.account_chart.show_ledger();">'+frappe._('View Ledger')+'</a>');
- }
-
- if (this.can_write) {
- node_links.push('<a onclick="erpnext.account_chart.rename()">'+frappe._('Rename')+'</a>');
- };
-
- if (this.can_delete) {
- node_links.push('<a onclick="erpnext.account_chart.delete()">'+frappe._('Delete')+'</a>');
- };
-
- link.toolbar.append(node_links.join(" | "));
- },
- open: function() {
- var node = this.selected_node();
- frappe.set_route("Form", this.ctype, node.data("label"));
- },
- show_ledger: function() {
- var me = this;
- var node = me.selected_node();
- frappe.route_options = {
- "account": node.data('label'),
- "from_date": sys_defaults.year_start_date,
- "to_date": sys_defaults.year_end_date,
- "company": me.company
- };
- frappe.set_route("query-report", "General Ledger");
- },
- rename: function() {
- var node = this.selected_node();
- frappe.model.rename_doc(this.ctype, node.data('label'), function(new_name) {
- node.parents("ul:first").parent().find(".tree-link:first").trigger("reload");
- });
- },
- delete: function() {
- var node = this.selected_node();
- frappe.model.delete_doc(this.ctype, node.data('label'), function() {
- node.parent().remove();
- });
- },
- new_node: function() {
- if(this.ctype=='Account') {
- this.new_account();
- } else {
- this.new_cost_center();
- }
- },
- selected_node: function() {
- return this.tree.$w.find('.tree-link.selected');
},
new_account: function() {
var me = this;
@@ -250,12 +228,11 @@
// create
$(fd.create_new.input).click(function() {
var btn = this;
- $(btn).set_working();
var v = d.get_values();
if(!v) return;
- var node = me.selected_node();
- v.parent_account = node.data('label');
+ var node = me.tree.get_selected_node();
+ v.parent_account = node.label;
v.master_type = '';
v.company = me.company;
@@ -263,9 +240,8 @@
args: v,
method: 'erpnext.accounts.utils.add_ac',
callback: function(r) {
- $(btn).done_working();
d.hide();
- node.trigger('reload');
+ node.reload;
}
});
});
@@ -296,23 +272,20 @@
// create
$(d.fields_dict.create_new.input).click(function() {
- var btn = this;
- $(btn).set_working();
var v = d.get_values();
if(!v) return;
- var node = me.selected_node();
+ var node = me.tree.get_selected_node();
- v.parent_cost_center = node.data('label');
+ v.parent_cost_center = node.label;
v.company = me.company;
return frappe.call({
args: v,
method: 'erpnext.accounts.utils.add_cc',
callback: function(r) {
- $(btn).done_working();
d.hide();
- node.trigger('reload');
+ node.reload();
}
});
});
diff --git a/erpnext/selling/page/sales_browser/sales_browser.js b/erpnext/selling/page/sales_browser/sales_browser.js
index 57a7ee6..7beeb42 100644
--- a/erpnext/selling/page/sales_browser/sales_browser.js
+++ b/erpnext/selling/page/sales_browser/sales_browser.js
@@ -56,57 +56,56 @@
$(parent).empty();
var me = this;
me.ctype = ctype;
+ me.can_read = frappe.model.can_read(this.ctype);
+ me.can_create = frappe.boot.profile.can_create.indexOf(this.ctype) !== -1 ||
+ frappe.boot.profile.in_create.indexOf(this.ctype) !== -1;
+ me.can_write = frappe.model.can_write(this.ctype);
+ me.can_delete = frappe.model.can_delete(this.ctype);
+
this.tree = new frappe.ui.Tree({
parent: $(parent),
label: root,
args: {ctype: ctype},
method: 'erpnext.selling.page.sales_browser.sales_browser.get_children',
- click: function(link) {
- if(me.cur_toolbar)
- $(me.cur_toolbar).toggle(false);
-
- if(!link.toolbar)
- me.make_link_toolbar(link);
-
- if(link.toolbar) {
- me.cur_toolbar = link.toolbar;
- $(me.cur_toolbar).toggle(true);
+ toolbar: [
+ {toggle_btn: true},
+ {
+ label:__("Edit"),
+ condition: function(node) {
+ return !node.root && me.can_read;
+ },
+ click: function(node) {
+ frappe.set_route("Form", me.ctype, node.label);
+ }
+ },
+ {
+ label:__("Add Child"),
+ condition: function(node) { return me.can_create && node.expandable; },
+ click: function(node) {
+ me.new_node();
+ }
+ },
+ {
+ label:__("Rename"),
+ condition: function(node) { return !node.root && me.can_write; },
+ click: function(node) {
+ frappe.model.rename_doc(me.ctype, node.label, function(new_name) {
+ node.$a.html(new_name);
+ });
+ }
+ },
+ {
+ label:__("Delete"),
+ condition: function(node) { return !node.root && me.can_delete; },
+ click: function(node) {
+ frappe.model.delete_doc(me.ctype, node.label, function() {
+ node.parent.remove();
+ });
+ }
}
- }
+
+ ]
});
- this.tree.rootnode.$a
- .data('node-data', {value: root, expandable:1})
- .click();
- },
- make_link_toolbar: function(link) {
- var data = $(link).data('node-data');
- if(!data) return;
-
- link.toolbar = $('<span class="tree-node-toolbar"></span>').insertAfter(link);
-
- // edit
- var node_links = [];
-
- if (frappe.model.can_read(this.ctype)) {
- node_links.push('<a onclick="erpnext.sales_chart.open();">'+frappe._('Edit')+'</a>');
- }
-
- if(data.expandable) {
- if (frappe.boot.profile.can_create.indexOf(this.ctype) !== -1 ||
- frappe.boot.profile.in_create.indexOf(this.ctype) !== -1) {
- node_links.push('<a onclick="erpnext.sales_chart.new_node();">' + frappe._('Add Child') + '</a>');
- }
- }
-
- if (frappe.model.can_write(this.ctype)) {
- node_links.push('<a onclick="erpnext.sales_chart.rename()">' + frappe._('Rename') + '</a>');
- };
-
- if (frappe.model.can_delete(this.ctype)) {
- node_links.push('<a onclick="erpnext.sales_chart.delete()">' + frappe._('Delete') + '</a>');
- };
-
- link.toolbar.append(node_links.join(" | "));
},
new_node: function() {
var me = this;
@@ -134,44 +133,23 @@
// create
$(d.fields_dict.create_new.input).click(function() {
var btn = this;
- $(btn).set_working();
var v = d.get_values();
if(!v) return;
- var node = me.selected_node();
+ var node = me.tree.get_selected_node();
- v.parent = node.data('label');
+ v.parent = node.label;
v.ctype = me.ctype;
return frappe.call({
method: 'erpnext.selling.page.sales_browser.sales_browser.add_node',
args: v,
callback: function() {
- $(btn).done_working();
d.hide();
- node.trigger('reload');
+ node.reload();
}
})
});
d.show();
},
- selected_node: function() {
- return this.tree.$w.find('.tree-link.selected');
- },
- open: function() {
- var node = this.selected_node();
- frappe.set_route("Form", this.ctype, node.data("label"));
- },
- rename: function() {
- var node = this.selected_node();
- frappe.model.rename_doc(this.ctype, node.data('label'), function(new_name) {
- node.data('label', new_name).find(".tree-label").html(new_name);
- });
- },
- delete: function() {
- var node = this.selected_node();
- frappe.model.delete_doc(this.ctype, node.data('label'), function() {
- node.parent().remove();
- });
- },
});
\ No newline at end of file
diff --git a/erpnext/setup/doctype/company/sample_home_page.html b/erpnext/setup/doctype/company/sample_home_page.html
index d6a0519..6c1e041 100644
--- a/erpnext/setup/doctype/company/sample_home_page.html
+++ b/erpnext/setup/doctype/company/sample_home_page.html
@@ -1,5 +1,3 @@
-<h2><i class="icon-home"></i> Sample Home Page</h2>
-<br>
<p>This is a sample home page for your company <b>%(name)s's</b> website. This was
created from the Website Module inside ERPNext. ERPNext provides you with simple
tools to build and update your website. You can add sections like your Product Catalog,
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.js b/erpnext/setup/page/setup_wizard/setup_wizard.js
index 4a88013..6e28bbb 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.js
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.js
@@ -371,11 +371,11 @@
this.$wrapper = $(repl('<div class="panel panel-default">\
<div class="panel-heading">\
<div class="panel-title row">\
- <div class="col-sm-8">\
- <i class="%(icon)s text-muted"></i> %(title)s</div>\
- <div class="col-sm-4 text-right"><a class="prev-btn hide">Previous</a> \
- <a class="next-btn hide">Next</a> \
- <a class="complete-btn hide"><b>Complete Setup</b></a>\
+ <div class="col-sm-8"><h3 style="margin: 0px;">\
+ <i class="%(icon)s text-muted"></i> %(title)s</h3></div>\
+ <div class="col-sm-4 text-right"><a class="prev-btn hide btn btn-default">Previous</a> \
+ <a class="next-btn hide btn btn-primary">Next</a> \
+ <a class="complete-btn hide btn btn-primary"><b>Complete Setup</b></a>\
</div>\
</div>\
</div>\