瀏覽代碼

feat: meaningful report pdf name (#18422) (#18480)

* feat: meaningful report pdf name

* feat: limited filename length

* chore: uncomment line

(cherry picked from commit f383669107)

Co-authored-by: Dany Robert <danyrt@wahni.com>
version-14
mergify[bot] 2 年之前
committed by GitHub
父節點
當前提交
f650150345
沒有發現已知的金鑰在資料庫的簽署中 GPG Key ID: 4AEE18F83AFDEB23
共有 2 個文件被更改,包括 20 次插入2 次删除
  1. +12
    -2
      frappe/public/js/frappe/microtemplate.js
  2. +8
    -0
      frappe/public/js/frappe/views/reports/query_report.js

+ 12
- 2
frappe/public/js/frappe/microtemplate.js 查看文件

@@ -175,6 +175,7 @@ frappe.render_template = function (name, data) {
w.document.write(tree); w.document.write(tree);
w.document.close(); w.document.close();
}); });

frappe.render_pdf = function (html, opts = {}) { frappe.render_pdf = function (html, opts = {}) {
//Create a form to place the HTML content //Create a form to place the HTML content
var formData = new FormData(); var formData = new FormData();
@@ -197,8 +198,17 @@ frappe.render_pdf = function (html, opts = {}) {
var blob = new Blob([success.currentTarget.response], { type: "application/pdf" }); var blob = new Blob([success.currentTarget.response], { type: "application/pdf" });
var objectUrl = URL.createObjectURL(blob); var objectUrl = URL.createObjectURL(blob);


//Open report in a new window
window.open(objectUrl);
// Create a hidden a tag to force set report name
// https://stackoverflow.com/questions/19327749/javascript-blob-filename-without-link
let hidden_a_tag = document.createElement("a");
document.body.appendChild(hidden_a_tag);
hidden_a_tag.style = "display: none";
hidden_a_tag.href = objectUrl;
hidden_a_tag.download = opts.report_name || "report.pdf";

// Open report in a new window
hidden_a_tag.click();
window.URL.revokeObjectURL(objectUrl);
} }
}; };
xhr.send(formData); xhr.send(formData);


+ 8
- 0
frappe/public/js/frappe/views/reports/query_report.js 查看文件

@@ -1383,6 +1383,14 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList {
layout_direction: frappe.utils.is_rtl() ? "rtl" : "ltr", layout_direction: frappe.utils.is_rtl() ? "rtl" : "ltr",
}); });


let filter_values = [],
name_len = 0;
for (var key of Object.keys(applied_filters)) {
name_len = name_len + applied_filters[key].toString().length;
if (name_len > 200) break;
filter_values.push(applied_filters[key]);
}
print_settings.report_name = `${__(this.report_name)}_${filter_values.join("_")}.pdf`;
frappe.render_pdf(html, print_settings); frappe.render_pdf(html, print_settings);
} }




Loading…
取消
儲存