diff --git a/openbis_ng_ui/src/js/common/consts/ids.js b/openbis_ng_ui/src/js/common/consts/ids.js index 9256e4b3e18d0efd3de1f934b19dad9736dabb3d..8bbfa70cf03c1c79c66eb5bce49b541ab68a9469 100644 --- a/openbis_ng_ui/src/js/common/consts/ids.js +++ b/openbis_ng_ui/src/js/common/consts/ids.js @@ -4,6 +4,7 @@ const COLLECTION_TYPES_GRID_ID = 'collection_types_grid' const DATA_SET_TYPES_GRID_ID = 'data_set_types_grid' const MATERIAL_TYPES_GRID_ID = 'material_types_grid' const VOCABULARY_TYPES_GRID_ID = 'vocabulary_types_grid' +const PROPERTY_TYPES_GRID_ID = 'property_types_grid' const USERS_GRID_ID = 'users_grid' const USERS_OF_GROUP_GRID_ID = 'users_of_group_grid' const GROUPS_GRID_ID = 'groups_grid' @@ -26,6 +27,7 @@ export default { DATA_SET_TYPES_GRID_ID, MATERIAL_TYPES_GRID_ID, VOCABULARY_TYPES_GRID_ID, + PROPERTY_TYPES_GRID_ID, USERS_GRID_ID, USERS_OF_GROUP_GRID_ID, GROUPS_GRID_ID, diff --git a/openbis_ng_ui/src/js/common/consts/objectType.js b/openbis_ng_ui/src/js/common/consts/objectType.js index 85e802cbec7cac8d2b9da817f7a537668356f430..b785167334b57f24e64a43071df43ccca953eb11 100644 --- a/openbis_ng_ui/src/js/common/consts/objectType.js +++ b/openbis_ng_ui/src/js/common/consts/objectType.js @@ -14,6 +14,7 @@ const COLLECTION_TYPE = 'collectionType' const DATA_SET_TYPE = 'dataSetType' const MATERIAL_TYPE = 'materialType' const VOCABULARY_TYPE = 'vocabularyType' +const PROPERTY_TYPE = 'propertyType' const USER = 'user' const USER_GROUP = 'userGroup' const DYNAMIC_PROPERTY_PLUGIN = 'dynamicPropertyPlugin' @@ -41,6 +42,7 @@ export default { DATA_SET_TYPE, MATERIAL_TYPE, VOCABULARY_TYPE, + PROPERTY_TYPE, USER, USER_GROUP, DYNAMIC_PROPERTY_PLUGIN, diff --git a/openbis_ng_ui/src/js/common/consts/routes.js b/openbis_ng_ui/src/js/common/consts/routes.js index fc22871b9aae2df3d39b2e6c33f5f9668605a2e0..5b362e9e13eff3b42c10d7d2659f9a3e4a30f3e7 100644 --- a/openbis_ng_ui/src/js/common/consts/routes.js +++ b/openbis_ng_ui/src/js/common/consts/routes.js @@ -124,6 +124,11 @@ const routes = { type: objectTypes.OVERVIEW, id: objectTypes.VOCABULARY_TYPE }), + PROPERTY_TYPE_OVERVIEW: new Route('/property-type-overview', { + page: pages.TYPES, + type: objectTypes.OVERVIEW, + id: objectTypes.PROPERTY_TYPE + }), USERS: new Route('/users', { page: pages.USERS }), diff --git a/openbis_ng_ui/src/js/common/messages.js b/openbis_ng_ui/src/js/common/messages.js index 45338caf0c00ae33984b5ec8254b71cdc6d28bd1..6eddc08919826d02a485a64d49720c631d04ae30 100644 --- a/openbis_ng_ui/src/js/common/messages.js +++ b/openbis_ng_ui/src/js/common/messages.js @@ -109,6 +109,7 @@ const keys = { MANDATORY: 'MANDATORY', MATERIAL_TYPE: 'MATERIAL_TYPE', MATERIAL_TYPES: 'MATERIAL_TYPES', + META_DATA: 'META_DATA', NAME: 'NAME', NEW_COLLECTION_TYPE: 'NEW_COLLECTION_TYPE', NEW_DATA_SET_TYPE: 'NEW_DATA_SET_TYPE', @@ -155,6 +156,7 @@ const keys = { PROPERTY_IS_NOT_USED: 'PROPERTY_IS_NOT_USED', PROPERTY_IS_USED: 'PROPERTY_IS_USED', PROPERTY_PARAMETERS_CANNOT_BE_CHANGED: 'PROPERTY_PARAMETERS_CANNOT_BE_CHANGED', + PROPERTY_TYPES: 'PROPERTY_TYPES', PUBLIC: 'PUBLIC', QUERIES: 'QUERIES', QUERY: 'QUERY', @@ -207,6 +209,7 @@ const keys = { UPDATE_IF_EXISTS: 'UPDATE_IF_EXISTS', UPDATE_MODE: "UPDATE_MODE", URL_TEMPLATE: 'URL_TEMPLATE', + USAGES: 'USAGES', USER: 'USER', USERS: 'USERS', USERS_WHO_REGISTERED_SOME_DATA_CANNOT_BE_REMOVED: 'USERS_WHO_REGISTERED_SOME_DATA_CANNOT_BE_REMOVED', @@ -340,6 +343,7 @@ const messages_en = { [keys.MANDATORY]: 'Mandatory', [keys.MATERIAL_TYPES]: 'Material Types', [keys.MATERIAL_TYPE]: 'Material Type', + [keys.META_DATA]: 'Meta Data', [keys.NAME]: 'Name', [keys.NEW_COLLECTION_TYPE]: 'New Collection Type', [keys.NEW_DATA_SET_TYPE]: 'New Data Set Type', @@ -386,6 +390,7 @@ const messages_en = { [keys.PROPERTY_IS_NOT_USED]: 'This property assignment is not yet used by any entities of "${0}" type.', [keys.PROPERTY_IS_USED]: 'This property assignment is already used by existing entities of "${0}" type. Removing it is also going to remove ${1} existing property value(s) - data will be lost! Are you sure you want to proceed?', [keys.PROPERTY_PARAMETERS_CANNOT_BE_CHANGED]: 'The property parameters cannot be changed.', + [keys.PROPERTY_TYPES]: 'Property Types', [keys.PUBLIC]: 'Public', [keys.QUERIES]: 'Queries', [keys.QUERY]: 'Query', @@ -438,6 +443,7 @@ const messages_en = { [keys.UPDATE_IF_EXISTS]: 'Update if exists', [keys.UPDATE_MODE]: 'Update Mode', [keys.URL_TEMPLATE]: 'URL Template', + [keys.USAGES]: 'Usages', [keys.USERS]: 'Users', [keys.USERS_WHO_REGISTERED_SOME_DATA_CANNOT_BE_REMOVED]: 'Users who have already registered some data cannot be removed.', [keys.USER]: 'User', diff --git a/openbis_ng_ui/src/js/components/common/browser/BrowserController.js b/openbis_ng_ui/src/js/components/common/browser/BrowserController.js index cd761932f46140174224d31fe6650315e1b53e7d..2565f94de6b20b77c9355d033165a324af8f39d9 100644 --- a/openbis_ng_ui/src/js/components/common/browser/BrowserController.js +++ b/openbis_ng_ui/src/js/components/common/browser/BrowserController.js @@ -43,12 +43,8 @@ export default class BrowserController { load() { return this.doLoadNodes().then(loadedNodes => { - const { - filter, - nodes, - selectedId, - selectedObject - } = this.context.getState() + const { filter, nodes, selectedId, selectedObject } = + this.context.getState() let newNodes = this._createNodes(loadedNodes) newNodes = this._filterNodes(newNodes, filter) @@ -120,12 +116,8 @@ export default class BrowserController { } filterChange(newFilter) { - const { - filter, - nodes, - selectedId, - selectedObject - } = this.context.getState() + const { filter, nodes, selectedId, selectedObject } = + this.context.getState() let initialNodes = null diff --git a/openbis_ng_ui/src/js/components/common/link/TypeLink.jsx b/openbis_ng_ui/src/js/components/common/link/EntityTypeLink.jsx similarity index 89% rename from openbis_ng_ui/src/js/components/common/link/TypeLink.jsx rename to openbis_ng_ui/src/js/components/common/link/EntityTypeLink.jsx index 0785c15fee6a419cab094181cdde4ea3c0f1a32d..c0b3d1712b9bb2c41c2efb09da2263b933a9a5b5 100644 --- a/openbis_ng_ui/src/js/components/common/link/TypeLink.jsx +++ b/openbis_ng_ui/src/js/components/common/link/EntityTypeLink.jsx @@ -5,9 +5,9 @@ import objectTypes from '@src/js/common/consts/objectType.js' import openbis from '@src/js/services/openbis.js' import logger from '@src/js/common/logger.js' -class TypeLink extends React.PureComponent { +class EntityTypeLink extends React.PureComponent { render() { - logger.log(logger.DEBUG, 'TypeLink.render') + logger.log(logger.DEBUG, 'EntityTypeLink.render') const { typeCode, typeKind } = this.props @@ -43,4 +43,4 @@ class TypeLink extends React.PureComponent { } } -export default TypeLink +export default EntityTypeLink diff --git a/openbis_ng_ui/src/js/components/common/link/PropertyTypeLink.jsx b/openbis_ng_ui/src/js/components/common/link/PropertyTypeLink.jsx new file mode 100644 index 0000000000000000000000000000000000000000..db9f2b5868c191395fd4cee27248988b5c9b75bf --- /dev/null +++ b/openbis_ng_ui/src/js/components/common/link/PropertyTypeLink.jsx @@ -0,0 +1,31 @@ +import React from 'react' +import LinkToObject from '@src/js/components/common/form/LinkToObject.jsx' +import pages from '@src/js/common/consts/pages.js' +import objectTypes from '@src/js/common/consts/objectType.js' +import logger from '@src/js/common/logger.js' + +class PropertyTypeLink extends React.PureComponent { + render() { + logger.log(logger.DEBUG, 'PropertyTypeLink.render') + + const { propertyTypeCode } = this.props + + if (propertyTypeCode) { + return ( + <LinkToObject + page={pages.TYPES} + object={{ + type: objectTypes.PROPERTY_TYPE, + id: propertyTypeCode + }} + > + {propertyTypeCode} + </LinkToObject> + ) + } else { + return null + } + } +} + +export default PropertyTypeLink diff --git a/openbis_ng_ui/src/js/components/common/link/VocabularyLink.jsx b/openbis_ng_ui/src/js/components/common/link/VocabularyTypeLink.jsx similarity index 81% rename from openbis_ng_ui/src/js/components/common/link/VocabularyLink.jsx rename to openbis_ng_ui/src/js/components/common/link/VocabularyTypeLink.jsx index 54404ff3b65b92ffd77c50562d16d03141fa2c52..6ac092e6b6386f1a8999c195eb73a6590f6aca19 100644 --- a/openbis_ng_ui/src/js/components/common/link/VocabularyLink.jsx +++ b/openbis_ng_ui/src/js/components/common/link/VocabularyTypeLink.jsx @@ -4,9 +4,9 @@ import pages from '@src/js/common/consts/pages.js' import objectTypes from '@src/js/common/consts/objectType.js' import logger from '@src/js/common/logger.js' -class VocabularyLink extends React.PureComponent { +class VocabularyTypeLink extends React.PureComponent { render() { - logger.log(logger.DEBUG, 'VocabularyLink.render') + logger.log(logger.DEBUG, 'VocabularyTypeLink.render') const { vocabularyCode } = this.props @@ -28,4 +28,4 @@ class VocabularyLink extends React.PureComponent { } } -export default VocabularyLink +export default VocabularyTypeLink diff --git a/openbis_ng_ui/src/js/components/common/page/PageWithTwoPanels.jsx b/openbis_ng_ui/src/js/components/common/page/PageWithTwoPanels.jsx index 7072d5387e95e7640b250a918b2937ee8ef4e1ec..98bd458df9a7c2d48b7551aa98493d767d910fed 100644 --- a/openbis_ng_ui/src/js/components/common/page/PageWithTwoPanels.jsx +++ b/openbis_ng_ui/src/js/components/common/page/PageWithTwoPanels.jsx @@ -66,17 +66,19 @@ class PageWithTwoPanels extends React.PureComponent { const { classes, renderMainPanel, renderAdditionalPanel, renderButtons } = this.props - const mainPanel = renderMainPanel ? renderMainPanel() : null - const additionalPanel = renderAdditionalPanel - ? renderAdditionalPanel() - : null - const buttons = renderButtons ? renderButtons() : null + const mainPanel = renderMainPanel ? renderMainPanel() : <div></div> + const additionalPanel = renderAdditionalPanel ? ( + renderAdditionalPanel() + ) : ( + <div></div> + ) + const buttons = renderButtons ? renderButtons() : <div></div> return ( <div className={classes.container}> <div className={classes.content}> - {mainPanel && <div className={classes.mainPanel}>{mainPanel}</div>} - {additionalPanel && ( + {<div className={classes.mainPanel}>{mainPanel}</div>} + { <Resizable defaultSize={{ width: 400, @@ -95,9 +97,9 @@ class PageWithTwoPanels extends React.PureComponent { > <div className={classes.additionalPanel}>{additionalPanel}</div> </Resizable> - )} + } </div> - {buttons && <div className={classes.buttons}>{buttons}</div>} + {<div className={classes.buttons}>{buttons}</div>} </div> ) } diff --git a/openbis_ng_ui/src/js/components/tools/form/import/all/ImportAllFormControllerChange.js b/openbis_ng_ui/src/js/components/tools/form/import/all/ImportAllFormControllerChange.js index ad1511f68e75421fa373496e42875fa954bb8d94..56eb5061437eddc1af03e5778a112214a208230d 100644 --- a/openbis_ng_ui/src/js/components/tools/form/import/all/ImportAllFormControllerChange.js +++ b/openbis_ng_ui/src/js/components/tools/form/import/all/ImportAllFormControllerChange.js @@ -10,7 +10,6 @@ export default class ImportAllFormControllerChange extends PageControllerChange params.value ) return { - ...oldState, fields: newObject } }) diff --git a/openbis_ng_ui/src/js/components/types/Types.jsx b/openbis_ng_ui/src/js/components/types/Types.jsx index bc15333b23660f05b3580a7594a73846100510c2..2e3a0576fce2003017c33574d1b3718ce77d539e 100644 --- a/openbis_ng_ui/src/js/components/types/Types.jsx +++ b/openbis_ng_ui/src/js/components/types/Types.jsx @@ -4,8 +4,8 @@ import Content from '@src/js/components/common/content/Content.jsx' import ContentTab from '@src/js/components/common/content/ContentTab.jsx' import TypeBrowser from '@src/js/components/types/browser/TypeBrowser.jsx' import TypeSearch from '@src/js/components/types/search/TypeSearch.jsx' -import TypeForm from '@src/js/components/types/form/TypeForm.jsx' -import VocabularyForm from '@src/js/components/types/form/VocabularyForm.jsx' +import EntityTypeForm from '@src/js/components/types/form/entitytype/EntityTypeForm.jsx' +import VocabularyTypeForm from '@src/js/components/types/form/vocabularytype/VocabularyTypeForm.jsx' import pages from '@src/js/common/consts/pages.js' import objectType from '@src/js/common/consts/objectType.js' import messages from '@src/js/common/messages.js' @@ -46,9 +46,9 @@ class Types extends React.Component { object.type === objectType.VOCABULARY_TYPE || object.type === objectType.NEW_VOCABULARY_TYPE ) { - return <VocabularyForm object={object} /> + return <VocabularyTypeForm object={object} /> } else { - return <TypeForm object={object} /> + return <EntityTypeForm object={object} /> } } @@ -63,7 +63,8 @@ class Types extends React.Component { [objectType.COLLECTION_TYPE]: messages.get(messages.COLLECTION_TYPES), [objectType.DATA_SET_TYPE]: messages.get(messages.DATA_SET_TYPES), [objectType.MATERIAL_TYPE]: messages.get(messages.MATERIAL_TYPES), - [objectType.VOCABULARY_TYPE]: messages.get(messages.VOCABULARY_TYPES) + [objectType.VOCABULARY_TYPE]: messages.get(messages.VOCABULARY_TYPES), + [objectType.PROPERTY_TYPE]: messages.get(messages.PROPERTY_TYPES) } label = labels[object.id] } else { diff --git a/openbis_ng_ui/src/js/components/types/browser/TypeBrowserController.js b/openbis_ng_ui/src/js/components/types/browser/TypeBrowserController.js index e11c646c3d1ceaf51b9bc7594444a36a8117e51f..c0e8d02a6802019adaad97de3078fe2bef01d4da 100644 --- a/openbis_ng_ui/src/js/components/types/browser/TypeBrowserController.js +++ b/openbis_ng_ui/src/js/components/types/browser/TypeBrowserController.js @@ -14,8 +14,6 @@ export default class TypeBrowserController extends BrowserController { } async doLoadNodes() { - const vocabularyFetchOptions = new openbis.VocabularyFetchOptions() - return Promise.all([ openbis.searchSampleTypes( new openbis.SampleTypeSearchCriteria(), @@ -35,7 +33,7 @@ export default class TypeBrowserController extends BrowserController { ), openbis.searchVocabularies( new openbis.VocabularySearchCriteria(), - vocabularyFetchOptions + new openbis.VocabularyFetchOptions() ) ]).then( ([ @@ -131,6 +129,14 @@ export default class TypeBrowserController extends BrowserController { children: vocabularyTypeNodes, childrenType: objectType.NEW_VOCABULARY_TYPE, canAdd: true + }, + { + id: 'propertyTypes', + text: messages.get(messages.PROPERTY_TYPES), + object: { + type: objectType.OVERVIEW, + id: objectType.PROPERTY_TYPE + } } ] @@ -147,7 +153,7 @@ export default class TypeBrowserController extends BrowserController { } } - doNodeRemove(node) { + async doNodeRemove(node) { if (!node.object) { return Promise.resolve() } @@ -155,34 +161,31 @@ export default class TypeBrowserController extends BrowserController { const { type, id } = node.object const reason = 'deleted via ng_ui' - return this._prepareRemoveOperations(type, id, reason) - .then(operations => { - const options = new openbis.SynchronousOperationExecutionOptions() - options.setExecuteInOrder(true) - return openbis.executeOperations(operations, options) - }) - .then(() => { - this.context.dispatch(actions.objectDelete(this.getPage(), type, id)) - }) - .catch(error => { - this.context.dispatch(actions.errorChange(error)) - }) + try { + const operations = await this._prepareRemoveOperations(type, id, reason) + const options = new openbis.SynchronousOperationExecutionOptions() + options.setExecuteInOrder(true) + await openbis.executeOperations(operations, options) + this.context.dispatch(actions.objectDelete(this.getPage(), type, id)) + } catch (error) { + this.context.dispatch(actions.errorChange(error)) + } } - _prepareRemoveOperations(type, id, reason) { + async _prepareRemoveOperations(type, id, reason) { if ( type === objectType.OBJECT_TYPE || type === objectType.COLLECTION_TYPE || type === objectType.DATA_SET_TYPE || type === objectType.MATERIAL_TYPE ) { - return this._prepareRemoveEntityTypeOperations(type, id, reason) + return await this._prepareRemoveEntityTypeOperations(type, id, reason) } else if (type === objectType.VOCABULARY_TYPE) { - return this._prepareRemoveVocabularyTypeOperations(type, id, reason) + return await this._prepareRemoveVocabularyTypeOperations(type, id, reason) } } - _prepareRemoveEntityTypeOperations(type, id, reason) { + async _prepareRemoveEntityTypeOperations(type, id, reason) { const operations = [] if (type === objectType.OBJECT_TYPE) { @@ -223,32 +226,78 @@ export default class TypeBrowserController extends BrowserController { ) } - const criteria = new openbis.PropertyTypeSearchCriteria() - criteria.withCode().thatStartsWith(id + '.') - const fo = new openbis.PropertyTypeFetchOptions() + const removeUnusuedPropertyTypesOperation = + await this._prepareRemoveUnusedPropertyTypesOperations(type, id) - return openbis.searchPropertyTypes(criteria, fo).then(results => { - const ids = results - .getObjects() - .map(propertyType => propertyType.getPermId()) - if (!_.isEmpty(ids)) { - const options = new openbis.PropertyTypeDeletionOptions() - options.setReason(reason) - operations.push(new openbis.DeletePropertyTypesOperation(ids, options)) + if (removeUnusuedPropertyTypesOperation) { + operations.push(removeUnusuedPropertyTypesOperation) + } + + return operations + } + + async _prepareRemoveUnusedPropertyTypesOperations(type, id) { + const entityKind = this.getEntityKind(type) + + const propertyAssignmentFetchOptions = + new openbis.PropertyAssignmentFetchOptions() + propertyAssignmentFetchOptions.withPropertyType() + propertyAssignmentFetchOptions.withEntityType() + + const propertyAssignments = await openbis.searchPropertyAssignments( + new openbis.PropertyAssignmentSearchCriteria(), + propertyAssignmentFetchOptions + ) + + const potentialPropertyTypesToDelete = [] + const propertyTypeUsages = {} + + propertyAssignments.objects.forEach(propertyAssignment => { + const propertyTypeCode = propertyAssignment.propertyType.code + + propertyTypeUsages[propertyTypeCode] = + (propertyTypeUsages[propertyTypeCode] || 0) + 1 + + if ( + propertyAssignment.entityType.permId.permId === id && + propertyAssignment.entityType.permId.entityKind === entityKind && + !propertyAssignment.propertyType.managedInternally + ) { + potentialPropertyTypesToDelete.push(propertyTypeCode) } - return operations }) + + if (potentialPropertyTypesToDelete.length > 0) { + const propertyTypesToDelete = [] + + potentialPropertyTypesToDelete.forEach(propertyTypeCode => { + if (propertyTypeUsages[propertyTypeCode] === 1) { + propertyTypesToDelete.push( + new openbis.PropertyTypePermId(propertyTypeCode) + ) + } + }) + + if (propertyTypesToDelete.length > 0) { + const options = new openbis.PropertyTypeDeletionOptions() + options.setReason('deleted via ng_ui') + return new openbis.DeletePropertyTypesOperation( + propertyTypesToDelete, + options + ) + } + } + + return null } - _prepareRemoveVocabularyTypeOperations(type, id, reason) { + async _prepareRemoveVocabularyTypeOperations(type, id, reason) { const options = new openbis.VocabularyDeletionOptions() options.setReason(reason) - return Promise.resolve([ - new openbis.DeleteVocabulariesOperation( - [new openbis.VocabularyPermId(id)], - options - ) - ]) + return new openbis.DeleteVocabulariesOperation( + [new openbis.VocabularyPermId(id)], + options + ) } doGetObservedModifications() { @@ -276,6 +325,18 @@ export default class TypeBrowserController extends BrowserController { } } + getEntityKind(type) { + if (type === objectType.OBJECT_TYPE) { + return openbis.EntityKind.SAMPLE + } else if (type === objectType.COLLECTION_TYPE) { + return openbis.EntityKind.EXPERIMENT + } else if (type === objectType.DATA_SET_TYPE) { + return openbis.EntityKind.DATA_SET + } else if (type === objectType.MATERIAL_TYPE) { + return openbis.EntityKind.MATERIAL + } + } + isSystemUser() { return ( this.context.getProps().session && diff --git a/openbis_ng_ui/src/js/components/types/common/TypesGrid.jsx b/openbis_ng_ui/src/js/components/types/common/EntityTypesGrid.jsx similarity index 91% rename from openbis_ng_ui/src/js/components/types/common/TypesGrid.jsx rename to openbis_ng_ui/src/js/components/types/common/EntityTypesGrid.jsx index c9c2d58a45943d71ec5b4e73c9973637052981b8..ca7e09d3b7847f4e6a148e930e5412d625083c6c 100644 --- a/openbis_ng_ui/src/js/components/types/common/TypesGrid.jsx +++ b/openbis_ng_ui/src/js/components/types/common/EntityTypesGrid.jsx @@ -1,14 +1,14 @@ import React from 'react' import GridWithSettings from '@src/js/components/common/grid/GridWithSettings.jsx' -import TypeLink from '@src/js/components/common/link/TypeLink.jsx' +import EntityTypeLink from '@src/js/components/common/link/EntityTypeLink.jsx' import PluginLink from '@src/js/components/common/link/PluginLink.jsx' import openbis from '@src/js/services/openbis.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' -class TypesGrid extends React.PureComponent { +class EntityTypesGrid extends React.PureComponent { render() { - logger.log(logger.DEBUG, 'TypesGrid.render') + logger.log(logger.DEBUG, 'EntityTypesGrid.render') const { id, rows, selectedRowId, onSelectedRowChange, controllerRef } = this.props @@ -51,7 +51,7 @@ class TypesGrid extends React.PureComponent { label: messages.get(messages.CODE), getValue: ({ row }) => row.code, renderValue: ({ row }) => { - return <TypeLink typeCode={row.code} typeKind={kind} /> + return <EntityTypeLink typeCode={row.code} typeKind={kind} /> } }) @@ -119,4 +119,4 @@ class TypesGrid extends React.PureComponent { } } -export default TypesGrid +export default EntityTypesGrid diff --git a/openbis_ng_ui/src/js/components/types/common/PropertyTypesGrid.jsx b/openbis_ng_ui/src/js/components/types/common/PropertyTypesGrid.jsx new file mode 100644 index 0000000000000000000000000000000000000000..1b879db7380652004fe3e866d6e006eadc837db9 --- /dev/null +++ b/openbis_ng_ui/src/js/components/types/common/PropertyTypesGrid.jsx @@ -0,0 +1,115 @@ +import React from 'react' +import GridWithSettings from '@src/js/components/common/grid/GridWithSettings.jsx' +import EntityTypeLink from '@src/js/components/common/link/EntityTypeLink.jsx' +import VocabularyTypeLink from '@src/js/components/common/link/VocabularyTypeLink.jsx' +import PropertyTypesGridUsagesCell from '@src/js/components/types/common/PropertyTypesGridUsagesCell.jsx' +import PropertyTypesGridXMLCell from '@src/js/components/types/common/PropertyTypesGridXMLCell.jsx' +import openbis from '@src/js/services/openbis.js' +import messages from '@src/js/common/messages.js' +import logger from '@src/js/common/logger.js' + +class PropertyTypesGrid extends React.PureComponent { + render() { + logger.log(logger.DEBUG, 'PropertyTypesGrid.render') + + const { id, rows, selectedRowId, onSelectedRowChange, controllerRef } = + this.props + + return ( + <GridWithSettings + id={id} + controllerRef={controllerRef} + header={messages.get(messages.PROPERTY_TYPES)} + columns={[ + { + name: 'code', + label: messages.get(messages.CODE), + getValue: ({ row }) => row.code + }, + { + name: 'label', + label: messages.get(messages.LABEL), + getValue: ({ row }) => row.label + }, + { + name: 'description', + label: messages.get(messages.DESCRIPTION), + getValue: ({ row }) => row.description + }, + { + name: 'dataType', + label: messages.get(messages.DATA_TYPE), + getValue: ({ row }) => row.dataType + }, + { + name: 'vocabulary', + label: messages.get(messages.VOCABULARY_TYPE), + getValue: ({ row }) => row.vocabulary, + renderValue: ({ row }) => ( + <VocabularyTypeLink vocabularyCode={row.vocabulary} /> + ) + }, + { + name: 'materialType', + label: messages.get(messages.MATERIAL_TYPE), + getValue: ({ row }) => row.materialType, + renderValue: ({ row }) => ( + <EntityTypeLink + typeKind={openbis.EntityKind.MATERIAL} + typeCode={row.materialType} + /> + ) + }, + { + name: 'sampleType', + label: messages.get(messages.OBJECT_TYPE), + getValue: ({ row }) => row.sampleType, + renderValue: ({ row }) => ( + <EntityTypeLink + typeKind={openbis.EntityKind.SAMPLE} + typeCode={row.sampleType} + /> + ) + }, + { + name: 'schema', + label: messages.get(messages.XML_SCHEMA), + getValue: ({ row }) => row.schema, + renderValue: ({ row }) => { + return <PropertyTypesGridXMLCell value={row.schema} /> + } + }, + { + name: 'transformation', + label: messages.get(messages.XSLT_SCRIPT), + getValue: ({ row }) => row.transformation, + renderValue: ({ row }) => { + return <PropertyTypesGridXMLCell value={row.transformation} /> + } + }, + { + name: 'usages', + label: messages.get(messages.USAGES), + getValue: ({ row }) => + row.usages ? JSON.stringify(row.usages) : null, + compareValue: ({ row1, row2, defaultCompare }) => { + const value1 = row1.usages ? row1.usages.count : 0 + const value2 = row2.usages ? row2.usages.count : 0 + return defaultCompare(value1, value2) + }, + renderValue: ({ row }) => { + return <PropertyTypesGridUsagesCell value={row.usages} /> + } + } + ]} + rows={rows} + sort='code' + selectable={true} + selectedRowId={selectedRowId} + onSelectedRowChange={onSelectedRowChange} + /> + ) + } +} + +export default PropertyTypesGrid diff --git a/openbis_ng_ui/src/js/components/types/common/PropertyTypesGridUsagesCell.jsx b/openbis_ng_ui/src/js/components/types/common/PropertyTypesGridUsagesCell.jsx new file mode 100644 index 0000000000000000000000000000000000000000..3cbc21e132f2f33db2e92f555cc12f7a78031817 --- /dev/null +++ b/openbis_ng_ui/src/js/components/types/common/PropertyTypesGridUsagesCell.jsx @@ -0,0 +1,111 @@ +import React from 'react' +import { withStyles } from '@material-ui/core/styles' +import Collapse from '@material-ui/core/Collapse' +import Link from '@material-ui/core/Link' +import EntityTypeLink from '@src/js/components/common/link/EntityTypeLink.jsx' +import openbis from '@src/js/services/openbis.js' +import messages from '@src/js/common/messages.js' +import logger from '@src/js/common/logger.js' + +const styles = theme => ({ + usages: { + padding: 0, + margin: 0, + marginTop: theme.spacing(1) + }, + usage: { + listStyle: 'none', + margin: 0, + padding: 0 + } +}) + +class PropertyTypesGridUsagesCell extends React.PureComponent { + constructor(props) { + super(props) + this.state = { + visible: false + } + this.handleVisibilityChange = this.handleVisibilityChange.bind(this) + } + + handleVisibilityChange() { + this.setState(state => ({ + visible: !state.visible + })) + } + + render() { + logger.log(logger.DEBUG, 'PropertyTypesGridUsagesCell.render') + + const { value } = this.props + const { visible } = this.state + + if (value) { + return ( + <div> + <div> + {value.count} ( + <Link + onClick={() => { + this.handleVisibilityChange() + }} + > + {visible + ? messages.get(messages.HIDE) + : messages.get(messages.SHOW)} + </Link> + ) + </div> + <Collapse in={visible} mountOnEnter={true} unmountOnExit={true}> + <div> + {this.renderUsages( + openbis.EntityKind.EXPERIMENT, + messages.get(messages.COLLECTION_TYPES), + value.experimentTypes + )} + {this.renderUsages( + openbis.EntityKind.SAMPLE, + messages.get(messages.OBJECT_TYPES), + value.sampleTypes + )} + {this.renderUsages( + openbis.EntityKind.DATA_SET, + messages.get(messages.DATA_SET_TYPES), + value.dataSetTypes + )} + {this.renderUsages( + openbis.EntityKind.MATERIAL, + messages.get(messages.MATERIAL_TYPES), + value.materialTypes + )} + </div> + </Collapse> + </div> + ) + } else { + return 0 + } + } + + renderUsages(usageKind, usagesHeader, usagesList) { + if (usagesList.length === 0) { + return null + } + + const { classes } = this.props + + return ( + <ul className={classes.usages}> + {usagesHeader}: + {usagesList.map(usage => ( + <li key={usage} className={classes.usage}> + <EntityTypeLink typeKind={usageKind} typeCode={usage} /> + </li> + ))} + </ul> + ) + } +} + +export default withStyles(styles)(PropertyTypesGridUsagesCell) diff --git a/openbis_ng_ui/src/js/components/types/common/PropertyTypesGridXMLCell.jsx b/openbis_ng_ui/src/js/components/types/common/PropertyTypesGridXMLCell.jsx new file mode 100644 index 0000000000000000000000000000000000000000..68d4607ee275b84d63acf9feb507b4b070fb469f --- /dev/null +++ b/openbis_ng_ui/src/js/components/types/common/PropertyTypesGridXMLCell.jsx @@ -0,0 +1,53 @@ +import React from 'react' +import Collapse from '@material-ui/core/Collapse' +import Link from '@material-ui/core/Link' +import messages from '@src/js/common/messages.js' +import logger from '@src/js/common/logger.js' + +class PropertyTypesGridXMLCell extends React.PureComponent { + constructor(props) { + super(props) + this.state = { + visible: false + } + this.handleVisibilityChange = this.handleVisibilityChange.bind(this) + } + + handleVisibilityChange() { + this.setState(state => ({ + visible: !state.visible + })) + } + + render() { + logger.log(logger.DEBUG, 'PropertyTypesGridXMLCell.render') + + const { value } = this.props + const { visible } = this.state + + if (value) { + return ( + <div> + <div> + <Link + onClick={() => { + this.handleVisibilityChange() + }} + > + {visible + ? messages.get(messages.HIDE) + : messages.get(messages.SHOW)} + </Link> + </div> + <Collapse in={visible} mountOnEnter={true} unmountOnExit={true}> + <pre>{value}</pre> + </Collapse> + </div> + ) + } else { + return null + } + } +} + +export default PropertyTypesGridXMLCell diff --git a/openbis_ng_ui/src/js/components/types/common/VocabulariesGrid.jsx b/openbis_ng_ui/src/js/components/types/common/VocabularyTypesGrid.jsx similarity index 79% rename from openbis_ng_ui/src/js/components/types/common/VocabulariesGrid.jsx rename to openbis_ng_ui/src/js/components/types/common/VocabularyTypesGrid.jsx index ab7ee679c7a986a9d573366fb03f2a3c4cc0eb51..34ab388f9c33b788dbb15a1f2e4aad03cb8f7eb7 100644 --- a/openbis_ng_ui/src/js/components/types/common/VocabulariesGrid.jsx +++ b/openbis_ng_ui/src/js/components/types/common/VocabularyTypesGrid.jsx @@ -1,12 +1,12 @@ import React from 'react' import GridWithSettings from '@src/js/components/common/grid/GridWithSettings.jsx' -import VocabularyLink from '@src/js/components/common/link/VocabularyLink.jsx' +import VocabularyTypeLink from '@src/js/components/common/link/VocabularyTypeLink.jsx' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' -class VocabulariesGrid extends React.PureComponent { +class VocabularyTypesGrid extends React.PureComponent { render() { - logger.log(logger.DEBUG, 'VocabulariesGrid.render') + logger.log(logger.DEBUG, 'VocabularyTypesGrid.render') const { id, rows, selectedRowId, onSelectedRowChange, controllerRef } = this.props @@ -22,7 +22,7 @@ class VocabulariesGrid extends React.PureComponent { label: messages.get(messages.CODE), getValue: ({ row }) => row.code, renderValue: ({ row }) => { - return <VocabularyLink vocabularyCode={row.code} /> + return <VocabularyTypeLink vocabularyCode={row.code} /> } }, { @@ -46,4 +46,4 @@ class VocabulariesGrid extends React.PureComponent { } } -export default VocabulariesGrid +export default VocabularyTypesGrid diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormController.js b/openbis_ng_ui/src/js/components/types/form/TypeFormController.js deleted file mode 100644 index 7e59015623a100ecb6bcccf5a474a67cdfda18df..0000000000000000000000000000000000000000 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormController.js +++ /dev/null @@ -1,72 +0,0 @@ -import PageController from '@src/js/components/common/page/PageController.js' -import TypeFormControllerLoad from '@src/js/components/types/form/TypeFormControllerLoad.js' -import TypeFormControllerValidate from '@src/js/components/types/form/TypeFormControllerValidate.js' -import TypeFormControllerSave from '@src/js/components/types/form/TypeFormControllerSave.js' -import TypeFormControllerRemove from '@src/js/components/types/form/TypeFormControllerRemove.js' -import TypeFormControllerAddSection from '@src/js/components/types/form/TypeFormControllerAddSection.js' -import TypeFormControllerAddProperty from '@src/js/components/types/form/TypeFormControllerAddProperty.js' -import TypeFormControllerChange from '@src/js/components/types/form/TypeFormControllerChange.js' -import TypeFormControllerOrderChange from '@src/js/components/types/form/TypeFormControllerOrderChange.js' -import TypeFormControllerStrategies from '@src/js/components/types/form/TypeFormControllerStrategies.js' -import pages from '@src/js/common/consts/pages.js' - -export default class TypeFormController extends PageController { - getPage() { - return pages.TYPES - } - - getNewObjectType() { - const strategies = new TypeFormControllerStrategies() - return strategies.getStrategy(this.object.type).getNewObjectType() - } - - getExistingObjectType() { - const strategies = new TypeFormControllerStrategies() - return strategies.getStrategy(this.object.type).getExistingObjectType() - } - - load() { - return new TypeFormControllerLoad(this).execute() - } - - validate(autofocus) { - return new TypeFormControllerValidate(this).execute(autofocus) - } - - handleOrderChange(type, params) { - new TypeFormControllerOrderChange(this).execute(type, params) - } - - handleChange(type, params) { - new TypeFormControllerChange(this).execute(type, params) - } - - handleAddSection() { - new TypeFormControllerAddSection(this).execute() - } - - handleAddProperty() { - new TypeFormControllerAddProperty(this).execute() - } - - handleRemove() { - new TypeFormControllerRemove(this).executeRemove() - } - - handleRemoveConfirm() { - new TypeFormControllerRemove(this).executeRemove(true) - } - - handleRemoveCancel() { - new TypeFormControllerRemove(this).executeCancel() - } - - handleSave() { - return new TypeFormControllerSave(this).execute() - } - - getDictionaries() { - const { dictionaries } = this.context.getState() - return dictionaries || {} - } -} diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormController.js b/openbis_ng_ui/src/js/components/types/form/VocabularyFormController.js deleted file mode 100644 index c914de25a80894e5cc11e0a7898fd3cbd1e43013..0000000000000000000000000000000000000000 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormController.js +++ /dev/null @@ -1,59 +0,0 @@ -import PageController from '@src/js/components/common/page/PageController.js' -import VocabularyFormControllerLoad from '@src/js/components/types/form/VocabularyFormControllerLoad.js' -import VocabularyFormControllerAdd from '@src/js/components/types/form/VocabularyFormControllerAdd.js' -import VocabularyFormControllerRemove from '@src/js/components/types/form/VocabularyFormControllerRemove.js' -import VocabularyFormControllerValidate from '@src/js/components/types/form/VocabularyFormControllerValidate.js' -import VocabularyFormControllerChange from '@src/js/components/types/form/VocabularyFormControllerChange.js' -import VocabularyFormControllerSelectionChange from '@src/js/components/types/form/VocabularyFormControllerSelectionChange.js' -import VocabularyFormControllerSave from '@src/js/components/types/form/VocabularyFormControllerSave.js' -import pages from '@src/js/common/consts/pages.js' -import objectTypes from '@src/js/common/consts/objectType.js' - -export default class VocabularyFormController extends PageController { - constructor(facade) { - super(facade) - } - - getPage() { - return pages.TYPES - } - - getNewObjectType() { - return objectTypes.NEW_VOCABULARY_TYPE - } - - getExistingObjectType() { - return objectTypes.VOCABULARY_TYPE - } - - load() { - return new VocabularyFormControllerLoad(this).execute() - } - - validate(autofocus) { - return new VocabularyFormControllerValidate(this).execute(autofocus) - } - - handleAdd() { - return new VocabularyFormControllerAdd(this).execute() - } - - handleRemove() { - return new VocabularyFormControllerRemove(this).execute() - } - - handleChange(type, params) { - return new VocabularyFormControllerChange(this).execute(type, params) - } - - handleSelectionChange(type, params) { - return new VocabularyFormControllerSelectionChange(this).execute( - type, - params - ) - } - - handleSave() { - return new VocabularyFormControllerSave(this).execute() - } -} diff --git a/openbis_ng_ui/src/js/components/types/form/TypeForm.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeForm.jsx similarity index 73% rename from openbis_ng_ui/src/js/components/types/form/TypeForm.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeForm.jsx index 819a60b4bf9c5659ef376ec0337247f1c9e51981..d4771d4c5a29e62bde3b74bd0991832ebd1ddf40 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeForm.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeForm.jsx @@ -4,13 +4,13 @@ import { connect } from 'react-redux' import { withStyles } from '@material-ui/core/styles' import ComponentContext from '@src/js/components/common/ComponentContext.js' import PageWithTwoPanels from '@src/js/components/common/page/PageWithTwoPanels.jsx' -import TypeFormController from '@src/js/components/types/form/TypeFormController.js' -import TypeFormFacade from '@src/js/components/types/form/TypeFormFacade.js' -import TypeFormButtons from '@src/js/components/types/form/TypeFormButtons.jsx' -import TypeFormParameters from '@src/js/components/types/form/TypeFormParameters.jsx' -import TypeFormPreview from '@src/js/components/types/form/TypeFormPreview.jsx' -import TypeFormDialogRemoveSection from '@src/js/components/types/form/TypeFormDialogRemoveSection.jsx' -import TypeFormDialogRemoveProperty from '@src/js/components/types/form/TypeFormDialogRemoveProperty.jsx' +import EntityTypeFormController from '@src/js/components/types/form/entitytype/EntityTypeFormController.js' +import EntityTypeFormFacade from '@src/js/components/types/form/entitytype/EntityTypeFormFacade.js' +import EntityTypeFormButtons from '@src/js/components/types/form/entitytype/EntityTypeFormButtons.jsx' +import EntityTypeFormParameters from '@src/js/components/types/form/entitytype/EntityTypeFormParameters.jsx' +import EntityTypeFormPreview from '@src/js/components/types/form/entitytype/EntityTypeFormPreview.jsx' +import EntityTypeFormDialogRemoveSection from '@src/js/components/types/form/entitytype/EntityTypeFormDialogRemoveSection.jsx' +import EntityTypeFormDialogRemoveProperty from '@src/js/components/types/form/entitytype/EntityTypeFormDialogRemoveProperty.jsx' import selectors from '@src/js/store/selectors/selectors.js' import logger from '@src/js/common/logger.js' @@ -22,7 +22,7 @@ function mapStateToProps(state) { } } -class TypeForm extends React.PureComponent { +class EntityTypeForm extends React.PureComponent { constructor(props) { super(props) @@ -31,7 +31,7 @@ class TypeForm extends React.PureComponent { if (this.props.controller) { this.controller = this.props.controller } else { - this.controller = new TypeFormController(new TypeFormFacade()) + this.controller = new EntityTypeFormController(new EntityTypeFormFacade()) } this.controller.init(new ComponentContext(this)) @@ -42,7 +42,7 @@ class TypeForm extends React.PureComponent { } render() { - logger.log(logger.DEBUG, 'TypeForm.render') + logger.log(logger.DEBUG, 'EntityTypeForm.render') const { loading, loaded, type } = this.state @@ -63,7 +63,7 @@ class TypeForm extends React.PureComponent { const { type, properties, sections, preview, selection, mode } = this.state return ( - <TypeFormPreview + <EntityTypeFormPreview controller={controller} type={type} properties={properties} @@ -83,7 +83,7 @@ class TypeForm extends React.PureComponent { let { type, properties, sections, selection, mode } = this.state return ( - <TypeFormParameters + <EntityTypeFormParameters controller={controller} type={type} properties={properties} @@ -112,7 +112,7 @@ class TypeForm extends React.PureComponent { return ( <React.Fragment> - <TypeFormButtons + <EntityTypeFormButtons onAddSection={controller.handleAddSection} onAddProperty={controller.handleAddProperty} onRemove={controller.handleRemove} @@ -126,7 +126,7 @@ class TypeForm extends React.PureComponent { changed={changed} mode={mode} /> - <TypeFormDialogRemoveSection + <EntityTypeFormDialogRemoveSection open={removeSectionDialogOpen} object={object} selection={selection} @@ -134,7 +134,7 @@ class TypeForm extends React.PureComponent { onConfirm={controller.handleRemoveConfirm} onCancel={controller.handleRemoveCancel} /> - <TypeFormDialogRemoveProperty + <EntityTypeFormDialogRemoveProperty open={removePropertyDialogOpen} object={object} selection={selection} @@ -147,4 +147,7 @@ class TypeForm extends React.PureComponent { } } -export default _.flow(connect(mapStateToProps), withStyles(styles))(TypeForm) +export default _.flow( + connect(mapStateToProps), + withStyles(styles) +)(EntityTypeForm) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormButtons.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormButtons.jsx similarity index 79% rename from openbis_ng_ui/src/js/components/types/form/TypeFormButtons.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormButtons.jsx index bb4029707613b5ca38bc9d774bab7813921cd004..94558b7a3c371ee59e1726d51c47d23ba094887d 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormButtons.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormButtons.jsx @@ -3,8 +3,8 @@ import { connect } from 'react-redux' import PageMode from '@src/js/components/common/page/PageMode.js' import PageButtons from '@src/js/components/common/page/PageButtons.jsx' import Button from '@src/js/components/common/form/Button.jsx' -import TypeFormControllerStrategies from '@src/js/components/types/form/TypeFormControllerStrategies.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerStrategies from '@src/js/components/types/form/entitytype/EntityTypeFormControllerStrategies.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import users from '@src/js/common/consts/users.js' import messages from '@src/js/common/messages.js' import selectors from '@src/js/store/selectors/selectors.js' @@ -16,17 +16,19 @@ function mapStateToProps(state) { } } -class TypeFormButtons extends React.PureComponent { +class EntityTypeFormButtons extends React.PureComponent { constructor(props) { super(props) } render() { - logger.log(logger.DEBUG, 'TypeFormButtons.render') + logger.log(logger.DEBUG, 'EntityTypeFormButtons.render') const { mode, onEdit, onSave, onCancel, changed, object } = this.props - const strategy = new TypeFormControllerStrategies().getStrategy(object.type) + const strategy = new EntityTypeFormControllerStrategies().getStrategy( + object.type + ) const existing = object.type === strategy.getExistingObjectType() return ( @@ -84,15 +86,15 @@ class TypeFormButtons extends React.PureComponent { const { selection } = this.props return ( selection && - (selection.type === TypeFormSelectionType.PROPERTY || - selection.type === TypeFormSelectionType.SECTION) + (selection.type === EntityTypeFormSelectionType.PROPERTY || + selection.type === EntityTypeFormSelectionType.SECTION) ) } isNonSystemInternalSectionSelected() { const { selection, sections, properties } = this.props - if (selection && selection.type === TypeFormSelectionType.SECTION) { + if (selection && selection.type === EntityTypeFormSelectionType.SECTION) { const section = sections.find( section => section.id === selection.params.id ) @@ -108,7 +110,7 @@ class TypeFormButtons extends React.PureComponent { isNonSystemInternalPropertySelected() { const { selection, properties } = this.props - if (selection && selection.type === TypeFormSelectionType.PROPERTY) { + if (selection && selection.type === EntityTypeFormSelectionType.PROPERTY) { const property = properties.find( property => property.id === selection.params.id ) @@ -123,4 +125,4 @@ class TypeFormButtons extends React.PureComponent { } } -export default connect(mapStateToProps)(TypeFormButtons) +export default connect(mapStateToProps)(EntityTypeFormButtons) diff --git a/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormController.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormController.js new file mode 100644 index 0000000000000000000000000000000000000000..b06e7fc8a273149c4f966364c9642f3764460178 --- /dev/null +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormController.js @@ -0,0 +1,72 @@ +import PageController from '@src/js/components/common/page/PageController.js' +import EntityTypeFormControllerLoad from '@src/js/components/types/form/entitytype/EntityTypeFormControllerLoad.js' +import EntityTypeFormControllerValidate from '@src/js/components/types/form/entitytype/EntityTypeFormControllerValidate.js' +import EntityTypeFormControllerSave from '@src/js/components/types/form/entitytype/EntityTypeFormControllerSave.js' +import EntityTypeFormControllerRemove from '@src/js/components/types/form/entitytype/EntityTypeFormControllerRemove.js' +import EntityTypeFormControllerAddSection from '@src/js/components/types/form/entitytype/EntityTypeFormControllerAddSection.js' +import EntityTypeFormControllerAddProperty from '@src/js/components/types/form/entitytype/EntityTypeFormControllerAddProperty.js' +import EntityTypeFormControllerChange from '@src/js/components/types/form/entitytype/EntityTypeFormControllerChange.js' +import EntityTypeFormControllerOrderChange from '@src/js/components/types/form/entitytype/EntityTypeFormControllerOrderChange.js' +import EntityTypeFormControllerStrategies from '@src/js/components/types/form/entitytype/EntityTypeFormControllerStrategies.js' +import pages from '@src/js/common/consts/pages.js' + +export default class EntityTypeFormController extends PageController { + getPage() { + return pages.TYPES + } + + getNewObjectType() { + const strategies = new EntityTypeFormControllerStrategies() + return strategies.getStrategy(this.object.type).getNewObjectType() + } + + getExistingObjectType() { + const strategies = new EntityTypeFormControllerStrategies() + return strategies.getStrategy(this.object.type).getExistingObjectType() + } + + load() { + return new EntityTypeFormControllerLoad(this).execute() + } + + validate(autofocus) { + return new EntityTypeFormControllerValidate(this).execute(autofocus) + } + + handleOrderChange(type, params) { + new EntityTypeFormControllerOrderChange(this).execute(type, params) + } + + handleChange(type, params) { + new EntityTypeFormControllerChange(this).execute(type, params) + } + + handleAddSection() { + new EntityTypeFormControllerAddSection(this).execute() + } + + handleAddProperty() { + new EntityTypeFormControllerAddProperty(this).execute() + } + + handleRemove() { + new EntityTypeFormControllerRemove(this).executeRemove() + } + + handleRemoveConfirm() { + new EntityTypeFormControllerRemove(this).executeRemove(true) + } + + handleRemoveCancel() { + new EntityTypeFormControllerRemove(this).executeCancel() + } + + handleSave() { + return new EntityTypeFormControllerSave(this).execute() + } + + getDictionaries() { + const { dictionaries } = this.context.getState() + return dictionaries || {} + } +} diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerAddProperty.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerAddProperty.js similarity index 88% rename from openbis_ng_ui/src/js/components/types/form/TypeFormControllerAddProperty.js rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerAddProperty.js index dfb05d7048c2d97ac8d6dc15235eff58ee7af73f..8f01f5cced203dad290881e62d67ca8602ce40d5 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerAddProperty.js +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerAddProperty.js @@ -1,7 +1,7 @@ -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' -export default class TypeFormControllerAddProperty { +export default class EntityTypeFormControllerAddProperty { constructor(controller) { this.controller = controller this.context = controller.context @@ -15,12 +15,12 @@ export default class TypeFormControllerAddProperty { let sectionPropertyIndex = null if (selection) { - if (selection.type === TypeFormSelectionType.SECTION) { + if (selection.type === EntityTypeFormSelectionType.SECTION) { sectionIndex = sections.findIndex( section => section.id === selection.params.id ) sectionPropertyIndex = sections[sectionIndex].properties.length - } else if (selection.type === TypeFormSelectionType.PROPERTY) { + } else if (selection.type === EntityTypeFormSelectionType.PROPERTY) { sections.forEach((section, i) => { section.properties.forEach((property, j) => { if (property === selection.params.id) { @@ -91,7 +91,7 @@ export default class TypeFormControllerAddProperty { newSections[sectionIndex] = newSection let newSelection = { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: newProperty.id, part: 'code' diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerAddSection.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerAddSection.js similarity index 76% rename from openbis_ng_ui/src/js/components/types/form/TypeFormControllerAddSection.js rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerAddSection.js index 994e35bc255beead815da4627756752f15b61779..f2e24655e7d9db659f8d8b06d9f630608abe6e6d 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerAddSection.js +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerAddSection.js @@ -1,7 +1,7 @@ -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' -export default class TypeFormControllerAddSection { +export default class EntityTypeFormControllerAddSection { constructor(controller) { this.controller = controller this.context = controller.context @@ -17,19 +17,19 @@ export default class TypeFormControllerAddSection { properties: [] } let newSelection = { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: newSection.id } } if (selection) { - if (selection.type === TypeFormSelectionType.SECTION) { + if (selection.type === EntityTypeFormSelectionType.SECTION) { let index = sections.findIndex( section => section.id === selection.params.id ) newSections.splice(index + 1, 0, newSection) - } else if (selection.type === TypeFormSelectionType.PROPERTY) { + } else if (selection.type === EntityTypeFormSelectionType.PROPERTY) { let index = sections.findIndex( section => section.properties.indexOf(selection.params.id) !== -1 ) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerChange.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerChange.js similarity index 95% rename from openbis_ng_ui/src/js/components/types/form/TypeFormControllerChange.js rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerChange.js index 4dfbad9d09082ccdb40b665b755b77afaa8140c3..893044ebd1b0c72574415555ee5cb135ffaae46e 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerChange.js +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerChange.js @@ -1,19 +1,19 @@ import _ from 'lodash' import openbis from '@src/js/services/openbis.js' import PageControllerChange from '@src/js/components/common/page/PageControllerChange.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' import users from '@src/js/common/consts/users.js' -export default class TypeFormControllerChange extends PageControllerChange { +export default class EntityTypeFormControllerChange extends PageControllerChange { async execute(type, params) { - if (type === TypeFormSelectionType.TYPE) { + if (type === EntityTypeFormSelectionType.TYPE) { await this._handleChangeType(params) - } else if (type === TypeFormSelectionType.SECTION) { + } else if (type === EntityTypeFormSelectionType.SECTION) { await this._handleChangeSection(params) - } else if (type === TypeFormSelectionType.PROPERTY) { + } else if (type === EntityTypeFormSelectionType.PROPERTY) { await this._handleChangeProperty(params) - } else if (type === TypeFormSelectionType.PREVIEW) { + } else if (type === EntityTypeFormSelectionType.PREVIEW) { await this._handleChangePreview(params) } } diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerLoad.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerLoad.js similarity index 94% rename from openbis_ng_ui/src/js/components/types/form/TypeFormControllerLoad.js rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerLoad.js index bac942c5dd90f0fbed966360c5b48ec75d5046c3..bda39cc2fdf461773c975df317431d5aca211403 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerLoad.js +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerLoad.js @@ -1,13 +1,13 @@ import _ from 'lodash' import openbis from '@src/js/services/openbis.js' import PageControllerLoad from '@src/js/components/common/page/PageControllerLoad.js' -import TypeFormControllerStrategies from '@src/js/components/types/form/TypeFormControllerStrategies.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerStrategies from '@src/js/components/types/form/entitytype/EntityTypeFormControllerStrategies.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' import users from '@src/js/common/consts/users.js' import util from '@src/js/common/util.js' -export default class TypeFormControllerLoad extends PageControllerLoad { +export default class EntityTypeFormControllerLoad extends PageControllerLoad { async load(object, isNew) { return Promise.all([ this._loadDictionaries(object), @@ -251,7 +251,7 @@ export default class TypeFormControllerLoad extends PageControllerLoad { if (!oldSelection) { return null - } else if (oldSelection.type === TypeFormSelectionType.SECTION) { + } else if (oldSelection.type === EntityTypeFormSelectionType.SECTION) { let sectionIndex = -1 oldSections.forEach((oldSection, i) => { @@ -263,14 +263,14 @@ export default class TypeFormControllerLoad extends PageControllerLoad { if (sectionIndex >= 0 && sectionIndex < newSections.length) { const newSection = newSections[sectionIndex] return { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: newSection.id, part: oldSelection.params.part } } } - } else if (oldSelection.type === TypeFormSelectionType.PROPERTY) { + } else if (oldSelection.type === EntityTypeFormSelectionType.PROPERTY) { let sectionIndex = -1 let propertyIndex = -1 @@ -291,7 +291,7 @@ export default class TypeFormControllerLoad extends PageControllerLoad { ) { const newProperty = newSection.properties[propertyIndex] return { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: newProperty, part: oldSelection.params.part @@ -312,7 +312,7 @@ export default class TypeFormControllerLoad extends PageControllerLoad { } _getStrategy() { - const strategies = new TypeFormControllerStrategies() + const strategies = new EntityTypeFormControllerStrategies() strategies.extendObjectTypeStrategy(new ObjectTypeStrategy()) strategies.extendCollectionTypeStrategy(new CollectionTypeStrategy()) strategies.extendDataSetTypeStrategy(new DataSetTypeStrategy()) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerOrderChange.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerOrderChange.js similarity index 90% rename from openbis_ng_ui/src/js/components/types/form/TypeFormControllerOrderChange.js rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerOrderChange.js index a0a5a3d190ae607306a01cdc4740ed53670d4db3..7a7ff69fa2675afe82a158d816d29e47c86fd610 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerOrderChange.js +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerOrderChange.js @@ -1,17 +1,17 @@ import _ from 'lodash' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' -export default class TypeFormControllerOrderChange { +export default class EntityTypeFormControllerOrderChange { constructor(controller) { this.controller = controller this.context = controller.context } execute(type, params) { - if (type === TypeFormSelectionType.SECTION) { + if (type === EntityTypeFormSelectionType.SECTION) { let { fromIndex, toIndex } = params this._handleOrderChangeSection(fromIndex, toIndex) - } else if (type === TypeFormSelectionType.PROPERTY) { + } else if (type === EntityTypeFormSelectionType.PROPERTY) { let { fromSectionId, toSectionId, fromIndex, toIndex } = params this._handleOrderChangeProperty( fromSectionId, diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerRemove.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerRemove.js similarity index 90% rename from openbis_ng_ui/src/js/components/types/form/TypeFormControllerRemove.js rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerRemove.js index 10094ef44583f049b2116e9164f5f9a4ebf2dbbd..e6af0e104ed283f64cec094f599e2b31d72ac450 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerRemove.js +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerRemove.js @@ -1,7 +1,7 @@ import _ from 'lodash' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' -export default class TypeFormControllerRemove { +export default class EntityTypeFormControllerRemove { constructor(controller) { this.controller = controller this.context = controller.context @@ -11,20 +11,20 @@ export default class TypeFormControllerRemove { executeRemove(confirmed = false) { const { selection } = this.context.getState() - if (selection.type === TypeFormSelectionType.SECTION) { + if (selection.type === EntityTypeFormSelectionType.SECTION) { this._handleRemoveSection(selection.params.id, confirmed) - } else if (selection.type === TypeFormSelectionType.PROPERTY) { + } else if (selection.type === EntityTypeFormSelectionType.PROPERTY) { this._handleRemoveProperty(selection.params.id, confirmed) } } executeCancel() { const { selection } = this.context.getState() - if (selection.type === TypeFormSelectionType.SECTION) { + if (selection.type === EntityTypeFormSelectionType.SECTION) { this.context.setState({ removeSectionDialogOpen: false }) - } else if (selection.type === TypeFormSelectionType.PROPERTY) { + } else if (selection.type === EntityTypeFormSelectionType.PROPERTY) { this.context.setState({ removePropertyDialogOpen: false }) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerSave.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerSave.js similarity index 85% rename from openbis_ng_ui/src/js/components/types/form/TypeFormControllerSave.js rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerSave.js index b7fbf2424390fb42010cb58abb9be3f0cb5b68d9..175382d3cb16860189140b1548adc8704f157019 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerSave.js +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerSave.js @@ -1,11 +1,11 @@ import _ from 'lodash' import PageControllerSave from '@src/js/components/common/page/PageControllerSave.js' -import TypeFormControllerStrategies from '@src/js/components/types/form/TypeFormControllerStrategies.js' +import EntityTypeFormControllerStrategies from '@src/js/components/types/form/entitytype/EntityTypeFormControllerStrategies.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' import users from '@src/js/common/consts/users.js' import openbis from '@src/js/services/openbis.js' -export default class TypeFormControllerSave extends PageControllerSave { +export default class EntityTypeFormControllerSave extends PageControllerSave { async save() { const state = this.context.getState() const type = this._prepareType(state.type) @@ -48,6 +48,13 @@ export default class TypeFormControllerSave extends PageControllerSave { operations.push(this._createTypeOperation(type, assignments)) } + const deleteUnusedPropertyTypesOperation = + await this._deleteUnusedPropertyTypesOperation(type, properties) + + if (deleteUnusedPropertyTypesOperation) { + operations.push(deleteUnusedPropertyTypesOperation) + } + const options = new openbis.SynchronousOperationExecutionOptions() options.setExecuteInOrder(true) await this.facade.executeOperations(operations, options) @@ -173,6 +180,47 @@ export default class TypeFormControllerSave extends PageControllerSave { return new openbis.UpdatePropertyTypesOperation([update]) } + async _deleteUnusedPropertyTypesOperation(type, properties) { + const potentialPropertyTypesToDelete = [] + + if (type.original) { + type.original.properties.forEach(originalProperty => { + const property = _.find(properties, [ + 'code.value', + originalProperty.code.value + ]) + if (!property && !originalProperty.internal.value) { + potentialPropertyTypesToDelete.push(originalProperty) + } + }) + } + + if (potentialPropertyTypesToDelete.length > 0) { + const propertyTypesToDelete = [] + + const assignments = await this.facade.loadAssignments() + potentialPropertyTypesToDelete.forEach(propertyType => { + const propertyTypeAssignments = assignments[propertyType.code.value] + if (propertyTypeAssignments === 1) { + propertyTypesToDelete.push( + new openbis.PropertyTypePermId(propertyType.code.value) + ) + } + }) + + if (propertyTypesToDelete.length > 0) { + const options = new openbis.PropertyTypeDeletionOptions() + options.setReason('deleted via ng_ui') + return new openbis.DeletePropertyTypesOperation( + propertyTypesToDelete, + options + ) + } + } + + return null + } + _propertyAssignmentCreation(property, index) { let creation = new openbis.PropertyAssignmentCreation() creation.setOrdinal(index + 1) @@ -237,7 +285,7 @@ export default class TypeFormControllerSave extends PageControllerSave { } _getStrategy() { - const strategies = new TypeFormControllerStrategies() + const strategies = new EntityTypeFormControllerStrategies() strategies.extendObjectTypeStrategy(new ObjectTypeStrategy()) strategies.extendCollectionTypeStrategy(new CollectionTypeStrategy()) strategies.extendDataSetTypeStrategy(new DataSetTypeStrategy()) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerStrategies.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerStrategies.js similarity index 97% rename from openbis_ng_ui/src/js/components/types/form/TypeFormControllerStrategies.js rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerStrategies.js index eecde473fa960a1d319ff381c22fd07e9b716349..c4b530479a0e3e1c7d231beb22dbb57cb6f124f5 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerStrategies.js +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerStrategies.js @@ -1,7 +1,7 @@ import objectTypes from '@src/js/common/consts/objectType.js' import openbis from '@src/js/services/openbis.js' -export default class TypeFormControllerStrategies { +export default class EntityTypeFormControllerStrategies { constructor() { this.objectTypeStrategy = { getEntityKind: function () { diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerValidate.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerValidate.js similarity index 86% rename from openbis_ng_ui/src/js/components/types/form/TypeFormControllerValidate.js rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerValidate.js index c3d6dd9c85714c9885f2035ccae1e228343a9187..100cb409b17f807a6a1207f4d5669c65acd85721 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormControllerValidate.js +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormControllerValidate.js @@ -1,9 +1,9 @@ import PageControllerValidate from '@src/js/components/common/page/PageConrollerValidate.js' -import TypeFormControllerStrategies from '@src/js/components/types/form/TypeFormControllerStrategies.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerStrategies from '@src/js/components/types/form/entitytype/EntityTypeFormControllerStrategies.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import messages from '@src/js/common/messages.js' -export default class TypeFormControllerValidate extends PageControllerValidate { +export default class EntityTypeFormControllerValidate extends PageControllerValidate { validate(validator) { const { type, properties } = this.context.getState() @@ -21,14 +21,14 @@ export default class TypeFormControllerValidate extends PageControllerValidate { if (firstError.object === type) { await this.setSelection({ - type: TypeFormSelectionType.TYPE, + type: EntityTypeFormSelectionType.TYPE, params: { part: firstError.name } }) } else if (properties.includes(firstError.object)) { await this.setSelection({ - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: firstError.object.id, part: firstError.name @@ -94,7 +94,7 @@ export default class TypeFormControllerValidate extends PageControllerValidate { } _getStrategy() { - const strategies = new TypeFormControllerStrategies() + const strategies = new EntityTypeFormControllerStrategies() strategies.extendObjectTypeStrategy(new ObjectTypeStrategy()) strategies.extendCollectionTypeStrategy(new CollectionTypeStrategy()) strategies.extendDataSetTypeStrategy(new DataSetTypeStrategy()) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormDialogRemoveProperty.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormDialogRemoveProperty.jsx similarity index 76% rename from openbis_ng_ui/src/js/components/types/form/TypeFormDialogRemoveProperty.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormDialogRemoveProperty.jsx index aa9b26f72f63da0eac12a73c5727a71d8779728a..6af5960c081aa3f6a1092a32cc39441abe44c5ba 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormDialogRemoveProperty.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormDialogRemoveProperty.jsx @@ -1,13 +1,13 @@ import _ from 'lodash' import React from 'react' import ConfirmationDialog from '@src/js/components/common/dialog/ConfirmationDialog.jsx' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' -class TypeFormDialogRemoveProperty extends React.Component { +class EntityTypeFormDialogRemoveProperty extends React.Component { render() { - logger.log(logger.DEBUG, 'TypeFormDialogRemoveProperty.render') + logger.log(logger.DEBUG, 'EntityTypeFormDialogRemoveProperty.render') const { open, object, onConfirm, onCancel } = this.props @@ -44,7 +44,7 @@ class TypeFormDialogRemoveProperty extends React.Component { getProperty() { const { selection, properties } = this.props - if (selection && selection.type === TypeFormSelectionType.PROPERTY) { + if (selection && selection.type === EntityTypeFormSelectionType.PROPERTY) { return _.find(properties, ['id', selection.params.id]) } else { return null @@ -52,4 +52,4 @@ class TypeFormDialogRemoveProperty extends React.Component { } } -export default TypeFormDialogRemoveProperty +export default EntityTypeFormDialogRemoveProperty diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormDialogRemoveSection.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormDialogRemoveSection.jsx similarity index 77% rename from openbis_ng_ui/src/js/components/types/form/TypeFormDialogRemoveSection.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormDialogRemoveSection.jsx index a3a38b8667682d0c51031594cfc6d111f0fa4693..d0dc77bb89854151d904e08acf20bd9850a3f092 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormDialogRemoveSection.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormDialogRemoveSection.jsx @@ -1,13 +1,13 @@ import _ from 'lodash' import React from 'react' import ConfirmationDialog from '@src/js/components/common/dialog/ConfirmationDialog.jsx' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' -class TypeFormDialogRemoveSection extends React.Component { +class EntityTypeFormDialogRemoveSection extends React.Component { render() { - logger.log(logger.DEBUG, 'TypeFormDialogRemoveSection.render') + logger.log(logger.DEBUG, 'EntityTypeFormDialogRemoveSection.render') const { open, object, onConfirm, onCancel } = this.props @@ -48,7 +48,7 @@ class TypeFormDialogRemoveSection extends React.Component { getSection() { const { selection, sections } = this.props - if (selection && selection.type === TypeFormSelectionType.SECTION) { + if (selection && selection.type === EntityTypeFormSelectionType.SECTION) { return _.find(sections, ['id', selection.params.id]) } else { return null @@ -56,4 +56,4 @@ class TypeFormDialogRemoveSection extends React.Component { } } -export default TypeFormDialogRemoveSection +export default EntityTypeFormDialogRemoveSection diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormFacade.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormFacade.js similarity index 97% rename from openbis_ng_ui/src/js/components/types/form/TypeFormFacade.js rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormFacade.js index 0dd93f830b7467fd0610ae8f049156786416e981..f096aa89d1e41e4da01a9f439597640e2ce87d5b 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormFacade.js +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormFacade.js @@ -1,7 +1,7 @@ import openbis from '@src/js/services/openbis.js' -import TypeFormControllerStrategies from '@src/js/components/types/form/TypeFormControllerStrategies.js' +import EntityTypeFormControllerStrategies from '@src/js/components/types/form/entitytype/EntityTypeFormControllerStrategies.js' -export default class TypeFormFacade { +export default class EntityTypeFormFacade { async loadType(object) { const strategy = this._getStrategy(object.type) const id = new openbis.EntityTypePermId(object.id) @@ -199,7 +199,7 @@ export default class TypeFormFacade { } _getStrategy(type) { - const strategies = new TypeFormControllerStrategies() + const strategies = new EntityTypeFormControllerStrategies() strategies.extendObjectTypeStrategy(new ObjectTypeStrategy()) strategies.extendCollectionTypeStrategy(new CollectionTypeStrategy()) strategies.extendDataSetTypeStrategy(new DataSetTypeStrategy()) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormParameters.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParameters.jsx similarity index 62% rename from openbis_ng_ui/src/js/components/types/form/TypeFormParameters.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParameters.jsx index 2c88ee90587e2218789b248f9cf109b5a246c889..a8e3e5e0e0a7bb1d8b4ce496639ba1d59515e8b6 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormParameters.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParameters.jsx @@ -1,19 +1,19 @@ import React from 'react' import { withStyles } from '@material-ui/core/styles' -import TypeFormParametersType from '@src/js/components/types/form/TypeFormParametersType.jsx' -import TypeFormParametersProperty from '@src/js/components/types/form/TypeFormParametersProperty.jsx' -import TypeFormParametersSection from '@src/js/components/types/form/TypeFormParametersSection.jsx' +import EntityTypeFormParametersType from '@src/js/components/types/form/entitytype/EntityTypeFormParametersType.jsx' +import EntityTypeFormParametersProperty from '@src/js/components/types/form/entitytype/EntityTypeFormParametersProperty.jsx' +import EntityTypeFormParametersSection from '@src/js/components/types/form/entitytype/EntityTypeFormParametersSection.jsx' import logger from '@src/js/common/logger.js' const styles = () => ({}) -class TypeFormParameters extends React.PureComponent { +class EntityTypeFormParameters extends React.PureComponent { constructor(props) { super(props) } render() { - logger.log(logger.DEBUG, 'TypeFormParameters.render') + logger.log(logger.DEBUG, 'EntityTypeFormParameters.render') const { controller, @@ -29,7 +29,7 @@ class TypeFormParameters extends React.PureComponent { return ( <div> - <TypeFormParametersType + <EntityTypeFormParametersType controller={controller} type={type} selection={selection} @@ -38,7 +38,7 @@ class TypeFormParameters extends React.PureComponent { onSelectionChange={onSelectionChange} onBlur={onBlur} /> - <TypeFormParametersSection + <EntityTypeFormParametersSection sections={sections} selection={selection} mode={mode} @@ -46,7 +46,7 @@ class TypeFormParameters extends React.PureComponent { onSelectionChange={onSelectionChange} onBlur={onBlur} /> - <TypeFormParametersProperty + <EntityTypeFormParametersProperty controller={controller} type={type} properties={properties} @@ -61,4 +61,4 @@ class TypeFormParameters extends React.PureComponent { } } -export default withStyles(styles)(TypeFormParameters) +export default withStyles(styles)(EntityTypeFormParameters) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormParametersProperty.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParametersProperty.jsx similarity index 96% rename from openbis_ng_ui/src/js/components/types/form/TypeFormParametersProperty.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParametersProperty.jsx index a322a6c66936b634e990055e21860f84ffa3c405..a06099fad174b6451f10f479976442278eca15be 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormParametersProperty.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParametersProperty.jsx @@ -9,7 +9,7 @@ import CheckboxField from '@src/js/components/common/form/CheckboxField.jsx' import TextField from '@src/js/components/common/form/TextField.jsx' import SelectField from '@src/js/components/common/form/SelectField.jsx' import Message from '@src/js/components/common/form/Message.jsx' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import DataType from '@src/js/components/common/dto/DataType.js' import openbis from '@src/js/services/openbis.js' import users from '@src/js/common/consts/users.js' @@ -29,7 +29,7 @@ function mapStateToProps(state) { } } -class TypeFormParametersProperty extends React.PureComponent { +class EntityTypeFormParametersProperty extends React.PureComponent { constructor(props) { super(props) this.state = {} @@ -82,7 +82,7 @@ class TypeFormParametersProperty extends React.PureComponent { handleChange(event) { const property = this.getProperty(this.props) - this.props.onChange(TypeFormSelectionType.PROPERTY, { + this.props.onChange(EntityTypeFormSelectionType.PROPERTY, { id: property.id, field: event.target.name, value: event.target.value @@ -91,7 +91,7 @@ class TypeFormParametersProperty extends React.PureComponent { handleFocus(event) { const property = this.getProperty(this.props) - this.props.onSelectionChange(TypeFormSelectionType.PROPERTY, { + this.props.onSelectionChange(EntityTypeFormSelectionType.PROPERTY, { id: property.id, part: event.target.name }) @@ -102,7 +102,7 @@ class TypeFormParametersProperty extends React.PureComponent { } render() { - logger.log(logger.DEBUG, 'TypeFormParametersProperty.render') + logger.log(logger.DEBUG, 'EntityTypeFormParametersProperty.render') const property = this.getProperty(this.props) if (!property) { @@ -497,7 +497,7 @@ class TypeFormParametersProperty extends React.PureComponent { name='schema' error={error} disabled={!enabled} - value={value} + value={mode === 'view' ? <pre>{value}</pre> : value} multiline={true} mode={mode} onChange={this.handleChange} @@ -525,7 +525,7 @@ class TypeFormParametersProperty extends React.PureComponent { name='transformation' error={error} disabled={!enabled} - value={value} + value={mode === 'view' ? <pre>{value}</pre> : value} multiline={true} mode={mode} onChange={this.handleChange} @@ -693,7 +693,7 @@ class TypeFormParametersProperty extends React.PureComponent { getProperty(props) { let { properties, selection } = props - if (selection && selection.type === TypeFormSelectionType.PROPERTY) { + if (selection && selection.type === EntityTypeFormSelectionType.PROPERTY) { let [property] = properties.filter( property => property.id === selection.params.id ) @@ -707,4 +707,4 @@ class TypeFormParametersProperty extends React.PureComponent { export default _.flow( connect(mapStateToProps), withStyles(styles) -)(TypeFormParametersProperty) +)(EntityTypeFormParametersProperty) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormParametersSection.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParametersSection.jsx similarity index 83% rename from openbis_ng_ui/src/js/components/types/form/TypeFormParametersSection.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParametersSection.jsx index 35f0f6eee5a8461b891c3f67021c5fd7c35fe3f3..e351f630d1d442949bd517abc3cec5c3cb027207 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormParametersSection.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParametersSection.jsx @@ -3,7 +3,7 @@ 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 TextField from '@src/js/components/common/form/TextField.jsx' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' @@ -13,7 +13,7 @@ const styles = theme => ({ } }) -class TypeFormParametersSection extends React.PureComponent { +class EntityTypeFormParametersSection extends React.PureComponent { constructor(props) { super(props) this.reference = React.createRef() @@ -43,7 +43,7 @@ class TypeFormParametersSection extends React.PureComponent { handleChange(event) { const section = this.getSection(this.props) - this.props.onChange(TypeFormSelectionType.SECTION, { + this.props.onChange(EntityTypeFormSelectionType.SECTION, { id: section.id, field: event.target.name, value: event.target.value @@ -55,7 +55,7 @@ class TypeFormParametersSection extends React.PureComponent { } render() { - logger.log(logger.DEBUG, 'TypeFormParametersSection.render') + logger.log(logger.DEBUG, 'EntityTypeFormParametersSection.render') const section = this.getSection(this.props) if (!section) { @@ -98,7 +98,7 @@ class TypeFormParametersSection extends React.PureComponent { getSection(props) { let { sections, selection } = props - if (selection && selection.type === TypeFormSelectionType.SECTION) { + if (selection && selection.type === EntityTypeFormSelectionType.SECTION) { let [section] = sections.filter( section => section.id === selection.params.id ) @@ -109,4 +109,4 @@ class TypeFormParametersSection extends React.PureComponent { } } -export default withStyles(styles)(TypeFormParametersSection) +export default withStyles(styles)(EntityTypeFormParametersSection) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormParametersType.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParametersType.jsx similarity index 94% rename from openbis_ng_ui/src/js/components/types/form/TypeFormParametersType.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParametersType.jsx index e9a95465b6198ec95e1c8d0e74a26bb5c629b904..1d9ec2f65ccb145a38a0294dd9c09fa0d8bd6657 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormParametersType.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormParametersType.jsx @@ -5,7 +5,7 @@ import Header from '@src/js/components/common/form/Header.jsx' import CheckboxField from '@src/js/components/common/form/CheckboxField.jsx' import TextField from '@src/js/components/common/form/TextField.jsx' import SelectField from '@src/js/components/common/form/SelectField.jsx' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import objectTypes from '@src/js/common/consts/objectType.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' @@ -16,7 +16,7 @@ const styles = theme => ({ } }) -class TypeFormParametersType extends React.PureComponent { +class EntityTypeFormParametersType extends React.PureComponent { constructor(props) { super(props) this.state = {} @@ -60,14 +60,14 @@ class TypeFormParametersType extends React.PureComponent { } handleChange(event) { - this.props.onChange(TypeFormSelectionType.TYPE, { + this.props.onChange(EntityTypeFormSelectionType.TYPE, { field: event.target.name, value: event.target.value }) } handleFocus(event) { - this.props.onSelectionChange(TypeFormSelectionType.TYPE, { + this.props.onSelectionChange(EntityTypeFormSelectionType.TYPE, { part: event.target.name }) } @@ -77,7 +77,7 @@ class TypeFormParametersType extends React.PureComponent { } render() { - logger.log(logger.DEBUG, 'TypeFormParametersType.render') + logger.log(logger.DEBUG, 'EntityTypeFormParametersType.render') const type = this.getType(this.props) if (!type) { @@ -369,7 +369,7 @@ class TypeFormParametersType extends React.PureComponent { getType(props) { let { type, selection } = props - if (!selection || selection.type === TypeFormSelectionType.TYPE) { + if (!selection || selection.type === EntityTypeFormSelectionType.TYPE) { return type } else { return null @@ -377,4 +377,4 @@ class TypeFormParametersType extends React.PureComponent { } } -export default withStyles(styles)(TypeFormParametersType) +export default withStyles(styles)(EntityTypeFormParametersType) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormPreview.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreview.jsx similarity index 74% rename from openbis_ng_ui/src/js/components/types/form/TypeFormPreview.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreview.jsx index cb11d7b235191db61e0c516367ca628d41df48e8..7d9a9c2e155636739f91aeba319cd5324995b7f6 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormPreview.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreview.jsx @@ -3,10 +3,10 @@ import React from 'react' import { DragDropContext, Droppable } from 'react-beautiful-dnd' import { withStyles } from '@material-ui/core/styles' import Container from '@src/js/components/common/form/Container.jsx' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' -import TypeFormPreviewHeader from '@src/js/components/types/form/TypeFormPreviewHeader.jsx' -import TypeFormPreviewProperty from '@src/js/components/types/form/TypeFormPreviewProperty.jsx' -import TypeFormPreviewSection from '@src/js/components/types/form/TypeFormPreviewSection.jsx' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' +import EntityTypeFormPreviewHeader from '@src/js/components/types/form/entitytype/EntityTypeFormPreviewHeader.jsx' +import EntityTypeFormPreviewProperty from '@src/js/components/types/form/entitytype/EntityTypeFormPreviewProperty.jsx' +import EntityTypeFormPreviewSection from '@src/js/components/types/form/entitytype/EntityTypeFormPreviewSection.jsx' import logger from '@src/js/common/logger.js' const styles = () => ({ @@ -25,7 +25,7 @@ const styles = () => ({ } }) -class TypeFormPreview extends React.PureComponent { +class EntityTypeFormPreview extends React.PureComponent { constructor(props) { super(props) this.state = {} @@ -56,13 +56,13 @@ class TypeFormPreview extends React.PureComponent { return } - if (result.type === TypeFormSelectionType.SECTION) { - this.props.onOrderChange(TypeFormSelectionType.SECTION, { + if (result.type === EntityTypeFormSelectionType.SECTION) { + this.props.onOrderChange(EntityTypeFormSelectionType.SECTION, { fromIndex: result.source.index, toIndex: result.destination.index }) - } else if (result.type === TypeFormSelectionType.PROPERTY) { - this.props.onOrderChange(TypeFormSelectionType.PROPERTY, { + } else if (result.type === EntityTypeFormSelectionType.PROPERTY) { + this.props.onOrderChange(EntityTypeFormSelectionType.PROPERTY, { fromSectionId: result.source.droppableId, fromIndex: result.source.index, toSectionId: result.destination.droppableId, @@ -72,14 +72,14 @@ class TypeFormPreview extends React.PureComponent { } render() { - logger.log(logger.DEBUG, 'TypeFormPreview.render') + logger.log(logger.DEBUG, 'EntityTypeFormPreview.render') const { mode, classes, type, sections, preview, onChange } = this.props return ( <Container className={classes.container} onClick={this.handleClick}> <div className={classes.form}> - <TypeFormPreviewHeader + <EntityTypeFormPreviewHeader type={type} preview={preview} mode={mode} @@ -89,7 +89,10 @@ class TypeFormPreview extends React.PureComponent { onDragStart={this.handleDragStart} onDragEnd={this.handleDragEnd} > - <Droppable droppableId='root' type={TypeFormSelectionType.SECTION}> + <Droppable + droppableId='root' + type={EntityTypeFormSelectionType.SECTION} + > {provided => ( <div ref={provided.innerRef} @@ -117,7 +120,7 @@ class TypeFormPreview extends React.PureComponent { ) return ( - <TypeFormPreviewSection + <EntityTypeFormPreviewSection key={section.id} section={section} index={index} @@ -126,7 +129,7 @@ class TypeFormPreview extends React.PureComponent { onSelectionChange={onSelectionChange} > {this.renderProperties(sectionProperties, 0)} - </TypeFormPreviewSection> + </EntityTypeFormPreviewSection> ) } @@ -143,7 +146,7 @@ class TypeFormPreview extends React.PureComponent { return properties.map((property, offset) => { const value = _.get(preview, [property.id, 'value']) return ( - <TypeFormPreviewProperty + <EntityTypeFormPreviewProperty key={property.id} controller={controller} property={property} @@ -159,4 +162,4 @@ class TypeFormPreview extends React.PureComponent { } } -export default withStyles(styles)(TypeFormPreview) +export default withStyles(styles)(EntityTypeFormPreview) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormPreviewHeader.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreviewHeader.jsx similarity index 80% rename from openbis_ng_ui/src/js/components/types/form/TypeFormPreviewHeader.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreviewHeader.jsx index 96b21a55698e5022c0585679753c695e114007a9..19df5c68b15d055c3a914101128f98eca0fe92fc 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormPreviewHeader.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreviewHeader.jsx @@ -4,7 +4,7 @@ import { withStyles } from '@material-ui/core/styles' import PageMode from '@src/js/components/common/page/PageMode.js' import Header from '@src/js/components/common/form/Header.jsx' import TextField from '@src/js/components/common/form/TextField.jsx' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' @@ -14,21 +14,21 @@ const styles = theme => ({ } }) -class TypeFormPreviewHeader extends React.PureComponent { +class EntityTypeFormPreviewHeader extends React.PureComponent { constructor(props) { super(props) this.handleChange = this.handleChange.bind(this) } handleChange(event) { - this.props.onChange(TypeFormSelectionType.PREVIEW, { + this.props.onChange(EntityTypeFormSelectionType.PREVIEW, { field: event.target.name, value: event.target.value }) } render() { - logger.log(logger.DEBUG, 'TypeFormPreviewHeader.render') + logger.log(logger.DEBUG, 'EntityTypeFormPreviewHeader.render') return ( <div> @@ -69,4 +69,4 @@ class TypeFormPreviewHeader extends React.PureComponent { } } -export default _.flow(withStyles(styles))(TypeFormPreviewHeader) +export default _.flow(withStyles(styles))(EntityTypeFormPreviewHeader) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormPreviewProperty.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreviewProperty.jsx similarity index 96% rename from openbis_ng_ui/src/js/components/types/form/TypeFormPreviewProperty.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreviewProperty.jsx index 9a2d17d322a60d15d0eaf85cf3d2f03d5c7621a1..d32609d2c0f078254531ba0479b84006724d744f 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormPreviewProperty.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreviewProperty.jsx @@ -7,7 +7,7 @@ import Message from '@src/js/components/common/form/Message.jsx' import CheckboxField from '@src/js/components/common/form/CheckboxField.jsx' import TextField from '@src/js/components/common/form/TextField.jsx' import SelectField from '@src/js/components/common/form/SelectField.jsx' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import DataType from '@src/js/components/common/dto/DataType.js' import openbis from '@src/js/services/openbis.js' import actions from '@src/js/store/actions/actions.js' @@ -76,7 +76,7 @@ const styles = theme => ({ } }) -class TypeFormPreviewProperty extends React.PureComponent { +class EntityTypeFormPreviewProperty extends React.PureComponent { constructor(props) { super(props) this.state = { @@ -205,7 +205,7 @@ class TypeFormPreviewProperty extends React.PureComponent { handleDraggableClick(event) { let newSelection = { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: this.props.property.id } @@ -215,7 +215,7 @@ class TypeFormPreviewProperty extends React.PureComponent { handlePropertyClick(event) { let newSelection = { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: this.props.property.id } @@ -232,20 +232,20 @@ class TypeFormPreviewProperty extends React.PureComponent { } handleChange(event) { - this.props.onChange(TypeFormSelectionType.PREVIEW, { + this.props.onChange(EntityTypeFormSelectionType.PREVIEW, { field: this.props.property.id, value: event.target.value }) } render() { - logger.log(logger.DEBUG, 'TypeFormPreviewProperty.render') + logger.log(logger.DEBUG, 'EntityTypeFormPreviewProperty.render') let { mode, property, selection, index, classes } = this.props const selected = selection && - selection.type === TypeFormSelectionType.PROPERTY && + selection.type === EntityTypeFormSelectionType.PROPERTY && selection.params.id === property.id return ( @@ -572,7 +572,7 @@ class TypeFormPreviewProperty extends React.PureComponent { const parts = ['code', 'label', 'dataType', 'mandatory', 'description'] const selectedPart = selection && - selection.type === TypeFormSelectionType.PROPERTY && + selection.type === EntityTypeFormSelectionType.PROPERTY && selection.params.id === property.id && selection.params.part @@ -608,4 +608,4 @@ class TypeFormPreviewProperty extends React.PureComponent { } } -export default _.flow(withStyles(styles))(TypeFormPreviewProperty) +export default _.flow(withStyles(styles))(EntityTypeFormPreviewProperty) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormPreviewSection.jsx b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreviewSection.jsx similarity index 82% rename from openbis_ng_ui/src/js/components/types/form/TypeFormPreviewSection.jsx rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreviewSection.jsx index d969e8e1b222cbddf45eb91f08346ca60cc2e790..685bbf3a1c39ba9ee734825a67e46b64070d1764 100644 --- a/openbis_ng_ui/src/js/components/types/form/TypeFormPreviewSection.jsx +++ b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormPreviewSection.jsx @@ -4,7 +4,7 @@ import Typography from '@material-ui/core/Typography' import { Draggable, Droppable } from 'react-beautiful-dnd' import { withStyles } from '@material-ui/core/styles' import PageMode from '@src/js/components/common/page/PageMode.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import logger from '@src/js/common/logger.js' import util from '@src/js/common/util.js' @@ -39,7 +39,7 @@ const styles = theme => ({ } }) -class TypeFormPreviewSection extends React.PureComponent { +class EntityTypeFormPreviewSection extends React.PureComponent { constructor(props) { super(props) this.handleClick = this.handleClick.bind(this) @@ -49,7 +49,7 @@ class TypeFormPreviewSection extends React.PureComponent { event.stopPropagation() const newSelection = { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: this.props.section.id, part: 'name' @@ -60,14 +60,14 @@ class TypeFormPreviewSection extends React.PureComponent { } render() { - logger.log(logger.DEBUG, 'TypeFormPreviewSection.render') + logger.log(logger.DEBUG, 'EntityTypeFormPreviewSection.render') let { mode, section, index, children, selection, classes } = this.props let { id, name } = section const selected = selection && - selection.type === TypeFormSelectionType.SECTION && + selection.type === EntityTypeFormSelectionType.SECTION && selection.params.id === section.id return ( @@ -88,7 +88,10 @@ class TypeFormPreviewSection extends React.PureComponent { )} onClick={this.handleClick} > - <Droppable droppableId={id} type={TypeFormSelectionType.PROPERTY}> + <Droppable + droppableId={id} + type={EntityTypeFormSelectionType.PROPERTY} + > {provided => ( <div> <Typography variant='body2' data-part='name'> @@ -112,4 +115,4 @@ class TypeFormPreviewSection extends React.PureComponent { } } -export default _.flow(withStyles(styles))(TypeFormPreviewSection) +export default _.flow(withStyles(styles))(EntityTypeFormPreviewSection) diff --git a/openbis_ng_ui/src/js/components/types/form/TypeFormSelectionType.js b/openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js similarity index 100% rename from openbis_ng_ui/src/js/components/types/form/TypeFormSelectionType.js rename to openbis_ng_ui/src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyForm.jsx b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeForm.jsx similarity index 79% rename from openbis_ng_ui/src/js/components/types/form/VocabularyForm.jsx rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeForm.jsx index dd6985f7036b90c444253e6f0115a5cf4573edbd..e89517281ec1a14ff9216da3e789ba6929c0f7a6 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyForm.jsx +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeForm.jsx @@ -7,11 +7,11 @@ import ComponentContext from '@src/js/components/common/ComponentContext.js' import PageWithTwoPanels from '@src/js/components/common/page/PageWithTwoPanels.jsx' import GridWithSettings from '@src/js/components/common/grid/GridWithSettings.jsx' import GridContainer from '@src/js/components/common/grid/GridContainer.jsx' -import VocabularyFormSelectionType from '@src/js/components/types/form/VocabularyFormSelectionType.js' -import VocabularyFormController from '@src/js/components/types/form/VocabularyFormController.js' -import VocabularyFormFacade from '@src/js/components/types/form/VocabularyFormFacade.js' -import VocabularyFormParameters from '@src/js/components/types/form/VocabularyFormParameters.jsx' -import VocabularyFormButtons from '@src/js/components/types/form/VocabularyFormButtons.jsx' +import VocabularyTypeFormSelectionType from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormSelectionType.js' +import VocabularyTypeFormController from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormController.js' +import VocabularyTypeFormFacade from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormFacade.js' +import VocabularyTypeFormParameters from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormParameters.jsx' +import VocabularyTypeFormButtons from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormButtons.jsx' import selectors from '@src/js/store/selectors/selectors.js' import ids from '@src/js/common/consts/ids.js' import messages from '@src/js/common/messages.js' @@ -48,7 +48,7 @@ function mapStateToProps(state) { } } -class VocabularyForm extends React.PureComponent { +class VocabularyTypeForm extends React.PureComponent { constructor(props) { super(props) autoBind(this) @@ -58,7 +58,9 @@ class VocabularyForm extends React.PureComponent { if (this.props.controller) { this.controller = this.props.controller } else { - this.controller = new VocabularyFormController(new VocabularyFormFacade()) + this.controller = new VocabularyTypeFormController( + new VocabularyTypeFormFacade() + ) } this.controller.init(new ComponentContext(this)) @@ -75,7 +77,7 @@ class VocabularyForm extends React.PureComponent { handleSelectedRowChange(row) { const { controller } = this if (row) { - controller.handleSelectionChange(VocabularyFormSelectionType.TERM, { + controller.handleSelectionChange(VocabularyTypeFormSelectionType.TERM, { id: row.id }) } else { @@ -88,7 +90,7 @@ class VocabularyForm extends React.PureComponent { } render() { - logger.log(logger.DEBUG, 'VocabularyForm.render') + logger.log(logger.DEBUG, 'VocabularyTypeForm.render') const { loadId, loading, loaded, vocabulary } = this.state @@ -119,7 +121,7 @@ class VocabularyForm extends React.PureComponent { sort='code' selectable={true} selectedRowId={ - selection && selection.type === VocabularyFormSelectionType.TERM + selection && selection.type === VocabularyTypeFormSelectionType.TERM ? selection.params.id : null } @@ -134,7 +136,7 @@ class VocabularyForm extends React.PureComponent { const { vocabulary, terms, selection, selectedRow, mode } = this.state return ( - <VocabularyFormParameters + <VocabularyTypeFormParameters controller={controller} vocabulary={vocabulary} terms={terms} @@ -153,7 +155,7 @@ class VocabularyForm extends React.PureComponent { const { vocabulary, terms, selection, changed, mode } = this.state return ( - <VocabularyFormButtons + <VocabularyTypeFormButtons onEdit={controller.handleEdit} onSave={controller.handleSave} onCancel={controller.handleCancel} @@ -172,4 +174,4 @@ class VocabularyForm extends React.PureComponent { export default _.flow( connect(mapStateToProps), withStyles(styles) -)(VocabularyForm) +)(VocabularyTypeForm) diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormButtons.jsx b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormButtons.jsx similarity index 84% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormButtons.jsx rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormButtons.jsx index 4f45acd5d1ab927b1d1e7df7ab2c2ea9c3c5d62b..d88bedcdec2cdc0680b9c4d0d70cc16834e6b605 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormButtons.jsx +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormButtons.jsx @@ -3,7 +3,7 @@ import { connect } from 'react-redux' import PageMode from '@src/js/components/common/page/PageMode.js' import PageButtons from '@src/js/components/common/page/PageButtons.jsx' import Button from '@src/js/components/common/form/Button.jsx' -import VocabularyFormSelectionType from '@src/js/components/types/form/VocabularyFormSelectionType.js' +import VocabularyTypeFormSelectionType from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormSelectionType.js' import users from '@src/js/common/consts/users.js' import messages from '@src/js/common/messages.js' import selectors from '@src/js/store/selectors/selectors.js' @@ -15,13 +15,13 @@ function mapStateToProps(state) { } } -class VocabularyFormButtons extends React.PureComponent { +class VocabularyTypeFormButtons extends React.PureComponent { constructor(props) { super(props) } render() { - logger.log(logger.DEBUG, 'VocabularyFormButtons.render') + logger.log(logger.DEBUG, 'VocabularyTypeFormButtons.render') const { mode, onEdit, onSave, onCancel, changed, vocabulary } = this.props @@ -68,7 +68,7 @@ class VocabularyFormButtons extends React.PureComponent { isNonSystemInternalTermSelected() { const { selection, vocabulary, terms } = this.props - if (selection && selection.type === VocabularyFormSelectionType.TERM) { + if (selection && selection.type === VocabularyTypeFormSelectionType.TERM) { const term = terms.find(term => term.id === selection.params.id) return !( vocabulary.internal.value && term.registrator.value === users.SYSTEM @@ -83,4 +83,4 @@ class VocabularyFormButtons extends React.PureComponent { } } -export default connect(mapStateToProps)(VocabularyFormButtons) +export default connect(mapStateToProps)(VocabularyTypeFormButtons) diff --git a/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormController.js b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormController.js new file mode 100644 index 0000000000000000000000000000000000000000..3603a0426de80734f23046bc5accf01bcd16003b --- /dev/null +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormController.js @@ -0,0 +1,59 @@ +import PageController from '@src/js/components/common/page/PageController.js' +import VocabularyTypeFormControllerLoad from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerLoad.js' +import VocabularyTypeFormControllerAdd from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerAdd.js' +import VocabularyTypeFormControllerRemove from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerRemove.js' +import VocabularyTypeFormControllerValidate from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerValidate.js' +import VocabularyTypeFormControllerChange from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerChange.js' +import VocabularyTypeFormControllerSelectionChange from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerSelectionChange.js' +import VocabularyTypeFormControllerSave from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerSave.js' +import pages from '@src/js/common/consts/pages.js' +import objectTypes from '@src/js/common/consts/objectType.js' + +export default class VocabularyTypeFormController extends PageController { + constructor(facade) { + super(facade) + } + + getPage() { + return pages.TYPES + } + + getNewObjectType() { + return objectTypes.NEW_VOCABULARY_TYPE + } + + getExistingObjectType() { + return objectTypes.VOCABULARY_TYPE + } + + load() { + return new VocabularyTypeFormControllerLoad(this).execute() + } + + validate(autofocus) { + return new VocabularyTypeFormControllerValidate(this).execute(autofocus) + } + + handleAdd() { + return new VocabularyTypeFormControllerAdd(this).execute() + } + + handleRemove() { + return new VocabularyTypeFormControllerRemove(this).execute() + } + + handleChange(type, params) { + return new VocabularyTypeFormControllerChange(this).execute(type, params) + } + + handleSelectionChange(type, params) { + return new VocabularyTypeFormControllerSelectionChange(this).execute( + type, + params + ) + } + + handleSave() { + return new VocabularyTypeFormControllerSave(this).execute() + } +} diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerAdd.js b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerAdd.js similarity index 85% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerAdd.js rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerAdd.js index 072ec9133628da1918e63275fdc17f899950f296..2ab17e978b9eaae67924604e02a9e73e87991249 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerAdd.js +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerAdd.js @@ -1,7 +1,7 @@ import FormUtil from '@src/js/components/common/form/FormUtil.js' -import VocabularyFormSelectionType from '@src/js/components/types/form/VocabularyFormSelectionType.js' +import VocabularyTypeFormSelectionType from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormSelectionType.js' -export default class VocabularyFormControllerAdd { +export default class VocabularyTypeFormControllerAdd { constructor(controller) { this.controller = controller this.context = controller.context @@ -35,7 +35,7 @@ export default class VocabularyFormControllerAdd { terms: newTerms, termsCounter, selection: { - type: VocabularyFormSelectionType.TERM, + type: VocabularyTypeFormSelectionType.TERM, params: { id: newTerm.id, part: 'code' diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerChange.js b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerChange.js similarity index 77% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerChange.js rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerChange.js index ef564ac5acf84917986436af2e5f1ff8bed91dda..c747ca5e85d60ddb53c26741420c5bc14c3910cd 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerChange.js +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerChange.js @@ -1,17 +1,17 @@ import PageControllerChange from '@src/js/components/common/page/PageControllerChange.js' -import VocabularyFormSelectionType from '@src/js/components/types/form/VocabularyFormSelectionType.js' +import VocabularyTypeFormSelectionType from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' -export default class VocabularyFormControllerChange extends PageControllerChange { +export default class VocabularyTypeFormControllerChange extends PageControllerChange { constructor(controller) { super(controller) this.gridController = controller.gridController } async execute(type, params) { - if (type === VocabularyFormSelectionType.VOCABULARY) { + if (type === VocabularyTypeFormSelectionType.VOCABULARY) { await this._handleChangeVocabulary(params) - } else if (type === VocabularyFormSelectionType.TERM) { + } else if (type === VocabularyTypeFormSelectionType.TERM) { await this._handleChangeTerm(params) } } diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerLoad.js b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerLoad.js similarity index 92% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerLoad.js rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerLoad.js index 74cd2341814f851d1e8805bb2ae30871cbe6bfd2..8539207a4dc2cff26535c1bd675d7fd892150b4b 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerLoad.js +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerLoad.js @@ -1,10 +1,10 @@ import _ from 'lodash' import PageControllerLoad from '@src/js/components/common/page/PageControllerLoad.js' -import VocabularyFormSelectionType from '@src/js/components/types/form/VocabularyFormSelectionType.js' +import VocabularyTypeFormSelectionType from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' import users from '@src/js/common/consts/users.js' -export default class VocabularyFormControllerLoad extends PageControllerLoad { +export default class VocabularyTypeFormControllerLoad extends PageControllerLoad { async load(object, isNew) { let loadedVocabulary = null @@ -118,7 +118,7 @@ export default class VocabularyFormControllerLoad extends PageControllerLoad { if (!oldSelection) { return null - } else if (oldSelection.type === VocabularyFormSelectionType.TERM) { + } else if (oldSelection.type === VocabularyTypeFormSelectionType.TERM) { const oldTerm = _.find( oldTerms, oldTerm => oldTerm.id === oldSelection.params.id @@ -135,7 +135,7 @@ export default class VocabularyFormControllerLoad extends PageControllerLoad { if (newTerm) { return { - type: VocabularyFormSelectionType.TERM, + type: VocabularyTypeFormSelectionType.TERM, params: { id: newTerm.id } diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerRemove.js b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerRemove.js similarity index 75% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerRemove.js rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerRemove.js index 9ae79f6d1d6dc973a83743ff72e81c81015dc28d..c4eece183de69503d9bbdcb17b78c5fc4b004085 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerRemove.js +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerRemove.js @@ -1,6 +1,6 @@ -import VocabularyFormSelectionType from '@src/js/components/types/form/VocabularyFormSelectionType.js' +import VocabularyTypeFormSelectionType from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormSelectionType.js' -export default class VocabularyFormControllerRemove { +export default class VocabularyTypeFormControllerRemove { constructor(controller) { this.controller = controller this.context = controller.context @@ -9,7 +9,7 @@ export default class VocabularyFormControllerRemove { execute() { const { selection } = this.context.getState() - if (selection.type === VocabularyFormSelectionType.TERM) { + if (selection.type === VocabularyTypeFormSelectionType.TERM) { this._handleRemoveTerm(selection.params.id) } } diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerSave.js b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerSave.js similarity index 98% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerSave.js rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerSave.js index 6f2a0ea30996524b0ed64b138a18e0b26ef1b13f..4e2232703fbeefe3ae7806762067ee1d2d7675cd 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerSave.js +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerSave.js @@ -3,7 +3,7 @@ import PageControllerSave from '@src/js/components/common/page/PageControllerSav import FormUtil from '@src/js/components/common/form/FormUtil.js' import openbis from '@src/js/services/openbis.js' -export default class VocabularyFormControllerSave extends PageControllerSave { +export default class VocabularyTypeFormControllerSave extends PageControllerSave { async save() { const state = this.context.getState() const vocabulary = this._prepareVocabulary(state.vocabulary) diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerSelectionChange.js b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerSelectionChange.js similarity index 83% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerSelectionChange.js rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerSelectionChange.js index 0155c0dc3be5b613abad9503a8dc13b41e9c4736..246d78b23203f8800eb0cf5b038ed9eee12e6396 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerSelectionChange.js +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerSelectionChange.js @@ -1,6 +1,6 @@ import PageControllerSelectionChange from '@src/js/components/common/page/PageControllerSelectionChange.js' -export default class VocabularyFormControllerSelectionChange extends PageControllerSelectionChange { +export default class VocabularyTypeFormControllerSelectionChange extends PageControllerSelectionChange { constructor(controller) { super(controller) this.context = controller.context diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerValidate.js b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerValidate.js similarity index 84% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerValidate.js rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerValidate.js index c2b0566e66ba1281f5f1041b1d9ffc4ac00be3d5..d21b7c1da49756c7db7f141869c3e7694721ba31 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormControllerValidate.js +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormControllerValidate.js @@ -1,8 +1,8 @@ import PageControllerValidate from '@src/js/components/common/page/PageConrollerValidate.js' -import VocabularyFormSelectionType from '@src/js/components/types/form/VocabularyFormSelectionType.js' +import VocabularyTypeFormSelectionType from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormSelectionType.js' import messages from '@src/js/common/messages.js' -export default class VocabularyFormControllerValidate extends PageControllerValidate { +export default class VocabularyTypeFormControllerValidate extends PageControllerValidate { validate(validator) { const { vocabulary, terms } = this.context.getState() @@ -20,14 +20,14 @@ export default class VocabularyFormControllerValidate extends PageControllerVali if (firstError.object === vocabulary) { await this.setSelection({ - type: VocabularyFormSelectionType.VOCABULARY, + type: VocabularyTypeFormSelectionType.VOCABULARY, params: { part: firstError.name } }) } else if (terms.includes(firstError.object)) { await this.setSelection({ - type: VocabularyFormSelectionType.TERM, + type: VocabularyTypeFormSelectionType.TERM, params: { id: firstError.object.id, part: firstError.name diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormFacade.js b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormFacade.js similarity index 90% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormFacade.js rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormFacade.js index 40dd0b44d6daeb178c58c56110db4f95ee26b2c0..8f6a462ff4ff36df76517a3129cd4ef8b28103c1 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormFacade.js +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormFacade.js @@ -1,6 +1,6 @@ import openbis from '@src/js/services/openbis.js' -export default class VocabularyFormFacade { +export default class VocabularyTypeFormFacade { async loadVocabulary(code) { const id = new openbis.VocabularyPermId(code) const fo = new openbis.VocabularyFetchOptions() diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormParameters.jsx b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormParameters.jsx similarity index 63% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormParameters.jsx rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormParameters.jsx index df3cd983ff1b3ce4fbbb362a24df1fe5ad3d26fc..3d1eb2d64875a3f5ec13f3ee1e4f761750de147b 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormParameters.jsx +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormParameters.jsx @@ -1,18 +1,18 @@ import React from 'react' import { withStyles } from '@material-ui/core/styles' -import VocabularyFormParametersVocabulary from '@src/js/components/types/form/VocabularyFormParametersVocabulary.jsx' -import VocabularyFormParametersTerm from '@src/js/components/types/form/VocabularyFormParametersTerm.jsx' +import VocabularyTypeFormParametersVocabulary from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormParametersVocabulary.jsx' +import VocabularyTypeFormParametersTerm from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormParametersTerm.jsx' import logger from '@src/js/common/logger.js' const styles = () => ({}) -class VocabularyFormParameters extends React.PureComponent { +class VocabularyTypeFormParameters extends React.PureComponent { constructor(props) { super(props) } render() { - logger.log(logger.DEBUG, 'VocabularyFormParameters.render') + logger.log(logger.DEBUG, 'VocabularyTypeFormParameters.render') const { controller, @@ -28,7 +28,7 @@ class VocabularyFormParameters extends React.PureComponent { return ( <div> - <VocabularyFormParametersVocabulary + <VocabularyTypeFormParametersVocabulary controller={controller} vocabulary={vocabulary} selection={selection} @@ -37,7 +37,7 @@ class VocabularyFormParameters extends React.PureComponent { onSelectionChange={onSelectionChange} onBlur={onBlur} /> - <VocabularyFormParametersTerm + <VocabularyTypeFormParametersTerm controller={controller} vocabulary={vocabulary} terms={terms} @@ -53,4 +53,4 @@ class VocabularyFormParameters extends React.PureComponent { } } -export default withStyles(styles)(VocabularyFormParameters) +export default withStyles(styles)(VocabularyTypeFormParameters) diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormParametersTerm.jsx b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormParametersTerm.jsx similarity index 92% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormParametersTerm.jsx rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormParametersTerm.jsx index 796c529aacb020f1f44ac92cbf3cdbfe9cfb7e2c..82c483d1c1aed73a88844415117437883b710f0e 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormParametersTerm.jsx +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormParametersTerm.jsx @@ -7,7 +7,7 @@ import Header from '@src/js/components/common/form/Header.jsx' import TextField from '@src/js/components/common/form/TextField.jsx' import CheckboxField from '@src/js/components/common/form/CheckboxField.jsx' import Message from '@src/js/components/common/form/Message.jsx' -import VocabularyFormSelectionType from '@src/js/components/types/form/VocabularyFormSelectionType.js' +import VocabularyTypeFormSelectionType from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormSelectionType.js' import selectors from '@src/js/store/selectors/selectors.js' import users from '@src/js/common/consts/users.js' import messages from '@src/js/common/messages.js' @@ -25,7 +25,7 @@ function mapStateToProps(state) { } } -class VocabularyFormParametersTerm extends React.PureComponent { +class VocabularyTypeFormParametersTerm extends React.PureComponent { constructor(props) { super(props) this.state = {} @@ -66,7 +66,7 @@ class VocabularyFormParametersTerm extends React.PureComponent { handleChange(event) { const term = this.getTerm(this.props) - this.props.onChange(VocabularyFormSelectionType.TERM, { + this.props.onChange(VocabularyTypeFormSelectionType.TERM, { id: term.id, field: event.target.name, value: event.target.value @@ -75,7 +75,7 @@ class VocabularyFormParametersTerm extends React.PureComponent { handleFocus(event) { const term = this.getTerm(this.props) - this.props.onSelectionChange(VocabularyFormSelectionType.TERM, { + this.props.onSelectionChange(VocabularyTypeFormSelectionType.TERM, { id: term.id, part: event.target.name }) @@ -86,7 +86,7 @@ class VocabularyFormParametersTerm extends React.PureComponent { } render() { - logger.log(logger.DEBUG, 'VocabularyFormParametersTerm.render') + logger.log(logger.DEBUG, 'VocabularyTypeFormParametersTerm.render') const term = this.getTerm(this.props) if (!term) { @@ -260,7 +260,7 @@ class VocabularyFormParametersTerm extends React.PureComponent { getTerm(props) { let { terms, selection } = props - if (selection && selection.type === VocabularyFormSelectionType.TERM) { + if (selection && selection.type === VocabularyTypeFormSelectionType.TERM) { let [term] = terms.filter(term => term.id === selection.params.id) return term } else { @@ -272,4 +272,4 @@ class VocabularyFormParametersTerm extends React.PureComponent { export default _.flow( connect(mapStateToProps), withStyles(styles) -)(VocabularyFormParametersTerm) +)(VocabularyTypeFormParametersTerm) diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormParametersVocabulary.jsx b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormParametersVocabulary.jsx similarity index 92% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormParametersVocabulary.jsx rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormParametersVocabulary.jsx index 2ce2d9267745d8a5b657fa155d0aeb87f7be6aa5..ba906b5051a181725bcc1d274d3f079e68e22b4e 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyFormParametersVocabulary.jsx +++ b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormParametersVocabulary.jsx @@ -7,7 +7,7 @@ import Header from '@src/js/components/common/form/Header.jsx' import TextField from '@src/js/components/common/form/TextField.jsx' import CheckboxField from '@src/js/components/common/form/CheckboxField.jsx' import Message from '@src/js/components/common/form/Message.jsx' -import VocabularyFormSelectionType from '@src/js/components/types/form/VocabularyFormSelectionType.js' +import VocabularyTypeFormSelectionType from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormSelectionType.js' import selectors from '@src/js/store/selectors/selectors.js' import users from '@src/js/common/consts/users.js' import messages from '@src/js/common/messages.js' @@ -24,7 +24,7 @@ function mapStateToProps(state) { } } -class VocabularyFormParametersVocabulary extends React.PureComponent { +class VocabularyTypeFormParametersVocabulary extends React.PureComponent { constructor(props) { super(props) this.state = {} @@ -66,14 +66,14 @@ class VocabularyFormParametersVocabulary extends React.PureComponent { } handleChange(event) { - this.props.onChange(VocabularyFormSelectionType.VOCABULARY, { + this.props.onChange(VocabularyTypeFormSelectionType.VOCABULARY, { field: event.target.name, value: event.target.value }) } handleFocus(event) { - this.props.onSelectionChange(VocabularyFormSelectionType.VOCABULARY, { + this.props.onSelectionChange(VocabularyTypeFormSelectionType.VOCABULARY, { part: event.target.name }) } @@ -83,7 +83,7 @@ class VocabularyFormParametersVocabulary extends React.PureComponent { } render() { - logger.log(logger.DEBUG, 'VocabularyFormParametersVocabulary.render') + logger.log(logger.DEBUG, 'VocabularyTypeFormParametersVocabulary.render') const vocabulary = this.getVocabulary(this.props) if (!vocabulary) { @@ -248,7 +248,7 @@ class VocabularyFormParametersVocabulary extends React.PureComponent { if ( !selection || - selection.type === VocabularyFormSelectionType.VOCABULARY + selection.type === VocabularyTypeFormSelectionType.VOCABULARY ) { return vocabulary } else { @@ -260,4 +260,4 @@ class VocabularyFormParametersVocabulary extends React.PureComponent { export default _.flow( connect(mapStateToProps), withStyles(styles) -)(VocabularyFormParametersVocabulary) +)(VocabularyTypeFormParametersVocabulary) diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyFormSelectionType.js b/openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormSelectionType.js similarity index 100% rename from openbis_ng_ui/src/js/components/types/form/VocabularyFormSelectionType.js rename to openbis_ng_ui/src/js/components/types/form/vocabularytype/VocabularyTypeFormSelectionType.js diff --git a/openbis_ng_ui/src/js/components/types/search/TypeSearch.jsx b/openbis_ng_ui/src/js/components/types/search/TypeSearch.jsx index e5b73b77ee6345d7df0e34bcf94432302a053423..be4276197734270d346f2b4d17918b832994f9e8 100644 --- a/openbis_ng_ui/src/js/components/types/search/TypeSearch.jsx +++ b/openbis_ng_ui/src/js/components/types/search/TypeSearch.jsx @@ -4,8 +4,9 @@ import React from 'react' import { withStyles } from '@material-ui/core/styles' import Container from '@src/js/components/common/form/Container.jsx' import GridContainer from '@src/js/components/common/grid/GridContainer.jsx' -import TypesGrid from '@src/js/components/types/common/TypesGrid.jsx' -import VocabulariesGrid from '@src/js/components/types/common/VocabulariesGrid.jsx' +import EntityTypesGrid from '@src/js/components/types/common/EntityTypesGrid.jsx' +import VocabularyTypesGrid from '@src/js/components/types/common/VocabularyTypesGrid.jsx' +import PropertyTypesGrid from '@src/js/components/types/common/PropertyTypesGrid.jsx' import Message from '@src/js/components/common/form/Message.jsx' import ids from '@src/js/common/consts/ids.js' import objectTypes from '@src/js/common/consts/objectType.js' @@ -45,7 +46,8 @@ class TypeSearch extends React.Component { this.loadCollectionTypes(), this.loadDataSetTypes(), this.loadMaterialTypes(), - this.loadVocabularyTypes() + this.loadVocabularyTypes(), + this.loadPropertyTypes() ]) this.setState(() => ({ loaded: true @@ -193,6 +195,107 @@ class TypeSearch extends React.Component { }) } + async loadPropertyTypes() { + if (!this.shouldLoad(objectTypes.PROPERTY_TYPE)) { + return + } + + const [propertyTypes, propertyTypeUsages] = await Promise.all([ + this.loadPropertyTypesTypes(), + this.loadPropertyTypesUsages() + ]) + + const types = util + .filter(propertyTypes.objects, this.props.searchText, [ + 'code', + 'description' + ]) + .map(object => ({ + id: _.get(object, 'code'), + code: _.get(object, 'code'), + label: _.get(object, 'label'), + description: _.get(object, 'description'), + dataType: _.get(object, 'dataType'), + vocabulary: _.get(object, 'vocabulary.code'), + materialType: _.get(object, 'materialType.code'), + sampleType: _.get(object, 'sampleType.code'), + schema: _.get(object, 'schema'), + transformation: _.get(object, 'transformation'), + usages: _.get(propertyTypeUsages, object.code) + })) + + this.setState({ + propertyTypes: types + }) + } + + async loadPropertyTypesTypes() { + const fo = new openbis.PropertyTypeFetchOptions() + fo.withVocabulary() + fo.withMaterialType() + fo.withSampleType() + + const propertyTypes = await openbis.searchPropertyTypes( + new openbis.PropertyTypeSearchCriteria(), + fo + ) + + return propertyTypes + } + + async loadPropertyTypesUsages() { + const usages = {} + + const fo = new openbis.PropertyAssignmentFetchOptions() + fo.withEntityType() + fo.withPropertyType() + + const propertyAssignments = await openbis.searchPropertyAssignments( + new openbis.PropertyAssignmentSearchCriteria(), + fo + ) + + propertyAssignments.objects.forEach(propertyAssignment => { + let propertyUsages = usages[propertyAssignment.propertyType.code] + if (!propertyUsages) { + propertyUsages = { + sampleTypes: [], + experimentTypes: [], + dataSetTypes: [], + materialTypes: [] + } + usages[propertyAssignment.propertyType.code] = propertyUsages + } + + const entityType = propertyAssignment.entityType['@type'] + + if (entityType === 'as.dto.sample.SampleType') { + propertyUsages.sampleTypes.push(propertyAssignment.entityType.code) + } else if (entityType === 'as.dto.experiment.ExperimentType') { + propertyUsages.experimentTypes.push(propertyAssignment.entityType.code) + } else if (entityType === 'as.dto.dataset.DataSetType') { + propertyUsages.dataSetTypes.push(propertyAssignment.entityType.code) + } else if (entityType === 'as.dto.material.MaterialType') { + propertyUsages.materialTypes.push(propertyAssignment.entityType.code) + } + }) + + Object.keys(usages).forEach(propertyTypeCode => { + const propertyUsages = usages[propertyTypeCode] + propertyUsages.sampleTypes.sort() + propertyUsages.experimentTypes.sort() + propertyUsages.dataSetTypes.sort() + propertyUsages.materialTypes.sort() + propertyUsages.count = + propertyUsages.sampleTypes.length + + propertyUsages.experimentTypes.length + + propertyUsages.dataSetTypes.length + + propertyUsages.materialTypes.length + }) + + return usages + } + shouldLoad(objectType) { return this.props.objectType === objectType || !this.props.objectType } @@ -231,6 +334,7 @@ class TypeSearch extends React.Component { {this.renderDataSetTypes()} {this.renderMaterialTypes()} {this.renderVocabularyTypes()} + {this.renderPropertyTypes()} </GridContainer> ) } @@ -242,7 +346,8 @@ class TypeSearch extends React.Component { collectionTypes = [], dataSetTypes = [], materialTypes = [], - vocabularyTypes = [] + vocabularyTypes = [], + propertyTypes = [] } = this.state if ( @@ -251,7 +356,8 @@ class TypeSearch extends React.Component { collectionTypes.length === 0 && dataSetTypes.length === 0 && materialTypes.length === 0 && - vocabularyTypes.length === 0 + vocabularyTypes.length === 0 && + propertyTypes.length === 0 ) { return ( <Container> @@ -270,7 +376,7 @@ class TypeSearch extends React.Component { const { classes } = this.props return ( <div className={classes.grid}> - <TypesGrid + <EntityTypesGrid id={ids.OBJECT_TYPES_GRID_ID} controllerRef={controller => (this.gridControllers[objectTypes.OBJECT_TYPE] = controller) @@ -295,7 +401,7 @@ class TypeSearch extends React.Component { const { classes } = this.props return ( <div className={classes.grid}> - <TypesGrid + <EntityTypesGrid id={ids.COLLECTION_TYPES_GRID_ID} controllerRef={controller => (this.gridControllers[objectTypes.COLLECTION_TYPE] = controller) @@ -318,7 +424,7 @@ class TypeSearch extends React.Component { const { classes } = this.props return ( <div className={classes.grid}> - <TypesGrid + <EntityTypesGrid id={ids.DATA_SET_TYPES_GRID_ID} controllerRef={controller => (this.gridControllers[objectTypes.DATA_SET_TYPE] = controller) @@ -343,7 +449,7 @@ class TypeSearch extends React.Component { const { classes } = this.props return ( <div className={classes.grid}> - <TypesGrid + <EntityTypesGrid id={ids.MATERIAL_TYPES_GRID_ID} controllerRef={controller => (this.gridControllers[objectTypes.MATERIAL_TYPE] = controller) @@ -368,7 +474,7 @@ class TypeSearch extends React.Component { const { classes } = this.props return ( <div className={classes.grid}> - <VocabulariesGrid + <VocabularyTypesGrid id={ids.VOCABULARY_TYPES_GRID_ID} controllerRef={controller => (this.gridControllers[objectTypes.VOCABULARY_TYPE] = controller) @@ -385,6 +491,30 @@ class TypeSearch extends React.Component { } } + renderPropertyTypes() { + if ( + this.shouldRender(objectTypes.PROPERTY_TYPE, this.state.propertyTypes) + ) { + const { classes } = this.props + return ( + <div className={classes.grid}> + <PropertyTypesGrid + id={ids.PROPERTY_TYPES_GRID_ID} + controllerRef={controller => + (this.gridControllers[objectTypes.PROPERTY_TYPE] = controller) + } + rows={this.state.propertyTypes} + onSelectedRowChange={this.handleSelectedRowChange( + objectTypes.PROPERTY_TYPE + )} + /> + </div> + ) + } else { + return null + } + } + shouldRender(objectType, types) { return this.props.objectType === objectType || (types && types.length > 0) } diff --git a/openbis_ng_ui/src/js/components/users/Users.jsx b/openbis_ng_ui/src/js/components/users/Users.jsx index 10414cbdd7fb8b1c0f1d7522079799054996924b..aa2ba2dbdb21bd23c3a9fb5a8d133f82e70994c9 100644 --- a/openbis_ng_ui/src/js/components/users/Users.jsx +++ b/openbis_ng_ui/src/js/components/users/Users.jsx @@ -4,8 +4,8 @@ import Content from '@src/js/components/common/content/Content.jsx' import ContentTab from '@src/js/components/common/content/ContentTab.jsx' import UserBrowser from '@src/js/components/users/browser/UserBrowser.jsx' import UserSearch from '@src/js/components/users/search/UserSearch.jsx' -import UserForm from '@src/js/components/users/form/UserForm.jsx' -import UserGroupForm from '@src/js/components/users/form/UserGroupForm.jsx' +import UserForm from '@src/js/components/users/form/user/UserForm.jsx' +import UserGroupForm from '@src/js/components/users/form/usergroup/UserGroupForm.jsx' import pages from '@src/js/common/consts/pages.js' import objectType from '@src/js/common/consts/objectType.js' import messages from '@src/js/common/messages.js' diff --git a/openbis_ng_ui/src/js/components/users/form/UserForm.jsx b/openbis_ng_ui/src/js/components/users/form/user/UserForm.jsx similarity index 90% rename from openbis_ng_ui/src/js/components/users/form/UserForm.jsx rename to openbis_ng_ui/src/js/components/users/form/user/UserForm.jsx index a81bb945c9898f323b42c28966c0d83fd33b7280..c93d5aed84061bf128d0751c24c082cd5d86bd06 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserForm.jsx +++ b/openbis_ng_ui/src/js/components/users/form/user/UserForm.jsx @@ -6,15 +6,15 @@ import { withStyles } from '@material-ui/core/styles' import ComponentContext from '@src/js/components/common/ComponentContext.js' import PageWithTwoPanels from '@src/js/components/common/page/PageWithTwoPanels.jsx' import GridContainer from '@src/js/components/common/grid/GridContainer.jsx' -import UserFormController from '@src/js/components/users/form/UserFormController.js' -import UserFormFacade from '@src/js/components/users/form/UserFormFacade.js' -import UserFormSelectionType from '@src/js/components/users/form/UserFormSelectionType.js' -import UserFormParametersUser from '@src/js/components/users/form/UserFormParametersUser.jsx' -import UserFormParametersGroup from '@src/js/components/users/form/UserFormParametersGroup.jsx' -import UserFormParametersRole from '@src/js/components/users/form/UserFormParametersRole.jsx' -import UserFormGridGroups from '@src/js/components/users/form/UserFormGridGroups.jsx' -import UserFormGridRoles from '@src/js/components/users/form/UserFormGridRoles.jsx' -import UserFormButtons from '@src/js/components/users/form/UserFormButtons.jsx' +import UserFormController from '@src/js/components/users/form/user/UserFormController.js' +import UserFormFacade from '@src/js/components/users/form/user/UserFormFacade.js' +import UserFormSelectionType from '@src/js/components/users/form/user/UserFormSelectionType.js' +import UserFormParametersUser from '@src/js/components/users/form/user/UserFormParametersUser.jsx' +import UserFormParametersGroup from '@src/js/components/users/form/user/UserFormParametersGroup.jsx' +import UserFormParametersRole from '@src/js/components/users/form/user/UserFormParametersRole.jsx' +import UserFormGridGroups from '@src/js/components/users/form/user/UserFormGridGroups.jsx' +import UserFormGridRoles from '@src/js/components/users/form/user/UserFormGridRoles.jsx' +import UserFormButtons from '@src/js/components/users/form/user/UserFormButtons.jsx' import logger from '@src/js/common/logger.js' const styles = theme => ({ diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormButtons.jsx b/openbis_ng_ui/src/js/components/users/form/user/UserFormButtons.jsx similarity index 98% rename from openbis_ng_ui/src/js/components/users/form/UserFormButtons.jsx rename to openbis_ng_ui/src/js/components/users/form/user/UserFormButtons.jsx index f5a5a519615b33b64c3171fb84835abad01476ee..016bdec18c4ceed7055d0e57367083f897df4488 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserFormButtons.jsx +++ b/openbis_ng_ui/src/js/components/users/form/user/UserFormButtons.jsx @@ -2,7 +2,7 @@ import React from 'react' import PageMode from '@src/js/components/common/page/PageMode.js' import PageButtons from '@src/js/components/common/page/PageButtons.jsx' import Button from '@src/js/components/common/form/Button.jsx' -import UserFormSelectionType from '@src/js/components/users/form/UserFormSelectionType.js' +import UserFormSelectionType from '@src/js/components/users/form/user/UserFormSelectionType.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormController.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormController.js similarity index 84% rename from openbis_ng_ui/src/js/components/users/form/UserFormController.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormController.js index fc2fd0750830dadb7daba1110e138ce70e9eb46f..76349ed281a8fa3055c60823644477b4fe139c85 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserFormController.js +++ b/openbis_ng_ui/src/js/components/users/form/user/UserFormController.js @@ -1,12 +1,12 @@ import PageController from '@src/js/components/common/page/PageController.js' -import UserFormControllerLoad from '@src/js/components/users/form/UserFormControllerLoad.js' -import UserFormControllerAddGroup from '@src/js/components/users/form/UserFormControllerAddGroup.js' -import UserFormControllerAddRole from '@src/js/components/users/form/UserFormControllerAddRole.js' -import UserFormControllerRemove from '@src/js/components/users/form/UserFormControllerRemove.js' -import UserFormControllerValidate from '@src/js/components/users/form/UserFormControllerValidate.js' -import UserFormControllerChange from '@src/js/components/users/form/UserFormControllerChange.js' -import UserFormControllerSelectionChange from '@src/js/components/users/form/UserFormControllerSelectionChange.js' -import UserFormControllerSave from '@src/js/components/users/form/UserFormControllerSave.js' +import UserFormControllerLoad from '@src/js/components/users/form/user/UserFormControllerLoad.js' +import UserFormControllerAddGroup from '@src/js/components/users/form/user/UserFormControllerAddGroup.js' +import UserFormControllerAddRole from '@src/js/components/users/form/user/UserFormControllerAddRole.js' +import UserFormControllerRemove from '@src/js/components/users/form/user/UserFormControllerRemove.js' +import UserFormControllerValidate from '@src/js/components/users/form/user/UserFormControllerValidate.js' +import UserFormControllerChange from '@src/js/components/users/form/user/UserFormControllerChange.js' +import UserFormControllerSelectionChange from '@src/js/components/users/form/user/UserFormControllerSelectionChange.js' +import UserFormControllerSave from '@src/js/components/users/form/user/UserFormControllerSave.js' import pages from '@src/js/common/consts/pages.js' import objectTypes from '@src/js/common/consts/objectType.js' diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormControllerAddGroup.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerAddGroup.js similarity index 97% rename from openbis_ng_ui/src/js/components/users/form/UserFormControllerAddGroup.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormControllerAddGroup.js index c76c201850acf677b4537edd86f67d79fc6b6d02..b6faae8702d17cefae36d5f02c6233b39319e573 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserFormControllerAddGroup.js +++ b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerAddGroup.js @@ -1,5 +1,5 @@ import _ from 'lodash' -import UserFormSelectionType from '@src/js/components/users/form/UserFormSelectionType.js' +import UserFormSelectionType from '@src/js/components/users/form/user/UserFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' export default class UserFormControllerAddGroup { diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormControllerAddRole.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerAddRole.js similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserFormControllerAddRole.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormControllerAddRole.js diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormControllerChange.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerChange.js similarity index 95% rename from openbis_ng_ui/src/js/components/users/form/UserFormControllerChange.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormControllerChange.js index 89460569c290e666867ca42d14ebe0cce980f800..ff24b4716079edae502f961cb7ee18f5904052bc 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserFormControllerChange.js +++ b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerChange.js @@ -1,8 +1,8 @@ import _ from 'lodash' import PageControllerChange from '@src/js/components/common/page/PageControllerChange.js' import RoleControllerChange from '@src/js/components/users/form/common/RoleControllerChange.js' -import UserFormControllerRecalculateInheritedRoles from '@src/js/components/users/form/UserFormControllerRecalculateInheritedRoles.js' -import UserFormSelectionType from '@src/js/components/users/form/UserFormSelectionType.js' +import UserFormControllerRecalculateInheritedRoles from '@src/js/components/users/form/user/UserFormControllerRecalculateInheritedRoles.js' +import UserFormSelectionType from '@src/js/components/users/form/user/UserFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' export default class UserFormControllerChange extends PageControllerChange { diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormControllerLoad.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerLoad.js similarity index 99% rename from openbis_ng_ui/src/js/components/users/form/UserFormControllerLoad.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormControllerLoad.js index 493ea96615284db5d218fc7b485ca267f9c4f481..c03014d728c29050fc0f11f43e9d16579a0f0e5c 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserFormControllerLoad.js +++ b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerLoad.js @@ -1,7 +1,7 @@ import _ from 'lodash' import PageControllerLoad from '@src/js/components/common/page/PageControllerLoad.js' import RoleControllerLoad from '@src/js/components/users/form/common/RoleControllerLoad.js' -import UserFormSelectionType from '@src/js/components/users/form/UserFormSelectionType.js' +import UserFormSelectionType from '@src/js/components/users/form/user/UserFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' export default class UserFormControllerLoad extends PageControllerLoad { diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormControllerRecalculateInheritedRoles.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerRecalculateInheritedRoles.js similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserFormControllerRecalculateInheritedRoles.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormControllerRecalculateInheritedRoles.js diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormControllerRemove.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerRemove.js similarity index 93% rename from openbis_ng_ui/src/js/components/users/form/UserFormControllerRemove.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormControllerRemove.js index ad10eea380983897428f5c8486657684c15ce6d4..d9df156ffd4fdf8e9422abda2500e7605235ea2b 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserFormControllerRemove.js +++ b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerRemove.js @@ -1,6 +1,6 @@ import RoleControllerRemove from '@src/js/components/users/form/common/RoleControllerRemove.js' -import UserFormControllerRecalculateInheritedRoles from '@src/js/components/users/form/UserFormControllerRecalculateInheritedRoles.js' -import UserFormSelectionType from '@src/js/components/users/form/UserFormSelectionType.js' +import UserFormControllerRecalculateInheritedRoles from '@src/js/components/users/form/user/UserFormControllerRecalculateInheritedRoles.js' +import UserFormSelectionType from '@src/js/components/users/form/user/UserFormSelectionType.js' export default class UserFormControllerRemove { constructor(controller) { diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormControllerSave.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerSave.js similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserFormControllerSave.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormControllerSave.js diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormControllerSelectionChange.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerSelectionChange.js similarity index 97% rename from openbis_ng_ui/src/js/components/users/form/UserFormControllerSelectionChange.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormControllerSelectionChange.js index bbd889e5f3a9a87902cb411dbc3da1db4f6e11a2..8143564eeb389fe460b0279906e127faf294b162 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserFormControllerSelectionChange.js +++ b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerSelectionChange.js @@ -1,5 +1,5 @@ import PageControllerSelectionChange from '@src/js/components/common/page/PageControllerSelectionChange.js' -import UserFormSelectionType from '@src/js/components/users/form/UserFormSelectionType.js' +import UserFormSelectionType from '@src/js/components/users/form/user/UserFormSelectionType.js' export default class UserFormControllerSelectionChange extends PageControllerSelectionChange { constructor(controller) { diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormControllerValidate.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerValidate.js similarity index 98% rename from openbis_ng_ui/src/js/components/users/form/UserFormControllerValidate.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormControllerValidate.js index 496f512530c9bdda591df136ecee506b9db9b293..c85042857cffe9de59fa6eacd82751e8316259c1 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserFormControllerValidate.js +++ b/openbis_ng_ui/src/js/components/users/form/user/UserFormControllerValidate.js @@ -1,6 +1,6 @@ import PageControllerValidate from '@src/js/components/common/page/PageConrollerValidate.js' import RoleControllerValidate from '@src/js/components/users/form/common/RoleControllerValidate.js' -import UserFormSelectionType from '@src/js/components/users/form/UserFormSelectionType.js' +import UserFormSelectionType from '@src/js/components/users/form/user/UserFormSelectionType.js' import messages from '@src/js/common/messages.js' export default class UserFormControllerValidate extends PageControllerValidate { diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormFacade.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormFacade.js similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserFormFacade.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormFacade.js diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormGridGroups.jsx b/openbis_ng_ui/src/js/components/users/form/user/UserFormGridGroups.jsx similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserFormGridGroups.jsx rename to openbis_ng_ui/src/js/components/users/form/user/UserFormGridGroups.jsx diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormGridRoles.jsx b/openbis_ng_ui/src/js/components/users/form/user/UserFormGridRoles.jsx similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserFormGridRoles.jsx rename to openbis_ng_ui/src/js/components/users/form/user/UserFormGridRoles.jsx diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormParametersGroup.jsx b/openbis_ng_ui/src/js/components/users/form/user/UserFormParametersGroup.jsx similarity index 99% rename from openbis_ng_ui/src/js/components/users/form/UserFormParametersGroup.jsx rename to openbis_ng_ui/src/js/components/users/form/user/UserFormParametersGroup.jsx index b03293d56dee604a5fa13bebf6ef44b278aac310..bbcb12ea12e2a24d12fb1f19a11e2c53a24b8e27 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserFormParametersGroup.jsx +++ b/openbis_ng_ui/src/js/components/users/form/user/UserFormParametersGroup.jsx @@ -4,7 +4,7 @@ import Container from '@src/js/components/common/form/Container.jsx' import Header from '@src/js/components/common/form/Header.jsx' import SelectField from '@src/js/components/common/form/SelectField.jsx' import Message from '@src/js/components/common/form/Message.jsx' -import UserFormSelectionType from '@src/js/components/users/form/UserFormSelectionType.js' +import UserFormSelectionType from '@src/js/components/users/form/user/UserFormSelectionType.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormParametersRole.jsx b/openbis_ng_ui/src/js/components/users/form/user/UserFormParametersRole.jsx similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserFormParametersRole.jsx rename to openbis_ng_ui/src/js/components/users/form/user/UserFormParametersRole.jsx diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormParametersUser.jsx b/openbis_ng_ui/src/js/components/users/form/user/UserFormParametersUser.jsx similarity index 99% rename from openbis_ng_ui/src/js/components/users/form/UserFormParametersUser.jsx rename to openbis_ng_ui/src/js/components/users/form/user/UserFormParametersUser.jsx index eb696e2a93a2dffba446bf5345315b8b91f358a1..abb6994351535b09c94e07dfc33e1f5bb7f8de90 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserFormParametersUser.jsx +++ b/openbis_ng_ui/src/js/components/users/form/user/UserFormParametersUser.jsx @@ -6,7 +6,7 @@ import TextField from '@src/js/components/common/form/TextField.jsx' import SelectField from '@src/js/components/common/form/SelectField.jsx' import CheckboxField from '@src/js/components/common/form/CheckboxField.jsx' import ConfirmationDialog from '@src/js/components/common/dialog/ConfirmationDialog.jsx' -import UserFormSelectionType from '@src/js/components/users/form/UserFormSelectionType.js' +import UserFormSelectionType from '@src/js/components/users/form/user/UserFormSelectionType.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' diff --git a/openbis_ng_ui/src/js/components/users/form/UserFormSelectionType.js b/openbis_ng_ui/src/js/components/users/form/user/UserFormSelectionType.js similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserFormSelectionType.js rename to openbis_ng_ui/src/js/components/users/form/user/UserFormSelectionType.js diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupForm.jsx b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupForm.jsx similarity index 92% rename from openbis_ng_ui/src/js/components/users/form/UserGroupForm.jsx rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupForm.jsx index 8c107ea9371dcef4a30580fbeb1a0a7184e6532a..726dfa54c30e44974670df4301f2177f83da6e96 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserGroupForm.jsx +++ b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupForm.jsx @@ -6,15 +6,15 @@ import { withStyles } from '@material-ui/core/styles' import ComponentContext from '@src/js/components/common/ComponentContext.js' import PageWithTwoPanels from '@src/js/components/common/page/PageWithTwoPanels.jsx' import GridContainer from '@src/js/components/common/grid/GridContainer.jsx' -import UserGroupFormController from '@src/js/components/users/form/UserGroupFormController.js' -import UserGroupFormFacade from '@src/js/components/users/form/UserGroupFormFacade.js' -import UserGroupFormSelectionType from '@src/js/components/users/form/UserGroupFormSelectionType.js' -import UserGroupFormParametersGroup from '@src/js/components/users/form/UserGroupFormParametersGroup.jsx' -import UserGroupFormParametersUser from '@src/js/components/users/form/UserGroupFormParametersUser.jsx' -import UserGroupFormParametersRole from '@src/js/components/users/form/UserGroupFormParametersRole.jsx' -import UserGroupFormGridUsers from '@src/js/components/users/form/UserGroupFormGridUsers.jsx' -import UserGroupFormGridRoles from '@src/js/components/users/form/UserGroupFormGridRoles.jsx' -import UserGroupFormButtons from '@src/js/components/users/form/UserGroupFormButtons.jsx' +import UserGroupFormController from '@src/js/components/users/form/usergroup/UserGroupFormController.js' +import UserGroupFormFacade from '@src/js/components/users/form/usergroup/UserGroupFormFacade.js' +import UserGroupFormSelectionType from '@src/js/components/users/form/usergroup/UserGroupFormSelectionType.js' +import UserGroupFormParametersGroup from '@src/js/components/users/form/usergroup/UserGroupFormParametersGroup.jsx' +import UserGroupFormParametersUser from '@src/js/components/users/form/usergroup/UserGroupFormParametersUser.jsx' +import UserGroupFormParametersRole from '@src/js/components/users/form/usergroup/UserGroupFormParametersRole.jsx' +import UserGroupFormGridUsers from '@src/js/components/users/form/usergroup/UserGroupFormGridUsers.jsx' +import UserGroupFormGridRoles from '@src/js/components/users/form/usergroup/UserGroupFormGridRoles.jsx' +import UserGroupFormButtons from '@src/js/components/users/form/usergroup/UserGroupFormButtons.jsx' import logger from '@src/js/common/logger.js' const styles = theme => ({ diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormButtons.jsx b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormButtons.jsx similarity index 97% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormButtons.jsx rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormButtons.jsx index 335833822c0329a1861ac5127cbfb43ba5988fc7..d18aa819978a5af2370f60aca1569e3f76f2545a 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserGroupFormButtons.jsx +++ b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormButtons.jsx @@ -2,7 +2,7 @@ import React from 'react' import PageMode from '@src/js/components/common/page/PageMode.js' import PageButtons from '@src/js/components/common/page/PageButtons.jsx' import Button from '@src/js/components/common/form/Button.jsx' -import UserGroupFormSelectionType from '@src/js/components/users/form/UserGroupFormSelectionType.js' +import UserGroupFormSelectionType from '@src/js/components/users/form/usergroup/UserGroupFormSelectionType.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormController.js b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormController.js similarity index 80% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormController.js rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormController.js index a3dcde07a5474b75aafbb1b7864b8f8a82d6b474..07bee7ef8badf692d800089184b541ba60974c11 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserGroupFormController.js +++ b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormController.js @@ -1,12 +1,12 @@ import PageController from '@src/js/components/common/page/PageController.js' -import UserGroupFormControllerLoad from '@src/js/components/users/form/UserGroupFormControllerLoad.js' -import UserGroupFormControllerAddUser from '@src/js/components/users/form/UserGroupFormControllerAddUser.js' -import UserGroupFormControllerAddRole from '@src/js/components/users/form/UserGroupFormControllerAddRole.js' -import UserGroupFormControllerRemove from '@src/js/components/users/form/UserGroupFormControllerRemove.js' -import UserGroupFormControllerValidate from '@src/js/components/users/form/UserGroupFormControllerValidate.js' -import UserGroupFormControllerChange from '@src/js/components/users/form/UserGroupFormControllerChange.js' -import UserGroupFormControllerSelectionChange from '@src/js/components/users/form/UserGroupFormControllerSelectionChange.js' -import UserGroupFormControllerSave from '@src/js/components/users/form/UserGroupFormControllerSave.js' +import UserGroupFormControllerLoad from '@src/js/components/users/form/usergroup/UserGroupFormControllerLoad.js' +import UserGroupFormControllerAddUser from '@src/js/components/users/form/usergroup/UserGroupFormControllerAddUser.js' +import UserGroupFormControllerAddRole from '@src/js/components/users/form/usergroup/UserGroupFormControllerAddRole.js' +import UserGroupFormControllerRemove from '@src/js/components/users/form/usergroup/UserGroupFormControllerRemove.js' +import UserGroupFormControllerValidate from '@src/js/components/users/form/usergroup/UserGroupFormControllerValidate.js' +import UserGroupFormControllerChange from '@src/js/components/users/form/usergroup/UserGroupFormControllerChange.js' +import UserGroupFormControllerSelectionChange from '@src/js/components/users/form/usergroup/UserGroupFormControllerSelectionChange.js' +import UserGroupFormControllerSave from '@src/js/components/users/form/usergroup/UserGroupFormControllerSave.js' import pages from '@src/js/common/consts/pages.js' import objectTypes from '@src/js/common/consts/objectType.js' diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerAddRole.js b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerAddRole.js similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerAddRole.js rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerAddRole.js diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerAddUser.js b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerAddUser.js similarity index 96% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerAddUser.js rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerAddUser.js index a70ff361b314723add18eb060c56a7d493188620..4459acf6fc5f63e04a886af3384486db18506dd9 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerAddUser.js +++ b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerAddUser.js @@ -1,5 +1,5 @@ import _ from 'lodash' -import UserGroupFormSelectionType from '@src/js/components/users/form/UserGroupFormSelectionType.js' +import UserGroupFormSelectionType from '@src/js/components/users/form/usergroup/UserGroupFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' export default class UserGroupFormControllerAddUser { diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerChange.js b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerChange.js similarity index 98% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerChange.js rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerChange.js index f29243a4be12fe34bfc0777184e8d4f095b7d43f..ff765ec49018320378a132dc6a089c30d2c7927b 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerChange.js +++ b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerChange.js @@ -1,7 +1,7 @@ import _ from 'lodash' import PageControllerChange from '@src/js/components/common/page/PageControllerChange.js' import RoleControllerChange from '@src/js/components/users/form/common/RoleControllerChange.js' -import UserGroupFormSelectionType from '@src/js/components/users/form/UserGroupFormSelectionType.js' +import UserGroupFormSelectionType from '@src/js/components/users/form/usergroup/UserGroupFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' export default class UserGroupFormControllerChange extends PageControllerChange { diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerLoad.js b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerLoad.js similarity index 98% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerLoad.js rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerLoad.js index a06afabf3cdbc57ad04ed9380b8d495664ca2536..6445e6935d8d07206622468719c90df57434fcf1 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerLoad.js +++ b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerLoad.js @@ -1,7 +1,7 @@ import _ from 'lodash' import PageControllerLoad from '@src/js/components/common/page/PageControllerLoad.js' import RoleControllerLoad from '@src/js/components/users/form/common/RoleControllerLoad.js' -import UserGroupFormSelectionType from '@src/js/components/users/form/UserGroupFormSelectionType.js' +import UserGroupFormSelectionType from '@src/js/components/users/form/usergroup/UserGroupFormSelectionType.js' import FormUtil from '@src/js/components/common/form/FormUtil.js' export default class UserGroupFormControllerLoad extends PageControllerLoad { diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerRemove.js b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerRemove.js similarity index 96% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerRemove.js rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerRemove.js index 34d398cf4a3898e9b2703bfb5b05394d59130db1..6191776f3ac44cc70b3bea6e07516546677db209 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerRemove.js +++ b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerRemove.js @@ -1,5 +1,5 @@ import RoleControllerRemove from '@src/js/components/users/form/common/RoleControllerRemove.js' -import UserGroupFormSelectionType from '@src/js/components/users/form/UserGroupFormSelectionType.js' +import UserGroupFormSelectionType from '@src/js/components/users/form/usergroup/UserGroupFormSelectionType.js' export default class UserGroupFormControllerRemove { constructor(controller) { diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerSave.js b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerSave.js similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerSave.js rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerSave.js diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerSelectionChange.js b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerSelectionChange.js similarity index 95% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerSelectionChange.js rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerSelectionChange.js index 6df062aef9e501a8e661255a40ed4c7a998ae903..c6e3d6ea529cc1d53fc3e9dbabf35b474550f8af 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerSelectionChange.js +++ b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerSelectionChange.js @@ -1,5 +1,5 @@ import PageControllerSelectionChange from '@src/js/components/common/page/PageControllerSelectionChange.js' -import UserGroupFormSelectionType from '@src/js/components/users/form/UserGroupFormSelectionType.js' +import UserGroupFormSelectionType from '@src/js/components/users/form/usergroup/UserGroupFormSelectionType.js' export default class UserGroupFormControllerSelectionChange extends PageControllerSelectionChange { constructor(controller) { diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerValidate.js b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerValidate.js similarity index 97% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerValidate.js rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerValidate.js index a324689be92d37032a14d4e92946a1e5c85afa03..4997b4802e8a50bbd52182ac2fb63024a2485b28 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserGroupFormControllerValidate.js +++ b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormControllerValidate.js @@ -1,6 +1,6 @@ import PageControllerValidate from '@src/js/components/common/page/PageConrollerValidate.js' import RoleControllerValidate from '@src/js/components/users/form/common/RoleControllerValidate.js' -import UserGroupFormSelectionType from '@src/js/components/users/form/UserGroupFormSelectionType.js' +import UserGroupFormSelectionType from '@src/js/components/users/form/usergroup/UserGroupFormSelectionType.js' import messages from '@src/js/common/messages.js' export default class UserGroupFormControllerValidate extends PageControllerValidate { diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormFacade.js b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormFacade.js similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormFacade.js rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormFacade.js diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormGridRoles.jsx b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormGridRoles.jsx similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormGridRoles.jsx rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormGridRoles.jsx diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormGridUsers.jsx b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormGridUsers.jsx similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormGridUsers.jsx rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormGridUsers.jsx diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormParametersGroup.jsx b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormParametersGroup.jsx similarity index 98% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormParametersGroup.jsx rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormParametersGroup.jsx index 32ac7a5ce1f253331c25b741c16e13981faa820d..83c7c962349ad025e36e3dae89a9a6463114aaae 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserGroupFormParametersGroup.jsx +++ b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormParametersGroup.jsx @@ -3,7 +3,7 @@ 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 TextField from '@src/js/components/common/form/TextField.jsx' -import UserGroupFormSelectionType from '@src/js/components/users/form/UserGroupFormSelectionType.js' +import UserGroupFormSelectionType from '@src/js/components/users/form/usergroup/UserGroupFormSelectionType.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormParametersRole.jsx b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormParametersRole.jsx similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormParametersRole.jsx rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormParametersRole.jsx diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormParametersUser.jsx b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormParametersUser.jsx similarity index 98% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormParametersUser.jsx rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormParametersUser.jsx index 5149bfd071d924d4e4ab2ad9dba0f66ac5f1ad12..da13e2f376f2e935671294149e28846d4d85f07c 100644 --- a/openbis_ng_ui/src/js/components/users/form/UserGroupFormParametersUser.jsx +++ b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormParametersUser.jsx @@ -4,7 +4,7 @@ import Container from '@src/js/components/common/form/Container.jsx' import Header from '@src/js/components/common/form/Header.jsx' import SelectField from '@src/js/components/common/form/SelectField.jsx' import Message from '@src/js/components/common/form/Message.jsx' -import UserGroupFormSelectionType from '@src/js/components/users/form/UserGroupFormSelectionType.js' +import UserGroupFormSelectionType from '@src/js/components/users/form/usergroup/UserGroupFormSelectionType.js' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' diff --git a/openbis_ng_ui/src/js/components/users/form/UserGroupFormSelectionType.js b/openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormSelectionType.js similarity index 100% rename from openbis_ng_ui/src/js/components/users/form/UserGroupFormSelectionType.js rename to openbis_ng_ui/src/js/components/users/form/usergroup/UserGroupFormSelectionType.js diff --git a/openbis_ng_ui/src/js/services/openbis/api.js b/openbis_ng_ui/src/js/services/openbis/api.js index d660f5e6c875c451b990f4535379a0a7b72fe491..4ff7c613e4ab7d636971343d5f84d3f5f2ab5023 100644 --- a/openbis_ng_ui/src/js/services/openbis/api.js +++ b/openbis_ng_ui/src/js/services/openbis/api.js @@ -1,5 +1,4 @@ import autoBind from 'auto-bind' -import dto from '@src/js/services/openbis/dto.js' class Facade { constructor() { diff --git a/openbis_ng_ui/srcTest/js/common/fixture.js b/openbis_ng_ui/srcTest/js/common/fixture.js index 6cd9060e2f6e803a2401125315bc11eb82bba7cf..7d198067bc40b6db83db8236afbdcff9512cf8c1 100644 --- a/openbis_ng_ui/srcTest/js/common/fixture.js +++ b/openbis_ng_ui/srcTest/js/common/fixture.js @@ -68,7 +68,13 @@ const TEST_PROPERTY_ASSIGNMENT_3 = new openbis.PropertyAssignment() TEST_PROPERTY_ASSIGNMENT_3.setPropertyType(TEST_PROPERTY_TYPE_3_DTO) TEST_PROPERTY_ASSIGNMENT_3.setSection('TEST_SECTION_2') +const TEST_PROPERTY_ASSIGNMENT_4 = new openbis.PropertyAssignment() +TEST_PROPERTY_ASSIGNMENT_4.setPropertyType(TEST_PROPERTY_TYPE_1_DTO) + const TEST_SAMPLE_TYPE_DTO = new openbis.SampleType() +TEST_SAMPLE_TYPE_DTO.setPermId( + new openbis.EntityTypePermId('TEST_TYPE', openbis.EntityKind.SAMPLE) +) TEST_SAMPLE_TYPE_DTO.setCode('TEST_TYPE') TEST_SAMPLE_TYPE_DTO.setAutoGeneratedCode(false) TEST_SAMPLE_TYPE_DTO.setGeneratedCodePrefix('TEST_PREFIX_') @@ -80,8 +86,18 @@ TEST_SAMPLE_TYPE_DTO.setPropertyAssignments([ TEST_PROPERTY_ASSIGNMENT_3 ]) +TEST_PROPERTY_ASSIGNMENT_1.setEntityType(TEST_SAMPLE_TYPE_DTO) +TEST_PROPERTY_ASSIGNMENT_2.setEntityType(TEST_SAMPLE_TYPE_DTO) +TEST_PROPERTY_ASSIGNMENT_3.setEntityType(TEST_SAMPLE_TYPE_DTO) + const ANOTHER_SAMPLE_TYPE_DTO = new openbis.SampleType() +ANOTHER_SAMPLE_TYPE_DTO.setPermId( + new openbis.EntityTypePermId('ANOTHER_SAMPLE_TYPE', openbis.EntityKind.SAMPLE) +) ANOTHER_SAMPLE_TYPE_DTO.setCode('ANOTHER_SAMPLE_TYPE') +ANOTHER_SAMPLE_TYPE_DTO.setPropertyAssignments([TEST_PROPERTY_ASSIGNMENT_4]) + +TEST_PROPERTY_ASSIGNMENT_4.setEntityType(ANOTHER_SAMPLE_TYPE_DTO) const TEST_EXPERIMENT_TYPE_DTO = new openbis.ExperimentType() TEST_EXPERIMENT_TYPE_DTO.setCode('TEST_TYPE') diff --git a/openbis_ng_ui/srcTest/js/components/AppComponentLogin.test.js b/openbis_ng_ui/srcTest/js/components/AppComponentLogin.test.js index b480cda823b001765a8f0d42845207f303400a19..c03cd6cc01f455cd67b0e07309b1470c5328febc 100644 --- a/openbis_ng_ui/srcTest/js/components/AppComponentLogin.test.js +++ b/openbis_ng_ui/srcTest/js/components/AppComponentLogin.test.js @@ -14,7 +14,7 @@ describe(AppComponentTest.SUITE, () => { async function testLogin() { const app = await common.mount() - app.expectJSON({ + await app.expectJSON({ login: { user: { value: null, @@ -35,7 +35,7 @@ async function testLogin() { await common.login(app) - app.expectJSON({ + await app.expectJSON({ login: null, menu: { tabs: [ @@ -63,7 +63,8 @@ async function testLogin() { { level: 0, text: 'Collection Types' }, { level: 0, text: 'Data Set Types' }, { level: 0, text: 'Material Types' }, - { level: 0, text: 'Vocabulary Types' } + { level: 0, text: 'Vocabulary Types' }, + { level: 0, text: 'Property Types' } ] }, content: { diff --git a/openbis_ng_ui/srcTest/js/components/AppComponentOpenCloseTypes.test.js b/openbis_ng_ui/srcTest/js/components/AppComponentOpenCloseTypes.test.js index 91ad207e4ade20a1485cfc2d9349f71a03ab048a..d777de208b0bf397d6c223b8a0adf76b32f2a1c5 100644 --- a/openbis_ng_ui/srcTest/js/components/AppComponentOpenCloseTypes.test.js +++ b/openbis_ng_ui/srcTest/js/components/AppComponentOpenCloseTypes.test.js @@ -48,7 +48,8 @@ async function testOpenCloseTypes() { { level: 0, text: 'Collection Types', selected: false }, { level: 0, text: 'Data Set Types', selected: false }, { level: 0, text: 'Material Types', selected: false }, - { level: 0, text: 'Vocabulary Types', selected: false } + { level: 0, text: 'Vocabulary Types', selected: false }, + { level: 0, text: 'Property Types', selected: false } ] }, content: { @@ -87,7 +88,8 @@ async function testOpenCloseTypes() { { level: 0, text: 'Collection Types', selected: false }, { level: 0, text: 'Data Set Types', selected: false }, { level: 0, text: 'Material Types', selected: false }, - { level: 0, text: 'Vocabulary Types', selected: false } + { level: 0, text: 'Vocabulary Types', selected: false }, + { level: 0, text: 'Property Types', selected: false } ] }, content: { diff --git a/openbis_ng_ui/srcTest/js/components/AppComponentTest.js b/openbis_ng_ui/srcTest/js/components/AppComponentTest.js index c42a2ed95307490fdd4e09def568869bd84b1bf8..602e651d0a0cbe039be1e7d9b5a530f7c16f24c2 100644 --- a/openbis_ng_ui/srcTest/js/components/AppComponentTest.js +++ b/openbis_ng_ui/srcTest/js/components/AppComponentTest.js @@ -24,6 +24,7 @@ export default class AppComponentTest extends ComponentTest { openbis.mockSearchDataSetTypes([]) openbis.mockSearchMaterialTypes([]) openbis.mockSearchVocabularies([]) + openbis.mockSearchPropertyTypes([]) openbis.mockSearchPersons([]) openbis.mockSearchGroups([]) openbis.mockSearchPlugins([]) diff --git a/openbis_ng_ui/srcTest/js/components/tools/browser/ToolBrowserComponentFilter.test.js b/openbis_ng_ui/srcTest/js/components/tools/browser/ToolBrowserComponentFilter.test.js index f65073d1d496743fddaba127e411b9b7898f43ec..f9b6656dfffb5bc8a38d2bd495013de37ef96807 100644 --- a/openbis_ng_ui/srcTest/js/components/tools/browser/ToolBrowserComponentFilter.test.js +++ b/openbis_ng_ui/srcTest/js/components/tools/browser/ToolBrowserComponentFilter.test.js @@ -1,6 +1,5 @@ import ToolBrowserComponentTest from '@srcTest/js/components/tools/browser/ToolBrowserComponentTest.js' import ToolBrowserTestData from '@srcTest/js/components/tools/browser/ToolBrowserTestData.js' -import ImportType from '@src/js/components/tools/form/import/ImportType.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentFilter.test.js b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentFilter.test.js index d492b88bc3b51f5f654bc4665ccb748b44d273bc..ebdef9e6caf88c0b190058afda2236c9a2b33d51 100644 --- a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentFilter.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentFilter.test.js @@ -52,7 +52,8 @@ async function testFilter() { { level: 1, text: fixture.TEST_MATERIAL_TYPE_DTO.code }, { level: 0, text: 'Vocabulary Types' }, { level: 1, text: fixture.ANOTHER_VOCABULARY_DTO.code }, - { level: 1, text: fixture.TEST_VOCABULARY_DTO.code } + { level: 1, text: fixture.TEST_VOCABULARY_DTO.code }, + { level: 0, text: 'Property Types' } ] }) } diff --git a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentLoad.test.js b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentLoad.test.js index 6516511132d2148d54a38d9fc6ccd3d849f201d6..3980f5ed8cff6da06e7a6627883059b2a68db65e 100644 --- a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentLoad.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentLoad.test.js @@ -23,7 +23,8 @@ async function testLoad() { { level: 0, text: 'Collection Types' }, { level: 0, text: 'Data Set Types' }, { level: 0, text: 'Material Types' }, - { level: 0, text: 'Vocabulary Types' } + { level: 0, text: 'Vocabulary Types' }, + { level: 0, text: 'Property Types' } ] }) } diff --git a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentOpenClose.test.js b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentOpenClose.test.js index d389cd3e8c3f3611902c868a8419dd766afc4349..e8fbb653930d80458fa89febc62ec44a3a3c3195 100644 --- a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentOpenClose.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentOpenClose.test.js @@ -29,7 +29,8 @@ async function testOpenClose() { { level: 0, text: 'Collection Types' }, { level: 0, text: 'Data Set Types' }, { level: 0, text: 'Material Types' }, - { level: 0, text: 'Vocabulary Types' } + { level: 0, text: 'Vocabulary Types' }, + { level: 0, text: 'Property Types' } ] }) @@ -45,7 +46,8 @@ async function testOpenClose() { { level: 0, text: 'Collection Types' }, { level: 0, text: 'Data Set Types' }, { level: 0, text: 'Material Types' }, - { level: 0, text: 'Vocabulary Types' } + { level: 0, text: 'Vocabulary Types' }, + { level: 0, text: 'Property Types' } ] }) } diff --git a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentSelect.test.js b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentSelect.test.js index 1e05a49bea1237e227dcdcac83fac4d421cd1e36..1104e369b1cdfbc0046c55d33c6557ada54f5db7 100644 --- a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentSelect.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentSelect.test.js @@ -22,7 +22,8 @@ async function testSelectEntityKind() { { level: 0, text: 'Collection Types', selected: false }, { level: 0, text: 'Data Set Types', selected: false }, { level: 0, text: 'Material Types', selected: false }, - { level: 0, text: 'Vocabulary Types', selected: false } + { level: 0, text: 'Vocabulary Types', selected: false }, + { level: 0, text: 'Property Types', selected: false } ], buttons: { add: { @@ -43,7 +44,8 @@ async function testSelectEntityKind() { { level: 0, text: 'Collection Types', selected: false }, { level: 0, text: 'Data Set Types', selected: false }, { level: 0, text: 'Material Types', selected: false }, - { level: 0, text: 'Vocabulary Types', selected: false } + { level: 0, text: 'Vocabulary Types', selected: false }, + { level: 0, text: 'Property Types', selected: false } ], buttons: { add: { @@ -70,7 +72,8 @@ async function testSelectEntityType() { { level: 0, text: 'Collection Types', selected: false }, { level: 0, text: 'Data Set Types', selected: false }, { level: 0, text: 'Material Types', selected: false }, - { level: 0, text: 'Vocabulary Types', selected: false } + { level: 0, text: 'Vocabulary Types', selected: false }, + { level: 0, text: 'Property Types', selected: false } ], buttons: { add: { @@ -93,7 +96,8 @@ async function testSelectEntityType() { { level: 0, text: 'Collection Types', selected: false }, { level: 0, text: 'Data Set Types', selected: false }, { level: 0, text: 'Material Types', selected: false }, - { level: 0, text: 'Vocabulary Types', selected: false } + { level: 0, text: 'Vocabulary Types', selected: false }, + { level: 0, text: 'Property Types', selected: false } ], buttons: { add: { diff --git a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentTest.js b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentTest.js index eb943ad8621690cd2b97e034935f39c648e297bb..024525feeebba919eb24638294dffa7bbf96cdc0 100644 --- a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentTest.js +++ b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserComponentTest.js @@ -35,5 +35,10 @@ export default class TypeBrowserComponentTest extends ComponentTest { fixture.TEST_VOCABULARY_DTO, fixture.ANOTHER_VOCABULARY_DTO ]) + + openbis.mockSearchPropertyTypes([ + fixture.TEST_PROPERTY_TYPE_1_DTO, + fixture.TEST_PROPERTY_TYPE_2_DTO + ]) } } diff --git a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerLoad.test.js b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerLoad.test.js index 85c4b3a9138ca1795bf51bff08deb7979569822c..b8aabd2461fb947f5e5c7db42cad164901c6d727 100644 --- a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerLoad.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerLoad.test.js @@ -39,6 +39,11 @@ async function testLoad() { text: 'Vocabulary Types', expanded: false, selected: false + }, + { + text: 'Property Types', + expanded: false, + selected: false } ]) diff --git a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerRemoveNode.test.js b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerRemoveNode.test.js index 1efd40bd8951934d2f222d913fd1c23a3863bd30..b1315e22b21f108406c907989610ee1b8d8d9fc6 100644 --- a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerRemoveNode.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerRemoveNode.test.js @@ -42,11 +42,13 @@ async function testRemoveNode() { return new openbis.DeleteSampleTypesOperation([id], options) } - const createDeletePropertyTypeOperation = propertyTypeCode => { - const id = new openbis.PropertyTypePermId(propertyTypeCode) + const createDeletePropertyTypeOperation = propertyTypeCodes => { + const ids = propertyTypeCodes.map(propertyTypeCode => { + return new openbis.PropertyTypePermId(propertyTypeCode) + }) const options = new openbis.PropertyTypeDeletionOptions() options.setReason('deleted via ng_ui') - return new openbis.DeletePropertyTypesOperation([id], options) + return new openbis.DeletePropertyTypesOperation(ids, options) } const options = new openbis.SynchronousOperationExecutionOptions() @@ -55,7 +57,10 @@ async function testRemoveNode() { expect(openbis.executeOperations).toHaveBeenCalledWith( [ createDeleteTypeOperation(fixture.TEST_SAMPLE_TYPE_DTO.code), - createDeletePropertyTypeOperation(fixture.TEST_PROPERTY_TYPE_1_DTO.code) + createDeletePropertyTypeOperation([ + fixture.TEST_PROPERTY_TYPE_2_DTO.code, + fixture.TEST_PROPERTY_TYPE_3_DTO.code + ]) ], options ) diff --git a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerTest.js b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerTest.js index d7fd9e3c177dda3433fb8351692b021ae7cb2948..33992505e78f7b85fc3773a8e3cf60898e453ccf 100644 --- a/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerTest.js +++ b/openbis_ng_ui/srcTest/js/components/types/browser/TypeBrowserControllerTest.js @@ -32,6 +32,16 @@ export default class TypeBrowserControllerTest { fixture.TEST_VOCABULARY_DTO, fixture.ANOTHER_VOCABULARY_DTO ]) + + openbis.mockSearchPropertyTypes([ + fixture.TEST_PROPERTY_TYPE_1_DTO, + fixture.TEST_PROPERTY_TYPE_2_DTO + ]) + + openbis.mockSearchPropertyAssignments([ + ...fixture.TEST_SAMPLE_TYPE_DTO.propertyAssignments, + ...fixture.ANOTHER_SAMPLE_TYPE_DTO.propertyAssignments + ]) } expectNewTypeAction(type) { diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerTest.js b/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerTest.js deleted file mode 100644 index 7f7d1b5ebbe72c3181842dbeaccf0252bfd9f86f..0000000000000000000000000000000000000000 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerTest.js +++ /dev/null @@ -1,29 +0,0 @@ -import ComponentContext from '@srcTest/js/components/common/ComponentContext.js' -import TypeFormControler from '@src/js/components/types/form/TypeFormController.js' -import TypeFormFacade from '@src/js/components/types/form/TypeFormFacade' - -jest.mock('@src/js/components/types/form/TypeFormFacade') - -export default class TypeFormControllerTest { - static SUITE = 'TypeFormController' - - beforeEach() { - jest.resetAllMocks() - } - - init(object) { - this.context = new ComponentContext() - this.context.setProps({ - object - }) - this.facade = new TypeFormFacade() - this.controller = new TypeFormControler(this.facade) - this.controller.init(this.context) - } - - afterEach() { - expect(this.facade.loadType).toHaveBeenCalledWith( - this.context.getProps().object - ) - } -} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentTest.js b/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentTest.js deleted file mode 100644 index 0f97784748b3130bd6eaad5586b3b027d0f3cb89..0000000000000000000000000000000000000000 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentTest.js +++ /dev/null @@ -1,44 +0,0 @@ -import React from 'react' -import ComponentTest from '@srcTest/js/components/common/ComponentTest.js' -import VocabularyForm from '@src/js/components/types/form/VocabularyForm.jsx' -import VocabularyFormWrapper from '@srcTest/js/components/types/form/wrapper/VocabularyFormWrapper.js' -import VocabularyFormController from '@src/js/components/types/form/VocabularyFormController.js' -import VocabularyFormFacade from '@src/js/components/types/form/VocabularyFormFacade' -import objectTypes from '@src/js/common/consts/objectType.js' - -jest.mock('@src/js/components/types/form/VocabularyFormFacade') - -export default class VocabularyFormComponentTest extends ComponentTest { - static SUITE = 'VocabularyFormComponent' - - constructor() { - super( - object => <VocabularyForm object={object} controller={this.controller} />, - wrapper => new VocabularyFormWrapper(wrapper) - ) - this.facade = null - this.controller = null - } - - async beforeEach() { - super.beforeEach() - - this.facade = new VocabularyFormFacade() - this.controller = new VocabularyFormController(this.facade) - } - - async mountNew() { - return await this.mount({ - type: objectTypes.NEW_VOCABULARY_TYPE - }) - } - - async mountExisting(vocabulary) { - this.facade.loadVocabulary.mockReturnValue(Promise.resolve(vocabulary)) - - return await this.mount({ - id: vocabulary.getCode(), - type: objectTypes.VOCABULARY_TYPE - }) - } -} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentAddProperty.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentAddProperty.test.js similarity index 97% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentAddProperty.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentAddProperty.test.js index a7d931fdf72d7f9595bff5206eecf7b1439fee37..ad06158fd3dfe86da71bcc1b828a82ae05054424 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentAddProperty.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentAddProperty.test.js @@ -1,15 +1,15 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' import openbis from '@srcTest/js/services/openbis.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('add new property', testAddNewProperty) test('add existing property', testAddExistingProperty) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentAddSection.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentAddSection.test.js similarity index 88% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentAddSection.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentAddSection.test.js index ca3693a32bc715cfc33b8e76bcb13251f137b5cf..5bcc20d2fed4591bb90b72b78c551eba5fbb5bb2 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentAddSection.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentAddSection.test.js @@ -1,14 +1,14 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('add section', testAddSection) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentChangeProperty.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentChangeProperty.test.js similarity index 98% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentChangeProperty.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentChangeProperty.test.js index 466511fc1e871cb01b1d687d694fdf55501315eb..1b140c4cb946d4392e503d4ce5961ffc142dbdc5 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentChangeProperty.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentChangeProperty.test.js @@ -1,15 +1,15 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' import objectTypes from '@src/js/common/consts/objectType.js' import openbis from '@srcTest/js/services/openbis.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('change property', testChangeProperty) test('convert property', testConvertProperty) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentChangeSection.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentChangeSection.test.js similarity index 87% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentChangeSection.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentChangeSection.test.js index 154cfbc98a75a1e6a2a831cf6bcd3538c196555f..e0d67f1e37d330180c90ce455be5cd33843e59fc 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentChangeSection.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentChangeSection.test.js @@ -1,14 +1,14 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('change section', testChangeSection) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentChangeType.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentChangeType.test.js similarity index 90% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentChangeType.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentChangeType.test.js index e358a988be82af3330f24d9ab65d71ab258a2870..d2d6887f596f987ba7eb7210eae9b1c9a76ebe4a 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentChangeType.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentChangeType.test.js @@ -1,14 +1,14 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('change type', testChangeType) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentInternal.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentInternal.test.js similarity index 94% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentInternal.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentInternal.test.js index d3c0d42bb85fbf90dbffa150da41727f5f80479e..2ccc6773556f5371071029b4585656118fba097c 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentInternal.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentInternal.test.js @@ -1,4 +1,4 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' import objectTypes from '@src/js/common/consts/objectType.js' import openbis from '@srcTest/js/services/openbis.js' import fixture from '@srcTest/js/common/fixture.js' @@ -6,11 +6,11 @@ import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('internal', testInternal) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentLoad.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentLoad.test.js similarity index 94% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentLoad.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentLoad.test.js index c7e3a53f6e246058f29fae66b14d95701df5df54..4c3198b0b85ab033298e2ad86bbd0528b7317c47 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentLoad.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentLoad.test.js @@ -1,14 +1,14 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('load new', testLoadNew) test('load existing', testLoadExisting) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentRemoveProperty.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentRemoveProperty.test.js similarity index 92% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentRemoveProperty.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentRemoveProperty.test.js index 98e6779b1820ba0a943383b25df11fcdd225ca67..e783b60d22ffa86cf847277fa585eb557d7c5c6c 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentRemoveProperty.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentRemoveProperty.test.js @@ -1,14 +1,14 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('remove property', testRemoveProperty) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentRemoveSection.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentRemoveSection.test.js similarity index 88% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentRemoveSection.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentRemoveSection.test.js index 3ffa54969bc821e6d1ce2e034a30c9cffc10fd6f..d2653d358cc3b50a6a5e837c0a9bc7372220f060 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentRemoveSection.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentRemoveSection.test.js @@ -1,14 +1,14 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('remove section', testRemoveSection) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentSelectProperty.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentSelectProperty.test.js similarity index 93% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentSelectProperty.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentSelectProperty.test.js index a69633de0a23cdc6b6d91e7437e5276bcd8d3910..ccb3bd718ec5ade9c1e87df76d14e29184b3884c 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentSelectProperty.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentSelectProperty.test.js @@ -1,15 +1,15 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' import objectTypes from '@src/js/common/consts/objectType.js' import openbis from '@srcTest/js/services/openbis.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('select property unused', testSelectPropertyUnused) test('select property used', testSelectPropertyUsed) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentSelectSection.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentSelectSection.test.js similarity index 76% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentSelectSection.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentSelectSection.test.js index 90e7b10167009e3688af816e7c943b480a1d71ac..4d77d9ca710dd60cbcc646618283c1122fe2b6ea 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentSelectSection.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentSelectSection.test.js @@ -1,14 +1,14 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('select section', testSelectSection) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentTest.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js similarity index 58% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentTest.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js index 9068147d98f37b6c52eb8a95e3163305d8c30bb9..74b5b7fc006c1569a07ffb68c792ebb945fc720c 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentTest.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js @@ -1,20 +1,20 @@ import React from 'react' import ComponentTest from '@srcTest/js/components/common/ComponentTest.js' -import TypeForm from '@src/js/components/types/form/TypeForm.jsx' -import TypeFormWrapper from '@srcTest/js/components/types/form/wrapper/TypeFormWrapper.js' -import TypeFormController from '@src/js/components/types/form/TypeFormController.js' -import TypeFormFacade from '@src/js/components/types/form/TypeFormFacade' +import EntityTypeForm from '@src/js/components/types/form/entitytype/EntityTypeForm.jsx' +import EntityTypeFormWrapper from '@srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormWrapper.js' +import EntityTypeFormController from '@src/js/components/types/form/entitytype/EntityTypeFormController.js' +import EntityTypeFormFacade from '@src/js/components/types/form/entitytype/EntityTypeFormFacade' import objectTypes from '@src/js/common/consts/objectType.js' -jest.mock('@src/js/components/types/form/TypeFormFacade') +jest.mock('@src/js/components/types/form/entitytype/EntityTypeFormFacade') -export default class TypeFormComponentTest extends ComponentTest { - static SUITE = 'TypeFormComponent' +export default class EntityTypeFormComponentTest extends ComponentTest { + static SUITE = 'EntityTypeFormComponent' constructor() { super( - object => <TypeForm object={object} controller={this.controller} />, - wrapper => new TypeFormWrapper(wrapper) + object => <EntityTypeForm object={object} controller={this.controller} />, + wrapper => new EntityTypeFormWrapper(wrapper) ) this.facade = null this.controller = null @@ -23,8 +23,8 @@ export default class TypeFormComponentTest extends ComponentTest { async beforeEach() { super.beforeEach() - this.facade = new TypeFormFacade() - this.controller = new TypeFormController(this.facade) + this.facade = new EntityTypeFormFacade() + this.controller = new EntityTypeFormController(this.facade) this.facade.loadType.mockReturnValue(Promise.resolve({})) this.facade.loadDynamicPlugins.mockReturnValue(Promise.resolve([])) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentValidate.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentValidate.test.js similarity index 94% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentValidate.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentValidate.test.js index 8ee6b237f056d36bc131ef8b0a98df9db9179ab2..49b1023ba703dcde2e1c435c0bad40c0259c41fd 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormComponentValidate.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormComponentValidate.test.js @@ -1,13 +1,13 @@ -import TypeFormComponentTest from '@srcTest/js/components/types/form/TypeFormComponentTest.js' +import EntityTypeFormComponentTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormComponentTest.js' let common = null beforeEach(() => { - common = new TypeFormComponentTest() + common = new EntityTypeFormComponentTest() common.beforeEach() }) -describe(TypeFormComponentTest.SUITE, () => { +describe(EntityTypeFormComponentTest.SUITE, () => { test('validate type', testValidateType) test('validate property', testValidateProperty) test('validate type and property', testValidateTypeAndProperty) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerAddProperty.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerAddProperty.test.js similarity index 84% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerAddProperty.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerAddProperty.test.js index f2e92f5fa96f96ed3706f0db0aeadaac975ce9b0..a52f02b915d4f29e90c3807cff2b457a841affdc 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerAddProperty.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerAddProperty.test.js @@ -1,12 +1,12 @@ -import TypeFormControllerTest from '@srcTest/js/components/types/form/TypeFormControllerTest.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import objectTypes from '@src/js/common/consts/objectType.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormControllerTest() + common = new EntityTypeFormControllerTest() common.beforeEach() common.init({ id: 'TEST_OBJECT_ID', @@ -18,7 +18,7 @@ afterEach(() => { common.afterEach() }) -describe(TypeFormControllerTest.SUITE, () => { +describe(EntityTypeFormControllerTest.SUITE, () => { test('add property with a section selected', testAddWithSectionSelected) test('add property with a property selected', testAddWithPropertySelected) }) @@ -29,13 +29,13 @@ async function testAddWithSectionSelected() { ) await common.controller.load() - common.controller.handleSelectionChange(TypeFormSelectionType.SECTION, { + common.controller.handleSelectionChange(EntityTypeFormSelectionType.SECTION, { id: 'section-1' }) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-1' } @@ -72,7 +72,7 @@ async function testAddWithSectionSelected() { expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-3' } @@ -116,13 +116,16 @@ async function testAddWithPropertySelected() { ) await common.controller.load() - common.controller.handleSelectionChange(TypeFormSelectionType.PROPERTY, { - id: 'property-1' - }) + common.controller.handleSelectionChange( + EntityTypeFormSelectionType.PROPERTY, + { + id: 'property-1' + } + ) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-1' } @@ -159,7 +162,7 @@ async function testAddWithPropertySelected() { expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-3' } diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerAddSection.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerAddSection.test.js similarity index 83% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerAddSection.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerAddSection.test.js index 47999c155559154e7ed6166f5df6fbb6c677ddfe..bd623897dd4fd2a6224f265c3f63cc528cce8a88 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerAddSection.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerAddSection.test.js @@ -1,12 +1,12 @@ -import TypeFormControllerTest from '@srcTest/js/components/types/form/TypeFormControllerTest.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import objectTypes from '@src/js/common/consts/objectType.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormControllerTest() + common = new EntityTypeFormControllerTest() common.beforeEach() common.init({ id: 'TEST_OBJECT_ID', @@ -18,7 +18,7 @@ afterEach(() => { common.afterEach() }) -describe(TypeFormControllerTest.SUITE, () => { +describe(EntityTypeFormControllerTest.SUITE, () => { test('add section with nothing selected', testAddWithNothingSelected) test('add section with a property selected', testAddWithPropertySelected) test('add section with a section selected', testAddWithSectionSelected) @@ -51,7 +51,7 @@ async function testAddWithNothingSelected() { expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-2' } @@ -82,13 +82,16 @@ async function testAddWithPropertySelected() { ) await common.controller.load() - common.controller.handleSelectionChange(TypeFormSelectionType.PROPERTY, { - id: 'property-0' - }) + common.controller.handleSelectionChange( + EntityTypeFormSelectionType.PROPERTY, + { + id: 'property-0' + } + ) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-0' } @@ -111,7 +114,7 @@ async function testAddWithPropertySelected() { expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-2' } @@ -142,13 +145,13 @@ async function testAddWithSectionSelected() { ) await common.controller.load() - common.controller.handleSelectionChange(TypeFormSelectionType.SECTION, { + common.controller.handleSelectionChange(EntityTypeFormSelectionType.SECTION, { id: 'section-0' }) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-0' } @@ -171,7 +174,7 @@ async function testAddWithSectionSelected() { expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-2' } diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerChange.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerChange.test.js similarity index 84% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerChange.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerChange.test.js index 1547156aaf531ddace99fb84f5a0c074256ce0fb..a9ead3c4cb39e81053337388f7a9ebd16711282a 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerChange.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerChange.test.js @@ -1,12 +1,12 @@ -import TypeFormControllerTest from '@srcTest/js/components/types/form/TypeFormControllerTest.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import objectTypes from '@src/js/common/consts/objectType.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormControllerTest() + common = new EntityTypeFormControllerTest() common.beforeEach() common.init({ id: 'TEST_OBJECT_ID', @@ -18,7 +18,7 @@ afterEach(() => { common.afterEach() }) -describe(TypeFormControllerTest.SUITE, () => { +describe(EntityTypeFormControllerTest.SUITE, () => { test('change type', testChangeType) test('change section', testChangeSection) test('change property', testChangeProperty) @@ -37,7 +37,7 @@ async function testChangeType() { } }) - common.controller.handleChange(TypeFormSelectionType.TYPE, { + common.controller.handleChange(EntityTypeFormSelectionType.TYPE, { field: 'description', value: 'NEW_DESCRIPTION' }) @@ -71,7 +71,7 @@ async function testChangeSection() { ] }) - common.controller.handleChange(TypeFormSelectionType.SECTION, { + common.controller.handleChange(EntityTypeFormSelectionType.SECTION, { id: 'section-1', field: 'name', value: 'TEST_NAME' @@ -118,7 +118,7 @@ async function testChangeProperty() { ] }) - common.controller.handleChange(TypeFormSelectionType.PROPERTY, { + common.controller.handleChange(EntityTypeFormSelectionType.PROPERTY, { id: 'property-1', field: 'description', value: 'TEST_DESCRIPTION' diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerLoad.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerLoad.test.js similarity index 91% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerLoad.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerLoad.test.js index 7bc1fc7d76dcc98adb44ad5bbe0edbe9c6a79fc3..18c23455fd23aa7b563870868d552f8d2be7e450 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerLoad.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerLoad.test.js @@ -1,16 +1,16 @@ -import TypeFormControllerTest from '@srcTest/js/components/types/form/TypeFormControllerTest.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import objectTypes from '@src/js/common/consts/objectType.js' import openbis from '@srcTest/js/services/openbis.js' let common = null beforeEach(() => { - common = new TypeFormControllerTest() + common = new EntityTypeFormControllerTest() common.beforeEach() }) -describe(TypeFormControllerTest.SUITE, () => { +describe(EntityTypeFormControllerTest.SUITE, () => { test('load successful existing', testLoadSuccessfulExisting) test('load successful new', testLoadSuccessfulNew) test('load maintains section selection', testLoadMaintainsSectionSelection) @@ -144,17 +144,17 @@ async function testLoadMaintainsSectionSelection() { common.controller.handleAddProperty() common.controller.handleAddSection() common.controller.handleAddProperty() - common.controller.handleOrderChange(TypeFormSelectionType.SECTION, { + common.controller.handleOrderChange(EntityTypeFormSelectionType.SECTION, { fromIndex: 0, toIndex: 1 }) - common.controller.handleSelectionChange(TypeFormSelectionType.SECTION, { + common.controller.handleSelectionChange(EntityTypeFormSelectionType.SECTION, { id: 'section-0' }) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-0' } }, sections: [ @@ -175,7 +175,7 @@ async function testLoadMaintainsSectionSelection() { expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-1' } }, sections: [ @@ -208,17 +208,20 @@ async function testLoadMaintainsPropertySelection() { common.controller.handleAddProperty() common.controller.handleAddSection() common.controller.handleAddProperty() - common.controller.handleOrderChange(TypeFormSelectionType.SECTION, { + common.controller.handleOrderChange(EntityTypeFormSelectionType.SECTION, { fromIndex: 0, toIndex: 1 }) - common.controller.handleSelectionChange(TypeFormSelectionType.PROPERTY, { - id: 'property-1' - }) + common.controller.handleSelectionChange( + EntityTypeFormSelectionType.PROPERTY, + { + id: 'property-1' + } + ) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-1' } }, sections: [ @@ -239,7 +242,7 @@ async function testLoadMaintainsPropertySelection() { expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-2' } }, sections: [ diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerOrderChange.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerOrderChange.test.js similarity index 85% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerOrderChange.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerOrderChange.test.js index d1ea77c619d867ecd46cb80f08f9948f2cfe315e..8d68432f2070367176412da7fd8a7dd31068b2eb 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerOrderChange.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerOrderChange.test.js @@ -1,12 +1,12 @@ -import TypeFormControllerTest from '@srcTest/js/components/types/form/TypeFormControllerTest.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import objectTypes from '@src/js/common/consts/objectType.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormControllerTest() + common = new EntityTypeFormControllerTest() common.beforeEach() common.init({ id: 'TEST_OBJECT_ID', @@ -18,7 +18,7 @@ afterEach(() => { common.afterEach() }) -describe(TypeFormControllerTest.SUITE, () => { +describe(EntityTypeFormControllerTest.SUITE, () => { test('move section', testMoveSection) test('move property within section', testMovePropertyWithinSection) test('move property between sections', testMovePropertyBetweenSections) @@ -46,7 +46,7 @@ async function testMoveSection() { ] }) - common.controller.handleOrderChange(TypeFormSelectionType.SECTION, { + common.controller.handleOrderChange(EntityTypeFormSelectionType.SECTION, { fromIndex: 0, toIndex: 1 }) @@ -89,7 +89,7 @@ async function testMovePropertyWithinSection() { ] }) - common.controller.handleOrderChange(TypeFormSelectionType.PROPERTY, { + common.controller.handleOrderChange(EntityTypeFormSelectionType.PROPERTY, { fromSectionId: 'section-1', toSectionId: 'section-1', fromIndex: 0, @@ -134,7 +134,7 @@ async function testMovePropertyBetweenSections() { ] }) - common.controller.handleOrderChange(TypeFormSelectionType.PROPERTY, { + common.controller.handleOrderChange(EntityTypeFormSelectionType.PROPERTY, { fromSectionId: 'section-1', toSectionId: 'section-0', fromIndex: 1, diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerRemove.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerRemove.test.js similarity index 90% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerRemove.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerRemove.test.js index abe8f9a152dea253b98dfbb4ea4279307a33941b..979c5f8ae8d83761e8a753afa99bfb76a3bb80d0 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerRemove.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerRemove.test.js @@ -1,12 +1,12 @@ -import TypeFormControllerTest from '@srcTest/js/components/types/form/TypeFormControllerTest.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import objectTypes from '@src/js/common/consts/objectType.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormControllerTest() + common = new EntityTypeFormControllerTest() common.beforeEach() common.init({ id: 'TEST_OBJECT_ID', @@ -18,7 +18,7 @@ afterEach(() => { common.afterEach() }) -describe(TypeFormControllerTest.SUITE, () => { +describe(EntityTypeFormControllerTest.SUITE, () => { test('remove section confirmed', async () => { await testRemoveSectionConfirmed(0) await testRemoveSectionConfirmed(10) @@ -48,13 +48,13 @@ async function testRemoveSectionConfirmed(usages) { ) await common.controller.load() - common.controller.handleSelectionChange(TypeFormSelectionType.SECTION, { + common.controller.handleSelectionChange(EntityTypeFormSelectionType.SECTION, { id: 'section-0' }) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-0' } @@ -92,7 +92,7 @@ async function testRemoveSectionConfirmed(usages) { expect(common.context.getState()).toMatchObject({ removeSectionDialogOpen: true, selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-0' } @@ -162,13 +162,13 @@ async function testRemoveSectionCancelled(usages) { ) await common.controller.load() - common.controller.handleSelectionChange(TypeFormSelectionType.SECTION, { + common.controller.handleSelectionChange(EntityTypeFormSelectionType.SECTION, { id: 'section-0' }) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-0' } @@ -206,7 +206,7 @@ async function testRemoveSectionCancelled(usages) { expect(common.context.getState()).toMatchObject({ removeSectionDialogOpen: true, selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-0' } @@ -245,7 +245,7 @@ async function testRemoveSectionCancelled(usages) { expect(common.context.getState()).toMatchObject({ removeSectionDialogOpen: false, selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-0' } @@ -291,13 +291,16 @@ async function testRemovePropertyConfirmed(usages) { ) await common.controller.load() - common.controller.handleSelectionChange(TypeFormSelectionType.PROPERTY, { - id: 'property-1' - }) + common.controller.handleSelectionChange( + EntityTypeFormSelectionType.PROPERTY, + { + id: 'property-1' + } + ) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-1' } @@ -335,7 +338,7 @@ async function testRemovePropertyConfirmed(usages) { expect(common.context.getState()).toMatchObject({ removePropertyDialogOpen: true, selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-1' } @@ -410,13 +413,16 @@ async function testRemovePropertyCancelled(usages) { ) await common.controller.load() - common.controller.handleSelectionChange(TypeFormSelectionType.PROPERTY, { - id: 'property-1' - }) + common.controller.handleSelectionChange( + EntityTypeFormSelectionType.PROPERTY, + { + id: 'property-1' + } + ) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-1' } @@ -454,7 +460,7 @@ async function testRemovePropertyCancelled(usages) { expect(common.context.getState()).toMatchObject({ removePropertyDialogOpen: true, selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-1' } @@ -493,7 +499,7 @@ async function testRemovePropertyCancelled(usages) { expect(common.context.getState()).toMatchObject({ removePropertyDialogOpen: false, selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-1' } diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerSave.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerSave.test.js similarity index 83% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerSave.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerSave.test.js index c8bfc3c93b92b906bda9200b17d5d8a536753264..5435b6e7f60b6a6efa1ad904729d6b105e165548 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerSave.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerSave.test.js @@ -1,12 +1,12 @@ -import TypeFormControllerTest from '@srcTest/js/components/types/form/TypeFormControllerTest.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import objectTypes from '@src/js/common/consts/objectType.js' import openbis from '@srcTest/js/services/openbis.js' let common = null beforeEach(() => { - common = new TypeFormControllerTest() + common = new EntityTypeFormControllerTest() common.beforeEach() common.init({ id: 'TEST_OBJECT_ID', @@ -18,7 +18,7 @@ afterEach(() => { common.afterEach() }) -describe(TypeFormControllerTest.SUITE, () => { +describe(EntityTypeFormControllerTest.SUITE, () => { test('save add property', testSaveAddProperty) test('save update property assignment', testSaveUpdatePropertyAssignment) test('save update property type', testSaveUpdatePropertyType) @@ -43,22 +43,22 @@ async function testSaveAddProperty() { common.controller.handleAddSection() common.controller.handleAddProperty() - common.controller.handleChange(TypeFormSelectionType.PROPERTY, { + common.controller.handleChange(EntityTypeFormSelectionType.PROPERTY, { id: 'property-0', field: 'code', value: 'NEW_CODE' }) - common.controller.handleChange(TypeFormSelectionType.PROPERTY, { + common.controller.handleChange(EntityTypeFormSelectionType.PROPERTY, { id: 'property-0', field: 'dataType', value: 'VARCHAR' }) - common.controller.handleChange(TypeFormSelectionType.PROPERTY, { + common.controller.handleChange(EntityTypeFormSelectionType.PROPERTY, { id: 'property-0', field: 'label', value: 'NEW_LABEL' }) - common.controller.handleChange(TypeFormSelectionType.PROPERTY, { + common.controller.handleChange(EntityTypeFormSelectionType.PROPERTY, { id: 'property-0', field: 'description', value: 'NEW_DESCRIPTION' @@ -85,7 +85,7 @@ async function testSaveUpdatePropertyAssignment() { await common.controller.load() - common.controller.handleChange(TypeFormSelectionType.PROPERTY, { + common.controller.handleChange(EntityTypeFormSelectionType.PROPERTY, { id: 'property-0', field: 'mandatory', value: true @@ -110,7 +110,7 @@ async function testSaveUpdatePropertyType() { await common.controller.load() - common.controller.handleChange(TypeFormSelectionType.PROPERTY, { + common.controller.handleChange(EntityTypeFormSelectionType.PROPERTY, { id: 'property-0', field: 'label', value: 'Updated label' @@ -134,12 +134,16 @@ async function testSaveDeleteProperty() { ) common.facade.loadPropertyUsages.mockReturnValue(Promise.resolve({})) common.facade.executeOperations.mockReturnValue(Promise.resolve({})) + common.facade.loadAssignments.mockReturnValue(Promise.resolve({})) await common.controller.load() - common.controller.handleSelectionChange(TypeFormSelectionType.PROPERTY, { - id: 'property-0' - }) + common.controller.handleSelectionChange( + EntityTypeFormSelectionType.PROPERTY, + { + id: 'property-0' + } + ) common.controller.handleRemove() common.controller.handleRemoveConfirm() @@ -168,9 +172,12 @@ async function testSaveDeletePropertyLastAssignment() { await common.controller.load() - common.controller.handleSelectionChange(TypeFormSelectionType.PROPERTY, { - id: 'property-0' - }) + common.controller.handleSelectionChange( + EntityTypeFormSelectionType.PROPERTY, + { + id: 'property-0' + } + ) common.controller.handleRemove() common.controller.handleRemoveConfirm() @@ -181,7 +188,8 @@ async function testSaveDeletePropertyLastAssignment() { SAMPLE_TYPE_WITH_TEST_PROPERTY.getCode(), TEST_PROPERTY_TYPE.getCode() ), - setPropertyAssignmentOperation(SAMPLE_TYPE_WITH_TEST_PROPERTY.getCode()) + setPropertyAssignmentOperation(SAMPLE_TYPE_WITH_TEST_PROPERTY.getCode()), + deletePropertyTypeOperation(TEST_PROPERTY_TYPE.getCode()) ]) } @@ -248,6 +256,15 @@ function deletePropertyAssignmentOperation(typeCode, propertyCode) { return new openbis.UpdateSampleTypesOperation([update]) } +function deletePropertyTypeOperation(propertyCode) { + const options = new openbis.PropertyTypeDeletionOptions() + options.setReason('deleted via ng_ui') + return new openbis.DeletePropertyTypesOperation( + [new openbis.PropertyTypePermId(propertyCode)], + options + ) +} + function expectExecuteOperations(expectedOperations) { expect(common.facade.executeOperations).toHaveBeenCalledTimes(1) const actualOperations = common.facade.executeOperations.mock.calls[0][0] diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerSelectionChange.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerSelectionChange.test.js similarity index 69% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerSelectionChange.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerSelectionChange.test.js index 6ad77276e6d61f05c7714d1112ca69931bd2c3a0..56140c402240c41e6590642d7da94961a8d9dc82 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerSelectionChange.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerSelectionChange.test.js @@ -1,12 +1,12 @@ -import TypeFormControllerTest from '@srcTest/js/components/types/form/TypeFormControllerTest.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import objectTypes from '@src/js/common/consts/objectType.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new TypeFormControllerTest() + common = new EntityTypeFormControllerTest() common.beforeEach() common.init({ id: 'TEST_OBJECT_ID', @@ -18,7 +18,7 @@ afterEach(() => { common.afterEach() }) -describe(TypeFormControllerTest.SUITE, () => { +describe(EntityTypeFormControllerTest.SUITE, () => { test('select a section', testSelectSection) test('select a property', testSelectProperty) }) @@ -34,13 +34,13 @@ async function testSelectSection() { selection: null }) - common.controller.handleSelectionChange(TypeFormSelectionType.SECTION, { + common.controller.handleSelectionChange(EntityTypeFormSelectionType.SECTION, { id: 'section-0' }) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.SECTION, + type: EntityTypeFormSelectionType.SECTION, params: { id: 'section-0' } @@ -65,13 +65,16 @@ async function testSelectProperty() { selection: null }) - common.controller.handleSelectionChange(TypeFormSelectionType.PROPERTY, { - id: 'property-0' - }) + common.controller.handleSelectionChange( + EntityTypeFormSelectionType.PROPERTY, + { + id: 'property-0' + } + ) expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-0' } diff --git a/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js new file mode 100644 index 0000000000000000000000000000000000000000..8ca9f8ccb83bd79888c092a8b0d1d08e5fd197d7 --- /dev/null +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js @@ -0,0 +1,29 @@ +import ComponentContext from '@srcTest/js/components/common/ComponentContext.js' +import EntityTypeFormControler from '@src/js/components/types/form/entitytype/EntityTypeFormController.js' +import EntityTypeFormFacade from '@src/js/components/types/form/entitytype/EntityTypeFormFacade' + +jest.mock('@src/js/components/types/form/entitytype/EntityTypeFormFacade') + +export default class EntityTypeFormControllerTest { + static SUITE = 'EntityTypeFormController' + + beforeEach() { + jest.resetAllMocks() + } + + init(object) { + this.context = new ComponentContext() + this.context.setProps({ + object + }) + this.facade = new EntityTypeFormFacade() + this.controller = new EntityTypeFormControler(this.facade) + this.controller.init(this.context) + } + + afterEach() { + expect(this.facade.loadType).toHaveBeenCalledWith( + this.context.getProps().object + ) + } +} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerValidate.test.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerValidate.test.js similarity index 79% rename from openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerValidate.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerValidate.test.js index 51216eee4aa2110f4df2ea1ac59ea19f254f0641..e96227f53cf313434aa64df3cad3650d1de2e7ca 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/TypeFormControllerValidate.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/EntityTypeFormControllerValidate.test.js @@ -1,12 +1,12 @@ -import TypeFormControllerTest from '@srcTest/js/components/types/form/TypeFormControllerTest.js' -import TypeFormSelectionType from '@src/js/components/types/form/TypeFormSelectionType.js' +import EntityTypeFormControllerTest from '@srcTest/js/components/types/form/entitytype/EntityTypeFormControllerTest.js' +import EntityTypeFormSelectionType from '@src/js/components/types/form/entitytype/EntityTypeFormSelectionType.js' import objectTypes from '@src/js/common/consts/objectType.js' import openbis from '@srcTest/js/services/openbis.js' let common = null beforeEach(() => { - common = new TypeFormControllerTest() + common = new EntityTypeFormControllerTest() common.beforeEach() common.init({ id: 'TEST_OBJECT_ID', @@ -18,7 +18,7 @@ afterEach(() => { common.afterEach() }) -describe(TypeFormControllerTest.SUITE, () => { +describe(EntityTypeFormControllerTest.SUITE, () => { test('validate', testValidate) }) @@ -33,7 +33,7 @@ async function testValidate() { expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.PROPERTY, + type: EntityTypeFormSelectionType.PROPERTY, params: { id: 'property-0' } @@ -57,7 +57,7 @@ async function testValidate() { expect(common.context.getState()).toMatchObject({ selection: { - type: TypeFormSelectionType.TYPE, + type: EntityTypeFormSelectionType.TYPE, params: { part: 'code' } diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormButtonsWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormButtonsWrapper.js similarity index 91% rename from openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormButtonsWrapper.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormButtonsWrapper.js index 19141e6d39987ba660e8d88c355e15c2d6f95181..0e7e2ff83cf1ce521fc02d4035fdb1b94b209b43 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormButtonsWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormButtonsWrapper.js @@ -2,7 +2,7 @@ import Button from '@src/js/components/common/form/Button.jsx' import ButtonWrapper from '@srcTest/js/components/common/form/wrapper/ButtonWrapper.js' import PageButtonsWrapper from '@srcTest/js/components/common/page/wrapper/PageButtonsWrapper.js' -export default class TypeFormButtonsWrapper extends PageButtonsWrapper { +export default class EntityTypeFormButtonsWrapper extends PageButtonsWrapper { getAddSection() { return new ButtonWrapper( this.findComponent(Button).filter({ name: 'addSection' }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersPropertyWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersPropertyWrapper.js similarity index 97% rename from openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersPropertyWrapper.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersPropertyWrapper.js index ecd899470713b51b2511b3e0dde729c92f8d5f5a..830125782c4c0aa4e1415e4927b51bc3cd550a91 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersPropertyWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersPropertyWrapper.js @@ -8,7 +8,7 @@ import CheckboxFieldWrapper from '@srcTest/js/components/common/form/wrapper/Che import AutocompleterFieldWrapper from '@srcTest/js/components/common/form/wrapper/AutocompleterFieldWrapper.js' import PageParametersPanelWrapper from '@srcTest/js/components/common/page/wrapper/PageParametersPanelWrapper' -export default class TypeFormParametersPropertyWrapper extends PageParametersPanelWrapper { +export default class EntityTypeFormParametersPropertyWrapper extends PageParametersPanelWrapper { getCode() { const textFieldWrapper = this.findComponent(TextField).filter({ name: 'code' diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersSectionWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersSectionWrapper.js similarity index 83% rename from openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersSectionWrapper.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersSectionWrapper.js index 4efd1ec7b11db2844f4033dbf50093b556acb827..9614829d2e24f13aefd08cbc70edfe46f5c4eb61 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersSectionWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersSectionWrapper.js @@ -2,7 +2,7 @@ import TextField from '@src/js/components/common/form/TextField.jsx' import TextFieldWrapper from '@srcTest/js/components/common/form/wrapper/TextFieldWrapper.js' import PageParametersPanelWrapper from '@srcTest/js/components/common/page/wrapper/PageParametersPanelWrapper' -export default class TypeFormParametersSectionWrapper extends PageParametersPanelWrapper { +export default class EntityTypeFormParametersSectionWrapper extends PageParametersPanelWrapper { getName() { return new TextFieldWrapper( this.findComponent(TextField).filter({ name: 'name' }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersTypeWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersTypeWrapper.js similarity index 94% rename from openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersTypeWrapper.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersTypeWrapper.js index ce8e5035f7ddc632ea7a96c2349765f2a84bfbd0..83e46927f49f286dff18a2ddf788b508c8d76fc5 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersTypeWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersTypeWrapper.js @@ -6,7 +6,7 @@ import TextFieldWrapper from '@srcTest/js/components/common/form/wrapper/TextFie import SelectFieldWrapper from '@srcTest/js/components/common/form/wrapper/SelectFieldWrapper.js' import PageParametersPanelWrapper from '@srcTest/js/components/common/page/wrapper/PageParametersPanelWrapper' -export default class TypeFormParametersTypeWrapper extends PageParametersPanelWrapper { +export default class EntityTypeFormParametersTypeWrapper extends PageParametersPanelWrapper { getCode() { return new TextFieldWrapper( this.findComponent(TextField).filter({ name: 'code' }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersWrapper.js new file mode 100644 index 0000000000000000000000000000000000000000..725ee2483718c59a293883dd6cb912e969a5180a --- /dev/null +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormParametersWrapper.js @@ -0,0 +1,35 @@ +import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' +import EntityTypeFormParametersType from '@src/js/components/types/form/entitytype/EntityTypeFormParametersType.jsx' +import EntityTypeFormParametersProperty from '@src/js/components/types/form/entitytype/EntityTypeFormParametersProperty.jsx' +import EntityTypeFormParametersSection from '@src/js/components/types/form/entitytype/EntityTypeFormParametersSection.jsx' +import EntityTypeFormParametersTypeWrapper from './EntityTypeFormParametersTypeWrapper.js' +import EntityTypeFormParametersPropertyWrapper from './EntityTypeFormParametersPropertyWrapper.js' +import EntityTypeFormParametersSectionWrapper from './EntityTypeFormParametersSectionWrapper.js' + +export default class EntityTypeFormParametersWrapper extends BaseWrapper { + getType() { + return new EntityTypeFormParametersTypeWrapper( + this.findComponent(EntityTypeFormParametersType) + ) + } + + getProperty() { + return new EntityTypeFormParametersPropertyWrapper( + this.findComponent(EntityTypeFormParametersProperty) + ) + } + + getSection() { + return new EntityTypeFormParametersSectionWrapper( + this.findComponent(EntityTypeFormParametersSection) + ) + } + + toJSON() { + return { + type: this.getType().toJSON(), + property: this.getProperty().toJSON(), + section: this.getSection().toJSON() + } + } +} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewHeaderWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewHeaderWrapper.js similarity index 92% rename from openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewHeaderWrapper.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewHeaderWrapper.js index a0a996e867e41e74d337feb64e9ce242efe667f6..50b9061209967f8ff3da3b1af3fcc3262370a3bd 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewHeaderWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewHeaderWrapper.js @@ -3,7 +3,7 @@ import Header from '@src/js/components/common/form/Header.jsx' import TextField from '@src/js/components/common/form/TextField.jsx' import TextFieldWrapper from '@srcTest/js/components/common/form/wrapper/TextFieldWrapper.js' -export default class TypeFormPreviewHeaderWrapper extends BaseWrapper { +export default class EntityTypeFormPreviewHeaderWrapper extends BaseWrapper { getTitle() { return this.findComponent(Header) } diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewPropertyWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewPropertyWrapper.js similarity index 93% rename from openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewPropertyWrapper.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewPropertyWrapper.js index 4528bfa771bacf21ac7db356af98fb320a6f78b8..3061ab41aa02e086e9da01e0dffd0c31f744d98e 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewPropertyWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewPropertyWrapper.js @@ -2,7 +2,7 @@ import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' import Message from '@src/js/components/common/form/Message.jsx' import MessageWrapper from '@srcTest/js/components/common/form/wrapper/MessageWrapper.js' -export default class TypeFormPreviewPropertyWrapper extends BaseWrapper { +export default class EntityTypeFormPreviewPropertyWrapper extends BaseWrapper { getCode() { const code = this.wrapper.find({ 'data-part': 'code' }) if (code.exists()) { diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewSectionWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewSectionWrapper.js similarity index 54% rename from openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewSectionWrapper.js rename to openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewSectionWrapper.js index 5d80e468a24d5e1864453a5ef5ab03043dce3bd2..b84194219a51803e9f3b8eacdc3d0be1097333db 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewSectionWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewSectionWrapper.js @@ -1,18 +1,22 @@ import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' import Typography from '@material-ui/core/Typography' -import TypeFormPreviewProperty from '@src/js/components/types/form/TypeFormPreviewProperty.jsx' -import TypeFormPreviewPropertyWrapper from './TypeFormPreviewPropertyWrapper.js' +import EntityTypeFormPreviewProperty from '@src/js/components/types/form/entitytype/EntityTypeFormPreviewProperty.jsx' +import EntityTypeFormPreviewPropertyWrapper from './EntityTypeFormPreviewPropertyWrapper.js' -export default class TypeFormPreviewSectionWrapper extends BaseWrapper { +export default class EntityTypeFormPreviewSectionWrapper extends BaseWrapper { getName() { return this.findComponent(Typography).filter({ 'data-part': 'name' }) } getProperties() { const properties = [] - this.findComponent(TypeFormPreviewProperty).forEach(propertyWrapper => { - properties.push(new TypeFormPreviewPropertyWrapper(propertyWrapper)) - }) + this.findComponent(EntityTypeFormPreviewProperty).forEach( + propertyWrapper => { + properties.push( + new EntityTypeFormPreviewPropertyWrapper(propertyWrapper) + ) + } + ) return properties } diff --git a/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewWrapper.js new file mode 100644 index 0000000000000000000000000000000000000000..a44d5255b179a67b3b39517ec97741afebe8f5bf --- /dev/null +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormPreviewWrapper.js @@ -0,0 +1,28 @@ +import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' +import EntityTypeFormPreviewHeader from '@src/js/components/types/form/entitytype/EntityTypeFormPreviewHeader.jsx' +import EntityTypeFormPreviewSection from '@src/js/components/types/form/entitytype/EntityTypeFormPreviewSection.jsx' +import EntityTypeFormPreviewHeaderWrapper from './EntityTypeFormPreviewHeaderWrapper.js' +import EntityTypeFormPreviewSectionWrapper from './EntityTypeFormPreviewSectionWrapper.js' + +export default class EntityTypeFormPreviewWrapper extends BaseWrapper { + getHeader() { + return new EntityTypeFormPreviewHeaderWrapper( + this.findComponent(EntityTypeFormPreviewHeader) + ) + } + + getSections() { + const sections = [] + this.findComponent(EntityTypeFormPreviewSection).forEach(sectionWrapper => { + sections.push(new EntityTypeFormPreviewSectionWrapper(sectionWrapper)) + }) + return sections + } + + toJSON() { + return { + header: this.getHeader().toJSON(), + sections: this.getSections().map(section => section.toJSON()) + } + } +} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormWrapper.js new file mode 100644 index 0000000000000000000000000000000000000000..f3f21af9b94217e3e60674a90b90ff8c4741935f --- /dev/null +++ b/openbis_ng_ui/srcTest/js/components/types/form/entitytype/wrapper/EntityTypeFormWrapper.js @@ -0,0 +1,57 @@ +import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' +import ConfirmationDialog from '@src/js/components/common/dialog/ConfirmationDialog.jsx' +import ConfirmationDialogWrapper from '@srcTest/js/components/common/dialog/wrapper/ConfirmationDialogWrapper.js' +import EntityTypeFormPreview from '@src/js/components/types/form/entitytype/EntityTypeFormPreview.jsx' +import EntityTypeFormParameters from '@src/js/components/types/form/entitytype/EntityTypeFormParameters.jsx' +import EntityTypeFormButtons from '@src/js/components/types/form/entitytype/EntityTypeFormButtons.jsx' +import EntityTypeFormPreviewWrapper from './EntityTypeFormPreviewWrapper.js' +import EntityTypeFormParametersWrapper from './EntityTypeFormParametersWrapper.js' +import EntityTypeFormButtonsWrapper from './EntityTypeFormButtonsWrapper.js' +import EntityTypeFormDialogRemoveProperty from '@src/js/components/types/form/entitytype/EntityTypeFormDialogRemoveProperty.jsx' +import EntityTypeFormDialogRemoveSection from '@src/js/components/types/form/entitytype/EntityTypeFormDialogRemoveSection.jsx' + +export default class EntityTypeFormWrapper extends BaseWrapper { + getPreview() { + return new EntityTypeFormPreviewWrapper( + this.findComponent(EntityTypeFormPreview) + ) + } + + getParameters() { + return new EntityTypeFormParametersWrapper( + this.findComponent(EntityTypeFormParameters) + ) + } + + getButtons() { + return new EntityTypeFormButtonsWrapper( + this.findComponent(EntityTypeFormButtons) + ) + } + + getRemovePropertyDialog() { + const propertyDialog = this.findComponent( + EntityTypeFormDialogRemoveProperty + ) + return new ConfirmationDialogWrapper( + this.findComponent(ConfirmationDialog, propertyDialog) + ) + } + + getRemoveSectionDialog() { + const sectionDialog = this.findComponent(EntityTypeFormDialogRemoveSection) + return new ConfirmationDialogWrapper( + this.findComponent(ConfirmationDialog, sectionDialog) + ) + } + + toJSON() { + return { + preview: this.getPreview().toJSON(), + parameters: this.getParameters().toJSON(), + buttons: this.getButtons().toJSON(), + removePropertyDialog: this.getRemovePropertyDialog().toJSON(), + removeSectionDialog: this.getRemoveSectionDialog().toJSON() + } + } +} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentAddTerm.test.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentAddTerm.test.js similarity index 91% rename from openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentAddTerm.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentAddTerm.test.js index a5bdf3e8b50ba4c89336a4c30bb33b3090ae2b94..c14b0df3e1d01f32408b314e0bfd8c0ec9e57f7b 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentAddTerm.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentAddTerm.test.js @@ -1,14 +1,14 @@ -import VocabularyFormComponentTest from '@srcTest/js/components/types/form/VocabularyFormComponentTest.js' +import VocabularyTypeFormComponentTest from '@srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new VocabularyFormComponentTest() + common = new VocabularyTypeFormComponentTest() common.beforeEach() }) -describe(VocabularyFormComponentTest.SUITE, () => { +describe(VocabularyTypeFormComponentTest.SUITE, () => { test('add term', testAddTerm) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentChangeTerm.test.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentChangeTerm.test.js similarity index 89% rename from openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentChangeTerm.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentChangeTerm.test.js index 4333423be2e03a27704a82044b1918fe645d655a..3e731194edfae4d73b63446af66ca12117121275 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentChangeTerm.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentChangeTerm.test.js @@ -1,14 +1,14 @@ -import VocabularyFormComponentTest from '@srcTest/js/components/types/form/VocabularyFormComponentTest.js' +import VocabularyTypeFormComponentTest from '@srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new VocabularyFormComponentTest() + common = new VocabularyTypeFormComponentTest() common.beforeEach() }) -describe(VocabularyFormComponentTest.SUITE, () => { +describe(VocabularyTypeFormComponentTest.SUITE, () => { test('change term', testChangeTerm) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentChangeVocabulary.test.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentChangeVocabulary.test.js similarity index 83% rename from openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentChangeVocabulary.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentChangeVocabulary.test.js index f6da632401c327e66d1786fd8ed494bdb9efe47b..9cef9c541d257cf24c2355d39b006f4273e5eff1 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentChangeVocabulary.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentChangeVocabulary.test.js @@ -1,14 +1,14 @@ -import VocabularyFormComponentTest from '@srcTest/js/components/types/form/VocabularyFormComponentTest.js' +import VocabularyTypeFormComponentTest from '@srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new VocabularyFormComponentTest() + common = new VocabularyTypeFormComponentTest() common.beforeEach() }) -describe(VocabularyFormComponentTest.SUITE, () => { +describe(VocabularyTypeFormComponentTest.SUITE, () => { test('change vocabulary', testChangeVocabulary) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentFilter.test.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentFilter.test.js similarity index 89% rename from openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentFilter.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentFilter.test.js index 4932188f769e1a77139153df1d7b377eff7cb378..1449194da4e171ee808cc8009a03b74ab8d97609 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentFilter.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentFilter.test.js @@ -1,14 +1,14 @@ -import VocabularyFormComponentTest from '@srcTest/js/components/types/form/VocabularyFormComponentTest.js' +import VocabularyTypeFormComponentTest from '@srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js' import GridFilterOptions from '@src/js/components/common/grid/GridFilterOptions.js' let common = null beforeEach(() => { - common = new VocabularyFormComponentTest() + common = new VocabularyTypeFormComponentTest() common.beforeEach() }) -describe(VocabularyFormComponentTest.SUITE, () => { +describe(VocabularyTypeFormComponentTest.SUITE, () => { test('filter', testFilter) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentInternal.test.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentInternal.test.js similarity index 86% rename from openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentInternal.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentInternal.test.js index b36c3fe1e59f5cc97a3573dc76f87e60204bc184..fd3c347d6d9c9ece123f31303e49237ed5c2271f 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentInternal.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentInternal.test.js @@ -1,4 +1,4 @@ -import VocabularyFormComponentTest from '@srcTest/js/components/types/form/VocabularyFormComponentTest.js' +import VocabularyTypeFormComponentTest from '@srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js' import objectTypes from '@src/js/common/consts/objectType.js' import openbis from '@srcTest/js/services/openbis.js' import fixture from '@srcTest/js/common/fixture.js' @@ -6,11 +6,11 @@ import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new VocabularyFormComponentTest() + common = new VocabularyTypeFormComponentTest() common.beforeEach() }) -describe(VocabularyFormComponentTest.SUITE, () => { +describe(VocabularyTypeFormComponentTest.SUITE, () => { test('internal', testInternal) }) @@ -67,8 +67,7 @@ async function doTestInternal( ? [ { type: 'lock', - text: - 'This is a system internal vocabulary. The vocabulary parameters cannot be changed. The vocabulary cannot be removed.' + text: 'This is a system internal vocabulary. The vocabulary parameters cannot be changed. The vocabulary cannot be removed.' } ] : [], @@ -99,8 +98,7 @@ async function doTestInternal( ? [ { type: 'lock', - text: - 'This is a system internal term. The term parameters cannot be changed. The term cannot be removed.' + text: 'This is a system internal term. The term parameters cannot be changed. The term cannot be removed.' } ] : [], diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentLoad.test.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentLoad.test.js similarity index 93% rename from openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentLoad.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentLoad.test.js index 1a169ee0283497f6ff6969579cc9b708e75969d2..ee0e0a8b0946d05a21b71c5c5d36ca44f7db5dba 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentLoad.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentLoad.test.js @@ -1,14 +1,14 @@ -import VocabularyFormComponentTest from '@srcTest/js/components/types/form/VocabularyFormComponentTest.js' +import VocabularyTypeFormComponentTest from '@srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new VocabularyFormComponentTest() + common = new VocabularyTypeFormComponentTest() common.beforeEach() }) -describe(VocabularyFormComponentTest.SUITE, () => { +describe(VocabularyTypeFormComponentTest.SUITE, () => { test('load new', testLoadNew) test('load existing', testLoadExisting) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentPage.test.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentPage.test.js similarity index 90% rename from openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentPage.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentPage.test.js index 48255d33ee7a80815b477cfaccc5cc7bca755751..5c84516ab1ac51ebf45442b511ccf4077e1bea0c 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentPage.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentPage.test.js @@ -1,13 +1,13 @@ -import VocabularyFormComponentTest from '@srcTest/js/components/types/form/VocabularyFormComponentTest.js' +import VocabularyTypeFormComponentTest from '@srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js' let common = null beforeEach(() => { - common = new VocabularyFormComponentTest() + common = new VocabularyTypeFormComponentTest() common.beforeEach() }) -describe(VocabularyFormComponentTest.SUITE, () => { +describe(VocabularyTypeFormComponentTest.SUITE, () => { test('page', testPage) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentRemoveTerm.test.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentRemoveTerm.test.js similarity index 91% rename from openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentRemoveTerm.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentRemoveTerm.test.js index 3e805934dcb5613732bed9e5d8d733e0261adfcc..c6fbe4f80acc95a69b14f8b7e3e12eb9b17b317d 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentRemoveTerm.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentRemoveTerm.test.js @@ -1,14 +1,14 @@ -import VocabularyFormComponentTest from '@srcTest/js/components/types/form/VocabularyFormComponentTest.js' +import VocabularyTypeFormComponentTest from '@srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new VocabularyFormComponentTest() + common = new VocabularyTypeFormComponentTest() common.beforeEach() }) -describe(VocabularyFormComponentTest.SUITE, () => { +describe(VocabularyTypeFormComponentTest.SUITE, () => { test('remove term', testRemoveTerm) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentSelectTerm.test.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentSelectTerm.test.js similarity index 90% rename from openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentSelectTerm.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentSelectTerm.test.js index bb0b747b71b8394fa67b84e1d903f25dec1a5194..965af049393dd3821c1a688641ea7da670b8132d 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentSelectTerm.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentSelectTerm.test.js @@ -1,14 +1,14 @@ -import VocabularyFormComponentTest from '@srcTest/js/components/types/form/VocabularyFormComponentTest.js' +import VocabularyTypeFormComponentTest from '@srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new VocabularyFormComponentTest() + common = new VocabularyTypeFormComponentTest() common.beforeEach() }) -describe(VocabularyFormComponentTest.SUITE, () => { +describe(VocabularyTypeFormComponentTest.SUITE, () => { test('select term', testSelectTerm) test('follow selected term', testFollowSelectedTerm) }) @@ -127,8 +127,7 @@ async function testFollowSelectedTerm() { messages: [ { type: 'warning', - text: - 'The selected object is currently not visible in the list due to the chosen filtering and paging.' + text: 'The selected object is currently not visible in the list due to the chosen filtering and paging.' } ] } @@ -208,8 +207,7 @@ async function testFollowSelectedTerm() { messages: [ { type: 'warning', - text: - 'The selected object is currently not visible in the list due to the chosen filtering and paging.' + text: 'The selected object is currently not visible in the list due to the chosen filtering and paging.' } ] } diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentSort.test.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentSort.test.js similarity index 88% rename from openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentSort.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentSort.test.js index 8d7706511ad06cda5bd7022077d64c300a1e1818..2df4e2453ad13bc6ffc569f965355ca7046a109f 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentSort.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentSort.test.js @@ -1,13 +1,13 @@ -import VocabularyFormComponentTest from '@srcTest/js/components/types/form/VocabularyFormComponentTest.js' +import VocabularyTypeFormComponentTest from '@srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js' let common = null beforeEach(() => { - common = new VocabularyFormComponentTest() + common = new VocabularyTypeFormComponentTest() common.beforeEach() }) -describe(VocabularyFormComponentTest.SUITE, () => { +describe(VocabularyTypeFormComponentTest.SUITE, () => { test('sort', testSort) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js new file mode 100644 index 0000000000000000000000000000000000000000..c8dd70a55f8d244c7cab9631a906bed4cf0dd35f --- /dev/null +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js @@ -0,0 +1,48 @@ +import React from 'react' +import ComponentTest from '@srcTest/js/components/common/ComponentTest.js' +import VocabularyTypeForm from '@src/js/components/types/form/vocabularytype/VocabularyTypeForm.jsx' +import VocabularyTypeFormWrapper from '@srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormWrapper.js' +import VocabularyTypeFormController from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormController.js' +import VocabularyTypeFormFacade from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormFacade' +import objectTypes from '@src/js/common/consts/objectType.js' + +jest.mock( + '@src/js/components/types/form/vocabularytype/VocabularyTypeFormFacade' +) + +export default class VocabularyTypeFormComponentTest extends ComponentTest { + static SUITE = 'VocabularyTypeFormComponent' + + constructor() { + super( + object => ( + <VocabularyTypeForm object={object} controller={this.controller} /> + ), + wrapper => new VocabularyTypeFormWrapper(wrapper) + ) + this.facade = null + this.controller = null + } + + async beforeEach() { + super.beforeEach() + + this.facade = new VocabularyTypeFormFacade() + this.controller = new VocabularyTypeFormController(this.facade) + } + + async mountNew() { + return await this.mount({ + type: objectTypes.NEW_VOCABULARY_TYPE + }) + } + + async mountExisting(vocabulary) { + this.facade.loadVocabulary.mockReturnValue(Promise.resolve(vocabulary)) + + return await this.mount({ + id: vocabulary.getCode(), + type: objectTypes.VOCABULARY_TYPE + }) + } +} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentValidate.test.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentValidate.test.js similarity index 94% rename from openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentValidate.test.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentValidate.test.js index d0f9d7d02eb569a69c92d90acb965dc4b07e27d1..7077f319e56da292f3d163f0ab0ab7cceb874692 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/VocabularyFormComponentValidate.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentValidate.test.js @@ -1,14 +1,14 @@ -import VocabularyFormComponentTest from '@srcTest/js/components/types/form/VocabularyFormComponentTest.js' +import VocabularyTypeFormComponentTest from '@srcTest/js/components/types/form/vocabularytype/VocabularyTypeFormComponentTest.js' import fixture from '@srcTest/js/common/fixture.js' let common = null beforeEach(() => { - common = new VocabularyFormComponentTest() + common = new VocabularyTypeFormComponentTest() common.beforeEach() }) -describe(VocabularyFormComponentTest.SUITE, () => { +describe(VocabularyTypeFormComponentTest.SUITE, () => { test('validate term', testValidateTerm) test('validate vocabulary', testValidateVocabulary) }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormButtonsWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormButtonsWrapper.js similarity index 88% rename from openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormButtonsWrapper.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormButtonsWrapper.js index 4a130c959b9eb91c7fc3254750fe57d110b5e270..77e3a249638b54965c8939e3ba1b18641d553403 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormButtonsWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormButtonsWrapper.js @@ -2,7 +2,7 @@ import Button from '@src/js/components/common/form/Button.jsx' import ButtonWrapper from '@srcTest/js/components/common/form/wrapper/ButtonWrapper.js' import PageButtonsWrapper from '@srcTest/js/components/common/page/wrapper/PageButtonsWrapper.js' -export default class VocabularyFormButtonsWrapper extends PageButtonsWrapper { +export default class VocabularyTypeFormButtonsWrapper extends PageButtonsWrapper { getAddTerm() { return new ButtonWrapper( this.findComponent(Button).filter({ name: 'addTerm' }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormParametersTermWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersTermWrapper.js similarity index 92% rename from openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormParametersTermWrapper.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersTermWrapper.js index f03924715cf7d577532444148060a56a437c9a4e..a8ed21c5f473f693bbace09ac28990de1e7d4472 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormParametersTermWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersTermWrapper.js @@ -4,7 +4,7 @@ import CheckboxFieldWrapper from '@srcTest/js/components/common/form/wrapper/Che import TextFieldWrapper from '@srcTest/js/components/common/form/wrapper/TextFieldWrapper.js' import PageParametersPanelWrapper from '@srcTest/js/components/common/page/wrapper/PageParametersPanelWrapper' -export default class VocabularyFormParametersTermWrapper extends PageParametersPanelWrapper { +export default class VocabularyTypeFormParametersTermWrapper extends PageParametersPanelWrapper { getCode() { return new TextFieldWrapper( this.findComponent(TextField).filter({ name: 'code' }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormParametersVocabularyWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersVocabularyWrapper.js similarity index 89% rename from openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormParametersVocabularyWrapper.js rename to openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersVocabularyWrapper.js index 3154eaf28b020d935e79c666e75744701065de5f..21530ed9d7290a127082ffc77c31de5c73fb7a40 100644 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormParametersVocabularyWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersVocabularyWrapper.js @@ -2,7 +2,7 @@ import TextField from '@src/js/components/common/form/TextField.jsx' import TextFieldWrapper from '@srcTest/js/components/common/form/wrapper/TextFieldWrapper.js' import PageParametersPanelWrapper from '@srcTest/js/components/common/page/wrapper/PageParametersPanelWrapper' -export default class VocabularyFormParametersVocabularyWrapper extends PageParametersPanelWrapper { +export default class VocabularyTypeFormParametersVocabularyWrapper extends PageParametersPanelWrapper { getCode() { return new TextFieldWrapper( this.findComponent(TextField).filter({ name: 'code' }) diff --git a/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersWrapper.js new file mode 100644 index 0000000000000000000000000000000000000000..7e1d27049c6ef61ae944f9eda9228d6423201fa3 --- /dev/null +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersWrapper.js @@ -0,0 +1,26 @@ +import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' +import VocabularyTypeFormParametersVocabulary from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormParametersVocabulary.jsx' +import VocabularyTypeFormParametersVocabularyWrapper from '@srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersVocabularyWrapper.js' +import VocabularyTypeFormParametersTerm from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormParametersTerm.jsx' +import VocabularyTypeFormParametersTermWrapper from '@srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersTermWrapper.js' + +export default class VocabularyTypeFormParametersWrapper extends BaseWrapper { + getVocabulary() { + return new VocabularyTypeFormParametersVocabularyWrapper( + this.findComponent(VocabularyTypeFormParametersVocabulary) + ) + } + + getTerm() { + return new VocabularyTypeFormParametersTermWrapper( + this.findComponent(VocabularyTypeFormParametersTerm) + ) + } + + toJSON() { + return { + vocabulary: this.getVocabulary().toJSON(), + term: this.getTerm().toJSON() + } + } +} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormWrapper.js new file mode 100644 index 0000000000000000000000000000000000000000..4b718d1ce92eaf3c3e2bd36b32691ff3d506c366 --- /dev/null +++ b/openbis_ng_ui/srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormWrapper.js @@ -0,0 +1,33 @@ +import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' +import Grid from '@src/js/components/common/grid/Grid.jsx' +import GridWrapper from '@srcTest/js/components/common/grid/wrapper/GridWrapper.js' +import VocabularyTypeFormParameters from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormParameters.jsx' +import VocabularyTypeFormParametersWrapper from '@srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormParametersWrapper.js' +import VocabularyTypeFormButtons from '@src/js/components/types/form/vocabularytype/VocabularyTypeFormButtons.jsx' +import VocabularyTypeFormButtonsWrapper from '@srcTest/js/components/types/form/vocabularytype/wrapper/VocabularyTypeFormButtonsWrapper.js' + +export default class VocabularyTypeFormWrapper extends BaseWrapper { + getGrid() { + return new GridWrapper(this.findComponent(Grid)) + } + + getParameters() { + return new VocabularyTypeFormParametersWrapper( + this.findComponent(VocabularyTypeFormParameters) + ) + } + + getButtons() { + return new VocabularyTypeFormButtonsWrapper( + this.findComponent(VocabularyTypeFormButtons) + ) + } + + toJSON() { + return { + grid: this.getGrid().toJSON(), + parameters: this.getParameters().toJSON(), + buttons: this.getButtons().toJSON() + } + } +} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersWrapper.js deleted file mode 100644 index aa374a297b259065fca03e9123b2553db2ffc93f..0000000000000000000000000000000000000000 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormParametersWrapper.js +++ /dev/null @@ -1,35 +0,0 @@ -import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' -import TypeFormParametersType from '@src/js/components/types/form/TypeFormParametersType.jsx' -import TypeFormParametersProperty from '@src/js/components/types/form/TypeFormParametersProperty.jsx' -import TypeFormParametersSection from '@src/js/components/types/form/TypeFormParametersSection.jsx' -import TypeFormParametersTypeWrapper from './TypeFormParametersTypeWrapper.js' -import TypeFormParametersPropertyWrapper from './TypeFormParametersPropertyWrapper.js' -import TypeFormParametersSectionWrapper from './TypeFormParametersSectionWrapper.js' - -export default class TypeFormParametersWrapper extends BaseWrapper { - getType() { - return new TypeFormParametersTypeWrapper( - this.findComponent(TypeFormParametersType) - ) - } - - getProperty() { - return new TypeFormParametersPropertyWrapper( - this.findComponent(TypeFormParametersProperty) - ) - } - - getSection() { - return new TypeFormParametersSectionWrapper( - this.findComponent(TypeFormParametersSection) - ) - } - - toJSON() { - return { - type: this.getType().toJSON(), - property: this.getProperty().toJSON(), - section: this.getSection().toJSON() - } - } -} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewWrapper.js deleted file mode 100644 index 591c24bd02ade25d349fb63a8732c2ea5a767525..0000000000000000000000000000000000000000 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormPreviewWrapper.js +++ /dev/null @@ -1,28 +0,0 @@ -import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' -import TypeFormPreviewHeader from '@src/js/components/types/form/TypeFormPreviewHeader.jsx' -import TypeFormPreviewSection from '@src/js/components/types/form/TypeFormPreviewSection.jsx' -import TypeFormPreviewHeaderWrapper from './TypeFormPreviewHeaderWrapper.js' -import TypeFormPreviewSectionWrapper from './TypeFormPreviewSectionWrapper.js' - -export default class TypeFormPreviewWrapper extends BaseWrapper { - getHeader() { - return new TypeFormPreviewHeaderWrapper( - this.findComponent(TypeFormPreviewHeader) - ) - } - - getSections() { - const sections = [] - this.findComponent(TypeFormPreviewSection).forEach(sectionWrapper => { - sections.push(new TypeFormPreviewSectionWrapper(sectionWrapper)) - }) - return sections - } - - toJSON() { - return { - header: this.getHeader().toJSON(), - sections: this.getSections().map(section => section.toJSON()) - } - } -} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormWrapper.js deleted file mode 100644 index 369ffc54489ef7db8526566a2d8e07ccc51a6fcf..0000000000000000000000000000000000000000 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/TypeFormWrapper.js +++ /dev/null @@ -1,49 +0,0 @@ -import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' -import ConfirmationDialog from '@src/js/components/common/dialog/ConfirmationDialog.jsx' -import ConfirmationDialogWrapper from '@srcTest/js/components/common/dialog/wrapper/ConfirmationDialogWrapper.js' -import TypeFormPreview from '@src/js/components/types/form/TypeFormPreview.jsx' -import TypeFormParameters from '@src/js/components/types/form/TypeFormParameters.jsx' -import TypeFormButtons from '@src/js/components/types/form/TypeFormButtons.jsx' -import TypeFormPreviewWrapper from './TypeFormPreviewWrapper.js' -import TypeFormParametersWrapper from './TypeFormParametersWrapper.js' -import TypeFormButtonsWrapper from './TypeFormButtonsWrapper.js' -import TypeFormDialogRemoveProperty from '@src/js/components/types/form/TypeFormDialogRemoveProperty.jsx' -import TypeFormDialogRemoveSection from '@src/js/components/types/form/TypeFormDialogRemoveSection.jsx' - -export default class TypeFormWrapper extends BaseWrapper { - getPreview() { - return new TypeFormPreviewWrapper(this.findComponent(TypeFormPreview)) - } - - getParameters() { - return new TypeFormParametersWrapper(this.findComponent(TypeFormParameters)) - } - - getButtons() { - return new TypeFormButtonsWrapper(this.findComponent(TypeFormButtons)) - } - - getRemovePropertyDialog() { - const propertyDialog = this.findComponent(TypeFormDialogRemoveProperty) - return new ConfirmationDialogWrapper( - this.findComponent(ConfirmationDialog, propertyDialog) - ) - } - - getRemoveSectionDialog() { - const sectionDialog = this.findComponent(TypeFormDialogRemoveSection) - return new ConfirmationDialogWrapper( - this.findComponent(ConfirmationDialog, sectionDialog) - ) - } - - toJSON() { - return { - preview: this.getPreview().toJSON(), - parameters: this.getParameters().toJSON(), - buttons: this.getButtons().toJSON(), - removePropertyDialog: this.getRemovePropertyDialog().toJSON(), - removeSectionDialog: this.getRemoveSectionDialog().toJSON() - } - } -} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormParametersWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormParametersWrapper.js deleted file mode 100644 index 4929f018f9c1c8cce67d7544d79bad2180978171..0000000000000000000000000000000000000000 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormParametersWrapper.js +++ /dev/null @@ -1,26 +0,0 @@ -import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' -import VocabularyFormParametersVocabulary from '@src/js/components/types/form/VocabularyFormParametersVocabulary.jsx' -import VocabularyFormParametersVocabularyWrapper from './VocabularyFormParametersVocabularyWrapper.js' -import VocabularyFormParametersTerm from '@src/js/components/types/form/VocabularyFormParametersTerm.jsx' -import VocabularyFormParametersTermWrapper from './VocabularyFormParametersTermWrapper.js' - -export default class VocabularyFormParametersWrapper extends BaseWrapper { - getVocabulary() { - return new VocabularyFormParametersVocabularyWrapper( - this.findComponent(VocabularyFormParametersVocabulary) - ) - } - - getTerm() { - return new VocabularyFormParametersTermWrapper( - this.findComponent(VocabularyFormParametersTerm) - ) - } - - toJSON() { - return { - vocabulary: this.getVocabulary().toJSON(), - term: this.getTerm().toJSON() - } - } -} diff --git a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormWrapper.js b/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormWrapper.js deleted file mode 100644 index b5ed45eed73d890d78abc7421178032cba1d9d2c..0000000000000000000000000000000000000000 --- a/openbis_ng_ui/srcTest/js/components/types/form/wrapper/VocabularyFormWrapper.js +++ /dev/null @@ -1,33 +0,0 @@ -import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' -import Grid from '@src/js/components/common/grid/Grid.jsx' -import GridWrapper from '@srcTest/js/components/common/grid/wrapper/GridWrapper.js' -import VocabularyFormParameters from '@src/js/components/types/form/VocabularyFormParameters.jsx' -import VocabularyFormParametersWrapper from '@srcTest/js/components/types/form/wrapper/VocabularyFormParametersWrapper.js' -import VocabularyFormButtons from '@src/js/components/types/form/VocabularyFormButtons.jsx' -import VocabularyFormButtonsWrapper from '@srcTest/js/components/types/form/wrapper/VocabularyFormButtonsWrapper.js' - -export default class VocabularyFormWrapper extends BaseWrapper { - getGrid() { - return new GridWrapper(this.findComponent(Grid)) - } - - getParameters() { - return new VocabularyFormParametersWrapper( - this.findComponent(VocabularyFormParameters) - ) - } - - getButtons() { - return new VocabularyFormButtonsWrapper( - this.findComponent(VocabularyFormButtons) - ) - } - - toJSON() { - return { - grid: this.getGrid().toJSON(), - parameters: this.getParameters().toJSON(), - buttons: this.getButtons().toJSON() - } - } -} diff --git a/openbis_ng_ui/srcTest/js/components/types/search/TypeSearchComponentLoad.test.js b/openbis_ng_ui/srcTest/js/components/types/search/TypeSearchComponentLoad.test.js index 487fa02a1d81a68d3b86f9dbf8257413e469f8b6..30997a456294ae2d1330474de3e6ff24f50adfcf 100644 --- a/openbis_ng_ui/srcTest/js/components/types/search/TypeSearchComponentLoad.test.js +++ b/openbis_ng_ui/srcTest/js/components/types/search/TypeSearchComponentLoad.test.js @@ -32,7 +32,9 @@ async function testLoadWithSearchText(resultsFound) { testMaterialType, anotherMaterialType, testVocabularyType, - anotherVocabularyType + anotherVocabularyType, + testPropertyType, + anotherPropertyType } = TypeSearchTestData openbis.mockSearchSampleTypes( @@ -50,6 +52,10 @@ async function testLoadWithSearchText(resultsFound) { openbis.mockSearchVocabularies( resultsFound ? [testVocabularyType, anotherVocabularyType] : [] ) + openbis.mockSearchPropertyTypes( + resultsFound ? [testPropertyType, anotherPropertyType] : [] + ) + openbis.mockSearchPropertyAssignments([]) const form = await common.mount({ searchText: 'test' }) @@ -210,6 +216,59 @@ async function testLoadWithSearchText(resultsFound) { } } ] + }, + propertyTypes: { + columns: [ + { + name: 'code', + label: 'Code' + }, + { + name: 'label', + label: 'Label' + }, + { + name: 'description', + label: 'Description' + }, + { + name: 'dataType', + label: 'Data Type' + }, + { + name: 'vocabulary', + label: 'Vocabulary Type' + }, + { + name: 'materialType', + label: 'Material Type' + }, + { + name: 'sampleType', + label: 'Object Type' + }, + { + name: 'schema', + label: 'XML Schema' + }, + { + name: 'transformation', + label: 'XSLT Script' + }, + { + name: 'usages', + label: 'Usages' + } + ], + rows: [ + { + values: { + code: testPropertyType.getCode(), + description: testPropertyType.getDescription(), + label: testPropertyType.getLabel() + } + } + ] } }) } else { @@ -224,7 +283,8 @@ async function testLoadWithSearchText(resultsFound) { collectionTypes: null, dataSetTypes: null, materialTypes: null, - vocabularyTypes: null + vocabularyTypes: null, + propertyTypes: null }) } } @@ -297,6 +357,7 @@ async function testLoadWithObjectType(resultsFound) { collectionTypes: null, dataSetTypes: null, materialTypes: null, - vocabularyTypes: null + vocabularyTypes: null, + propertyTypes: null }) } diff --git a/openbis_ng_ui/srcTest/js/components/types/search/TypeSearchTestData.js b/openbis_ng_ui/srcTest/js/components/types/search/TypeSearchTestData.js index f238e530e05348b3f839a5016ba6a95adf1736c0..537a2fbc4625ac5762742cf1b3c78ce96afbf69b 100644 --- a/openbis_ng_ui/srcTest/js/components/types/search/TypeSearchTestData.js +++ b/openbis_ng_ui/srcTest/js/components/types/search/TypeSearchTestData.js @@ -58,6 +58,15 @@ const anotherVocabularyType = new openbis.Vocabulary() anotherVocabularyType.setCode('ANOTHER_VOCABULARY_TYPE') anotherVocabularyType.setDescription('Another Description') +const testPropertyType = new openbis.PropertyType() +testPropertyType.setCode('TEST_PROPERTY_TYPE') +testPropertyType.setDescription('Test Description') +testPropertyType.setLabel('Test Label') + +const anotherPropertyType = new openbis.PropertyType() +anotherPropertyType.setCode('ANOTHER_PROPERTY_TYPE') +anotherPropertyType.setDescription('Another Description') + export default { testObjectType, anotherObjectType, @@ -68,5 +77,7 @@ export default { testMaterialType, anotherMaterialType, testVocabularyType, - anotherVocabularyType + anotherVocabularyType, + testPropertyType, + anotherPropertyType } diff --git a/openbis_ng_ui/srcTest/js/components/types/search/wrapper/TypeSearchWrapper.js b/openbis_ng_ui/srcTest/js/components/types/search/wrapper/TypeSearchWrapper.js index 0b00bca72dacc496c785b702dbee47ae2b5887fb..dcf87ee58dd73b3fb186dd8ef4aeba564d600f49 100644 --- a/openbis_ng_ui/srcTest/js/components/types/search/wrapper/TypeSearchWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/types/search/wrapper/TypeSearchWrapper.js @@ -54,6 +54,14 @@ export default class TypeSearchWrapper extends BaseWrapper { ) } + getPropertyTypes() { + return new GridWrapper( + this.findComponent(Grid).filter({ + id: ids.PROPERTY_TYPES_GRID_ID + }) + ) + } + toJSON() { return { messages: this.getMessages().map(message => message.toJSON()), @@ -61,7 +69,8 @@ export default class TypeSearchWrapper extends BaseWrapper { collectionTypes: this.getCollectionTypes().toJSON(), dataSetTypes: this.getDataSetTypes().toJSON(), materialTypes: this.getMaterialTypes().toJSON(), - vocabularyTypes: this.getVocabularyTypes().toJSON() + vocabularyTypes: this.getVocabularyTypes().toJSON(), + propertyTypes: this.getPropertyTypes().toJSON() } } } diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentAddGroup.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentAddGroup.test.js similarity index 98% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentAddGroup.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentAddGroup.test.js index 0acbc4aca94e5b83188d0ab7f8ff406529034409..cd3c2fccc3e930329c160b94ff61b5723911dd85 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentAddGroup.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentAddGroup.test.js @@ -1,5 +1,5 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' -import UserFormTestData from '@srcTest/js/components/users/form/UserFormTestData.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' +import UserFormTestData from '@srcTest/js/components/users/form/user/UserFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentAddRole.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentAddRole.test.js similarity index 99% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentAddRole.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentAddRole.test.js index 9637be685e6e0f50b9b2969f4580e29e5f2a5826..349391971ed863d96ef0d5b38ea24971152ca0d1 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentAddRole.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentAddRole.test.js @@ -1,5 +1,5 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' -import UserFormTestData from '@srcTest/js/components/users/form/UserFormTestData.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' +import UserFormTestData from '@srcTest/js/components/users/form/user/UserFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentChangeGroup.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentChangeGroup.test.js similarity index 97% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentChangeGroup.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentChangeGroup.test.js index 33883e38d8e304bc90f1c64572bbf046ac1ac203..1a746acb55ff1fe0bfccc654e035767220d7d6cb 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentChangeGroup.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentChangeGroup.test.js @@ -1,5 +1,5 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' -import UserFormTestData from '@srcTest/js/components/users/form/UserFormTestData.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' +import UserFormTestData from '@srcTest/js/components/users/form/user/UserFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentChangeRole.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentChangeRole.test.js similarity index 98% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentChangeRole.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentChangeRole.test.js index 34e96dad7ef6e778f2e85f057a3e3208ddfb2cce..499590273868696cc6367a8765bf2c911d92fe81 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentChangeRole.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentChangeRole.test.js @@ -1,5 +1,5 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' -import UserFormTestData from '@srcTest/js/components/users/form/UserFormTestData.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' +import UserFormTestData from '@srcTest/js/components/users/form/user/UserFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentLoad.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentLoad.test.js similarity index 99% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentLoad.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentLoad.test.js index 28113489b56b91a5674cbf007e4455373bc6db9e..f158187895f1899f303f1e456b0ab2c2aee51eaf 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentLoad.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentLoad.test.js @@ -1,5 +1,5 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' -import UserFormTestData from '@srcTest/js/components/users/form/UserFormTestData.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' +import UserFormTestData from '@srcTest/js/components/users/form/user/UserFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentRemoveGroup.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentRemoveGroup.test.js similarity index 98% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentRemoveGroup.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentRemoveGroup.test.js index 6f7740750625c911f57ae965a581af9edf8e5b76..56051ede63318ce0ded1fabcd5a927ec4dc98d93 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentRemoveGroup.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentRemoveGroup.test.js @@ -1,5 +1,5 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' -import UserFormTestData from '@srcTest/js/components/users/form/UserFormTestData.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' +import UserFormTestData from '@srcTest/js/components/users/form/user/UserFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentRemoveRole.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentRemoveRole.test.js similarity index 98% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentRemoveRole.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentRemoveRole.test.js index 14537fb5c1206fb20a50693a5af6a5fab037789a..d7dfe0375ec63cd125bd40495182650e52ca0f06 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentRemoveRole.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentRemoveRole.test.js @@ -1,5 +1,5 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' -import UserFormTestData from '@srcTest/js/components/users/form/UserFormTestData.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' +import UserFormTestData from '@srcTest/js/components/users/form/user/UserFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSave.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSave.test.js similarity index 99% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSave.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSave.test.js index 4e78d6d7d58eac5db4efd3a09d549021f929f807..129f404dd0bd47279c64b1f4f396336eef091049 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSave.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSave.test.js @@ -1,5 +1,5 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' -import UserFormTestData from '@srcTest/js/components/users/form/UserFormTestData.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' +import UserFormTestData from '@srcTest/js/components/users/form/user/UserFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSelectGroup.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSelectGroup.test.js similarity index 97% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSelectGroup.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSelectGroup.test.js index 09e1b2bd64257a093f415b279b3c0f834e2e41cd..203c857f6999d6a231c772a7d620fbfce17f80f3 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSelectGroup.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSelectGroup.test.js @@ -1,5 +1,5 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' -import UserFormTestData from '@srcTest/js/components/users/form/UserFormTestData.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' +import UserFormTestData from '@srcTest/js/components/users/form/user/UserFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSelectRole.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSelectRole.test.js similarity index 95% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSelectRole.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSelectRole.test.js index a94a734c7740601670dad486bcad6aa0d60e49c9..1455719f8d5963dd1b56aab03ce7745d7eb81a49 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSelectRole.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSelectRole.test.js @@ -1,5 +1,5 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' -import UserFormTestData from '@srcTest/js/components/users/form/UserFormTestData.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' +import UserFormTestData from '@srcTest/js/components/users/form/user/UserFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null @@ -26,11 +26,8 @@ describe(UserFormComponentTest.SUITE, () => { }) async function testSelectRole() { - const { - mySpace, - mySpaceAdminAssignment, - myProjectAdminAssignment - } = UserFormTestData + const { mySpace, mySpaceAdminAssignment, myProjectAdminAssignment } = + UserFormTestData const user = new openbis.Person() user.setUserId('test-user') @@ -182,10 +179,8 @@ async function testSelectRole() { } async function testSelectInstanceRole(inherited) { - const { - instanceObserverGroupAssignment, - instanceAdminAssignment - } = UserFormTestData + const { instanceObserverGroupAssignment, instanceAdminAssignment } = + UserFormTestData const userAssignment = inherited ? instanceObserverGroupAssignment @@ -250,10 +245,8 @@ async function testSelectInstanceRole(inherited) { } async function testSelectSpaceRole(inherited) { - const { - testSpacePowerUserGroupAssignment, - mySpaceAdminAssignment - } = UserFormTestData + const { testSpacePowerUserGroupAssignment, mySpaceAdminAssignment } = + UserFormTestData const userAssignment = inherited ? testSpacePowerUserGroupAssignment @@ -323,10 +316,8 @@ async function testSelectSpaceRole(inherited) { } async function testSelectProjectRole(inherited) { - const { - testProjectAdminGroupAssignment, - myProjectAdminAssignment - } = UserFormTestData + const { testProjectAdminGroupAssignment, myProjectAdminAssignment } = + UserFormTestData const userAssignment = inherited ? testProjectAdminGroupAssignment diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSortRoles.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSortRoles.test.js similarity index 99% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSortRoles.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSortRoles.test.js index a13ec4cd1cece4cd0e81b4748bc3bbb617faffbc..596fd36c5e43d97f51f3fe248f63dccdd05e3bb9 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentSortRoles.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentSortRoles.test.js @@ -1,5 +1,5 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' -import UserFormTestData from '@srcTest/js/components/users/form/UserFormTestData.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' +import UserFormTestData from '@srcTest/js/components/users/form/user/UserFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentTest.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentTest.js similarity index 69% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentTest.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentTest.js index 85161e3df93fa72674e15a1416519938d7b94fa1..9c3bce08fcac9b052361815ffed8dedddda3b16d 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentTest.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentTest.js @@ -1,12 +1,12 @@ import React from 'react' import ComponentTest from '@srcTest/js/components/common/ComponentTest.js' -import UserForm from '@src/js/components/users/form/UserForm.jsx' -import UserFormWrapper from '@srcTest/js/components/users/form/wrapper/UserFormWrapper.js' -import UserFormController from '@src/js/components/users/form/UserFormController.js' -import UserFormFacade from '@src/js/components/users/form/UserFormFacade' +import UserForm from '@src/js/components/users/form/user/UserForm.jsx' +import UserFormWrapper from '@srcTest/js/components/users/form/user/wrapper/UserFormWrapper.js' +import UserFormController from '@src/js/components/users/form/user/UserFormController.js' +import UserFormFacade from '@src/js/components/users/form/user/UserFormFacade' import objectTypes from '@src/js/common/consts/objectType.js' -jest.mock('@src/js/components/users/form/UserFormFacade') +jest.mock('@src/js/components/users/form/user/UserFormFacade') export default class UserFormComponentTest extends ComponentTest { static SUITE = 'UserFormComponent' diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentValidate.test.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentValidate.test.js similarity index 99% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentValidate.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentValidate.test.js index cefbc1ebef5b996d6753d84eef2a327968ef163b..d12909e062621482fb91e6f0fa54929a367d8389 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserFormComponentValidate.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormComponentValidate.test.js @@ -1,4 +1,4 @@ -import UserFormComponentTest from '@srcTest/js/components/users/form/UserFormComponentTest.js' +import UserFormComponentTest from '@srcTest/js/components/users/form/user/UserFormComponentTest.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserFormTestData.js b/openbis_ng_ui/srcTest/js/components/users/form/user/UserFormTestData.js similarity index 100% rename from openbis_ng_ui/srcTest/js/components/users/form/UserFormTestData.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/UserFormTestData.js diff --git a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormButtonsWrapper.js b/openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormButtonsWrapper.js similarity index 100% rename from openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormButtonsWrapper.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormButtonsWrapper.js diff --git a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormParametersGroupWrapper.js b/openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormParametersGroupWrapper.js similarity index 100% rename from openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormParametersGroupWrapper.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormParametersGroupWrapper.js diff --git a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormParametersUserWrapper.js b/openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormParametersUserWrapper.js similarity index 100% rename from openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormParametersUserWrapper.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormParametersUserWrapper.js diff --git a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormParametersWrapper.js b/openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormParametersWrapper.js similarity index 74% rename from openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormParametersWrapper.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormParametersWrapper.js index bcaba135acf8c1cdc46778f3f20ddc373fa16cfd..7abc4e61d3cf69a24dce530f1cc9315e357a8d78 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormParametersWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormParametersWrapper.js @@ -1,8 +1,8 @@ import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' -import UserFormParametersUser from '@src/js/components/users/form/UserFormParametersUser.jsx' -import UserFormParametersUserWrapper from './UserFormParametersUserWrapper.js' -import UserFormParametersGroup from '@src/js/components/users/form/UserFormParametersGroup.jsx' -import UserFormParametersGroupWrapper from './UserFormParametersGroupWrapper.js' +import UserFormParametersUser from '@src/js/components/users/form/user/UserFormParametersUser.jsx' +import UserFormParametersUserWrapper from '@srcTest/js/components/users/form/user/wrapper/UserFormParametersUserWrapper.js' +import UserFormParametersGroup from '@src/js/components/users/form/user/UserFormParametersGroup.jsx' +import UserFormParametersGroupWrapper from '@srcTest/js/components/users/form/user/wrapper/UserFormParametersGroupWrapper.js' import RoleParameters from '@src/js/components/users/form/common/RoleParameters.jsx' import RoleParametersWrapper from '@srcTest/js/components/users/form/common/wrapper/RoleParametersWrapper.js' diff --git a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormWrapper.js b/openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormWrapper.js similarity index 74% rename from openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormWrapper.js rename to openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormWrapper.js index d1eeb4afb64f26713f5bdd0f5541aa15540d38db..5ff41371d68bdadf5aa72b7dcd1598fc61601706 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserFormWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/user/wrapper/UserFormWrapper.js @@ -1,11 +1,11 @@ import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' import Grid from '@src/js/components/common/grid/Grid.jsx' import GridWrapper from '@srcTest/js/components/common/grid/wrapper/GridWrapper.js' -import UserFormGridGroups from '@src/js/components/users/form/UserFormGridGroups.jsx' -import UserFormGridRoles from '@src/js/components/users/form/UserFormGridRoles.jsx' -import UserFormParametersWrapper from '@srcTest/js/components/users/form/wrapper/UserFormParametersWrapper.js' -import UserFormButtons from '@src/js/components/users/form/UserFormButtons.jsx' -import UserFormButtonsWrapper from '@srcTest/js/components/users/form/wrapper/UserFormButtonsWrapper.js' +import UserFormGridGroups from '@src/js/components/users/form/user/UserFormGridGroups.jsx' +import UserFormGridRoles from '@src/js/components/users/form/user/UserFormGridRoles.jsx' +import UserFormParametersWrapper from '@srcTest/js/components/users/form/user/wrapper/UserFormParametersWrapper.js' +import UserFormButtons from '@src/js/components/users/form/user/UserFormButtons.jsx' +import UserFormButtonsWrapper from '@srcTest/js/components/users/form/user/wrapper/UserFormButtonsWrapper.js' export default class UserFormWrapper extends BaseWrapper { getGroupsGrid() { diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentAddRole.test.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentAddRole.test.js similarity index 98% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentAddRole.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentAddRole.test.js index deda29f2e5029a767bea7bde87d273d9eb6e7a1e..70f1f3a53c379690d5e43571052920b382d23e08 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentAddRole.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentAddRole.test.js @@ -1,5 +1,5 @@ -import UserGroupFormComponentTest from '@srcTest/js/components/users/form/UserGroupFormComponentTest.js' -import UserGroupFormTestData from '@srcTest/js/components/users/form/UserGroupFormTestData.js' +import UserGroupFormComponentTest from '@srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js' +import UserGroupFormTestData from '@srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentAddUser.test.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentAddUser.test.js similarity index 97% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentAddUser.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentAddUser.test.js index 23edc8bb930e3e99c19eedc76fa25cc272759a88..df7a78d91118ec8949033b9f644a61e86109f270 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentAddUser.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentAddUser.test.js @@ -1,5 +1,5 @@ -import UserGroupFormComponentTest from '@srcTest/js/components/users/form/UserGroupFormComponentTest.js' -import UserGroupFormTestData from '@srcTest/js/components/users/form/UserGroupFormTestData.js' +import UserGroupFormComponentTest from '@srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js' +import UserGroupFormTestData from '@srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentChangeRole.test.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentChangeRole.test.js similarity index 97% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentChangeRole.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentChangeRole.test.js index 7761d3ff38790f3519f85f4a4e6f46eaebd762f1..1194f6ed4c25e93d8048cc78e5331a32f97ef1e4 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentChangeRole.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentChangeRole.test.js @@ -1,5 +1,5 @@ -import UserGroupFormComponentTest from '@srcTest/js/components/users/form/UserGroupFormComponentTest.js' -import UserGroupFormTestData from '@srcTest/js/components/users/form/UserGroupFormTestData.js' +import UserGroupFormComponentTest from '@srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js' +import UserGroupFormTestData from '@srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentChangeUser.test.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentChangeUser.test.js similarity index 96% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentChangeUser.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentChangeUser.test.js index 8f284abe49051910a0b0eed063ca9fc62245b6f5..83dae28cd7cfb637e330503b6ce67731a72576ac 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentChangeUser.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentChangeUser.test.js @@ -1,5 +1,5 @@ -import UserGroupFormComponentTest from '@srcTest/js/components/users/form/UserGroupFormComponentTest.js' -import UserGroupFormTestData from '@srcTest/js/components/users/form/UserGroupFormTestData.js' +import UserGroupFormComponentTest from '@srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js' +import UserGroupFormTestData from '@srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentLoad.test.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentLoad.test.js similarity index 98% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentLoad.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentLoad.test.js index 8a2464a91941d8458e46e7f8ed765ba67e488ce6..f2895757f2e8c5606011b8f9161461bee393bbca 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentLoad.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentLoad.test.js @@ -1,5 +1,5 @@ -import UserGroupFormComponentTest from '@srcTest/js/components/users/form/UserGroupFormComponentTest.js' -import UserGroupFormTestData from '@srcTest/js/components/users/form/UserGroupFormTestData.js' +import UserGroupFormComponentTest from '@srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js' +import UserGroupFormTestData from '@srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentRemoveRole.test.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentRemoveRole.test.js similarity index 96% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentRemoveRole.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentRemoveRole.test.js index 4875a5f4ef2873d9a86d42e51350f6dc65a46e58..4256b48bed964f509109f786a2169230c8281473 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentRemoveRole.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentRemoveRole.test.js @@ -1,5 +1,5 @@ -import UserGroupFormComponentTest from '@srcTest/js/components/users/form/UserGroupFormComponentTest.js' -import UserGroupFormTestData from '@srcTest/js/components/users/form/UserGroupFormTestData.js' +import UserGroupFormComponentTest from '@srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js' +import UserGroupFormTestData from '@srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentRemoveUser.test.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentRemoveUser.test.js similarity index 95% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentRemoveUser.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentRemoveUser.test.js index a1c325bd21473ec8501b61dcbae0de4c19d3829a..c15a685285f026280ddd5c318d4b33c981b34377 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentRemoveUser.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentRemoveUser.test.js @@ -1,5 +1,5 @@ -import UserGroupFormComponentTest from '@srcTest/js/components/users/form/UserGroupFormComponentTest.js' -import UserGroupFormTestData from '@srcTest/js/components/users/form/UserGroupFormTestData.js' +import UserGroupFormComponentTest from '@srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js' +import UserGroupFormTestData from '@srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentSave.test.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentSave.test.js similarity index 97% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentSave.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentSave.test.js index aa5411c2a6086be845f4f8408f122575377a1551..46f0bfa4bd41584f93a4f8b3a6b713297ad85948 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentSave.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentSave.test.js @@ -1,5 +1,5 @@ -import UserGroupFormComponentTest from '@srcTest/js/components/users/form/UserGroupFormComponentTest.js' -import UserGroupFormTestData from '@srcTest/js/components/users/form/UserGroupFormTestData.js' +import UserGroupFormComponentTest from '@srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js' +import UserGroupFormTestData from '@srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null @@ -222,10 +222,8 @@ async function testSaveRemoveUser() { } async function testSaveRemoveRole() { - const { - instanceObserverAssignment, - testSpacePowerUserAssignment - } = UserGroupFormTestData + const { instanceObserverAssignment, testSpacePowerUserAssignment } = + UserGroupFormTestData const group = new openbis.AuthorizationGroup() group.setCode('TEST-GROUP') diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentSelectRole.test.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentSelectRole.test.js similarity index 96% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentSelectRole.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentSelectRole.test.js index decd0b142c6d534ea00d50cf5b815ae4de08e545..d861b3f147c5995be0e22d6e8f63d0b42e1b34a2 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentSelectRole.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentSelectRole.test.js @@ -1,5 +1,5 @@ -import UserGroupFormComponentTest from '@srcTest/js/components/users/form/UserGroupFormComponentTest.js' -import UserGroupFormTestData from '@srcTest/js/components/users/form/UserGroupFormTestData.js' +import UserGroupFormComponentTest from '@srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js' +import UserGroupFormTestData from '@srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentSelectUser.test.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentSelectUser.test.js similarity index 95% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentSelectUser.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentSelectUser.test.js index 65b57d83f15eaa8f626bddcc87c87fb43a0fa955..81f28d8e9e5462d0b18db1c696c4e969927c63f5 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentSelectUser.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentSelectUser.test.js @@ -1,5 +1,5 @@ -import UserGroupFormComponentTest from '@srcTest/js/components/users/form/UserGroupFormComponentTest.js' -import UserGroupFormTestData from '@srcTest/js/components/users/form/UserGroupFormTestData.js' +import UserGroupFormComponentTest from '@srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js' +import UserGroupFormTestData from '@srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentTest.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js similarity index 76% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentTest.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js index d0ace86b9925089c50320e18546b8001626cac42..6c1ac928a4c01a11dae712f51e6bcc294c345226 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentTest.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js @@ -1,12 +1,12 @@ import React from 'react' import ComponentTest from '@srcTest/js/components/common/ComponentTest.js' -import UserGroupForm from '@src/js/components/users/form/UserGroupForm.jsx' -import UserGroupFormWrapper from '@srcTest/js/components/users/form/wrapper/UserGroupFormWrapper.js' -import UserGroupFormController from '@src/js/components/users/form/UserGroupFormController.js' -import UserGroupFormFacade from '@src/js/components/users/form/UserGroupFormFacade' +import UserGroupForm from '@src/js/components/users/form/usergroup/UserGroupForm.jsx' +import UserGroupFormWrapper from '@srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormWrapper.js' +import UserGroupFormController from '@src/js/components/users/form/usergroup/UserGroupFormController.js' +import UserGroupFormFacade from '@src/js/components/users/form/usergroup/UserGroupFormFacade' import objectTypes from '@src/js/common/consts/objectType.js' -jest.mock('@src/js/components/users/form/UserGroupFormFacade') +jest.mock('@src/js/components/users/form/usergroup/UserGroupFormFacade') export default class UserGroupFormComponentTest extends ComponentTest { static SUITE = 'UserGroupFormComponent' diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentValidate.test.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentValidate.test.js similarity index 98% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentValidate.test.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentValidate.test.js index cc94d46af15d26e9b033a471ec8779cf9e7b679b..67cf30293c67180bba8ad15ebaaf8ef2443a5d30 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormComponentValidate.test.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormComponentValidate.test.js @@ -1,4 +1,4 @@ -import UserGroupFormComponentTest from '@srcTest/js/components/users/form/UserGroupFormComponentTest.js' +import UserGroupFormComponentTest from '@srcTest/js/components/users/form/usergroup/UserGroupFormComponentTest.js' import openbis from '@srcTest/js/services/openbis.js' let common = null diff --git a/openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormTestData.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js similarity index 100% rename from openbis_ng_ui/srcTest/js/components/users/form/UserGroupFormTestData.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/UserGroupFormTestData.js diff --git a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormButtonsWrapper.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormButtonsWrapper.js similarity index 100% rename from openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormButtonsWrapper.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormButtonsWrapper.js diff --git a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormParametersGroupWrapper.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormParametersGroupWrapper.js similarity index 100% rename from openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormParametersGroupWrapper.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormParametersGroupWrapper.js diff --git a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormParametersUserWrapper.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormParametersUserWrapper.js similarity index 100% rename from openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormParametersUserWrapper.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormParametersUserWrapper.js diff --git a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormParametersWrapper.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormParametersWrapper.js similarity index 71% rename from openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormParametersWrapper.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormParametersWrapper.js index 88743923a669306f83f8301f6d85d3599e1c8a9d..67a400c96547fef0be02b23e9ca5b780d6c2afd8 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormParametersWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormParametersWrapper.js @@ -1,8 +1,8 @@ import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' -import UserGroupFormParametersGroup from '@src/js/components/users/form/UserGroupFormParametersGroup.jsx' -import UserGroupFormParametersGroupWrapper from './UserGroupFormParametersGroupWrapper.js' -import UserGroupFormParametersUser from '@src/js/components/users/form/UserGroupFormParametersUser.jsx' -import UserGroupFormParametersUserWrapper from './UserGroupFormParametersUserWrapper.js' +import UserGroupFormParametersGroup from '@src/js/components/users/form/usergroup/UserGroupFormParametersGroup.jsx' +import UserGroupFormParametersGroupWrapper from '@srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormParametersGroupWrapper.js' +import UserGroupFormParametersUser from '@src/js/components/users/form/usergroup/UserGroupFormParametersUser.jsx' +import UserGroupFormParametersUserWrapper from '@srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormParametersUserWrapper.js' import RoleParameters from '@src/js/components/users/form/common/RoleParameters.jsx' import RoleParametersWrapper from '@srcTest/js/components/users/form/common/wrapper/RoleParametersWrapper.js' diff --git a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormWrapper.js b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormWrapper.js similarity index 84% rename from openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormWrapper.js rename to openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormWrapper.js index 9a0e369adca61aca939f54312dde4abc0ea7f8d7..f2e2beea1c51f0ecd022ec8e5c7836c5096a5b02 100644 --- a/openbis_ng_ui/srcTest/js/components/users/form/wrapper/UserGroupFormWrapper.js +++ b/openbis_ng_ui/srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormWrapper.js @@ -1,11 +1,11 @@ import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js' import Grid from '@src/js/components/common/grid/Grid.jsx' import GridWrapper from '@srcTest/js/components/common/grid/wrapper/GridWrapper.js' -import UserGroupFormGridUsers from '@src/js/components/users/form/UserGroupFormGridUsers.jsx' -import UserGroupFormGridRoles from '@src/js/components/users/form/UserGroupFormGridRoles.jsx' -import UserGroupFormParametersWrapper from '@srcTest/js/components/users/form/wrapper/UserGroupFormParametersWrapper.js' -import UserGroupFormButtons from '@src/js/components/users/form/UserGroupFormButtons.jsx' -import UserGroupFormButtonsWrapper from '@srcTest/js/components/users/form/wrapper/UserGroupFormButtonsWrapper.js' +import UserGroupFormGridUsers from '@src/js/components/users/form/usergroup/UserGroupFormGridUsers.jsx' +import UserGroupFormGridRoles from '@src/js/components/users/form/usergroup/UserGroupFormGridRoles.jsx' +import UserGroupFormParametersWrapper from '@srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormParametersWrapper.js' +import UserGroupFormButtons from '@src/js/components/users/form/usergroup/UserGroupFormButtons.jsx' +import UserGroupFormButtonsWrapper from '@srcTest/js/components/users/form/usergroup/wrapper/UserGroupFormButtonsWrapper.js' export default class UserGroupFormWrapper extends BaseWrapper { getUsersGrid() { diff --git a/openbis_ng_ui/srcTest/js/services/openbis/api.js b/openbis_ng_ui/srcTest/js/services/openbis/api.js index a4d4d21cf3e65e9fab82b8286bef0c6b09f66f18..832e22896ec3613e4315865a843dbbacd708c3d2 100644 --- a/openbis_ng_ui/srcTest/js/services/openbis/api.js +++ b/openbis_ng_ui/srcTest/js/services/openbis/api.js @@ -101,6 +101,12 @@ const mockSearchPropertyTypes = propertyTypes => { searchPropertyTypes.mockReturnValue(Promise.resolve(searchResult)) } +const mockSearchPropertyAssignments = propertyAssignments => { + const searchResult = new dto.SearchResult() + searchResult.setObjects(propertyAssignments) + searchPropertyAssignments.mockReturnValue(Promise.resolve(searchResult)) +} + const mockSearchVocabularies = vocabularies => { const searchResult = new dto.SearchResult() searchResult.setObjects(vocabularies) @@ -177,6 +183,7 @@ export default { mockSearchPersons, mockSearchSampleTypes, mockSearchPropertyTypes, + mockSearchPropertyAssignments, mockSearchVocabularies, mockSearchPlugins, mockSearchQueries,