@solidstarters/solid-core-ui 1.1.17 → 1.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Svg/FileSvg.d.ts +4 -0
- package/dist/components/Svg/FileSvg.d.ts.map +1 -0
- package/dist/components/Svg/FileSvg.js +15 -0
- package/dist/components/Svg/FileSvg.js.map +1 -0
- package/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +6 -6
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.js +1 -1
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.js +1 -1
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/common/DropzonePlaceholder.d.ts +6 -1
- package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
- package/dist/components/common/DropzonePlaceholder.js +8 -2
- package/dist/components/common/DropzonePlaceholder.js.map +1 -1
- package/dist/components/common/FileReaderExt.d.ts.map +1 -1
- package/dist/components/common/FileReaderExt.js +2 -1
- package/dist/components/common/FileReaderExt.js.map +1 -1
- package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -1
- package/dist/components/common/SingleSelectAutoCompleteField.js +3 -1
- package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -1
- package/dist/components/core/common/SolidConfigureLayoutElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidConfigureLayoutElement.js +28 -6
- package/dist/components/core/common/SolidConfigureLayoutElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +6 -6
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/form/SolidFormView.js +3 -5
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.js +9 -7
- package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDateField.js +7 -5
- package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDateTimeField.js +7 -5
- package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.js +9 -7
- package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.js +9 -7
- package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
- package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidJsonField.js +6 -4
- package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.js +8 -6
- package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +61 -57
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +74 -91
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.js +9 -7
- package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js +10 -8
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.js +10 -8
- package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.js +8 -6
- package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidTimeField.js +7 -5
- package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +15 -11
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts +1 -0
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +66 -7
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +12 -10
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +42 -34
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +9 -2
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js +10 -3
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
- package/dist/components/core/model/CreateModel.js +3 -4
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +54 -1
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -1
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +118 -51
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/module/CreateModule.js +5 -5
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/users/CreateUser.js +1 -2
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/layout/AppConfig.js +1 -1
- package/dist/components/layout/navbar-two-menu.js +1 -1
- package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
- package/dist/components/layout/user-profile-menu.js +1 -1
- package/dist/components/layout/user-profile-menu.js.map +1 -1
- package/dist/helpers/downloadMediaFile.d.ts +2 -0
- package/dist/helpers/downloadMediaFile.d.ts.map +1 -0
- package/dist/helpers/downloadMediaFile.js +66 -0
- package/dist/helpers/downloadMediaFile.js.map +1 -0
- package/dist/helpers/getAcceptedFileTypes.d.ts +4 -0
- package/dist/helpers/getAcceptedFileTypes.d.ts.map +1 -0
- package/dist/helpers/getAcceptedFileTypes.js +20 -0
- package/dist/helpers/getAcceptedFileTypes.js.map +1 -0
- package/dist/index.js +2 -2
- package/dist/nextAuth/authProviders.d.ts.map +1 -1
- package/dist/nextAuth/authProviders.js +15 -10
- package/dist/nextAuth/authProviders.js.map +1 -1
- package/dist/redux/api/modelApi.d.ts +2 -1
- package/dist/redux/api/modelApi.d.ts.map +1 -1
- package/dist/redux/api/modelApi.js +9 -2
- package/dist/redux/api/modelApi.js.map +1 -1
- package/dist/stylesheets/globals.css +2476 -0
- package/dist/stylesheets/styles/SF-Pro-Display-Regular.otf +0 -0
- package/dist/stylesheets/styles/layout/_config.scss +54 -0
- package/dist/stylesheets/styles/layout/_content.scss +77 -0
- package/dist/stylesheets/styles/layout/_footer.scss +8 -0
- package/dist/stylesheets/styles/layout/_main.scss +47 -0
- package/dist/stylesheets/styles/layout/_menu.scss +185 -0
- package/dist/stylesheets/styles/layout/_mixins.scss +13 -0
- package/dist/stylesheets/styles/layout/_responsive.scss +99 -0
- package/dist/stylesheets/styles/layout/_topbar.scss +149 -0
- package/dist/stylesheets/styles/layout/_typography.scss +63 -0
- package/dist/stylesheets/styles/layout/_utils.scss +27 -0
- package/dist/stylesheets/styles/layout/_variables.scss +3 -0
- package/dist/stylesheets/styles/layout/layout.scss +11 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Black.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Bold.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Heavy.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Light.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Medium.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Regular.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Semibold.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Thin.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Ultralight.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/theme.css +9051 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Black.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Bold.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Heavy.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Light.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Medium.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Regular.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Semibold.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Thin.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Ultralight.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/theme.css +9077 -0
- package/package.json +1 -1
- package/src/components/Svg/FileSvg.tsx +18 -0
- package/src/components/auth/AuthLayout.tsx +7 -5
- package/src/components/auth/SolidForgotPassword.tsx +1 -1
- package/src/components/auth/SolidInitialLoginOtp.tsx +1 -1
- package/src/components/auth/SolidInitiateRegisterOtp.tsx +1 -1
- package/src/components/auth/SolidResetPassword.tsx +1 -1
- package/src/components/common/DropzonePlaceholder.tsx +22 -9
- package/src/components/common/FileReaderExt.tsx +5 -3
- package/src/components/common/SingleSelectAutoCompleteField.tsx +3 -1
- package/src/components/core/common/SolidConfigureLayoutElement.tsx +72 -31
- package/src/components/core/common/SolidGlobalSearchElement.tsx +7 -6
- package/src/components/core/form/SolidFormView.tsx +4 -4
- package/src/components/core/form/fields/SolidBooleanField.tsx +6 -3
- package/src/components/core/form/fields/SolidDateField.tsx +6 -3
- package/src/components/core/form/fields/SolidDateTimeField.tsx +6 -3
- package/src/components/core/form/fields/SolidDecimalField.tsx +6 -3
- package/src/components/core/form/fields/SolidIntegerField.tsx +6 -3
- package/src/components/core/form/fields/SolidJsonField.tsx +6 -3
- package/src/components/core/form/fields/SolidLongTextField.tsx +6 -3
- package/src/components/core/form/fields/SolidMediaMultipleField.tsx +122 -98
- package/src/components/core/form/fields/SolidMediaSingleField.tsx +115 -126
- package/src/components/core/form/fields/SolidRichTextField.tsx +7 -3
- package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +6 -3
- package/src/components/core/form/fields/SolidSelectionStaticField.tsx +6 -3
- package/src/components/core/form/fields/SolidShortTextField.tsx +8 -4
- package/src/components/core/form/fields/SolidTimeField.tsx +7 -4
- package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +29 -25
- package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +92 -2
- package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +5 -1
- package/src/components/core/list/SolidListView.tsx +12 -3
- package/src/components/core/list/columns/SolidMediaMultipleColumn.tsx +18 -0
- package/src/components/core/list/columns/SolidMediaSingleColumn.tsx +21 -0
- package/src/components/core/model/CreateModel.tsx +4 -4
- package/src/components/core/model/FieldMetaData.tsx +25 -1
- package/src/components/core/model/FieldMetaDataForm.tsx +108 -18
- package/src/components/core/module/CreateModule.tsx +5 -5
- package/src/components/core/users/CreateUser.tsx +2 -2
- package/src/components/layout/AppConfig.tsx +1 -1
- package/src/components/layout/navbar-two-menu.tsx +1 -1
- package/src/components/layout/user-profile-menu.tsx +7 -8
- package/src/helpers/downloadMediaFile.tsx +19 -0
- package/src/helpers/getAcceptedFileTypes.tsx +22 -0
- package/src/nextAuth/authProviders.tsx +3 -2
- package/src/redux/api/modelApi.ts +9 -2
- package/dist/components/common/FilterComponent.d.ts +0 -3
- package/dist/components/common/FilterComponent.d.ts.map +0 -1
- package/dist/components/common/FilterComponent.js +0 -214
- package/dist/components/common/FilterComponent.js.map +0 -1
- package/dist/components/core/filter/columns/SolidBigintField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidBigintField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidBigintField.js +0 -8
- package/dist/components/core/filter/columns/SolidBigintField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidBooleanField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidBooleanField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidBooleanField.js +0 -27
- package/dist/components/core/filter/columns/SolidBooleanField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidComputedField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidComputedField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidComputedField.js +0 -22
- package/dist/components/core/filter/columns/SolidComputedField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidDateField.d.ts +0 -9
- package/dist/components/core/filter/columns/SolidDateField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidDateField.js +0 -35
- package/dist/components/core/filter/columns/SolidDateField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidDatetimeField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidDatetimeField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidDatetimeField.js +0 -24
- package/dist/components/core/filter/columns/SolidDatetimeField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidDecimalField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidDecimalField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidDecimalField.js +0 -8
- package/dist/components/core/filter/columns/SolidDecimalField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidExternalIdField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidExternalIdField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidExternalIdField.js +0 -25
- package/dist/components/core/filter/columns/SolidExternalIdField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidFloatField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidFloatField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidFloatField.js +0 -8
- package/dist/components/core/filter/columns/SolidFloatField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidIdField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidIdField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidIdField.js +0 -25
- package/dist/components/core/filter/columns/SolidIdField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidIntField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidIntField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidIntField.js +0 -34
- package/dist/components/core/filter/columns/SolidIntField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidLongTextField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidLongTextField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidLongTextField.js +0 -8
- package/dist/components/core/filter/columns/SolidLongTextField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidMediaMultipleField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidMediaMultipleField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidMediaMultipleField.js +0 -35
- package/dist/components/core/filter/columns/SolidMediaMultipleField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidMediaSingleField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidMediaSingleField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidMediaSingleField.js +0 -35
- package/dist/components/core/filter/columns/SolidMediaSingleField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidRelationField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidRelationField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidRelationField.js +0 -12
- package/dist/components/core/filter/columns/SolidRelationField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidRichTextField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidRichTextField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidRichTextField.js +0 -8
- package/dist/components/core/filter/columns/SolidRichTextField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.js +0 -25
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidSelectionStaticField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidSelectionStaticField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidSelectionStaticField.js +0 -26
- package/dist/components/core/filter/columns/SolidSelectionStaticField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidShortTextField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidShortTextField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidShortTextField.js +0 -33
- package/dist/components/core/filter/columns/SolidShortTextField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidTimeField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidTimeField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidTimeField.js +0 -24
- package/dist/components/core/filter/columns/SolidTimeField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidUuidField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidUuidField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidUuidField.js +0 -25
- package/dist/components/core/filter/columns/SolidUuidField.js.map +0 -1
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.d.ts +0 -4
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.js +0 -54
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.js.map +0 -1
|
@@ -7,6 +7,12 @@ import { useState } from "react";
|
|
|
7
7
|
import * as Yup from 'yup';
|
|
8
8
|
import { Schema } from "yup";
|
|
9
9
|
import { FormikObject, ISolidField, SolidFieldProps } from "../ISolidField";
|
|
10
|
+
import { camelCase, capitalize } from "lodash";
|
|
11
|
+
import { Button } from "primereact/button";
|
|
12
|
+
import { Checkbox } from "primereact/checkbox";
|
|
13
|
+
import { Dialog } from "primereact/dialog";
|
|
14
|
+
import { Panel } from "primereact/panel";
|
|
15
|
+
import SolidFormView from "../../SolidFormView";
|
|
10
16
|
|
|
11
17
|
|
|
12
18
|
export class SolidRelationManyToOneField implements ISolidField {
|
|
@@ -57,6 +63,8 @@ export class SolidRelationManyToOneField implements ISolidField {
|
|
|
57
63
|
const className = fieldLayoutInfo.attrs?.className || 'field col-12';
|
|
58
64
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
59
65
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
66
|
+
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
67
|
+
const [visibleCreateRelationEntity, setvisibleCreateRelationEntity] = useState(false);
|
|
60
68
|
|
|
61
69
|
// auto complete specific code.
|
|
62
70
|
const entityApi = createSolidEntityApi(fieldMetadata.relationModelSingularName);
|
|
@@ -106,11 +114,36 @@ export class SolidRelationManyToOneField implements ISolidField {
|
|
|
106
114
|
|
|
107
115
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
108
116
|
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
const disabled = fieldLayoutInfo.attrs?.disabled;
|
|
121
|
+
const readOnly = fieldLayoutInfo.attrs?.readOnly;
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
const customCreateHandler = (values: any) => {
|
|
125
|
+
const currentRelationData = formik.values[fieldLayoutInfo.attrs.name] || [];
|
|
126
|
+
const jsonValues = Object.fromEntries(values.entries());
|
|
127
|
+
const updatedRelationData = [
|
|
128
|
+
...currentRelationData,
|
|
129
|
+
{
|
|
130
|
+
label: jsonValues[fieldMetadata?.relationModel?.userKeyField?.name],
|
|
131
|
+
value: "new",
|
|
132
|
+
original: jsonValues,
|
|
133
|
+
},
|
|
134
|
+
];
|
|
135
|
+
|
|
136
|
+
formik.setFieldValue(fieldLayoutInfo.attrs.name, updatedRelationData);
|
|
137
|
+
|
|
138
|
+
}
|
|
109
139
|
return (
|
|
110
140
|
<div className={className}>
|
|
111
141
|
<div className="flex flex-column gap-2 mt-4">
|
|
112
|
-
|
|
113
|
-
|
|
142
|
+
{showFieldLabel != false &&
|
|
143
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">
|
|
144
|
+
{fieldLabel}
|
|
145
|
+
</label>
|
|
146
|
+
}
|
|
114
147
|
<AutoComplete
|
|
115
148
|
readOnly={formReadonly || fieldReadonly}
|
|
116
149
|
disabled={formDisabled || fieldDisabled}
|
|
@@ -124,6 +157,9 @@ export class SolidRelationManyToOneField implements ISolidField {
|
|
|
124
157
|
onChange={formik.handleChange}
|
|
125
158
|
className="w-full solid-standard-autocomplete"
|
|
126
159
|
/>
|
|
160
|
+
{fieldLayoutInfo.attrs.inlineCreate === "true" &&
|
|
161
|
+
this.renderSolidFormEmbededView(formik, customCreateHandler, visibleCreateRelationEntity, setvisibleCreateRelationEntity)
|
|
162
|
+
}
|
|
127
163
|
</div>
|
|
128
164
|
{isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (
|
|
129
165
|
<Message severity="error" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />
|
|
@@ -131,4 +167,58 @@ export class SolidRelationManyToOneField implements ISolidField {
|
|
|
131
167
|
</div>
|
|
132
168
|
);
|
|
133
169
|
}
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
renderSolidFormEmbededView(formik: FormikObject, customCreateHandler: any, visibleCreateRelationEntity: any, setvisibleCreateRelationEntity: any) {
|
|
173
|
+
|
|
174
|
+
const fieldMetadata = this.fieldContext.fieldMetadata;
|
|
175
|
+
const fieldLayoutInfo = this.fieldContext.field;
|
|
176
|
+
const className = fieldLayoutInfo.attrs?.className || 'field col-6 flex flex-column gap-2 mt-4';
|
|
177
|
+
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
178
|
+
|
|
179
|
+
const params = {
|
|
180
|
+
moduleName: this.fieldContext.fieldMetadata.relationModelModuleName,
|
|
181
|
+
id: "new",
|
|
182
|
+
embeded: true,
|
|
183
|
+
layout: fieldLayoutInfo?.attrs?.inlineCreateLayout,
|
|
184
|
+
customCreateHandler: ((values: any) => {
|
|
185
|
+
setvisibleCreateRelationEntity(false);
|
|
186
|
+
customCreateHandler(values)
|
|
187
|
+
}),
|
|
188
|
+
inlineCreateAutoSave: fieldLayoutInfo?.attrs?.inlineCreateAutoSave,
|
|
189
|
+
handlePopupClose: (() => {
|
|
190
|
+
setvisibleCreateRelationEntity(false);
|
|
191
|
+
}),
|
|
192
|
+
modelName: camelCase(this.fieldContext.fieldMetadata.relationModelSingularName)
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return (
|
|
196
|
+
<div >
|
|
197
|
+
<Button
|
|
198
|
+
icon="pi pi-plus"
|
|
199
|
+
rounded
|
|
200
|
+
outlined
|
|
201
|
+
aria-label="Filter"
|
|
202
|
+
type="button"
|
|
203
|
+
size="small"
|
|
204
|
+
onClick={() => setvisibleCreateRelationEntity(true)}
|
|
205
|
+
className="custom-add-button"
|
|
206
|
+
/>
|
|
207
|
+
<Dialog
|
|
208
|
+
header=""
|
|
209
|
+
showHeader={false}
|
|
210
|
+
visible={visibleCreateRelationEntity}
|
|
211
|
+
style={{ width: fieldLayoutInfo?.attrs?.inlineCreateLayout?.attrs?.width ?? "60vw" }}
|
|
212
|
+
onHide={() => {
|
|
213
|
+
if (!visibleCreateRelationEntity) return;
|
|
214
|
+
setvisibleCreateRelationEntity(false);
|
|
215
|
+
}}
|
|
216
|
+
className="solid-dialog"
|
|
217
|
+
>
|
|
218
|
+
<SolidFormView {...params} />
|
|
219
|
+
|
|
220
|
+
</Dialog>
|
|
221
|
+
</div>
|
|
222
|
+
)
|
|
223
|
+
}
|
|
134
224
|
}
|
|
@@ -62,6 +62,7 @@ export class SolidRelationOneToManyField implements ISolidField {
|
|
|
62
62
|
const [listViewParams, setListViewParams] = useState<any>()
|
|
63
63
|
const [formViewParams, setformViewParams] = useState<any>()
|
|
64
64
|
const [refreshList, setRefreshList] = useState(false); // Added state for rerender
|
|
65
|
+
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
65
66
|
|
|
66
67
|
|
|
67
68
|
const handlePopupOpen = (id: any) => {
|
|
@@ -133,7 +134,10 @@ export class SolidRelationOneToManyField implements ISolidField {
|
|
|
133
134
|
return (
|
|
134
135
|
<div className={className}>
|
|
135
136
|
{/* <div className="justify-content-center align-items-center"> */}
|
|
136
|
-
|
|
137
|
+
{showFieldLabel != false &&
|
|
138
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel} {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}</label>
|
|
139
|
+
}
|
|
140
|
+
|
|
137
141
|
{/* </div>
|
|
138
142
|
<br></br> */}
|
|
139
143
|
{listViewParams &&
|
|
@@ -59,6 +59,7 @@ export const SolidListView = (params: SolidListViewParams) => {
|
|
|
59
59
|
// const [showGlobalSearchElement, setShowGlobalSearchElement] = useState<boolean>(false);
|
|
60
60
|
|
|
61
61
|
const [toPopulate, setToPopulate] = useState<string[]>([]);
|
|
62
|
+
const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);
|
|
62
63
|
const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);
|
|
63
64
|
|
|
64
65
|
const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();
|
|
@@ -123,6 +124,8 @@ export const SolidListView = (params: SolidListViewParams) => {
|
|
|
123
124
|
|
|
124
125
|
const initialFilters: any = {};
|
|
125
126
|
const toPopulate: string[] = [];
|
|
127
|
+
const toPopulateMedia: string[] = [];
|
|
128
|
+
|
|
126
129
|
for (let i = 0; i < solidView.layout.children?.length; i++) {
|
|
127
130
|
const column = solidView.layout.children[i];
|
|
128
131
|
const fieldMetadata = solidFieldsMetadata[column.attrs.name];
|
|
@@ -155,10 +158,14 @@ export const SolidListView = (params: SolidListViewParams) => {
|
|
|
155
158
|
if (fieldMetadata.type === 'relation' && fieldMetadata.relationType === 'many-to-one') {
|
|
156
159
|
toPopulate.push(fieldMetadata.name);
|
|
157
160
|
}
|
|
161
|
+
if (fieldMetadata.type === 'mediaSingle' || fieldMetadata.relationType === 'mediaMultiple') {
|
|
162
|
+
toPopulateMedia.push(fieldMetadata.name);
|
|
163
|
+
}
|
|
158
164
|
}
|
|
159
165
|
// setFilters(initialFilters);
|
|
160
166
|
setRows(solidListViewMetaData?.data?.solidView?.layout?.attrs?.defaultPageSize ? solidListViewMetaData?.data?.solidView?.layout?.attrs.defaultPageSize : 25)
|
|
161
167
|
setToPopulate(toPopulate);
|
|
168
|
+
setToPopulateMedia(toPopulateMedia);
|
|
162
169
|
}
|
|
163
170
|
|
|
164
171
|
useEffect(() => {
|
|
@@ -268,11 +275,12 @@ export const SolidListView = (params: SolidListViewParams) => {
|
|
|
268
275
|
|
|
269
276
|
// Fetch data after toPopulate has been populated...
|
|
270
277
|
useEffect(() => {
|
|
271
|
-
if (toPopulate) {
|
|
278
|
+
if (toPopulate || toPopulateMedia) {
|
|
272
279
|
const queryData = {
|
|
273
280
|
offset: 0,
|
|
274
281
|
limit: 25,
|
|
275
282
|
populate: toPopulate,
|
|
283
|
+
populateMedia: toPopulateMedia,
|
|
276
284
|
sort: [`id:desc`],
|
|
277
285
|
filters: { ...params.customFilter }
|
|
278
286
|
};
|
|
@@ -288,7 +296,7 @@ export const SolidListView = (params: SolidListViewParams) => {
|
|
|
288
296
|
setSelectedRecoverRecords([]);
|
|
289
297
|
setShowArchived(false);
|
|
290
298
|
}
|
|
291
|
-
}, [isDeleteSolidEntitiesSucess, isDeleteSolidSingleEntitySuccess, toPopulate]);
|
|
299
|
+
}, [isDeleteSolidEntitiesSucess, isDeleteSolidSingleEntitySuccess, toPopulate, toPopulateMedia]);
|
|
292
300
|
|
|
293
301
|
// Handle pagination event.
|
|
294
302
|
const onPageChange = (event: any) => {
|
|
@@ -402,6 +410,7 @@ export const SolidListView = (params: SolidListViewParams) => {
|
|
|
402
410
|
limit: limit ?? rows,
|
|
403
411
|
filters: filters ?? filters,
|
|
404
412
|
populate: toPopulate,
|
|
413
|
+
populateMedia: toPopulateMedia
|
|
405
414
|
};
|
|
406
415
|
|
|
407
416
|
if (sortField) {
|
|
@@ -702,7 +711,7 @@ export const SolidListView = (params: SolidListViewParams) => {
|
|
|
702
711
|
rows={rows}
|
|
703
712
|
rowsPerPageOptions={solidListViewMetaData?.data?.solidView?.layout?.attrs?.pageSizeOptions}
|
|
704
713
|
dataKey="id"
|
|
705
|
-
emptyMessage=
|
|
714
|
+
emptyMessage={solidListViewMetaData?.data?.solidView?.model?.description || 'No Entities found.'}
|
|
706
715
|
filterDisplay="menu"
|
|
707
716
|
totalRecords={totalRecords}
|
|
708
717
|
first={first}
|
|
@@ -9,11 +9,29 @@ const SolidMediaMultipleColumn = ({ solidListViewMetaData, fieldMetadata, column
|
|
|
9
9
|
const showFilterOperator = false;
|
|
10
10
|
const columnDataType = undefined;
|
|
11
11
|
const header = column.attrs.label ?? fieldMetadata.displayName;
|
|
12
|
+
const imageBodyTemplate = (product: any) => {
|
|
13
|
+
if (!product?._media?.[fieldMetadata.name]) return null;
|
|
12
14
|
|
|
15
|
+
const imageUrls = product._media[fieldMetadata.name].map((i: any) => i._full_url);
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<>
|
|
19
|
+
{imageUrls.map((url: string, index: number) => (
|
|
20
|
+
<img
|
|
21
|
+
key={index}
|
|
22
|
+
src={url}
|
|
23
|
+
alt={`product-image-${index}`}
|
|
24
|
+
className="w-6rem shadow-2 border-round"
|
|
25
|
+
/>
|
|
26
|
+
))}
|
|
27
|
+
</>
|
|
28
|
+
);
|
|
29
|
+
};
|
|
13
30
|
return (
|
|
14
31
|
<Column
|
|
15
32
|
key={fieldMetadata.name}
|
|
16
33
|
field={fieldMetadata.name}
|
|
34
|
+
body={imageBodyTemplate}
|
|
17
35
|
header={header}
|
|
18
36
|
// className="text-sm"
|
|
19
37
|
sortable={column.attrs.sortable}
|
|
@@ -8,16 +8,37 @@ import { FilterMatchMode } from 'primereact/api';
|
|
|
8
8
|
|
|
9
9
|
const SolidMediaSingleColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {
|
|
10
10
|
// const filterable = column.attrs.filterable;
|
|
11
|
+
|
|
11
12
|
const filterable = false;
|
|
12
13
|
const showFilterOperator = false;
|
|
13
14
|
const columnDataType = undefined;
|
|
14
15
|
const header = column.attrs.label ?? fieldMetadata.displayName;
|
|
15
16
|
|
|
17
|
+
const imageBodyTemplate = (product: any) => {
|
|
18
|
+
if (!product?._media?.[fieldMetadata.name]) return null;
|
|
19
|
+
|
|
20
|
+
const imageUrls = product._media[fieldMetadata.name].map((i: any) => i._full_url);
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<>
|
|
24
|
+
{imageUrls.map((url: string, index: number) => (
|
|
25
|
+
<img
|
|
26
|
+
key={index}
|
|
27
|
+
src={url}
|
|
28
|
+
alt={`product-image-${index}`}
|
|
29
|
+
className="w-6rem shadow-2 border-round"
|
|
30
|
+
/>
|
|
31
|
+
))}
|
|
32
|
+
</>
|
|
33
|
+
);
|
|
34
|
+
};
|
|
35
|
+
|
|
16
36
|
return (
|
|
17
37
|
<Column
|
|
18
38
|
key={fieldMetadata.name}
|
|
19
39
|
field={fieldMetadata.name}
|
|
20
40
|
header={header}
|
|
41
|
+
body={imageBodyTemplate}
|
|
21
42
|
// className="text-sm"
|
|
22
43
|
sortable={column.attrs.sortable}
|
|
23
44
|
// filter={filterable}
|
|
@@ -321,8 +321,8 @@ const CreateModel = ({ data, params }: any) => {
|
|
|
321
321
|
size="small"
|
|
322
322
|
className="bg-primary-reverse p-0"
|
|
323
323
|
style={{
|
|
324
|
-
height:
|
|
325
|
-
width:
|
|
324
|
+
height: 33.06,
|
|
325
|
+
width: 33.06
|
|
326
326
|
}}
|
|
327
327
|
onClick={(e) =>
|
|
328
328
|
// @ts-ignore
|
|
@@ -400,9 +400,9 @@ const CreateModel = ({ data, params }: any) => {
|
|
|
400
400
|
</>
|
|
401
401
|
}
|
|
402
402
|
</div>
|
|
403
|
-
<div className="solid-form-stepper">
|
|
403
|
+
{/* <div className="solid-form-stepper">
|
|
404
404
|
<SolidFormStepper />
|
|
405
|
-
</div>
|
|
405
|
+
</div> */}
|
|
406
406
|
<div className="p-4 solid-form-content">
|
|
407
407
|
<TabView
|
|
408
408
|
activeIndex={activeIndex}
|
|
@@ -74,6 +74,30 @@ const FieldMetaData = ({ modelMetaData, fieldMetaData, setFieldMetaData, deleteM
|
|
|
74
74
|
)
|
|
75
75
|
};
|
|
76
76
|
|
|
77
|
+
const showToaster = async (message: any, severity: any) => {
|
|
78
|
+
const errorMessages = Object.values(message);
|
|
79
|
+
if (errorMessages.length > 0) {
|
|
80
|
+
toast?.current?.show({
|
|
81
|
+
severity: severity,
|
|
82
|
+
summary: "Can you send me the report?",
|
|
83
|
+
life: 3000,
|
|
84
|
+
//@ts-ignore
|
|
85
|
+
content: (props) => (
|
|
86
|
+
<div
|
|
87
|
+
className="flex flex-column align-items-left"
|
|
88
|
+
style={{ flex: "1" }}
|
|
89
|
+
>
|
|
90
|
+
{errorMessages.map((m, index) => (
|
|
91
|
+
<div className="flex align-items-center gap-2" key={index}>
|
|
92
|
+
<span className="font-bold text-900">{String(m)}</span>
|
|
93
|
+
</div>
|
|
94
|
+
))}
|
|
95
|
+
</div>
|
|
96
|
+
),
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
|
|
77
101
|
|
|
78
102
|
|
|
79
103
|
return (
|
|
@@ -132,7 +156,7 @@ const FieldMetaData = ({ modelMetaData, fieldMetaData, setFieldMetaData, deleteM
|
|
|
132
156
|
}}
|
|
133
157
|
showHeader={false}
|
|
134
158
|
>
|
|
135
|
-
<FieldMetaDataForm modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp}></FieldMetaDataForm>
|
|
159
|
+
<FieldMetaDataForm modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp} showToaster={showToaster}></FieldMetaDataForm>
|
|
136
160
|
</Dialog>
|
|
137
161
|
<Dialog
|
|
138
162
|
visible={isRequiredPopUp}
|
|
@@ -4,7 +4,7 @@ import { SingleSelectAutoCompleteField } from "@/components/common/SingleSelectA
|
|
|
4
4
|
import { getSingularAndPlural } from "@/helpers/helpers";
|
|
5
5
|
import { useGetFieldDefaultMetaDataQuery } from "@/redux/api/fieldApi";
|
|
6
6
|
import { useLazyGetMediaStorageProvidersQuery } from "@/redux/api/mediaStorageProviderApi";
|
|
7
|
-
import { useLazyGetModelsQuery } from "@/redux/api/modelApi";
|
|
7
|
+
import { useLazyGetModelsQuery, useUpdateUserKeyMutation } from "@/redux/api/modelApi";
|
|
8
8
|
import { useLazyGetmodulesQuery } from "@/redux/api/moduleApi";
|
|
9
9
|
import { useFormik } from "formik";
|
|
10
10
|
import { capitalize } from "lodash";
|
|
@@ -506,7 +506,7 @@ const createValidationSchema = (currentFields: any, selectedType: any, allFields
|
|
|
506
506
|
return Yup.object(schema);
|
|
507
507
|
};
|
|
508
508
|
|
|
509
|
-
const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, allFields, deleteModelFunction, setVisiblePopup, params, setIsRequiredPopUp }: any) => {
|
|
509
|
+
const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, allFields, deleteModelFunction, setVisiblePopup, params, setIsRequiredPopUp, showToaster }: any) => {
|
|
510
510
|
|
|
511
511
|
const booleanOptions = ["false", "true"];
|
|
512
512
|
const [isBackPopupVisible, setIsBackPopupVisible] = useState(false);
|
|
@@ -523,6 +523,10 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
523
523
|
const [triggerGetMediaStorageProvider, { data: MediaStorageProviderData, isFetching: isMediaStorageProviderFetching, error: MediaStorageProviderError }] = useLazyGetMediaStorageProvidersQuery();
|
|
524
524
|
const [triggerGetModules, { data: moduleData, isFetching: isModuleFetching, error: moduleError }] = useLazyGetmodulesQuery();
|
|
525
525
|
const [triggerGetModels, { data: modelData, isFetching: ismodelFetching, error: modelError }] = useLazyGetModelsQuery();
|
|
526
|
+
const [
|
|
527
|
+
updateUserKey,
|
|
528
|
+
{ isLoading: isUpdateUserKeyLoading, isSuccess: isUpdateUserKeySuccess, isError: isUpdateUserKeyError, error: UpdateUserKeyError, data: newModel },
|
|
529
|
+
] = useUpdateUserKeyMutation();
|
|
526
530
|
|
|
527
531
|
|
|
528
532
|
const [markdownText, setMarkdownText] = useState<string>();
|
|
@@ -543,7 +547,8 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
543
547
|
const [ormTypeOptions, setOrmTypeOptions] = useState([]);
|
|
544
548
|
const [selectedOrmType, setSelectedOrmType] = useState<any>(fieldMetaData?.ormType);
|
|
545
549
|
|
|
546
|
-
|
|
550
|
+
const [isUserKeyFields, setUserKeyFields] = useState(false);
|
|
551
|
+
const [userKeyData, setUserKeyData] = useState([]);
|
|
547
552
|
|
|
548
553
|
const [
|
|
549
554
|
filteredExternalIdProvider,
|
|
@@ -734,7 +739,9 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
734
739
|
}
|
|
735
740
|
};
|
|
736
741
|
|
|
737
|
-
|
|
742
|
+
const searchUserKeyField = () => {
|
|
743
|
+
return userKeyData;
|
|
744
|
+
}
|
|
738
745
|
|
|
739
746
|
const searchComputedFieldValueType = async (event: any) => {
|
|
740
747
|
const query = event.query;
|
|
@@ -904,7 +911,8 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
904
911
|
isUserKey: fieldMetaData ? fieldMetaData?.isUserKey : false,
|
|
905
912
|
relationJoinColumnName: fieldMetaData ? fieldMetaData?.relationJoinColumnName : null,
|
|
906
913
|
joinColumnName: fieldMetaData ? fieldMetaData?.joinColumnName : null,
|
|
907
|
-
relationJoinTableName: fieldMetaData ? fieldMetaData?.relationJoinTableName : null
|
|
914
|
+
relationJoinTableName: fieldMetaData ? fieldMetaData?.relationJoinTableName : null,
|
|
915
|
+
userKey: fieldMetaData ? fieldMetaData?.userKey : null
|
|
908
916
|
};
|
|
909
917
|
|
|
910
918
|
|
|
@@ -914,7 +922,6 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
914
922
|
enableReinitialize: true,
|
|
915
923
|
onSubmit: async (values) => {
|
|
916
924
|
try {
|
|
917
|
-
|
|
918
925
|
setFieldMetaData((prevItems: any) => {
|
|
919
926
|
const newFieldData = { ...values, isSystem: values.isSystem == true ? true : '' }
|
|
920
927
|
const formtatedFieldPayload = fieldBasedPayloadFormating(newFieldData, currentFields, fieldMetaData);
|
|
@@ -931,6 +938,13 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
931
938
|
return [...prevItems, formtatedFieldPayload]
|
|
932
939
|
}
|
|
933
940
|
});
|
|
941
|
+
if (values.userKey) {
|
|
942
|
+
const data = {
|
|
943
|
+
modelName: values.relationModelSingularName,
|
|
944
|
+
fieldName: values.userKey
|
|
945
|
+
}
|
|
946
|
+
updateUserKey(data);
|
|
947
|
+
}
|
|
934
948
|
// nextTab()
|
|
935
949
|
setVisiblePopup(false);
|
|
936
950
|
|
|
@@ -972,7 +986,13 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
972
986
|
}
|
|
973
987
|
};
|
|
974
988
|
|
|
975
|
-
|
|
989
|
+
useEffect(() => {
|
|
990
|
+
if (isUpdateUserKeySuccess) {
|
|
991
|
+
showToaster([newModel?.data?.message], "success");
|
|
992
|
+
} if (isUpdateUserKeyError) {
|
|
993
|
+
showToaster(UpdateUserKeyError, 'error')
|
|
994
|
+
}
|
|
995
|
+
}, [isUpdateUserKeySuccess, isUpdateUserKeyError])
|
|
976
996
|
|
|
977
997
|
const handleTypeSelect = (e: any, label: string) => {
|
|
978
998
|
|
|
@@ -1012,6 +1032,40 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
1012
1032
|
}
|
|
1013
1033
|
}, [fieldMetaData])
|
|
1014
1034
|
|
|
1035
|
+
useEffect(() => {
|
|
1036
|
+
const fetchFields = async () => {
|
|
1037
|
+
const queryData: any = {
|
|
1038
|
+
limit: 10,
|
|
1039
|
+
offset: 0,
|
|
1040
|
+
filters: {
|
|
1041
|
+
singularName: {
|
|
1042
|
+
$eq: formik.values.relationModelSingularName
|
|
1043
|
+
}
|
|
1044
|
+
},
|
|
1045
|
+
populate: ['fields']
|
|
1046
|
+
};
|
|
1047
|
+
const queryString = qs.stringify(queryData, {
|
|
1048
|
+
encodeValuesOnly: true,
|
|
1049
|
+
});
|
|
1050
|
+
|
|
1051
|
+
const result = await triggerGetModels(queryString).unwrap();
|
|
1052
|
+
|
|
1053
|
+
if (result && result.records) {
|
|
1054
|
+
if (!result?.records[0]?.userKeyField) {
|
|
1055
|
+
setUserKeyFields(true);
|
|
1056
|
+
const fieldsWithUnique = result?.records[0]?.fields?.filter((field: any) => field?.unique === true);
|
|
1057
|
+
setUserKeyData(fieldsWithUnique)
|
|
1058
|
+
} else {
|
|
1059
|
+
setUserKeyFields(false);
|
|
1060
|
+
setUserKeyData([]);
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
}
|
|
1064
|
+
if (formik.values.relationModelSingularName) {
|
|
1065
|
+
fetchFields();
|
|
1066
|
+
}
|
|
1067
|
+
}, [formik.values.relationModelSingularName])
|
|
1068
|
+
|
|
1015
1069
|
const updateEnumValues = (index: number, updatedString: string) => {
|
|
1016
1070
|
const updatedValues = formik.values.selectionStaticValues.map((enumValue: string, i: number) =>
|
|
1017
1071
|
i === index ? updatedString : enumValue
|
|
@@ -1826,6 +1880,39 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
1826
1880
|
</div>
|
|
1827
1881
|
)}
|
|
1828
1882
|
|
|
1883
|
+
{isUserKeyFields && (
|
|
1884
|
+
<div className="field col-6 flex-flex-column gap-2">
|
|
1885
|
+
<label
|
|
1886
|
+
htmlFor="userKey"
|
|
1887
|
+
className="form-field-label"
|
|
1888
|
+
>
|
|
1889
|
+
Set User Key
|
|
1890
|
+
</label>
|
|
1891
|
+
|
|
1892
|
+
|
|
1893
|
+
<SingleSelectAutoCompleteField
|
|
1894
|
+
key="userKey"
|
|
1895
|
+
formik={formik}
|
|
1896
|
+
isFormFieldValid={isFormFieldValid}
|
|
1897
|
+
fieldName="userKey"
|
|
1898
|
+
fieldNameId="userKey"
|
|
1899
|
+
labelKey="displayName"
|
|
1900
|
+
valueKey="name"
|
|
1901
|
+
searchData={searchUserKeyField}
|
|
1902
|
+
existingData={formik.values.userKey}
|
|
1903
|
+
/>
|
|
1904
|
+
{isFormFieldValid(
|
|
1905
|
+
formik,
|
|
1906
|
+
"userKey"
|
|
1907
|
+
) && (
|
|
1908
|
+
<Message
|
|
1909
|
+
severity="error"
|
|
1910
|
+
text={formik?.errors?.userKey?.toString()}
|
|
1911
|
+
/>
|
|
1912
|
+
)}
|
|
1913
|
+
</div>
|
|
1914
|
+
)}
|
|
1915
|
+
|
|
1829
1916
|
{currentFields.includes("relationCreateInverse") && formik.values.relationType === "many-to-many" && (
|
|
1830
1917
|
<div className="field col-6 flex flex-column gap-2 mt-3">
|
|
1831
1918
|
<label htmlFor="relationCreateInverse" className="form-field-label">
|
|
@@ -1838,7 +1925,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
1838
1925
|
checked={Boolean(formik.values.relationCreateInverse)}
|
|
1839
1926
|
onChange={(e) => formik.setFieldValue("relationCreateInverse", e.checked)}
|
|
1840
1927
|
/>
|
|
1841
|
-
<label htmlFor="relationCreateInverse" className="ml-2">
|
|
1928
|
+
<label htmlFor="relationCreateInverse" className="ml-2">Create Inverse</label>
|
|
1842
1929
|
</div>
|
|
1843
1930
|
{isFormFieldValid(formik, "relationCreateInverse") && (
|
|
1844
1931
|
<Message severity="error" text={formik?.errors?.relationCreateInverse?.toString()} />
|
|
@@ -2045,7 +2132,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2045
2132
|
e.value
|
|
2046
2133
|
)
|
|
2047
2134
|
}
|
|
2048
|
-
placeholder="Select
|
|
2135
|
+
placeholder="Select Value Type"
|
|
2049
2136
|
className={classNames("", {
|
|
2050
2137
|
"p-invalid": isFormFieldValid(
|
|
2051
2138
|
formik,
|
|
@@ -2346,7 +2433,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2346
2433
|
|
|
2347
2434
|
</div>
|
|
2348
2435
|
)}
|
|
2349
|
-
{(currentFields.includes("regexPattern") || currentFields.includes("min") || currentFields.includes("max") || currentFields.includes("ormType")) && ormTypeOptions &&
|
|
2436
|
+
{(currentFields.includes("regexPattern") || currentFields.includes("min") || currentFields.includes("max") || currentFields.includes("ormType")) && ormTypeOptions && selectedType.value !== 'relation' &&
|
|
2350
2437
|
<>
|
|
2351
2438
|
<p className="form-wrapper-heading text-base">Validations</p>
|
|
2352
2439
|
<div className="formgrid grid">
|
|
@@ -2439,7 +2526,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2439
2526
|
{currentFields.includes("min") && (
|
|
2440
2527
|
<div className="field col-6 flex-flex-column gap-2 mt-3">
|
|
2441
2528
|
<label htmlFor="min" className="form-field-label">
|
|
2442
|
-
Min (Characters Allowed)
|
|
2529
|
+
Min {(selectedType.value !== "int" && selectedType.value !== "decimal") && `(Characters Allowed)`}
|
|
2443
2530
|
|
|
2444
2531
|
</label>
|
|
2445
2532
|
{/* <InputText
|
|
@@ -2472,6 +2559,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2472
2559
|
"min"
|
|
2473
2560
|
),
|
|
2474
2561
|
})}
|
|
2562
|
+
disabled={fieldMetaData?.id}
|
|
2475
2563
|
/>
|
|
2476
2564
|
}
|
|
2477
2565
|
|
|
@@ -2486,7 +2574,8 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2486
2574
|
{currentFields.includes("max") && (
|
|
2487
2575
|
<div className="field col-6 flex-flex-column gap-2 mt-3">
|
|
2488
2576
|
<label htmlFor="max" className="form-field-label">
|
|
2489
|
-
Max (
|
|
2577
|
+
Max {(selectedType.value !== "int" &&
|
|
2578
|
+
selectedType.value !== "decimal") && `(Characters allowed)`}
|
|
2490
2579
|
</label>
|
|
2491
2580
|
{/* <InputText
|
|
2492
2581
|
type="text"
|
|
@@ -2517,6 +2606,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2517
2606
|
"max"
|
|
2518
2607
|
),
|
|
2519
2608
|
})}
|
|
2609
|
+
disabled={fieldMetaData?.id}
|
|
2520
2610
|
/>
|
|
2521
2611
|
}
|
|
2522
2612
|
|
|
@@ -2586,7 +2676,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2586
2676
|
|
|
2587
2677
|
<p className="form-wrapper-heading text-base">Settings</p>
|
|
2588
2678
|
<div className="formgrid grid">
|
|
2589
|
-
{currentFields.includes("required") && (
|
|
2679
|
+
{currentFields.includes("required") && selectedType.value !== 'relation' && (
|
|
2590
2680
|
<div className="field col-6 flex-flex-column gap-2 mt-3">
|
|
2591
2681
|
<div className="flex align-items-center">
|
|
2592
2682
|
<Checkbox
|
|
@@ -2610,7 +2700,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2610
2700
|
)}
|
|
2611
2701
|
</div>
|
|
2612
2702
|
)}
|
|
2613
|
-
{currentFields.includes("unique") && (
|
|
2703
|
+
{currentFields.includes("unique") && selectedType.value !== 'relation' && (
|
|
2614
2704
|
<div className="field col-6 flex-flex-column gap-2">
|
|
2615
2705
|
<div className="flex align-items-center">
|
|
2616
2706
|
<Checkbox
|
|
@@ -2634,7 +2724,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2634
2724
|
)}
|
|
2635
2725
|
</div>
|
|
2636
2726
|
)}
|
|
2637
|
-
{currentFields.includes("index") && (
|
|
2727
|
+
{currentFields.includes("index") && selectedType.value !== 'relation' && (
|
|
2638
2728
|
<div className="field col-6 flex-flex-column gap-2 mt-3">
|
|
2639
2729
|
<div className="flex align-items-center">
|
|
2640
2730
|
<Checkbox
|
|
@@ -2656,7 +2746,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2656
2746
|
)}
|
|
2657
2747
|
</div>
|
|
2658
2748
|
)}
|
|
2659
|
-
{currentFields.includes("private") && (
|
|
2749
|
+
{currentFields.includes("private") && selectedType.value !== 'relation' && (
|
|
2660
2750
|
<div className="field col-6 flex-flex-column gap-2 mt-3">
|
|
2661
2751
|
<div className="flex align-items-center">
|
|
2662
2752
|
<Checkbox
|
|
@@ -2681,7 +2771,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2681
2771
|
)}
|
|
2682
2772
|
</div>
|
|
2683
2773
|
)}
|
|
2684
|
-
{currentFields.includes("encrypt") && (
|
|
2774
|
+
{currentFields.includes("encrypt") && selectedType.value !== 'relation' && (
|
|
2685
2775
|
<div className="field col-6 flex-flex-column gap-2 mt-3">
|
|
2686
2776
|
<div className="flex align-items-center gap-2">
|
|
2687
2777
|
<Checkbox
|
|
@@ -2742,7 +2832,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
|
|
|
2742
2832
|
Is Userkey
|
|
2743
2833
|
</label>
|
|
2744
2834
|
</div>
|
|
2745
|
-
<p className="fieldSubTitle">
|
|
2835
|
+
<p className="fieldSubTitle">By selecting this option, you are setting this field as the model's user key. Any existing user key configuration will be overwritten</p>
|
|
2746
2836
|
|
|
2747
2837
|
{isFormFieldValid(formik, "isUserKey") && (
|
|
2748
2838
|
<Message
|