Newer
Older
piotr.kupczyk@id.ethz.ch
committed
import React from 'react'
piotr.kupczyk@id.ethz.ch
committed
import GridWithOpenbis from '@src/js/components/common/grid/GridWithOpenbis.jsx'
piotr.kupczyk@id.ethz.ch
committed
import GridExportOptions from '@src/js/components/common/grid/GridExportOptions.js'
piotr.kupczyk@id.ethz.ch
committed
import QueryLink from '@src/js/components/common/link/QueryLink.jsx'
import UserLink from '@src/js/components/common/link/UserLink.jsx'
piotr.kupczyk@id.ethz.ch
committed
import QueryType from '@src/js/components/common/dto/QueryType.js'
piotr.kupczyk@id.ethz.ch
committed
import messages from '@src/js/common/messages.js'
piotr.kupczyk@id.ethz.ch
committed
import logger from '@src/js/common/logger.js'
class QueriesGrid extends React.PureComponent {
render() {
logger.log(logger.DEBUG, 'QueriesGrid.render')
piotr.kupczyk@id.ethz.ch
committed
const { id, rows, selectedRowId, onSelectedRowChange, controllerRef } =
this.props
piotr.kupczyk@id.ethz.ch
committed
return (
piotr.kupczyk@id.ethz.ch
committed
<GridWithOpenbis
piotr.kupczyk@id.ethz.ch
committed
id={id}
piotr.kupczyk@id.ethz.ch
committed
settingsId={id}
piotr.kupczyk@id.ethz.ch
committed
controllerRef={controllerRef}
piotr.kupczyk@id.ethz.ch
committed
header={messages.get(messages.QUERIES)}
piotr.kupczyk@id.ethz.ch
committed
sort='name'
piotr.kupczyk@id.ethz.ch
committed
columns={[
{
name: 'name',
piotr.kupczyk@id.ethz.ch
committed
label: messages.get(messages.NAME),
piotr.kupczyk@id.ethz.ch
committed
getValue: ({ row }) => row.name.value,
renderValue: ({ value }) => {
return <QueryLink queryName={value} />
}
},
{
name: 'description',
piotr.kupczyk@id.ethz.ch
committed
label: messages.get(messages.DESCRIPTION),
piotr.kupczyk@id.ethz.ch
committed
getValue: ({ row }) => row.description.value
piotr.kupczyk@id.ethz.ch
committed
},
{
name: 'database',
piotr.kupczyk@id.ethz.ch
committed
label: messages.get(messages.DATABASE),
piotr.kupczyk@id.ethz.ch
committed
getValue: ({ row }) => row.database.value
},
{
name: 'queryType',
piotr.kupczyk@id.ethz.ch
committed
label: messages.get(messages.QUERY_TYPE),
piotr.kupczyk@id.ethz.ch
committed
getValue: ({ row }) => new QueryType(row.queryType.value).getLabel()
piotr.kupczyk@id.ethz.ch
committed
},
{
name: 'entityTypeCodePattern',
piotr.kupczyk@id.ethz.ch
committed
label: messages.get(messages.ENTITY_TYPE_PATTERN),
piotr.kupczyk@id.ethz.ch
committed
getValue: ({ row }) => row.entityTypeCodePattern.value
},
{
name: 'publicFlag',
piotr.kupczyk@id.ethz.ch
committed
label: messages.get(messages.PUBLIC),
piotr.kupczyk@id.ethz.ch
committed
getValue: ({ row }) => row.publicFlag.value
},
{
name: 'registrator',
piotr.kupczyk@id.ethz.ch
committed
label: messages.get(messages.REGISTRATOR),
piotr.kupczyk@id.ethz.ch
committed
getValue: ({ row }) => row.registrator.value,
renderValue: ({ value }) => {
return <UserLink userId={value} />
}
}
]}
rows={rows}
piotr.kupczyk@id.ethz.ch
committed
exportable={{
fileFormat: GridExportOptions.TSV_FILE_FORMAT,
filePrefix: 'queries'
}}
piotr.kupczyk@id.ethz.ch
committed
selectable={true}
piotr.kupczyk@id.ethz.ch
committed
selectedRowId={selectedRowId}
onSelectedRowChange={onSelectedRowChange}
/>
)
}
}
export default QueriesGrid