[fixes] to task test case and fix tree ui for mobile
diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js
index 77a87ff..157a924 100644
--- a/erpnext/accounts/page/accounts_browser/accounts_browser.js
+++ b/erpnext/accounts/page/accounts_browser/accounts_browser.js
@@ -42,13 +42,13 @@
 		wrapper.page.add_menu_item(__('New Company'), function() { newdoc('Company'); }, true);
 	}
 
-	wrapper.page.set_secondary_action(__('Refresh'), function() {
+	wrapper.page.add_menu_item(__('Refresh'), function() {
 			wrapper.$company_select.change();
 		});
 
 	wrapper.page.set_primary_action(__('New'), function() {
 		erpnext.account_chart && erpnext.account_chart.make_new();
-	});
+	}, "octicon octicon-plus");
 
 	// company-select
 	wrapper.$company_select = wrapper.page.add_select("Company", [])
@@ -121,7 +121,8 @@
 					label: __("Add Child"),
 					click: function() {
 						me.make_new()
-					}
+					},
+					btnClass: "hidden-xs"
 				},
 				{
 					condition: function(node) {
@@ -137,8 +138,8 @@
 							"company": me.company
 						};
 						frappe.set_route("query-report", "General Ledger");
-					}
-
+					},
+					btnClass: "hidden-xs"
 				},
 				{
 					condition: function(node) { return !node.root && me.can_write },
@@ -147,7 +148,8 @@
 						frappe.model.rename_doc(me.ctype, node.label, function(new_name) {
 							node.reload();
 						});
-					}
+					},
+					btnClass: "hidden-xs"
 				},
 				{
 					condition: function(node) { return !node.root && me.can_delete },
@@ -156,7 +158,8 @@
 						frappe.model.delete_doc(me.ctype, node.label, function() {
 							node.parent.remove();
 						});
-					}
+					},
+					btnClass: "hidden-xs"
 				}
 			],
 			onrender: function(node) {
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.json b/erpnext/hr/doctype/expense_claim/expense_claim.json
index f4e4bae..e3293ed 100644
--- a/erpnext/hr/doctype/expense_claim/expense_claim.json
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.json
@@ -536,13 +536,33 @@
  "is_submittable": 1, 
  "issingle": 0, 
  "istable": 0, 
- "modified": "2015-08-31 08:48:32.488942", 
+ "modified": "2015-09-01 07:11:25.759637", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Expense Claim", 
  "owner": "harshada@webnotestech.com", 
  "permissions": [
   {
+   "amend": 1, 
+   "apply_user_permissions": 0, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "HR Manager", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 1, 
+   "write": 1
+  }, 
+  {
    "amend": 0, 
    "apply_user_permissions": 1, 
    "cancel": 0, 
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.py b/erpnext/hr/doctype/expense_claim/expense_claim.py
index 64be65e..ef15e78 100644
--- a/erpnext/hr/doctype/expense_claim/expense_claim.py
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.py
@@ -22,6 +22,8 @@
 		self.validate_expense_approver()
 		self.calculate_total_amount()
 		set_employee_name(self)
+		if self.task and not self.project:
+			self.project = frappe.db.get_value("Task", self.task, "project")
 
 	def on_submit(self):
 		if self.approval_status=="Draft":
diff --git a/erpnext/hr/doctype/expense_claim/test_expense_claim.py b/erpnext/hr/doctype/expense_claim/test_expense_claim.py
index a9091fb..b21f2a1 100644
--- a/erpnext/hr/doctype/expense_claim/test_expense_claim.py
+++ b/erpnext/hr/doctype/expense_claim/test_expense_claim.py
@@ -11,44 +11,47 @@
 	def test_total_expense_claim_for_project(self):
 		frappe.db.sql("""delete from `tabTask` where project = "_Test Project 1" """)
 		frappe.db.sql("""delete from `tabProject` where name = "_Test Project 1" """)
-		
+		frappe.db.sql("""delete from `tabExpense Claim`""")
+		frappe.db.sql("""delete from `tabExpense Claim Detail`""")
+
 		frappe.get_doc({
 			"project_name": "_Test Project 1",
 			"doctype": "Project",
 			"tasks" :
 				[{ "title": "_Test Project Task 1", "status": "Open" }]
 		}).save()
-		
-		task_name = frappe.db.get_value("Task",{"project": "_Test Project 1"})
+
+		task_name = frappe.db.get_value("Task", {"project": "_Test Project 1"})
+
 		expense_claim = frappe.get_doc({
 			 "doctype": "Expense Claim",
 			 "employee": "_T-Employee-0001",
 			 "approval_status": "Approved",
 			 "project": "_Test Project 1",
 			 "task": task_name,
-			 "expenses": 
+			 "expenses":
 			 	[{ "expense_type": "Food", "claim_amount": 300, "sanctioned_amount": 200 }]
 		})
 		expense_claim.submit()
-		
+
 		self.assertEqual(frappe.db.get_value("Task", task_name, "total_expense_claim"), 200)
 		self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), 200)
-		
+
 		expense_claim2 = frappe.get_doc({
 			 "doctype": "Expense Claim",
 			 "employee": "_T-Employee-0001",
 			 "approval_status": "Approved",
 			 "project": "_Test Project 1",
 			 "task": task_name,
-			 "expenses": 
+			 "expenses":
 			 	[{ "expense_type": "Food", "claim_amount": 600, "sanctioned_amount": 500 }]
 		})
 		expense_claim2.submit()
-		
+
 		self.assertEqual(frappe.db.get_value("Task", task_name, "total_expense_claim"), 700)
 		self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), 700)
