From 45b53ab6ea7c93b48f745517b7de0d45459a02b4 Mon Sep 17 00:00:00 2001 From: elsiosanchez <45974454+elsiosanchez@users.noreply.github.com> Date: Mon, 20 Jan 2020 16:08:55 -0400 Subject: [PATCH] Add Export in Zip (#228) * add download in zip * Delete Console --- src/components/ADempiere/DataTable/index.vue | 14 ++++++++++++- .../ADempiere/DataTable/menu/index.vue | 5 +++++ .../ADempiere/DataTable/menu/mixinMenu.js | 20 +++++++++++++++++- src/lang/ADempiere/en.js | 1 + src/lang/ADempiere/es.js | 1 + src/utils/ADempiere/exportUtil.js | 21 +++++++++++++++++++ 6 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/components/ADempiere/DataTable/index.vue b/src/components/ADempiere/DataTable/index.vue index e6fa48c2..0541ba55 100644 --- a/src/components/ADempiere/DataTable/index.vue +++ b/src/components/ADempiere/DataTable/index.vue @@ -271,7 +271,7 @@ import MainPanel from '@/components/ADempiere/Panel' import { sortFields } from '@/utils/ADempiere' import { FIELD_READ_ONLY_FORM } from '@/components/ADempiere/Field/references' import { fieldIsDisplayed } from '@/utils/ADempiere' -import { supportedTypes, exportFileFromJson } from '@/utils/ADempiere/exportUtil' +import { supportedTypes, exportFileFromJson, exportFileZip } from '@/utils/ADempiere/exportUtil' import evaluator from '@/utils/ADempiere/evaluator' export default { @@ -670,6 +670,18 @@ export default { } }) }, + exporZipRecordTable() { + const Header = this.getterFieldListHeader + const filterVal = this.getterFieldListValue + const list = this.getDataSelection + const data = this.formatJson(filterVal, list) + const filename = 'prueba' + exportFileZip( + Header, + data, + filename + ) + }, exporRecordTable(key) { const Header = this.getterFieldListHeader const filterVal = this.getterFieldListValue diff --git a/src/components/ADempiere/DataTable/menu/index.vue b/src/components/ADempiere/DataTable/menu/index.vue index af3a4bf5..812aa0e1 100644 --- a/src/components/ADempiere/DataTable/menu/index.vue +++ b/src/components/ADempiere/DataTable/menu/index.vue @@ -28,6 +28,11 @@ > {{ process.name }} + + {{ $t('table.dataTable.exportZip') }} + filterVal.map(j => v[j])) } diff --git a/src/lang/ADempiere/en.js b/src/lang/ADempiere/en.js index f539e7e5..8ea50bf0 100644 --- a/src/lang/ADempiere/en.js +++ b/src/lang/ADempiere/en.js @@ -193,6 +193,7 @@ export default { selected: 'Selected', deleteSelection: 'Delete Selected Records', advancedQuery: 'Advanced Query', + exportZip: 'Export Zip', showOnlyMandatoryColumns: 'Show Only Mandatory Columns', showAllAvailableColumns: 'Show All Available Columns', exportRecordTable: 'Export Selected Records', diff --git a/src/lang/ADempiere/es.js b/src/lang/ADempiere/es.js index 0f04bc60..a3501333 100644 --- a/src/lang/ADempiere/es.js +++ b/src/lang/ADempiere/es.js @@ -193,6 +193,7 @@ export default { selected: 'Seleccionados', deleteSelection: 'Eliminar Registros Seleccionados', advancedQuery: 'Consulta Avanzada', + exportZip: 'Exportar Zip', showOnlyMandatoryColumns: 'Mostrar Solo Columnas Obligatorias', showAllAvailableColumns: 'Mostrar Todas Columnas Disponibles', exportRecordTable: 'Exportar Registros Seleccionados', diff --git a/src/utils/ADempiere/exportUtil.js b/src/utils/ADempiere/exportUtil.js index 52776c00..a468f9dc 100644 --- a/src/utils/ADempiere/exportUtil.js +++ b/src/utils/ADempiere/exportUtil.js @@ -1,4 +1,5 @@ import { export_json_to_excel } from '@/vendor/Export2Excel' +import { export_txt_to_zip } from '@/vendor/Export2Zip' import language from '@/lang' export const supportedTypes = { @@ -29,3 +30,23 @@ export function exportFileFromJson({ bookType: exportType }) } + +export function exportFileZip({ + header, + data, + title +}) { + var Json = data.map(dataJson => { + Object.keys(dataJson).forEach(key => { + if (typeof dataJson[key] === 'boolean') { + dataJson[key] = dataJson[key] ? language.t('components.switchActiveText') : language.t('components.switchInactiveText') + } + }) + return dataJson + }) + export_txt_to_zip( + header, + Json, + title + ) +}