diff --git a/openmetadata-spec/src/main/resources/json/schema/security/ssl/validateSSLClientConfig.json b/openmetadata-spec/src/main/resources/json/schema/security/ssl/validateSSLClientConfig.json index 16945b2bb32..0526b753f6f 100644 --- a/openmetadata-spec/src/main/resources/json/schema/security/ssl/validateSSLClientConfig.json +++ b/openmetadata-spec/src/main/resources/json/schema/security/ssl/validateSSLClientConfig.json @@ -13,7 +13,7 @@ "type": "string", "format": "password", "accept": [".pem", ".crt", ".cer", ".der", ".p12"], - "uiFieldType": "file" + "uiFieldType": "fileOrInput" }, "sslCertificate": { "title": "SSL Certificate", @@ -21,7 +21,7 @@ "type": "string", "format": "password", "accept": [".pem", ".crt", ".cer", ".der", ".p12"], - "uiFieldType": "file" + "uiFieldType": "fileOrInput" }, "sslKey": { "title": "SSL Key", @@ -29,7 +29,7 @@ "type": "string", "format": "password", "accept": [".pem", ".crt", ".cer", ".der", ".p12"], - "uiFieldType": "file" + "uiFieldType": "fileOrInput" } } } diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/AddService/Steps/ConfigureService.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/AddService/Steps/ConfigureService.tsx index e25aceffc2f..ec5c5a72b59 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/AddService/Steps/ConfigureService.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/AddService/Steps/ConfigureService.tsx @@ -44,6 +44,7 @@ const ConfigureService = ({ ], props: { 'data-testid': 'service-name', + autoFocus: true, }, placeholder: t('label.service-name'), formItemProps: { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/FileUploadWidget.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/FileUploadWidget.tsx index 40dc206f273..079d0a5ab07 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/FileUploadWidget.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/FileUploadWidget.tsx @@ -20,7 +20,12 @@ import { useTranslation } from 'react-i18next'; import { FileUploadEnum } from '../../../../../enums/File.enum'; import { showErrorToast } from '../../../../../utils/ToastUtils'; -const FileUploadWidget: FC = ({ onChange, onFocus, ...rest }) => { +const FileUploadWidget: FC = ({ + onChange, + onFocus, + disabled, + ...rest +}) => { const { t } = useTranslation(); const defaultValue = useMemo((): UploadFile[] => { @@ -79,7 +84,9 @@ const FileUploadWidget: FC = ({ onChange, onFocus, ...rest }) => { onChange={handleChange}> diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/PasswordWidget.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/PasswordWidget.test.tsx index cf705f7a21b..03f5e454297 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/PasswordWidget.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/PasswordWidget.test.tsx @@ -21,7 +21,11 @@ import { import PasswordWidget from './PasswordWidget'; jest.mock('./FileUploadWidget', () => - jest.fn().mockReturnValue(

FileUploadWidget

) + jest + .fn() + .mockImplementation(({ disabled }) => ( + + )) ); const mockOnFocus = jest.fn(); @@ -48,7 +52,9 @@ describe('Test PasswordWidget Component', () => { it('Should render select component', async () => { render(); - const passwordInput = screen.getByTestId('password-input-widget'); + const passwordInput = screen.getByTestId( + 'password-input-widget-root/password' + ); const FileUploadWidget = screen.queryByText('FileUploadWidget'); expect(passwordInput).toBeInTheDocument(); @@ -58,7 +64,9 @@ describe('Test PasswordWidget Component', () => { it('Should be disabled', async () => { render(); - const passwordInput = screen.getByTestId('password-input-widget'); + const passwordInput = screen.getByTestId( + 'password-input-widget-root/password' + ); expect(passwordInput).toBeDisabled(); }); @@ -66,7 +74,9 @@ describe('Test PasswordWidget Component', () => { it('Should call onFocus', async () => { render(); - const passwordInput = screen.getByTestId('password-input-widget'); + const passwordInput = screen.getByTestId( + 'password-input-widget-root/password' + ); fireEvent.focus(passwordInput); @@ -76,7 +86,9 @@ describe('Test PasswordWidget Component', () => { it('Should call onBlur', async () => { render(); - const passwordInput = screen.getByTestId('password-input-widget'); + const passwordInput = screen.getByTestId( + 'password-input-widget-root/password' + ); fireEvent.blur(passwordInput); @@ -86,7 +98,9 @@ describe('Test PasswordWidget Component', () => { it('Should call onChange', async () => { render(); - const passwordInput = screen.getByTestId('password-input-widget'); + const passwordInput = screen.getByTestId( + 'password-input-widget-root/password' + ); fireEvent.change(passwordInput, { target: { value: 'password' } }); @@ -96,7 +110,9 @@ describe('Test PasswordWidget Component', () => { it('Should call onChange with asterisk', async () => { render(); - const passwordInput = screen.getByTestId('password-input-widget'); + const passwordInput = screen.getByTestId( + 'password-input-widget-root/password' + ); fireEvent.change(passwordInput, { target: { value: '*******' } }); @@ -106,18 +122,52 @@ describe('Test PasswordWidget Component', () => { it('Should not show password if the value is masked', async () => { render(); - const passwordInput = screen.getByTestId('password-input-widget'); + const passwordInput = screen.getByTestId( + 'password-input-widget-root/password' + ); expect(passwordInput).toHaveValue(''); }); - it('Should render FileWidget component if uiFieldType is file', async () => { + it('Should render FileWidget and password input if uiFieldType is fileOrInput', async () => { render(); - const passwordInput = screen.queryByTestId('password-input-widget'); + const passwordInput = screen.getByTestId( + 'password-input-widget-root/sslConfig/caCertificate' + ); const fileUploadWidget = screen.getByText('FileUploadWidget'); expect(fileUploadWidget).toBeInTheDocument(); - expect(passwordInput).not.toBeInTheDocument(); + expect(passwordInput).toBeInTheDocument(); + + // Check if the password input is disabled + expect(passwordInput).toBeDisabled(); + + // Click on the Enter file content radio button + const enterFileContentRadioButton = screen.getByTestId('radio-file-path'); + fireEvent.click(enterFileContentRadioButton); + + // Check if the password input is enabled + expect(passwordInput).toBeEnabled(); + + // Check if the file upload widget is disabled + expect(fileUploadWidget).toBeDisabled(); + }); + + it('Should render only FileWidget uiFieldType is file', async () => { + render( + + ); + + const passwordInput = screen.queryByTestId( + 'password-input-widget-root/sslConfig/caCertificate' + ); + const fileUploadWidget = screen.getByText('FileUploadWidget'); + + expect(fileUploadWidget).toBeInTheDocument(); + expect(passwordInput).toBeNull(); }); }); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/PasswordWidget.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/PasswordWidget.tsx index 8a4402478c3..63553b17e0e 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/PasswordWidget.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/PasswordWidget.tsx @@ -11,12 +11,25 @@ * limitations under the License. */ import { WidgetProps } from '@rjsf/utils'; -import { Input } from 'antd'; -import React, { FC, useMemo } from 'react'; +import { Col, Input, Radio, RadioChangeEvent, Row, Typography } from 'antd'; +import React, { FC, useCallback, useMemo, useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { ALL_ASTERISKS_REGEX } from '../../../../../constants/regex.constants'; +import { CertificationInputType } from '../../../../../enums/PasswordWidget.enum'; import FileUploadWidget from './FileUploadWidget'; +import './password-widget.less'; const PasswordWidget: FC = (props) => { + const { t } = useTranslation(); + const [inputType, setInputType] = useState( + props.schema.uiFieldType === 'fileOrInput' + ? CertificationInputType.FILE_UPLOAD + : CertificationInputType.FILE_PATH + ); + + const isInputTypeFile = props.schema.uiFieldType === 'file'; + const isInputTypeFileOrInput = props.schema.uiFieldType === 'fileOrInput'; + const passwordWidgetValue = useMemo(() => { if (ALL_ASTERISKS_REGEX.test(props.value)) { return undefined; // Do not show the password if it is masked @@ -25,29 +38,72 @@ const PasswordWidget: FC = (props) => { } }, [props.value]); - if (props.schema.uiFieldType === 'file') { + const getPasswordInput = useCallback( + (disabled?: boolean) => ( + props.onBlur(props.id, props.value)} + onChange={(e) => props.onChange(e.target.value)} + onFocus={() => props.onFocus(props.id, props.value)} + /> + ), + [props] + ); + + const onRadioChange = (e: RadioChangeEvent) => { + setInputType(e.target.value); + }; + + if (isInputTypeFile) { return ; } - const { onFocus, onBlur, onChange, ...rest } = props; + if (isInputTypeFileOrInput) { + return ( + + + + + {t('message.upload-file')} + + + + + + {t('label.enter-file-content')} + {getPasswordInput( + inputType === CertificationInputType.FILE_UPLOAD + )} + + + + + ); + } - return ( - onBlur(rest.id, rest.value)} - onChange={(e) => onChange(e.target.value)} - onFocus={() => onFocus(rest.id, rest.value)} - /> - ); + return getPasswordInput(); }; export default PasswordWidget; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/password-widget.less b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/password-widget.less new file mode 100644 index 00000000000..635bf43130f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/password-widget.less @@ -0,0 +1,26 @@ +/* + * Copyright 2025 Collate. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +.password-widget { + display: block; + + .widget-radio-option { + width: 100%; + + & > span:nth-child(2) { + display: inline-flex; + flex-direction: column; + gap: 10px; + width: 100%; + } + } +} diff --git a/openmetadata-ui/src/main/resources/ui/src/enums/PasswordWidget.enum.ts b/openmetadata-ui/src/main/resources/ui/src/enums/PasswordWidget.enum.ts new file mode 100644 index 00000000000..018a7c4530d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/enums/PasswordWidget.enum.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2025 Collate. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export enum CertificationInputType { + FILE_UPLOAD = 'file-upload', + FILE_PATH = 'file-path', +} diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json index 88e93b261d3..84e37f8190b 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json @@ -487,6 +487,7 @@ "enter-entity-name": "Geben Sie einen Namen für {{entity}} ein", "enter-entity-value": "Enter {{entity}} Value", "enter-field-description": "Geben Sie eine Beschreibung für {{field}} ein", + "enter-file-content": "Dateiinhalt eingeben", "enter-property-value": "Geben Sie einen Wert für die Eigenschaft ein", "enter-type-password": "{{type}}-Passwort eingeben", "entity": "Entität", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json index 64ebfe86f95..bb428353b72 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json @@ -487,6 +487,7 @@ "enter-entity-name": "Enter {{entity}} name", "enter-entity-value": "Enter {{entity}} Value", "enter-field-description": "Enter {{field}} description", + "enter-file-content": "Enter file content", "enter-property-value": "Enter Property Value", "enter-type-password": "Enter {{type}} Password", "entity": "Entity", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json index 00cfa01c627..3387b2fb722 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json @@ -487,6 +487,7 @@ "enter-entity-name": "Ingrese el nombre de {{entity}}", "enter-entity-value": "Enter {{entity}} Value", "enter-field-description": "Ingrese la descripción de {{field}}", + "enter-file-content": "Contenido del archivo", "enter-property-value": "Ingrese el valor de la propiedad", "enter-type-password": "Ingrese la contraseña de {{type}}", "entity": "Entidad", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json index 63e106acd8c..3b9b491458d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json @@ -487,6 +487,7 @@ "enter-entity-name": "Entrer un nom pour {{entity}}", "enter-entity-value": "Entrer une valeur pour {{entity}}", "enter-field-description": "Entrer une description pour {{field}}", + "enter-file-content": "Entrer le contenu du fichier", "enter-property-value": "Entrer une valeur pour la propriété", "enter-type-password": "Entrer un mot de passe {{type}}", "entity": "Entity", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/gl-es.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/gl-es.json index 734ea6e9c84..92abbd76da1 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/gl-es.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/gl-es.json @@ -487,6 +487,7 @@ "enter-entity-name": "Introducir o nome de {{entity}}", "enter-entity-value": "Introducir o valor de {{entity}}", "enter-field-description": "Introducir a descrición de {{field}}", + "enter-file-content": "Introducir o contido do ficheiro", "enter-property-value": "Introducir o valor da propiedade", "enter-type-password": "Introducir contrasinal de {{type}}", "entity": "Entidade", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json index c600aa2f56e..4c4ec29f5af 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json @@ -487,6 +487,7 @@ "enter-entity-name": "הזן שם {{entity}}", "enter-entity-value": "הזן ערך {{entity}}", "enter-field-description": "הזן תיאור של {{field}}", + "enter-file-content": "הזן תוכן קובץ", "enter-property-value": "הזן ערך נכס", "enter-type-password": "הזן סיסמה עבור {{type}}", "entity": "ישות", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json index db0d0ebddfa..52e3df23e6f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json @@ -487,6 +487,7 @@ "enter-entity-name": "{{entity}}の名前を入力", "enter-entity-value": "Enter {{entity}} Value", "enter-field-description": "{{field}}の説明を入力", + "enter-file-content": "ファイルの内容を入力", "enter-property-value": "プロパティの値を入力", "enter-type-password": "{{type}} のパスワードを入力", "entity": "Entity", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ko-kr.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ko-kr.json index 86760857274..3e550f6e032 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ko-kr.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ko-kr.json @@ -487,6 +487,7 @@ "enter-entity-name": "{{entity}} 이름 입력", "enter-entity-value": "{{entity}} 값 입력", "enter-field-description": "{{field}} 설명 입력", + "enter-file-content": "파일 내용 입력", "enter-property-value": "속성 값 입력", "enter-type-password": "{{type}} 비밀번호 입력", "entity": "엔티티", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/mr-in.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/mr-in.json index 475f7d8259f..c3bc471fc86 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/mr-in.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/mr-in.json @@ -487,6 +487,7 @@ "enter-entity-name": "{{entity}} नाव प्रविष्ट करा", "enter-entity-value": "{{entity}} मूल्य प्रविष्ट करा", "enter-field-description": "{{field}} वर्णन प्रविष्ट करा", + "enter-file-content": "फाइल मजकूर प्रविष्ट करा", "enter-property-value": "गुणधर्म मूल्य प्रविष्ट करा", "enter-type-password": "{{type}} पासवर्ड प्रविष्ट करा", "entity": "घटक", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json index c71c908b4b1..4132f2f607f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json @@ -487,6 +487,7 @@ "enter-entity-name": "{{entity}}-naam invoeren", "enter-entity-value": "{{entity}}-waarde invoeren", "enter-field-description": "{{field}}-beschrijving invoeren", + "enter-file-content": "Bestand inhoud invoeren", "enter-property-value": "Eigenschapswaarde invoeren", "enter-type-password": "{{type}}-wachtwoord invoeren", "entity": "Entiteit", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pr-pr.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pr-pr.json index 34f4beb1b27..b99550badf5 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pr-pr.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pr-pr.json @@ -487,6 +487,7 @@ "enter-entity-name": "نام {{entity}} را وارد کنید", "enter-entity-value": "مقدار {{entity}} را وارد کنید", "enter-field-description": "توضیحات {{field}} را وارد کنید", + "enter-file-content": "فایل محتوا را وارد کنید", "enter-property-value": "مقدار ویژگی را وارد کنید", "enter-type-password": "رمز عبور {{type}} را وارد کنید", "entity": "نهاد", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json index c747058ca05..41277233b9d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json @@ -487,6 +487,7 @@ "enter-entity-name": "Inserir nome de {{entity}}", "enter-entity-value": "Inserir Valor de {{entity}}", "enter-field-description": "Inserir descrição de {{field}}", + "enter-file-content": "Insira o conteúdo do arquivo", "enter-property-value": "Inserir Valor da Propriedade", "enter-type-password": "Inserir Senha de {{type}}", "entity": "Entidade", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-pt.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-pt.json index 3827845d2ea..5f869e1c56f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-pt.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-pt.json @@ -487,6 +487,7 @@ "enter-entity-name": "Inserir nome de {{entity}}", "enter-entity-value": "Inserir Valor de {{entity}}", "enter-field-description": "Inserir descrição de {{field}}", + "enter-file-content": "Insira o conteúdo do arquivo", "enter-property-value": "Inserir Valor da Propriedade", "enter-type-password": "Inserir Senha de {{type}}", "entity": "Entidade", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json index 94602a6dc01..05157127cb3 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json @@ -487,6 +487,7 @@ "enter-entity-name": "Введите имя {{entity}}", "enter-entity-value": "Enter {{entity}} Value", "enter-field-description": "Введите описание {{field}}", + "enter-file-content": "Введите содержимое файла", "enter-property-value": "Введите значение свойства", "enter-type-password": "Введите {{type}} пароль", "entity": "Entity", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/th-th.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/th-th.json index be85dd1f5d5..557c13bbb3a 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/th-th.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/th-th.json @@ -487,6 +487,7 @@ "enter-entity-name": "ป้อนชื่อ {{entity}}", "enter-entity-value": "ป้อนค่าของ {{entity}}", "enter-field-description": "ป้อนคำอธิบาย {{field}}", + "enter-file-content": "ป้อนเนื้อหาของไฟล์", "enter-property-value": "ป้อนค่าของคุณสมบัติ", "enter-type-password": "ป้อนรหัสผ่าน {{type}}", "entity": "เอนทิตี", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/tr-tr.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/tr-tr.json index ba2871792b1..a130906b3f7 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/tr-tr.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/tr-tr.json @@ -487,6 +487,7 @@ "enter-entity-name": "{{entity}} adı girin", "enter-entity-value": "{{entity}} Değeri Girin", "enter-field-description": "{{field}} açıklaması girin", + "enter-file-content": "Dosya içeriğini girin", "enter-property-value": "Özellik Değeri Girin", "enter-type-password": "{{type}} Şifresini Girin", "entity": "Varlık", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json index cc8b9530f95..311b4d1230c 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json @@ -487,6 +487,7 @@ "enter-entity-name": "输入{{entity}}的名称", "enter-entity-value": "输入{{entity}}的值", "enter-field-description": "输入{{field}}的描述", + "enter-file-content": "输入文件内容", "enter-property-value": "输入属性值", "enter-type-password": "输入{{type}}密码", "entity": "实体", diff --git a/openmetadata-ui/src/main/resources/ui/src/mocks/Widgets.mock.ts b/openmetadata-ui/src/main/resources/ui/src/mocks/Widgets.mock.ts index 33ad6a4e978..3a3d1f3f028 100644 --- a/openmetadata-ui/src/main/resources/ui/src/mocks/Widgets.mock.ts +++ b/openmetadata-ui/src/main/resources/ui/src/mocks/Widgets.mock.ts @@ -58,7 +58,7 @@ export const MOCK_FILE_SELECT_WIDGET = { description: 'The CA certificate used for SSL validation.', format: 'password', accept: ['.pem'], - uiFieldType: 'file', + uiFieldType: 'fileOrInput', }, uiSchema: {}, value: MOCK_SSL_FILE_CONTENT,