-		
+
 		expense_claim2.cancel()
-		
+
 		self.assertEqual(frappe.db.get_value("Task", task_name, "total_expense_claim"), 200)
 		self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), 200)
diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index 277ffdb..8e126aa 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -97,8 +97,11 @@
 			sum(hours) as time
 			from `tabTime Log` where project = %s and docstatus = 1""", self.name, as_dict=1)[0]
 
-		from_expense_claim = frappe.db.sql("""select sum(ifnull(total_sanctioned_amount, 0))
-			from `tabExpense Claim` where project = %s""", self.name, as_dict=1)[0]
+		from_expense_claim = frappe.db.sql("""select
+			sum(ifnull(total_sanctioned_amount, 0)) as total_sanctioned_amount
+			from `tabExpense Claim` where project = %s and approval_status='Approved'
+			and docstatus = 1""",
+			self.name, as_dict=1)[0]
 
 		self.actual_start_date = from_time_log.start_date
 		self.actual_end_date = from_time_log.end_date
diff --git a/erpnext/selling/page/sales_browser/sales_browser.js b/erpnext/selling/page/sales_browser/sales_browser.js
index 98d34be..a99fe72 100644
--- a/erpnext/selling/page/sales_browser/sales_browser.js
+++ b/erpnext/selling/page/sales_browser/sales_browser.js
@@ -7,7 +7,7 @@
 		single_column: true,
 	});
 
-	wrapper.page.set_secondary_action(__('Refresh'), function() {
+	wrapper.page.add_menu_item(__('Refresh'), function() {
 			wrapper.make_tree();
 		});
 
@@ -57,7 +57,7 @@
 
 		me.page.set_primary_action(__("New"), function() {
 			me.new_node();
-		});
+		}, "octicon octicon-plus");
 
 		this.tree = new frappe.ui.Tree({
 			parent: $(parent),
@@ -80,7 +80,8 @@
 					condition: function(node) { return me.can_create && node.expandable; },
 					click: function(node) {
 						me.new_node();
-					}
+					},
+					btnClass: "hidden-xs"
 				},
 				{
 					label:__("Rename"),
@@ -89,7 +90,8 @@
 						frappe.model.rename_doc(me.ctype, node.label, function(new_name) {
 							node.$a.html(new_name);
 						});
-					}
+					},
+					btnClass: "hidden-xs"
 				},
 				{
 					label:__("Delete"),
@@ -98,7 +100,8 @@
 						frappe.model.delete_doc(me.ctype, node.label, function() {
 							node.parent.remove();
 						});
-					}
+					},
+					btnClass: "hidden-xs"
 				}
 
 			]