Browse Source

Support filtering data exports to only certain columns with internal tables

master
Andrew Kingston 4 years ago
parent
commit
33deeb6e9e
  1. 16
      packages/server/src/api/controllers/row/internal.js

16
packages/server/src/api/controllers/row/internal.js

@ -375,6 +375,7 @@ exports.exportRows = async ctx => {
const table = await db.get(ctx.params.tableId)
const rowIds = ctx.request.body.rows
let format = ctx.query.format
const { columns } = ctx.request.body
let response = (
await db.allDocs({
include_docs: true,
@ -382,7 +383,20 @@ exports.exportRows = async ctx => {
})
).rows.map(row => row.doc)
let rows = await outputProcessing(table, response)
let result = await outputProcessing(table, response)
let rows = []
// Filter data to only specified columns if required
if (columns && columns.length) {
for (let i = 0; i < result.length; i++) {
rows[i] = {}
for (let column of columns) {
rows[i][column] = result[i][column]
}
}
} else {
rows = result
}
let headers = Object.keys(rows[0])
const exporter = exporters[format]

Loading…
Cancel
Save