Render on-screen report as HTML in renderer

So it can be treated like any other format.
This commit is contained in:
Maikel Linke
2023-01-09 11:28:02 +11:00
committed by Filipe
parent d2e6b7d164
commit 65843fbd68
5 changed files with 12 additions and 12 deletions

View File

@@ -49,6 +49,7 @@ module Admin
I18n.t(:name, scope: [:admin, :reports, @report_type])
end
@rendering_options = rendering_options
@table = @report.to_html if request.post?
@data = Reporting::FrontendData.new(spree_current_user)
end
end

View File

@@ -1,5 +1,3 @@
- report ||= @report
.report__table-container
%table.report__table
%thead

View File

@@ -19,7 +19,4 @@
- if request.post?
%button.btn-print.icon-print{ onclick: "window.print()"}= t(:report_print)
/ We don't want to render data unless search params are supplied.
/ Compiling data can take a long time.
- if request.post?
= render "table"
= @table

View File

@@ -46,6 +46,14 @@ module Reporting
public_send("to_#{target_format}")
end
def to_html(layout: nil)
ApplicationController.render(
template: "admin/reports/_table",
layout: layout,
locals: { report: @report }
)
end
def to_csv
SpreadsheetArchitect.to_csv(headers: table_headers, data: table_rows)
end
@@ -55,11 +63,7 @@ module Reporting
end
def to_pdf
html = ApplicationController.render(
template: "admin/reports/_table",
layout: "pdf",
locals: { report: @report }
)
html = to_html(layout: "pdf")
WickedPdf.new.pdf_from_string(html)
end

View File

@@ -5,7 +5,7 @@ module Reporting
include ReportsHelper
attr_accessor :user, :params, :ransack_params
delegate :render_as, :as_json, :to_csv, :to_xlsx, :to_pdf, :to_json, to: :renderer
delegate :render_as, :as_json, :to_html, :to_csv, :to_xlsx, :to_pdf, :to_json, to: :renderer
delegate :raw_render?, :html_render?, :display_header_row?, :display_summary_row?, to: :renderer
delegate :rows, :table_rows, :grouped_data, to: :rows_builder