diff --git a/erpnext/home/page/activity/activity.js b/erpnext/home/page/activity/activity.js
index 57a38ac..4562ca8 100644
--- a/erpnext/home/page/activity/activity.js
+++ b/erpnext/home/page/activity/activity.js
@@ -8,7 +8,7 @@
 		single_column: true
 	})
 	wrapper.appframe.add_module_icon("Activity");
-	
+
 	var list = new frappe.ui.Listing({
 		hide_refresh: true,
 		appframe: wrapper.appframe,
@@ -21,12 +21,12 @@
 	list.run();
 
 	wrapper.appframe.set_title_right("Refresh", function() { list.run(); });
-	
+
 	// Build Report Button
 	if(frappe.boot.user.can_get_report.indexOf("Feed")!=-1) {
 		wrapper.appframe.add_primary_action(__('Build Report'), function() {
 			frappe.set_route('Report', "Feed");
-		}, 'icon-th')
+		}, 'icon-th', true);
 	}
 }
 
@@ -44,23 +44,23 @@
 	scrub_data: function(data) {
 		data.by = frappe.user_info(data.owner).fullname;
 		data.imgsrc = frappe.utils.get_file_link(frappe.user_info(data.owner).image);
-		
+
 		// feedtype
 		if(!data.feed_type) {
 			data.feed_type = __(data.doc_type);
 			data.add_class = "label-info";
 			data.onclick = repl('onclick="window.location.href=\'#!List/%(feed_type)s\';"', data)
 		}
-		
+
 		// color for comment
 		if(data.feed_type=='Comment') {
 			data.add_class = "label-danger";
 		}
-		
+
 		if(data.feed_type=='Assignment') {
 			data.add_class = "label-warning";
 		}
-		
+
 		// link
 		if(data.doc_name && data.feed_type!='Login') {
 			data.link = frappe.format(data.doc_name, {"fieldtype":"Link", "options":data.doc_type})
@@ -71,7 +71,7 @@
 	add_date_separator: function(row, data) {
 		var date = dateutil.str_to_obj(data.modified);
 		var last = erpnext.last_feed_date;
-		
+
 		if((last && dateutil.obj_to_str(last) != dateutil.obj_to_str(date)) || (!last)) {
 			var diff = dateutil.get_day_diff(dateutil.get_today(), dateutil.obj_to_str(date));
 			if(diff < 1) {
@@ -85,4 +85,4 @@
 		}
 		erpnext.last_feed_date = date;
 	}
-})
\ No newline at end of file
+})
