// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { reset, startSubmit, stopSubmit, initialize, FormErrors, change, formValueSelector } from 'redux-form';
+import {
+ reset,
+ startSubmit,
+ stopSubmit,
+ initialize,
+ FormErrors,
+ formValueSelector
+} from 'redux-form';
import { RootState } from 'store/store';
import { getUserUuid } from "common/getuser";
import { dialogActions } from "store/dialog/dialog-actions";
import { isProjectOrRunProcessRoute } from 'store/projects/project-create-actions';
import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
import { CollectionResource } from "models/collection";
-import { ResourcePropertiesFormData } from "views-components/resource-properties-form/resource-properties-form";
-import { addProperty, deleteProperty } from "lib/resource-properties";
export interface CollectionCreateFormDialogData {
ownerUuid: string;
dispatch(progressIndicatorActions.STOP_WORKING(COLLECTION_CREATE_FORM_NAME));
}
};
-
-export const addPropertyToCreateCollectionForm = (data: ResourcePropertiesFormData) =>
- (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- const properties = { ...COLLECTION_CREATE_FORM_SELECTOR(getState(), 'properties') };
- const key = data.keyID || data.key;
- const value = data.valueID || data.value;
- dispatch(change(
- COLLECTION_CREATE_FORM_NAME,
- 'properties',
- addProperty(properties, key, value)));
- };
-
-export const removePropertyFromCreateCollectionForm = (key: string, value: string) =>
- (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- const properties = { ...COLLECTION_CREATE_FORM_SELECTOR(getState(), 'properties') };
- dispatch(change(
- COLLECTION_CREATE_FORM_NAME,
- 'properties',
- deleteProperty(properties, key, value)));
- };
import { Dispatch } from "redux";
import {
- change,
FormErrors,
formValueSelector,
initialize,
import { loadDetailsPanel } from "../details-panel/details-panel-action";
import { getResource } from "store/resources/resources";
import { CollectionProperties } from "./collection-create-actions";
-import { ResourcePropertiesFormData } from "views-components/resource-properties-form/resource-properties-form";
-import { addProperty, deleteProperty } from "lib/resource-properties";
export interface CollectionUpdateFormDialogData {
uuid: string;
}
);
};
-
-export const addPropertyToUpdateCollectionForm = (data: ResourcePropertiesFormData) =>
- (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- const properties = { ...COLLECTION_UPDATE_FORM_SELECTOR(getState(), 'properties') };
- const key = data.keyID || data.key;
- const value = data.valueID || data.value;
- dispatch(change(
- COLLECTION_UPDATE_FORM_NAME,
- 'properties',
- addProperty(properties, key, value)));
- };
-
-export const removePropertyFromUpdateCollectionForm = (key: string, value: string) =>
- (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- const properties = { ...COLLECTION_UPDATE_FORM_SELECTOR(getState(), 'properties') };
- dispatch(change(
- COLLECTION_UPDATE_FORM_NAME,
- 'properties',
- deleteProperty(properties, key, value)));
- };
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { reset, startSubmit, stopSubmit, initialize, FormErrors, formValueSelector, change } from 'redux-form';
+import {
+ reset,
+ startSubmit,
+ stopSubmit,
+ initialize,
+ FormErrors,
+ formValueSelector
+} from 'redux-form';
import { RootState } from 'store/store';
import { getUserUuid } from "common/getuser";
import { dialogActions } from "store/dialog/dialog-actions";
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 { RouterState } from "react-router-redux";
-import { addProperty, deleteProperty } from "lib/resource-properties";
export interface ProjectCreateFormDialogData {
ownerUuid: string;
return undefined;
}
};
-
-export const addPropertyToCreateProjectForm = (data: ResourcePropertiesFormData) =>
- (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- const properties = { ...PROJECT_CREATE_FORM_SELECTOR(getState(), 'properties') };
- const key = data.keyID || data.key;
- const value = data.valueID || data.value;
- dispatch(change(
- PROJECT_CREATE_FORM_NAME,
- 'properties',
- addProperty(properties, key, value)));
- };
-
-export const removePropertyFromCreateProjectForm = (key: string, value: string) =>
- (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- const properties = { ...PROJECT_CREATE_FORM_SELECTOR(getState(), 'properties') };
- dispatch(change(
- PROJECT_CREATE_FORM_NAME,
- 'properties',
- deleteProperty(properties, key, value)));
- };
import { Dispatch } from "redux";
import {
- change,
FormErrors,
formValueSelector,
initialize,
import { projectPanelActions } from 'store/project-panel/project-panel-action';
import { GroupClass } from "models/group";
import { Participant } from "views-components/sharing-dialog/participant-select";
-import { ResourcePropertiesFormData } from "views-components/resource-properties-form/resource-properties-form";
-import { addProperty, deleteProperty } from "lib/resource-properties";
import { ProjectProperties } from "./project-create-actions";
export interface ProjectUpdateFormDialogData {
return ;
}
};
-
-export const addPropertyToUpdateProjectForm = (data: ResourcePropertiesFormData) =>
- (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- const properties = { ...PROJECT_UPDATE_FORM_SELECTOR(getState(), 'properties') };
- const key = data.keyID || data.key;
- const value = data.valueID || data.value;
- dispatch(change(
- PROJECT_UPDATE_FORM_NAME,
- 'properties',
- addProperty(properties, key, value)));
- };
-
-export const removePropertyFromUpdateProjectForm = (key: string, value: string) =>
- (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- const properties = { ...PROJECT_UPDATE_FORM_SELECTOR(getState(), 'properties') };
- dispatch(change(
- PROJECT_UPDATE_FORM_NAME,
- 'properties',
- deleteProperty(properties, key, value)));
- };
import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
import { getResource } from './resources';
import { TagProperty } from 'models/tag';
+import { change, formValueSelector } from 'redux-form';
+import { ResourcePropertiesFormData } from 'views-components/resource-properties-form/resource-properties-form';
export const resourcesActions = unionize({
SET_RESOURCES: ofType<Resource[]>(),
dispatch(snackbarActions.OPEN_SNACKBAR({ message: errorMsg, hideDuration: 2000, kind: SnackbarKind.ERROR }));
}
};
+
+export const addPropertyToResourceForm = (data: ResourcePropertiesFormData, formName: string) =>
+ (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+ const properties = { ...formValueSelector(formName)(getState(), 'properties') };
+ const key = data.keyID || data.key;
+ const value = data.valueID || data.value;
+ dispatch(change(
+ formName,
+ 'properties',
+ addProperty(properties, key, value)));
+ };
+
+export const removePropertyFromResourceForm = (key: string, value: string, formName: string) =>
+ (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+ const properties = { ...formValueSelector(formName)(getState(), 'properties') };
+ dispatch(change(
+ formName,
+ 'properties',
+ deleteProperty(properties, key, value)));
+ };
import { withStyles } from '@material-ui/core';
import {
COLLECTION_CREATE_PROPERTIES_FORM_NAME,
- addPropertyToCreateCollectionForm
+ COLLECTION_CREATE_FORM_NAME
} from 'store/collections/collection-create-actions';
import {
ResourcePropertiesForm,
ResourcePropertiesFormData
} from 'views-components/resource-properties-form/resource-properties-form';
+import { addPropertyToResourceForm } from 'store/resources/resources-actions';
const Form = withStyles(
({ spacing }) => (
export const CreateCollectionPropertiesForm = reduxForm<ResourcePropertiesFormData>({
form: COLLECTION_CREATE_PROPERTIES_FORM_NAME,
onSubmit: (data, dispatch) => {
- dispatch(addPropertyToCreateCollectionForm(data));
+ dispatch(addPropertyToResourceForm(data, COLLECTION_CREATE_FORM_NAME));
dispatch(reset(COLLECTION_CREATE_PROPERTIES_FORM_NAME));
}
})(Form);
\ No newline at end of file
} from '@material-ui/core';
import { RootState } from 'store/store';
import {
- removePropertyFromCreateCollectionForm,
COLLECTION_CREATE_FORM_SELECTOR,
- CollectionProperties
+ CollectionProperties,
+ COLLECTION_CREATE_FORM_NAME
} from 'store/collections/collection-create-actions';
import { ArvadosTheme } from 'common/custom-theme';
import { getPropertyChip } from '../resource-properties-form/property-chip';
+import { removePropertyFromResourceForm } from 'store/resources/resources-actions';
type CssRules = 'tag';
};
const mapDispatchToProps = (dispatch: Dispatch): CreateCollectionPropertiesListActionProps => ({
- handleDelete: (key: string, value: string) => dispatch<any>(removePropertyFromCreateCollectionForm(key, value))
+ handleDelete: (key: string, value: string) => dispatch<any>(removePropertyFromResourceForm(key, value, COLLECTION_CREATE_FORM_NAME))
});
type CreateCollectionPropertiesListProps = CreateCollectionPropertiesListDataProps &
import { reduxForm, reset } from 'redux-form';
import { withStyles } from '@material-ui/core';
import {
- addPropertyToUpdateCollectionForm,
COLLECTION_UPDATE_PROPERTIES_FORM_NAME
} from 'store/collections/collection-update-actions';
import {
ResourcePropertiesForm,
ResourcePropertiesFormData
} from 'views-components/resource-properties-form/resource-properties-form';
+import { addPropertyToResourceForm } from 'store/resources/resources-actions';
const Form = withStyles(
({ spacing }) => (
export const UpdateCollectionPropertiesForm = reduxForm<ResourcePropertiesFormData>({
form: COLLECTION_UPDATE_PROPERTIES_FORM_NAME,
onSubmit: (data, dispatch) => {
- dispatch(addPropertyToUpdateCollectionForm(data));
+ dispatch(addPropertyToResourceForm(data, COLLECTION_UPDATE_PROPERTIES_FORM_NAME));
dispatch(reset(COLLECTION_UPDATE_PROPERTIES_FORM_NAME));
}
})(Form);
\ No newline at end of file
} from '@material-ui/core';
import { RootState } from 'store/store';
import {
- removePropertyFromUpdateCollectionForm,
COLLECTION_UPDATE_FORM_SELECTOR,
+ COLLECTION_UPDATE_FORM_NAME,
} from 'store/collections/collection-update-actions';
import { ArvadosTheme } from 'common/custom-theme';
import { getPropertyChip } from '../resource-properties-form/property-chip';
import { CollectionProperties } from 'store/collections/collection-create-actions';
+import { removePropertyFromResourceForm } from 'store/resources/resources-actions';
type CssRules = 'tag';
};
const mapDispatchToProps = (dispatch: Dispatch): UpdateCollectionPropertiesListActionProps => ({
- handleDelete: (key: string, value: string) => dispatch<any>(removePropertyFromUpdateCollectionForm(key, value))
+ handleDelete: (key: string, value: string) => dispatch<any>(removePropertyFromResourceForm(key, value, COLLECTION_UPDATE_FORM_NAME))
});
type UpdateCollectionPropertiesListProps = UpdateCollectionPropertiesListDataProps &
import { withStyles } from '@material-ui/core';
import {
PROJECT_CREATE_PROPERTIES_FORM_NAME,
- addPropertyToCreateProjectForm
+ PROJECT_CREATE_FORM_NAME
} from 'store/projects/project-create-actions';
import {
ResourcePropertiesForm,
ResourcePropertiesFormData
} from 'views-components/resource-properties-form/resource-properties-form';
+import { addPropertyToResourceForm } from 'store/resources/resources-actions';
const Form = withStyles(
({ spacing }) => (
export const CreateProjectPropertiesForm = reduxForm<ResourcePropertiesFormData>({
form: PROJECT_CREATE_PROPERTIES_FORM_NAME,
onSubmit: (data, dispatch) => {
- dispatch(addPropertyToCreateProjectForm(data));
+ dispatch(addPropertyToResourceForm(data, PROJECT_CREATE_FORM_NAME));
dispatch(reset(PROJECT_CREATE_PROPERTIES_FORM_NAME));
}
})(Form);
\ No newline at end of file
WithStyles,
} from '@material-ui/core';
import { RootState } from 'store/store';
-import { removePropertyFromCreateProjectForm, PROJECT_CREATE_FORM_SELECTOR, ProjectProperties } from 'store/projects/project-create-actions';
+import {
+ PROJECT_CREATE_FORM_SELECTOR,
+ ProjectProperties,
+ PROJECT_CREATE_FORM_NAME
+} from 'store/projects/project-create-actions';
import { ArvadosTheme } from 'common/custom-theme';
import { getPropertyChip } from '../resource-properties-form/property-chip';
+import { removePropertyFromResourceForm } from 'store/resources/resources-actions';
type CssRules = 'tag';
};
const mapDispatchToProps = (dispatch: Dispatch): CreateProjectPropertiesListActionProps => ({
- handleDelete: (key: string, value: string) => dispatch<any>(removePropertyFromCreateProjectForm(key, value))
+ handleDelete: (key: string, value: string) => dispatch<any>(removePropertyFromResourceForm(key, value, PROJECT_CREATE_FORM_NAME))
});
type CreateProjectPropertiesListProps = CreateProjectPropertiesListDataProps &
import { withStyles } from '@material-ui/core';
import {
PROJECT_UPDATE_PROPERTIES_FORM_NAME,
- addPropertyToUpdateProjectForm
+ PROJECT_UPDATE_FORM_NAME
} from 'store/projects/project-update-actions';
import {
ResourcePropertiesForm,
ResourcePropertiesFormData
} from 'views-components/resource-properties-form/resource-properties-form';
+import { addPropertyToResourceForm } from 'store/resources/resources-actions';
const Form = withStyles(
({ spacing }) => (
export const UpdateProjectPropertiesForm = reduxForm<ResourcePropertiesFormData>({
form: PROJECT_UPDATE_PROPERTIES_FORM_NAME,
onSubmit: (data, dispatch) => {
- dispatch(addPropertyToUpdateProjectForm(data));
+ dispatch(addPropertyToResourceForm(data, PROJECT_UPDATE_FORM_NAME));
dispatch(reset(PROJECT_UPDATE_PROPERTIES_FORM_NAME));
}
})(Form);
\ No newline at end of file
} from '@material-ui/core';
import { RootState } from 'store/store';
import {
- removePropertyFromUpdateProjectForm,
PROJECT_UPDATE_FORM_SELECTOR,
+ PROJECT_UPDATE_FORM_NAME,
} from 'store/projects/project-update-actions';
import { ArvadosTheme } from 'common/custom-theme';
import { getPropertyChip } from '../resource-properties-form/property-chip';
import { ProjectProperties } from 'store/projects/project-create-actions';
+import { removePropertyFromResourceForm } from 'store/resources/resources-actions';
type CssRules = 'tag';
};
const mapDispatchToProps = (dispatch: Dispatch): UpdateProjectPropertiesListActionProps => ({
- handleDelete: (key: string, value: string) => dispatch<any>(removePropertyFromUpdateProjectForm(key, value))
+ handleDelete: (key: string, value: string) => dispatch<any>(removePropertyFromResourceForm(key, value, PROJECT_UPDATE_FORM_NAME))
});
type UpdateProjectPropertiesListProps = UpdateProjectPropertiesListDataProps &