Newer
Older
piotr.kupczyk@id.ethz.ch
committed
import React from 'react'
import { withStyles } from '@material-ui/core/styles'
import logger from '@src/js/common/logger.js'
import pages from '@src/js/common/consts/pages.js'
import objectType from '@src/js/common/consts/objectType.js'
import Content from '@src/js/components/common/content/Content.jsx'
import ContentTab from '@src/js/components/common/content/ContentTab.jsx'
import ToolBrowser from '@src/js/components/tools/browser/ToolBrowser.jsx'
import ToolSearch from '@src/js/components/tools/search/ToolSearch.jsx'
piotr.kupczyk@id.ethz.ch
committed
import PluginForm from '@src/js/components/tools/form/plugin/PluginForm.jsx'
piotr.kupczyk@id.ethz.ch
committed
import QueryForm from '@src/js/components/tools/form/query/QueryForm.jsx'
piotr.kupczyk@id.ethz.ch
committed
import PersonalAccessTokenForm from '@src/js/components/tools/form/pat/PersonalAccessTokenForm.jsx'
piotr.kupczyk@id.ethz.ch
committed
import HistoryForm from '@src/js/components/tools/form/history/HistoryForm.jsx'
piotr.kupczyk@id.ethz.ch
committed
import ImportForm from '@src/js/components/tools/form/import/ImportForm.jsx'
piotr.kupczyk@id.ethz.ch
committed
import ImportType from '@src/js/components/tools/form/import/ImportType.js'
import openbis from '@src/js/services/openbis.js'
piotr.kupczyk@id.ethz.ch
committed
import messages from '@src/js/common/messages.js'
piotr.kupczyk@id.ethz.ch
committed
const styles = () => ({
container: {
display: 'flex',
width: '100%'
}
})
class Tools extends React.PureComponent {
piotr.kupczyk@id.ethz.ch
committed
render() {
logger.log(logger.DEBUG, 'Tools.render')
const classes = this.props.classes
return (
<div className={classes.container}>
<ToolBrowser />
<Content
page={pages.TOOLS}
renderComponent={this.renderComponent}
renderTab={this.renderTab}
/>
</div>
)
}
renderComponent(tab) {
const { object } = tab
if (
piotr.kupczyk@id.ethz.ch
committed
object.type === objectType.NEW_DYNAMIC_PROPERTY_PLUGIN ||
object.type === objectType.NEW_ENTITY_VALIDATION_PLUGIN ||
piotr.kupczyk@id.ethz.ch
committed
object.type === objectType.DYNAMIC_PROPERTY_PLUGIN ||
piotr.kupczyk@id.ethz.ch
committed
object.type === objectType.ENTITY_VALIDATION_PLUGIN
piotr.kupczyk@id.ethz.ch
committed
) {
piotr.kupczyk@id.ethz.ch
committed
return <PluginForm object={object} />
piotr.kupczyk@id.ethz.ch
committed
} else if (
object.type === objectType.NEW_QUERY ||
object.type === objectType.QUERY
) {
return <QueryForm object={object} />
piotr.kupczyk@id.ethz.ch
committed
} else if (object.type === objectType.HISTORY) {
return <HistoryForm object={object} />
piotr.kupczyk@id.ethz.ch
committed
} else if (object.type === objectType.IMPORT) {
return <ImportForm object={object} />
piotr.kupczyk@id.ethz.ch
committed
} else if (object.type === objectType.SEARCH) {
piotr.kupczyk@id.ethz.ch
committed
return <ToolSearch searchText={object.id} />
} else if (object.type === objectType.OVERVIEW) {
piotr.kupczyk@id.ethz.ch
committed
if (object.id === objectType.PERSONAL_ACCESS_TOKEN) {
return <PersonalAccessTokenForm />
} else {
return <ToolSearch objectType={object.id} />
}
piotr.kupczyk@id.ethz.ch
committed
}
}
renderTab(tab) {
piotr.kupczyk@id.ethz.ch
committed
const { object, changed } = tab
piotr.kupczyk@id.ethz.ch
committed
piotr.kupczyk@id.ethz.ch
committed
let label = null
if (object.type === objectType.OVERVIEW) {
const labels = {
piotr.kupczyk@id.ethz.ch
committed
[objectType.DYNAMIC_PROPERTY_PLUGIN]: messages.get(
messages.DYNAMIC_PROPERTY_PLUGINS
),
[objectType.ENTITY_VALIDATION_PLUGIN]: messages.get(
messages.ENTITY_VALIDATION_PLUGINS
),
piotr.kupczyk@id.ethz.ch
committed
[objectType.QUERY]: messages.get(messages.QUERIES),
piotr.kupczyk@id.ethz.ch
committed
[objectType.PERSONAL_ACCESS_TOKEN]: messages.get(
messages.PERSONAL_ACCESS_TOKENS
),
piotr.kupczyk@id.ethz.ch
committed
[objectType.HISTORY]: messages.get(messages.HISTORY)
piotr.kupczyk@id.ethz.ch
committed
}
label = labels[object.id]
} else {
const prefixes = {
[objectType.NEW_DYNAMIC_PROPERTY_PLUGIN]:
piotr.kupczyk@id.ethz.ch
committed
messages.get(messages.NEW_DYNAMIC_PROPERTY_PLUGIN) + ' ',
piotr.kupczyk@id.ethz.ch
committed
[objectType.NEW_ENTITY_VALIDATION_PLUGIN]:
piotr.kupczyk@id.ethz.ch
committed
messages.get(messages.NEW_ENTITY_VALIDATION_PLUGIN) + ' ',
[objectType.NEW_QUERY]: messages.get(messages.NEW_QUERY) + ' ',
[objectType.DYNAMIC_PROPERTY_PLUGIN]:
messages.get(messages.DYNAMIC_PROPERTY_PLUGIN) + ': ',
[objectType.ENTITY_VALIDATION_PLUGIN]:
messages.get(messages.ENTITY_VALIDATION_PLUGIN) + ': ',
[objectType.QUERY]: messages.get(messages.QUERY) + ': ',
piotr.kupczyk@id.ethz.ch
committed
[objectType.HISTORY]: messages.get(messages.HISTORY) + ': ',
piotr.kupczyk@id.ethz.ch
committed
[objectType.IMPORT]: messages.get(messages.IMPORT) + ': ',
piotr.kupczyk@id.ethz.ch
committed
[objectType.SEARCH]: messages.get(messages.SEARCH) + ': '
piotr.kupczyk@id.ethz.ch
committed
}
piotr.kupczyk@id.ethz.ch
committed
let suffix = object.id
if (object.type === objectType.HISTORY) {
if (object.id === openbis.EventType.DELETION) {
suffix = messages.get(messages.DELETION)
} else if (object.id === openbis.EventType.FREEZING) {
suffix = messages.get(messages.FREEZING)
}
} else if (object.type === objectType.IMPORT) {
if (object.id === ImportType.ALL) {
suffix = messages.get(messages.ALL)
}
}
label = prefixes[object.type] + suffix
piotr.kupczyk@id.ethz.ch
committed
}
piotr.kupczyk@id.ethz.ch
committed
return <ContentTab label={label} changed={changed} />
piotr.kupczyk@id.ethz.ch
committed
}
}
export default withStyles(styles)(Tools)