diff --git a/openbis_ng_ui/src/js/components/database/Database.jsx b/openbis_ng_ui/src/js/components/database/Database.jsx index 84daa8946b7f4cb5f09bbe68730fa037688a8eca..c33694b31ad445e6044cad4621bce590ec32b569 100644 --- a/openbis_ng_ui/src/js/components/database/Database.jsx +++ b/openbis_ng_ui/src/js/components/database/Database.jsx @@ -3,6 +3,7 @@ import { withStyles } from '@material-ui/core/styles' import Content from '@src/js/components/common/content/Content.jsx' import DatabaseBrowser from '@src/js/components/database/browser/DatabaseBrowser.jsx' import DatabaseTab from '@src/js/components/database/DatabaseTab.jsx' +import DatabaseComponent from '@src/js/components/database/DatabaseComponent.jsx' import pages from '@src/js/common/consts/pages.js' import logger from '@src/js/common/logger.js' @@ -31,8 +32,8 @@ class Database extends React.PureComponent { ) } - renderComponent() { - return null + renderComponent(tab) { + return <DatabaseComponent object={tab.object} /> } renderTab(tab) { diff --git a/openbis_ng_ui/src/js/components/database/DatabaseComponent.jsx b/openbis_ng_ui/src/js/components/database/DatabaseComponent.jsx new file mode 100644 index 0000000000000000000000000000000000000000..d726e9041386e9f1dcdb5a4fcf4ff3a04f301e5e --- /dev/null +++ b/openbis_ng_ui/src/js/components/database/DatabaseComponent.jsx @@ -0,0 +1,68 @@ +import React from 'react' +import Container from '@src/js/components/common/form/Container.jsx' +import openbis from '@src/js/services/openbis.js' +import objectType from '@src/js/common/consts/objectType.js' +import logger from '@src/js/common/logger.js' + +class DatabaseComponent extends React.PureComponent { + constructor(props) { + super(props) + this.state = { + json: null + } + } + + async componentDidMount() { + const { object } = this.props + + let json = null + + if (object.type === objectType.SPACE) { + const spaces = await openbis.getSpaces( + [new openbis.SpacePermId(object.id)], + new openbis.SpaceFetchOptions() + ) + json = spaces[object.id] + } else if (object.type === objectType.PROJECT) { + const projects = await openbis.getProjects( + [new openbis.ProjectPermId(object.id)], + new openbis.ProjectFetchOptions() + ) + json = projects[object.id] + } else if (object.type === objectType.COLLECTION) { + const experiments = await openbis.getExperiments( + [new openbis.ExperimentPermId(object.id)], + new openbis.ExperimentFetchOptions() + ) + json = experiments[object.id] + } else if (object.type === objectType.OBJECT) { + const samples = await openbis.getSamples( + [new openbis.SamplePermId(object.id)], + new openbis.SampleFetchOptions() + ) + json = samples[object.id] + } else if (object.type === objectType.DATA_SET) { + const dataSets = await openbis.getDataSets( + [new openbis.DataSetPermId(object.id)], + new openbis.DataSetFetchOptions() + ) + json = dataSets[object.id] + } + + this.setState({ + json + }) + } + + render() { + logger.log(logger.DEBUG, 'DatabaseComponent.render') + + return ( + <Container> + <pre>{JSON.stringify(this.state.json, null, 2)}</pre> + </Container> + ) + } +} + +export default DatabaseComponent