[Enhancement] Custom menu for reportview (#2452)

This commit is contained in:
rohitwaghchaure 2016-12-15 15:10:15 +05:30 committed by Rushabh Mehta
parent fa00e8e3b2
commit d0bd31e95b
3 changed files with 41 additions and 26 deletions

View file

@ -871,21 +871,5 @@ frappe.views.DocListView = frappe.ui.Listing.extend({
page: me.page,
doclistview: me
})
},
call_for_selected_items: function(method, args) {
var me = this;
args.names = $.map(this.get_checked_items(), function(d) { return d.name; });
frappe.call({
method: method,
args: args,
freeze: true,
callback: function(r) {
if(!r.exc) {
me.list_header.find(".list-select-all").prop("checked", false);
me.refresh();
}
}
});
}
});

View file

@ -448,4 +448,22 @@ frappe.ui.Listing = Class.extend({
this.list_settings = {};
}
},
call_for_selected_items: function(method, args) {
var me = this;
args.names = $.map(this.get_checked_items(), function(d) { return d.name; });
frappe.call({
method: method,
args: args,
freeze: true,
callback: function(r) {
if(!r.exc) {
if(me.list_header) {
me.list_header.find(".list-select-all").prop("checked", false);
}
me.refresh();
}
}
});
}
});

View file

@ -118,6 +118,7 @@ frappe.views.ReportView = frappe.ui.Listing.extend({
this.make_save();
this.make_user_permissions();
this.set_tag_and_status_filter();
this.setup_listview_settings();
// add to desktop
this.page.add_menu_item(__("Add to Desktop"), function() {
@ -500,7 +501,7 @@ frappe.views.ReportView = frappe.ui.Listing.extend({
return repl("<input type='checkbox' \
data-row='%(row)s' %(checked)s>", {
row: row,
checked: (dataContext._checked ? "checked=\"checked\"" : "")
checked: (dataContext.selected ? "checked=\"checked\"" : "")
});
}
}]);
@ -686,19 +687,12 @@ frappe.views.ReportView = frappe.ui.Listing.extend({
var me = this;
if(this.can_delete) {
$(this.parent).on("click", "input[type='checkbox'][data-row]", function() {
me.data[$(this).attr("data-row")]._checked
me.data[$(this).attr("data-row")].selected
= this.checked ? true : false;
});
this.page.add_menu_item(__("Delete"), function() {
var delete_list = []
$.each(me.data, function(i, d) {
if(d._checked) {
if(d.name)
delete_list.push(d.name);
}
});
delete_list = $.map(me.get_checked_items(), function(d) { return d.name; });
if(!delete_list.length)
return;
if(frappe.confirm(__("This is PERMANENT action and you cannot undo. Continue?"),
@ -731,6 +725,25 @@ frappe.views.ReportView = frappe.ui.Listing.extend({
}, true);
}
},
setup_listview_settings: function() {
if(frappe.listview_settings[this.doctype]["onload"]) {
frappe.listview_settings[this.doctype].onload(this);
}
},
get_checked_items: function() {
var me = this;
var selected_records = []
$.each(me.data, function(i, d) {
if(d.selected && d.name) {
selected_records.push(d);
}
});
return selected_records
}
});
frappe.ui.ColumnPicker = Class.extend({