From 3f0eee4b6084f337db1f41bd30afc726c0273992 Mon Sep 17 00:00:00 2001 From: Max Chopart Date: Wed, 10 Jul 2024 21:25:10 +0200 Subject: [PATCH 1/4] [New #36] Added support for export of records with MSExcel --- src/actions/RecordsActions.js | 3 --- src/components/record/ExportRecordsDropdown.jsx | 1 - src/components/record/RecordsController.jsx | 1 + src/constants/DefaultConstants.js | 2 +- 4 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/actions/RecordsActions.js b/src/actions/RecordsActions.js index 22a77a0..b582821 100644 --- a/src/actions/RecordsActions.js +++ b/src/actions/RecordsActions.js @@ -61,9 +61,6 @@ export function exportRecords(exportType, params = {}) { .get(`${API_URL}/rest/records/export`, { params, paramsSerializer, - headers: { - accept: exportType.mediaType, - }, responseType: "arraybuffer", }) .then((resp) => { diff --git a/src/components/record/ExportRecordsDropdown.jsx b/src/components/record/ExportRecordsDropdown.jsx index 60bf3a7..84e29ea 100644 --- a/src/components/record/ExportRecordsDropdown.jsx +++ b/src/components/record/ExportRecordsDropdown.jsx @@ -18,7 +18,6 @@ const ExportRecordsDropdown = ({ records, onExport }) => { variant="primary" className="action-button" > - {/*Excel export is currently not supported by the backend, uncommenting for demonstration purposes*/} onExport(ExportType.EXCEL)}>{i18n("records.export.excel")} onExport(ExportType.JSON)}>{i18n("records.export.json")} diff --git a/src/components/record/RecordsController.jsx b/src/components/record/RecordsController.jsx index 0b61668..ff62664 100644 --- a/src/components/record/RecordsController.jsx +++ b/src/components/record/RecordsController.jsx @@ -104,6 +104,7 @@ class RecordsController extends React.Component { this.props.exportRecords(exportType, { ...this.state.filters, sort: sortToParams(this.state.sort), + page: this.state.pageNumber, }), "records", ); diff --git a/src/constants/DefaultConstants.js b/src/constants/DefaultConstants.js index f0131ad..de26bf8 100644 --- a/src/constants/DefaultConstants.js +++ b/src/constants/DefaultConstants.js @@ -106,7 +106,7 @@ export const HttpHeaders = { export const MediaType = { FORM_URLENCODED: "application/x-www-form-urlencoded", - EXCEL: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + EXCEL: "application/vnd.ms-excel", JSON: "application/json", }; From 9cb62f2831c1d58b65e8eb6d9c60ebffaed83df6 Mon Sep 17 00:00:00 2001 From: Max Chopart Date: Thu, 11 Jul 2024 08:45:47 +0200 Subject: [PATCH 2/4] [New #36] Added size parameter for records export --- src/components/record/RecordsController.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/record/RecordsController.jsx b/src/components/record/RecordsController.jsx index ff62664..3fae59b 100644 --- a/src/components/record/RecordsController.jsx +++ b/src/components/record/RecordsController.jsx @@ -105,6 +105,7 @@ class RecordsController extends React.Component { ...this.state.filters, sort: sortToParams(this.state.sort), page: this.state.pageNumber, + size: BrowserStorage.get(STORAGE_TABLE_PAGE_SIZE_KEY, DEFAULT_PAGE_SIZE), }), "records", ); From bb140f5c3307b92e9e40ea2d11247a0d07c30903 Mon Sep 17 00:00:00 2001 From: Max Chopart Date: Thu, 11 Jul 2024 10:54:31 +0200 Subject: [PATCH 3/4] [Upd #36] Revert removal of headers --- src/actions/RecordsActions.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/actions/RecordsActions.js b/src/actions/RecordsActions.js index b582821..22a77a0 100644 --- a/src/actions/RecordsActions.js +++ b/src/actions/RecordsActions.js @@ -61,6 +61,9 @@ export function exportRecords(exportType, params = {}) { .get(`${API_URL}/rest/records/export`, { params, paramsSerializer, + headers: { + accept: exportType.mediaType, + }, responseType: "arraybuffer", }) .then((resp) => { From b3fbab1584e59bc14d05be126e34449c7e6ac891 Mon Sep 17 00:00:00 2001 From: Max Chopart Date: Thu, 11 Jul 2024 12:25:46 +0200 Subject: [PATCH 4/4] [Upd #36] Removing export paging parameters --- src/components/record/RecordsController.jsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/record/RecordsController.jsx b/src/components/record/RecordsController.jsx index 3fae59b..3ce2a2c 100644 --- a/src/components/record/RecordsController.jsx +++ b/src/components/record/RecordsController.jsx @@ -103,9 +103,10 @@ class RecordsController extends React.Component { trackPromise( this.props.exportRecords(exportType, { ...this.state.filters, - sort: sortToParams(this.state.sort), - page: this.state.pageNumber, - size: BrowserStorage.get(STORAGE_TABLE_PAGE_SIZE_KEY, DEFAULT_PAGE_SIZE), + // Uncomment if paging is required for export + // sort: sortToParams(this.state.sort), + // page: this.state.pageNumber, + // size: BrowserStorage.get(STORAGE_TABLE_PAGE_SIZE_KEY, DEFAULT_PAGE_SIZE), }), "records", );