From 1ebd6338055e7be8172e8f875add50e2daaef445 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Thu, 14 Mar 2019 14:11:34 +0530 Subject: [PATCH] fix: Report fixes - Blank ID column when switching from another report - Print should show sorted and filtered rows --- .../public/js/frappe/views/reports/report_view.js | 14 ++++++++++---- frappe/public/less/frappe-datatable.less | 4 ++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/frappe/public/js/frappe/views/reports/report_view.js b/frappe/public/js/frappe/views/reports/report_view.js index d97cd6e840..6e6e4e92ac 100644 --- a/frappe/public/js/frappe/views/reports/report_view.js +++ b/frappe/public/js/frappe/views/reports/report_view.js @@ -135,6 +135,7 @@ frappe.views.ReportView = class ReportView extends frappe.views.ListView { render(force) { if (this.data.length === 0) return; this.render_count(); + this.setup_columns(); if (this.chart) { this.refresh_charts(); @@ -224,7 +225,7 @@ frappe.views.ReportView = class ReportView extends frappe.views.ListView { getEditor: this.get_editing_object.bind(this), checkboxColumn: true, inlineFilters: true, - cellHeight: 37, + cellHeight: 35, events: { onRemoveColumn: (column) => { this.remove_column_from_datatable(column); @@ -1042,13 +1043,18 @@ frappe.views.ReportView = class ReportView extends frappe.views.ListView { { label: __('Print'), action: () => { - this.report_data = this.data.slice(); + // prepare rows in their current state, sorted and filtered + const rows_in_order = this.datatable.datamanager.rowViewOrder.map(index => { + if (this.datatable.bodyRenderer.visibleRowIndices.includes(index)) { + return this.data[index]; + } + }).filter(Boolean); if (this.add_totals_row) { const total_data = this.get_columns_totals(this.data); total_data['name'] = __('Totals').bold(); - this.report_data.push(total_data); + rows_in_order.push(total_data); } frappe.ui.get_print_settings(false, (print_settings) => { @@ -1058,7 +1064,7 @@ frappe.views.ReportView = class ReportView extends frappe.views.ListView { subtitle: this.get_filters_html_for_print(), print_settings: print_settings, columns: this.columns, - data: this.report_data + data: rows_in_order }); }); } diff --git a/frappe/public/less/frappe-datatable.less b/frappe/public/less/frappe-datatable.less index d89a692ea0..39ed2eebf3 100644 --- a/frappe/public/less/frappe-datatable.less +++ b/frappe/public/less/frappe-datatable.less @@ -61,6 +61,10 @@ table td.dt-cell { } } +.dt-row { + height: 35px; +} + .dt-row.dt-row-totalRow { font-weight: bold; }