From bcd42fb41e7fabd3bc0b432e039eade4d05f4f76 Mon Sep 17 00:00:00 2001 From: Janicki Artur Date: Thu, 20 Dec 2018 11:39:02 +0100 Subject: [PATCH] fill actions for add and remove property from new project form Feature #14248_assigning_properties_to_projects_during_create Arvados-DCO-1.1-Signed-off-by: Janicki Artur --- src/store/projects/project-create-actions.ts | 13 +++++++---- .../dialog-create/dialog-project-create.tsx | 2 +- .../create-project-properties-list.tsx | 23 ++++++++++--------- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/store/projects/project-create-actions.ts b/src/store/projects/project-create-actions.ts index d87046e2da..625bd29e1d 100644 --- a/src/store/projects/project-create-actions.ts +++ b/src/store/projects/project-create-actions.ts @@ -11,6 +11,7 @@ import { ProjectResource } from '~/models/project'; import { ServiceRepository } from '~/services/services'; import { matchProjectRoute, matchRunProcessRoute } from '~/routes/routes'; import { ResourcePropertiesFormData } from '~/views-components/resource-properties-form/resource-properties-form'; +import { GraphChange } from '../../lib/cwl-svg/plugins/plugin'; export interface ProjectCreateFormDialogData { ownerUuid: string; @@ -69,12 +70,16 @@ export const createProject = (project: Partial) => export const addPropertyToCreateProjectForm = (data: ResourcePropertiesFormData) => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { - console.log('addPropertyToCreateProjectForm: ', data); - dispatch(change(PROJECT_CREATE_FORM_NAME, 'properties', data)); - // dispatch(arrayPush(PROJECT_CREATE_FORM_NAME, 'properties', data)); + const selector = formValueSelector(PROJECT_CREATE_FORM_NAME); + const properties = selector(getState(), 'properties') || {}; + properties[data.key] = data.value; + dispatch(change(PROJECT_CREATE_FORM_NAME, 'properties', {...properties } )); }; export const removePropertyFromCreateProjectForm = (key: string) => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { - console.log('removePropertyFromCreateProjectForm: ', key); + const selector = formValueSelector(PROJECT_CREATE_FORM_NAME); + const properties = selector(getState(), 'properties'); + delete properties[key]; + dispatch(change(PROJECT_CREATE_FORM_NAME, 'properties', { ...properties } )); }; \ No newline at end of file diff --git a/src/views-components/dialog-create/dialog-project-create.tsx b/src/views-components/dialog-create/dialog-project-create.tsx index 481957d1d1..02fb67e5f2 100644 --- a/src/views-components/dialog-create/dialog-project-create.tsx +++ b/src/views-components/dialog-create/dialog-project-create.tsx @@ -21,7 +21,7 @@ export const DialogProjectCreate = (props: DialogProjectProps) => {...props} />; -const ProjectAddFields = (props: any) => +const ProjectAddFields = () => diff --git a/src/views-components/project-properties/create-project-properties-list.tsx b/src/views-components/project-properties/create-project-properties-list.tsx index 942de8a89b..1e98905cf2 100644 --- a/src/views-components/project-properties/create-project-properties-list.tsx +++ b/src/views-components/project-properties/create-project-properties-list.tsx @@ -41,15 +41,16 @@ const mapDispatchToProps = (dispatch: Dispatch): CreateProjectPropertiesListActi type CreateProjectPropertiesListProps = CreateProjectPropertiesListDataProps & CreateProjectPropertiesListActionProps & WithStyles; -export const CreateProjectPropertiesList = connect(mapStateToProps, mapDispatchToProps)( - withStyles(styles)( - ({ classes, handleDelete, properties }: CreateProjectPropertiesListProps) => -
- { properties && - Object.keys(properties).map(k => { - return handleDelete(k)} - label={`${k}: ${properties[k]}`} />; +const List = withStyles(styles)( + ({ classes, handleDelete, properties }: CreateProjectPropertiesListProps) => +
+ {properties && + Object.keys(properties).map(k => { + return handleDelete(k)} + label={`${k}: ${properties[k]}`} />; })} -
- )); \ No newline at end of file +
+); + +export const CreateProjectPropertiesList = connect(mapStateToProps, mapDispatchToProps)(List); \ No newline at end of file -- 2.30.2