From 79d5c9cf521ff816f26c13ca57c1621079c6d560 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Tue, 23 Apr 2019 09:24:42 +0530 Subject: [PATCH 1/2] fix: Remove frappe.upload.get_strting --- frappe/public/js/frappe/form/grid.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index 69a0326db3..b2f1f6acd6 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -664,7 +664,7 @@ export default class Grid { as_dataurl: true, allow_multiple: false, on_success(file) { - var data = frappe.utils.csv_to_array(frappe.upload.get_string(file.dataurl)); + var data = frappe.utils.csv_to_array(file.dataurl); // row #2 contains fieldnames; var fieldnames = data[2]; From bfde3835c4a833663f26ccecdb020eea1d5f4916 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Tue, 23 Apr 2019 09:43:48 +0530 Subject: [PATCH 2/2] fix: Decode file data to string --- frappe/public/js/frappe/form/grid.js | 2 +- frappe/public/js/frappe/misc/utils.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index b2f1f6acd6..8f5d18271e 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -664,7 +664,7 @@ export default class Grid { as_dataurl: true, allow_multiple: false, on_success(file) { - var data = frappe.utils.csv_to_array(file.dataurl); + var data = frappe.utils.csv_to_array(frappe.utils.get_decoded_string(file.dataurl)); // row #2 contains fieldnames; var fieldnames = data[2]; diff --git a/frappe/public/js/frappe/misc/utils.js b/frappe/public/js/frappe/misc/utils.js index 99af0ecb5f..b8ae2818ae 100644 --- a/frappe/public/js/frappe/misc/utils.js +++ b/frappe/public/js/frappe/misc/utils.js @@ -702,6 +702,12 @@ Object.assign(frappe.utils, { } else { return filename; } + }, + get_decoded_string(dataURI) { + // decodes base64 to string + let parts = dataURI.split(','); + const encoded_data = parts[1]; + return decodeURIComponent(escape(atob(encoded_data))); } });