From a2b808075b9df7501663a5a773dc160b93759a23 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Wed, 29 Dec 2021 20:10:47 +0530 Subject: [PATCH 1/2] fix: Route options not getting set while navigating from one report to another (cherry picked from commit 124ae9138891a1caf8908b2c9ab578d52992f410) --- .../js/frappe/views/reports/query_report.js | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/frappe/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index 448b3f6fd2..d89447118f 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -105,15 +105,18 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { this.toggle_nothing_to_show(true); return; } + + let route_options = {} + route_options = Object.assign(route_options, frappe.route_options); if (this.report_name !== frappe.get_route()[1]) { // different report - this.load_report(); + this.load_report(route_options); } else if (frappe.has_route_options()) { // filters passed through routes // so refresh report again - this.refresh_report(); + this.refresh_report(route_options); } else { // same report // don't do anything to preserve state @@ -121,7 +124,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { } } - load_report() { + load_report(route_options) { this.page.clear_inner_toolbar(); this.route = frappe.get_route(); this.page_name = frappe.get_route_str(); @@ -137,7 +140,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { () => this.get_report_settings(), () => this.setup_progress_bar(), () => this.setup_page_head(), - () => this.refresh_report(), + () => this.refresh_report(route_options), () => this.add_chart_buttons_to_toolbar(true), () => this.add_card_button_to_toolbar(true), ]); @@ -343,13 +346,13 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { }); } - refresh_report() { + refresh_report(route_options) { this.toggle_message(true); this.toggle_report(false); return frappe.run_serially([ () => this.setup_filters(), - () => this.set_route_filters(), + () => this.set_route_filters(route_options), () => this.page.clear_custom_actions(), () => this.report_settings.onload && this.report_settings.onload(this), () => this.refresh() @@ -525,15 +528,17 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { }); } - set_route_filters() { - if(frappe.route_options) { - const fields = Object.keys(frappe.route_options); + set_route_filters(route_options) { + if (!route_options) route_options = frappe.route_options; + + if(route_options) { + const fields = Object.keys(route_options); const filters_to_set = this.filters.filter(f => fields.includes(f.df.fieldname)); const promises = filters_to_set.map(f => { return () => { - const value = frappe.route_options[f.df.fieldname]; + const value = route_options[f.df.fieldname]; f.set_value(value); }; }); From f21d81a58a64faae450757b6ff0944f8face3627 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Mon, 3 Jan 2022 12:22:13 +0530 Subject: [PATCH 2/2] fix: Linting Issues (cherry picked from commit b28c75a82fcef86af25a47768e050558825612ee) --- frappe/public/js/frappe/views/reports/query_report.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frappe/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index d89447118f..920a252b56 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -106,7 +106,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { return; } - let route_options = {} + let route_options = {}; route_options = Object.assign(route_options, frappe.route_options); if (this.report_name !== frappe.get_route()[1]) { @@ -531,7 +531,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { set_route_filters(route_options) { if (!route_options) route_options = frappe.route_options; - if(route_options) { + if (route_options) { const fields = Object.keys(route_options); const filters_to_set = this.filters.filter(f => fields.includes(f.df.fieldname));