Merge branch '17573-edit-storage-classes' into main. Closes #17573
[arvados-workbench2.git] / src / views-components / form-fields / collection-form-fields.tsx
index b882d684f79b0d4fd8a83f1dd0137a7268f95eab..db18f76d8f6ed0de21ec9601db2a6664419720d4 100644 (file)
@@ -13,6 +13,8 @@ import { ProjectTreePickerField, CollectionTreePickerField } from "views-compone
 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[];
@@ -55,3 +57,23 @@ export const CollectionPickerField = (props: PickerIdProp) =>
         pickerId={props.pickerId}
         component={CollectionTreePickerField}
         validate={COLLECTION_PROJECT_VALIDATION} />;
+
+interface StorageClassesProps {
+    items: string[];
+}
+
+export const CollectionStorageClassesField = connect(
+    (state: RootState) => {
+        return {
+            items: getStorageClasses(state.auth.config)
+        };
+    })(
+    (props: StorageClassesProps) =>
+        <Field
+            name='storageClassesDesired'
+            label='Storage classes'
+            minSelection={1}
+            rowLayout={true}
+            helperText='At least one class should be selected'
+            component={MultiCheckboxField}
+            items={props.items} />);
\ No newline at end of file