From cef5fff82530c4589ad3194bafcb1a0d34b40347 Mon Sep 17 00:00:00 2001 From: pkupczyk <piotr.kupczyk@id.ethz.ch> Date: Mon, 8 Aug 2022 13:59:38 +0200 Subject: [PATCH] SSDM-12090 : Personal Access Tokens: Admin UI Tool - add empty overview page --- .../src/js/common/consts/objectType.js | 2 ++ openbis_ng_ui/src/js/common/consts/routes.js | 5 +++++ openbis_ng_ui/src/js/common/messages.js | 4 ++++ .../src/js/components/tools/Tools.jsx | 10 +++++++++- .../tools/browser/ToolBrowserController.js | 19 +++++++++++++++++++ .../form/pat/PersonalAccessTokenForm.jsx | 9 +++++++++ 6 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 openbis_ng_ui/src/js/components/tools/form/pat/PersonalAccessTokenForm.jsx diff --git a/openbis_ng_ui/src/js/common/consts/objectType.js b/openbis_ng_ui/src/js/common/consts/objectType.js index b785167334b..3e3d1bfcad1 100644 --- a/openbis_ng_ui/src/js/common/consts/objectType.js +++ b/openbis_ng_ui/src/js/common/consts/objectType.js @@ -19,6 +19,7 @@ const USER = 'user' const USER_GROUP = 'userGroup' const DYNAMIC_PROPERTY_PLUGIN = 'dynamicPropertyPlugin' const ENTITY_VALIDATION_PLUGIN = 'entityValidationPlugin' +const PERSONAL_ACCESS_TOKEN = 'personalAccessToken' const QUERY = 'query' const HISTORY = 'history' const IMPORT = 'import' @@ -47,6 +48,7 @@ export default { USER_GROUP, DYNAMIC_PROPERTY_PLUGIN, ENTITY_VALIDATION_PLUGIN, + PERSONAL_ACCESS_TOKEN, QUERY, HISTORY, IMPORT, diff --git a/openbis_ng_ui/src/js/common/consts/routes.js b/openbis_ng_ui/src/js/common/consts/routes.js index 5b362e9e13e..bd38ba0e716 100644 --- a/openbis_ng_ui/src/js/common/consts/routes.js +++ b/openbis_ng_ui/src/js/common/consts/routes.js @@ -214,6 +214,11 @@ const routes = { type: objectTypes.OVERVIEW, id: objectTypes.QUERY }), + PERSONAL_ACCESS_TOKEN_OVERVIEW: new Route('/personal-access-token-overview', { + page: pages.TOOLS, + type: objectTypes.OVERVIEW, + id: objectTypes.PERSONAL_ACCESS_TOKEN + }), HISTORY: new Route('/history/:id', { page: pages.TOOLS, type: objectTypes.HISTORY diff --git a/openbis_ng_ui/src/js/common/messages.js b/openbis_ng_ui/src/js/common/messages.js index 208b7da10ab..22f4c57b821 100644 --- a/openbis_ng_ui/src/js/common/messages.js +++ b/openbis_ng_ui/src/js/common/messages.js @@ -1,5 +1,6 @@ // prettier-ignore const keys = { + ACCESS: 'ACCESS', ACTIONS: 'ACTIONS', ACTIVATE_USER: 'ACTIVATE_USER', ACTIVE: 'ACTIVE', @@ -142,6 +143,7 @@ const keys = { PARAMETERS: 'PARAMETERS', PARENTS: 'PARENTS', PASSWORD: 'PASSWORD', + PERSONAL_ACCESS_TOKENS: 'PERSONAL_ACCESS_TOKENS', PLAIN_TEXT: 'PLAIN_TEXT', PLUGIN: 'PLUGIN', PLUGIN_IS_DISABLED: 'PLUGIN_IS_DISABLED', @@ -236,6 +238,7 @@ const keys = { // prettier-ignore const messages_en = { + [keys.ACCESS]: 'Access', [keys.ACTIONS]: 'Actions', [keys.ACTIVATE_USER]: 'Activate user', [keys.ACTIVE]: 'Active', @@ -378,6 +381,7 @@ const messages_en = { [keys.PARAMETERS]: 'Parameters', [keys.PARENTS]: 'Parents', [keys.PASSWORD]: 'Password', + [keys.PERSONAL_ACCESS_TOKENS]: 'Personal Access Tokens', [keys.PLAIN_TEXT]: 'Plain Text', [keys.PLUGIN]: 'Plugin', [keys.PLUGIN_IS_DISABLED]: 'The plugin is disabled.', diff --git a/openbis_ng_ui/src/js/components/tools/Tools.jsx b/openbis_ng_ui/src/js/components/tools/Tools.jsx index 3c4ffc4664f..54c4e47cef8 100644 --- a/openbis_ng_ui/src/js/components/tools/Tools.jsx +++ b/openbis_ng_ui/src/js/components/tools/Tools.jsx @@ -9,6 +9,7 @@ import ToolBrowser from '@src/js/components/tools/browser/ToolBrowser.jsx' import ToolSearch from '@src/js/components/tools/search/ToolSearch.jsx' import PluginForm from '@src/js/components/tools/form/plugin/PluginForm.jsx' import QueryForm from '@src/js/components/tools/form/query/QueryForm.jsx' +import PersonalAccessTokenForm from '@src/js/components/tools/form/pat/PersonalAccessTokenForm.jsx' import HistoryForm from '@src/js/components/tools/form/history/HistoryForm.jsx' import ImportForm from '@src/js/components/tools/form/import/ImportForm.jsx' import ImportType from '@src/js/components/tools/form/import/ImportType.js' @@ -61,7 +62,11 @@ class Tools extends React.PureComponent { } else if (object.type === objectType.SEARCH) { return <ToolSearch searchText={object.id} /> } else if (object.type === objectType.OVERVIEW) { - return <ToolSearch objectType={object.id} /> + if (object.id === objectType.PERSONAL_ACCESS_TOKEN) { + return <PersonalAccessTokenForm /> + } else { + return <ToolSearch objectType={object.id} /> + } } } @@ -79,6 +84,9 @@ class Tools extends React.PureComponent { messages.ENTITY_VALIDATION_PLUGINS ), [objectType.QUERY]: messages.get(messages.QUERIES), + [objectType.PERSONAL_ACCESS_TOKEN]: messages.get( + messages.PERSONAL_ACCESS_TOKENS + ), [objectType.HISTORY]: messages.get(messages.HISTORY) } label = labels[object.id] diff --git a/openbis_ng_ui/src/js/components/tools/browser/ToolBrowserController.js b/openbis_ng_ui/src/js/components/tools/browser/ToolBrowserController.js index 116ca61754e..6cce15f5d46 100644 --- a/openbis_ng_ui/src/js/components/tools/browser/ToolBrowserController.js +++ b/openbis_ng_ui/src/js/components/tools/browser/ToolBrowserController.js @@ -108,6 +108,19 @@ export default class ToolBrowserController extends BrowserController { } ] + const accessNodes = [ + { + id: 'access/personalAccessTokens', + text: messages.get(messages.PERSONAL_ACCESS_TOKENS), + object: { + type: objectType.OVERVIEW, + id: objectType.PERSONAL_ACCESS_TOKEN + }, + canMatchFilter: true, + canRemove: false + } + ] + let nodes = [ { id: 'dynamicPropertyPlugins', @@ -153,6 +166,12 @@ export default class ToolBrowserController extends BrowserController { text: messages.get(messages.IMPORT), children: importNodes, canAdd: false + }, + { + id: 'access', + text: messages.get(messages.ACCESS), + children: accessNodes, + canAdd: false } ] diff --git a/openbis_ng_ui/src/js/components/tools/form/pat/PersonalAccessTokenForm.jsx b/openbis_ng_ui/src/js/components/tools/form/pat/PersonalAccessTokenForm.jsx new file mode 100644 index 00000000000..317a2a5c3e9 --- /dev/null +++ b/openbis_ng_ui/src/js/components/tools/form/pat/PersonalAccessTokenForm.jsx @@ -0,0 +1,9 @@ +import React from 'react' + +class PersonalAccessTokenForm extends React.PureComponent { + render() { + return <div>Personal Access Token Form</div> + } +} + +export default PersonalAccessTokenForm -- GitLab