From 1aa0ea62dc0f7823e1462371dbde84a4fb8e0d32 Mon Sep 17 00:00:00 2001 From: pkupczyk <piotr.kupczyk@id.ethz.ch> Date: Thu, 12 Nov 2020 16:38:49 +0100 Subject: [PATCH] NG_UI : plugins : SSDM-10401 - add extra logic for the predeployed Java plugins --- .../tools/form/plugin/PluginForm.jsx | 25 +++++++------ .../tools/form/plugin/PluginFormButtons.jsx | 3 +- .../form/plugin/PluginFormControllerLoad.js | 3 ++ .../form/plugin/PluginFormParameters.jsx | 35 +++++++++++++++++++ 4 files changed, 55 insertions(+), 11 deletions(-) diff --git a/openbis_ng_ui/src/js/components/tools/form/plugin/PluginForm.jsx b/openbis_ng_ui/src/js/components/tools/form/plugin/PluginForm.jsx index 9468b6ea7ca..9ecbede7d4e 100644 --- a/openbis_ng_ui/src/js/components/tools/form/plugin/PluginForm.jsx +++ b/openbis_ng_ui/src/js/components/tools/form/plugin/PluginForm.jsx @@ -10,6 +10,7 @@ import PluginFormFacade from '@src/js/components/tools/form/plugin/PluginFormFac import PluginFormScript from '@src/js/components/tools/form/plugin/PluginFormScript.jsx' import PluginFormParameters from '@src/js/components/tools/form/plugin/PluginFormParameters.jsx' import PluginFormButtons from '@src/js/components/tools/form/plugin/PluginFormButtons.jsx' +import openbis from '@src/js/services/openbis.js' import logger from '@src/js/common/logger.js' const styles = () => ({}) @@ -55,16 +56,20 @@ class PluginForm extends React.PureComponent { const { controller } = this const { plugin, selection, mode } = this.state - return ( - <PluginFormScript - plugin={plugin} - selection={selection} - mode={mode} - onChange={controller.handleChange} - onSelectionChange={controller.handleSelectionChange} - onBlur={controller.handleBlur} - /> - ) + if (plugin.pluginKind === openbis.PluginKind.JYTHON) { + return ( + <PluginFormScript + plugin={plugin} + selection={selection} + mode={mode} + onChange={controller.handleChange} + onSelectionChange={controller.handleSelectionChange} + onBlur={controller.handleBlur} + /> + ) + } else { + return <div></div> + } } renderAdditionalPanel() { diff --git a/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormButtons.jsx b/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormButtons.jsx index fcfb0169973..0552368188b 100644 --- a/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormButtons.jsx +++ b/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormButtons.jsx @@ -1,5 +1,6 @@ import React from 'react' import PageButtons from '@src/js/components/common/page/PageButtons.jsx' +import openbis from '@src/js/services/openbis.js' import logger from '@src/js/common/logger.js' class PluginFormButtons extends React.PureComponent { @@ -12,7 +13,7 @@ class PluginFormButtons extends React.PureComponent { <PageButtons mode={mode} changed={changed} - onEdit={onEdit} + onEdit={plugin.pluginKind === openbis.PluginKind.JYTHON ? onEdit : null} onSave={onSave} onCancel={plugin.id ? onCancel : null} /> diff --git a/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormControllerLoad.js b/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormControllerLoad.js index 7009284b7e3..c6609a04d51 100644 --- a/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormControllerLoad.js +++ b/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormControllerLoad.js @@ -59,6 +59,9 @@ export default class PluginFormControllerLoad extends PageControllerLoad { }), script: FormUtil.createField({ value: _.get(loadedPlugin, 'script', null) + }), + available: FormUtil.createField({ + value: _.get(loadedPlugin, 'available', true) }) } if (loadedPlugin) { diff --git a/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormParameters.jsx b/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormParameters.jsx index e388a406c41..f8da7b61b83 100644 --- a/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormParameters.jsx +++ b/openbis_ng_ui/src/js/components/tools/form/plugin/PluginFormParameters.jsx @@ -2,6 +2,7 @@ import React from 'react' import { withStyles } from '@material-ui/core/styles' import Container from '@src/js/components/common/form/Container.jsx' import Header from '@src/js/components/common/form/Header.jsx' +import Message from '@src/js/components/common/form/Message.jsx' import TextField from '@src/js/components/common/form/TextField.jsx' import SelectField from '@src/js/components/common/form/SelectField.jsx' import PluginFormSelectionType from '@src/js/components/tools/form/plugin/PluginFormSelectionType.js' @@ -78,6 +79,8 @@ class PluginFormParameters extends React.PureComponent { return ( <Container> <Header>Plugin</Header> + {this.renderMessageDisabled(plugin)} + {this.renderMessagePredeployed(plugin)} {this.renderName(plugin)} {this.renderEntityKind(plugin)} {this.renderDescription(plugin)} @@ -85,6 +88,38 @@ class PluginFormParameters extends React.PureComponent { ) } + renderMessageDisabled(plugin) { + const { classes } = this.props + + if (!plugin.available.value) { + return ( + <div className={classes.field}> + <Message type='warning'>The plugin is disabled.</Message> + </div> + ) + } else { + return null + } + } + + renderMessagePredeployed(plugin) { + const { classes } = this.props + + if (plugin.pluginKind === openbis.PluginKind.PREDEPLOYED) { + return ( + <div className={classes.field}> + <Message type='info'> + This is a predeployed Java plugin. Its parameters and logic are + defined in the plugin Java class and therefore cannot be changed + from the UI. + </Message> + </div> + ) + } else { + return null + } + } + renderName(plugin) { const { visible, enabled, error, value } = { ...plugin.name } -- GitLab