diff --git a/frappe/public/js/frappe/views/reports/reportview.js b/frappe/public/js/frappe/views/reports/reportview.js index a41f79795f..c172d1c557 100644 --- a/frappe/public/js/frappe/views/reports/reportview.js +++ b/frappe/public/js/frappe/views/reports/reportview.js @@ -558,49 +558,57 @@ frappe.views.ReportView = frappe.ui.Listing.extend({ }, true); }, + // save make_save: function() { var me = this; if(frappe.user.is_report_manager()) { - this.page.add_menu_item(__('Save'), function() { - // name - if(me.docname) { - var name = me.docname - } else { - var name = prompt(__('Select Report Name')); - if(!name) { + this.page.add_menu_item(__('Save'), function() { me.save_report('save') }, true); + this.page.add_menu_item(__('Save As'), function() { me.save_report('save_as') }, true); + } + }, + + save_report: function(save_type) { + var me = this; + + var _save_report = function(name) { + // callback + return frappe.call({ + method: 'frappe.desk.reportview.save_report', + args: { + name: name, + doctype: me.doctype, + json: JSON.stringify({ + filters: me.filter_list.get_filters(), + columns: me.columns, + sort_by: me.sort_by_select.val(), + sort_order: me.sort_order_select.val(), + sort_by_next: me.sort_by_next_select.val(), + sort_order_next: me.sort_order_next_select.val() + }) + }, + callback: function(r) { + if(r.exc) { + msgprint(__("Report was not saved (there were errors)")); return; } + if(r.message != me.docname) + frappe.set_route('Report', me.doctype, r.message); } + }); + + } - // callback - return frappe.call({ - method: 'frappe.desk.reportview.save_report', - args: { - name: name, - doctype: me.doctype, - json: JSON.stringify({ - filters: me.filter_list.get_filters(), - columns: me.columns, - sort_by: me.sort_by_select.val(), - sort_order: me.sort_order_select.val(), - sort_by_next: me.sort_by_next_select.val(), - sort_order_next: me.sort_order_next_select.val() - }) - }, - callback: function(r) { - if(r.exc) { - msgprint(__("Report was not saved (there were errors)")); - return; - } - if(r.message != me.docname) - frappe.set_route('Report', me.doctype, r.message); - } - }); - }, true); + if(me.docname && save_type == "save") { + _save_report(me.docname); + } else { + frappe.prompt({fieldname: 'name', label: __('New Report name'), reqd: 1, fieldtype: 'Data'}, function(data) { + _save_report(data.name); + }, __('Save As')); } - }, + }, + make_delete: function() { var me = this; if(this.can_delete) { @@ -739,4 +747,4 @@ frappe.ui.ColumnPicker = Class.extend({ this.list.columns = columns; this.list.run(); } -}); +}); \ No newline at end of file