From 9b4cd4a3898624d8007102c01a2e806f791f5683 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Thu, 28 Nov 2019 12:17:41 +0530 Subject: [PATCH 1/2] fix: Pass prepared_report_name as filter if exists --- .../js/frappe/views/reports/query_report.js | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/frappe/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index 560cb3d17b..a7505ff8f3 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -293,6 +293,12 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { this.last_ajax.abort(); } + const query_params = this.get_query_params(); + + if (query_params.prepared_report_name) { + filters.prepared_report_name = query_params.prepared_report_name; + } + return new Promise(resolve => { this.last_ajax = frappe.call({ method: 'frappe.desk.query_report.run', @@ -303,7 +309,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { }, callback: resolve, always: () => this.page.btn_secondary.prop('disabled', false) - }) + }); }).then(r => { let data = r.message; this.hide_status(); @@ -313,18 +319,18 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { if (data.prepared_report) { this.prepared_report = true; - const query_string = frappe.utils.get_query_string(frappe.get_route_str()); - const query_params = frappe.utils.get_query_params(query_string); // If query_string contains prepared_report_name then set filters // to match the mentioned prepared report doc and disable editing - if(query_params.prepared_report_name) { + if (query_params.prepared_report_name) { this.prepared_report_action = "Edit"; const filters_from_report = JSON.parse(data.doc.filters); Object.values(this.filters).forEach(function(field) { if (filters_from_report[field.fieldname]) { field.set_input(filters_from_report[field.fieldname]); } - field.input.disabled = true; + if (field.input) { + field.input.disabled = true; + } }); } this.add_prepared_report_buttons(data.doc); @@ -357,6 +363,12 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { }); } + get_query_params() { + const query_string = frappe.utils.get_query_string(frappe.get_route_str()); + const query_params = frappe.utils.get_query_params(query_string); + return query_params; + } + add_prepared_report_buttons(doc) { if(doc){ this.page.add_inner_button(__("Download Report"), function (){ From 29c0772449ddab658488e2665ae2a23582330b79 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Thu, 28 Nov 2019 12:32:34 +0530 Subject: [PATCH 2/2] fix: Add input to multiselect_list control --- frappe/public/js/frappe/form/controls/multiselect_list.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frappe/public/js/frappe/form/controls/multiselect_list.js b/frappe/public/js/frappe/form/controls/multiselect_list.js index 0313ee70d7..3e8dc21dca 100644 --- a/frappe/public/js/frappe/form/controls/multiselect_list.js +++ b/frappe/public/js/frappe/form/controls/multiselect_list.js @@ -17,6 +17,7 @@ frappe.ui.form.ControlMultiSelectList = frappe.ui.form.ControlData.extend({ this.$list_wrapper = $(template); this.$input = $(''); + this.input = this.$input.get(0); this.$list_wrapper.prependTo(this.input_area); this.$filter_input = this.$list_wrapper.find('input'); this.$list_wrapper.on('click', '.dropdown-menu', e => {