diff --git a/client/.eslintrc.json b/client/.eslintrc.json index a2a9b3488b..63589f5eea 100644 --- a/client/.eslintrc.json +++ b/client/.eslintrc.json @@ -212,6 +212,7 @@ "onloadend", "onopen", "openapi", + "openbis", "papermill", "pathname", "pdfjs", diff --git a/client/src/features/dataConnectorsV2/components/DataConnectorModal/DataConnectorModalBody.tsx b/client/src/features/dataConnectorsV2/components/DataConnectorModal/DataConnectorModalBody.tsx index c2d877e42b..758f2bfacd 100644 --- a/client/src/features/dataConnectorsV2/components/DataConnectorModal/DataConnectorModalBody.tsx +++ b/client/src/features/dataConnectorsV2/components/DataConnectorModal/DataConnectorModalBody.tsx @@ -32,8 +32,8 @@ import { import KeywordBadge from "~/components/keywords/KeywordBadge"; import KeywordContainer from "~/components/keywords/KeywordContainer"; import ChevronFlippedIcon from "../../../../components/icons/ChevronFlippedIcon"; -import { WarnAlert } from "../../../../components/Alert"; import { Loader } from "../../../../components/Loader"; +import { InfoAlert, WarnAlert } from "../../../../components/Alert"; import useAppDispatch from "../../../../utils/customHooks/useAppDispatch.hook"; import useAppSelector from "../../../../utils/customHooks/useAppSelector.hook"; import { slugFromTitle } from "../../../../utils/helpers/HelperFunctions"; @@ -49,7 +49,10 @@ import type { AddCloudStorageState, CloudStorageDetails, } from "../../../project/components/cloudStorage/projectCloudStorage.types"; -import { getSchemaOptions } from "../../../project/utils/projectCloudStorage.utils"; +import { + getSchema, + getSchemaOptions, +} from "../../../project/utils/projectCloudStorage.utils"; import type { Project } from "../../../projectsV2/api/projectV2.api"; import { ProjectNamespaceControl } from "../../../projectsV2/fields/ProjectNamespaceFormField"; import SlugPreviewFormField from "../../../projectsV2/fields/SlugPreviewFormField"; @@ -294,16 +297,19 @@ export function DataConnectorMount({ const { validationResult } = useAppSelector( (state) => state.dataConnectorFormSlice ); - const options = getSchemaOptions( + const schema = getSchema(schemata, flatDataConnector.schema); + const schemaOptions = getSchemaOptions( schemata, true, flatDataConnector.schema, flatDataConnector.provider ); const secretFields = - options == null + schemaOptions == null ? [] - : Object.values(options).filter((o) => o && o.convertedType === "secret"); + : Object.values(schemaOptions).filter( + (o) => o && o.convertedType === "secret" + ); const hasPasswordFieldWithInput = secretFields.some( (o) => flatDataConnector.options && flatDataConnector.options[o.name] ); @@ -514,6 +520,7 @@ export function DataConnectorMount({ field.onChange(e); onFieldValueChange("readOnly", !!e.target.value); }} + disabled={schema?.forceReadOnly ?? false} />