X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ead22eaffc696e9619d0ba7a71c8d54099200685..6522c126265875505b3f616c867ef7d655a4da80:/src/views-components/form-fields/collection-form-fields.tsx
diff --git a/src/views-components/form-fields/collection-form-fields.tsx b/src/views-components/form-fields/collection-form-fields.tsx
index 2d2a7c8088..7e18111a67 100644
--- a/src/views-components/form-fields/collection-form-fields.tsx
+++ b/src/views-components/form-fields/collection-form-fields.tsx
@@ -2,25 +2,45 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import * as React from "react";
-import { Field, WrappedFieldProps } from "redux-form";
-import { TextField } from "~/components/text-field/text-field";
-import { COLLECTION_NAME_VALIDATION, COLLECTION_DESCRIPTION_VALIDATION, COLLECTION_PROJECT_VALIDATION } from "~/validators/validators";
-import { ProjectTreePicker, ProjectTreePickerField } from "~/views-components/project-tree-picker/project-tree-picker";
-import { PickerIdProp } from '../../store/tree-picker/picker-id';
-
-export const CollectionNameField = () =>
- ;
+import React from "react";
+import { Field, Validator } from "redux-form";
+import { TextField } from "components/text-field/text-field";
+import {
+ COLLECTION_NAME_VALIDATION, COLLECTION_NAME_VALIDATION_ALLOW_SLASH,
+ COLLECTION_DESCRIPTION_VALIDATION, COLLECTION_PROJECT_VALIDATION
+} from "validators/validators";
+import { ProjectTreePickerField, CollectionTreePickerField } from "views-components/projects-tree-picker/tree-picker-field";
+import { PickerIdProp } from 'store/tree-picker/picker-id';
+import { connect } from "react-redux";
+import { RootState } from "store/store";
+import { MultiCheckboxField } from "components/checkbox-field/checkbox-field";
+import { getStorageClasses } from "common/config";
+
+interface CollectionNameFieldProps {
+ validate: Validator[];
+}
+
+// See implementation note on declaration of ProjectNameField
+
+export const CollectionNameField = connect(
+ (state: RootState) => {
+ return {
+ validate: (state.auth.config.clusterConfig.Collections.ForwardSlashNameSubstitution === "" ?
+ COLLECTION_NAME_VALIDATION : COLLECTION_NAME_VALIDATION_ALLOW_SLASH)
+ };
+ })((props: CollectionNameFieldProps) =>
+
+ );
export const CollectionDescriptionField = () =>
;
@@ -30,3 +50,32 @@ export const CollectionProjectPickerField = (props: PickerIdProp) =>
pickerId={props.pickerId}
component={ProjectTreePickerField}
validate={COLLECTION_PROJECT_VALIDATION} />;
+
+export const CollectionPickerField = (props: PickerIdProp) =>
+ ;
+
+interface StorageClassesProps {
+ items: string[];
+ defaultClasses?: string[];
+}
+
+export const CollectionStorageClassesField = connect(
+ (state: RootState) => {
+ return {
+ items: getStorageClasses(state.auth.config)
+ };
+ })(
+ (props: StorageClassesProps) =>
+ );
\ No newline at end of file