@solidstarters/solid-core-ui 1.1.22 → 1.1.23
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/common/SolidBreadcrumb.d.ts +2 -10
- package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -1
- package/dist/components/common/SolidBreadcrumb.js +28 -8
- package/dist/components/common/SolidBreadcrumb.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +1 -0
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidViewLayoutManager.d.ts +13 -0
- package/dist/components/core/common/SolidViewLayoutManager.d.ts.map +1 -0
- package/dist/components/core/common/SolidViewLayoutManager.js +90 -0
- package/dist/components/core/common/SolidViewLayoutManager.js.map +1 -0
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +6 -4
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +5 -3
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
- package/dist/components/core/form/SolidFormLayouts.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormLayouts.js +6 -2
- package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +110 -46
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/fields/ISolidField.d.ts +2 -1
- package/dist/components/core/form/fields/ISolidField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.js +3 -1
- 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 +3 -2
- package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +2 -2
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/list/SolidListView.js +1 -1
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +3 -9
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.d.ts +1 -1
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +2 -2
- 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 +17 -9
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +5 -5
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +1 -5
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +1 -5
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +21 -34
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/helpers/registry.js +3 -3
- package/dist/helpers/registry.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/common/SolidBreadcrumb.tsx +38 -14
- package/src/components/core/common/SolidGlobalSearchElement.tsx +2 -0
- package/src/components/core/common/SolidViewLayoutManager.ts +85 -0
- package/src/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +11 -1
- package/src/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +16 -7
- package/src/components/core/form/SolidFormLayouts.tsx +6 -3
- package/src/components/core/form/SolidFormView.tsx +139 -63
- package/src/components/core/form/fields/ISolidField.tsx +2 -1
- package/src/components/core/form/fields/SolidSelectionStaticField.tsx +2 -1
- package/src/components/core/form/fields/SolidShortTextField.tsx +3 -1
- package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +6 -6
- package/src/components/core/list/SolidListView.tsx +1 -1
- package/src/components/core/model/CreateModel.tsx +8 -12
- package/src/components/core/model/FieldMetaData.tsx +2 -2
- package/src/components/core/model/FieldMetaDataForm.tsx +338 -332
- package/src/components/core/model/ModelMetaData.tsx +5 -5
- package/src/components/core/module/CreateModule.tsx +1 -6
- package/src/components/core/users/CreateUser.tsx +1 -6
- package/src/components/layout/AppSidebar.tsx +3 -21
- package/src/helpers/registry.ts +3 -3
- package/src/index.ts +15 -1
- package/src/types/index.d.ts +20 -0
- package/src/types/solid-core.d.ts +2 -1
|
@@ -132,7 +132,7 @@ const fieldFactory = (type: string, fieldContext: SolidFieldProps): ISolidField
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
// solidFieldsMetadata={solidFieldsMetadata} solidView={solidView}
|
|
135
|
-
const SolidField = ({ formik, field, fieldMetadata, initialEntityData, solidFormViewMetaData, modelName, readOnly,
|
|
135
|
+
const SolidField = ({ formik, field, fieldMetadata, initialEntityData, solidFormViewMetaData, modelName, readOnly, onChange, onBlur }: any) => {
|
|
136
136
|
const fieldContext: SolidFieldProps = {
|
|
137
137
|
// field metadata - coming from the field-metadata table.
|
|
138
138
|
fieldMetadata: fieldMetadata,
|
|
@@ -144,7 +144,8 @@ const SolidField = ({ formik, field, fieldMetadata, initialEntityData, solidForm
|
|
|
144
144
|
solidFormViewMetaData: solidFormViewMetaData,
|
|
145
145
|
modelName: modelName,
|
|
146
146
|
readOnly: readOnly,
|
|
147
|
-
|
|
147
|
+
onChange: onChange,
|
|
148
|
+
onBlur: onBlur
|
|
148
149
|
}
|
|
149
150
|
const solidField = fieldFactory(fieldMetadata?.type, fieldContext);
|
|
150
151
|
|
|
@@ -472,9 +473,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
|
|
|
472
473
|
field: layoutFieldsObj[key],
|
|
473
474
|
data: initialEntityData,
|
|
474
475
|
solidFormViewMetaData: solidFormViewMetaData,
|
|
475
|
-
modelName: params.modelName
|
|
476
|
-
// TODO: do we need to pass the change handler?
|
|
477
|
-
changeHandler: null
|
|
476
|
+
modelName: params.modelName
|
|
478
477
|
}
|
|
479
478
|
|
|
480
479
|
let solidField = fieldFactory(fieldMetadata?.type, fieldContext);
|
|
@@ -598,9 +597,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
|
|
|
598
597
|
field: formLayoutField,
|
|
599
598
|
data: initialEntityData,
|
|
600
599
|
solidFormViewMetaData: solidFormViewMetaData,
|
|
601
|
-
modelName: params.modelName
|
|
602
|
-
// TODO: do we need to pass the change handler?
|
|
603
|
-
changeHandler: null,
|
|
600
|
+
modelName: params.modelName
|
|
604
601
|
}
|
|
605
602
|
let solidField = fieldFactory(fieldMetadata?.type, fieldContext);
|
|
606
603
|
if (!fieldMetadata?.type) {
|
|
@@ -625,14 +622,20 @@ const SolidFormView = (params: SolidFormViewProps) => {
|
|
|
625
622
|
onSubmit: onFormikSubmit,
|
|
626
623
|
});
|
|
627
624
|
|
|
628
|
-
const
|
|
625
|
+
const formFieldOnXXX = async (event: ChangeEvent<HTMLInputElement>, eventType: string) => {
|
|
626
|
+
|
|
627
|
+
// Invoke the formik change
|
|
628
|
+
if (eventType === 'onFieldChange') {
|
|
629
|
+
formik.handleChange(event);
|
|
630
|
+
}
|
|
631
|
+
|
|
629
632
|
// get details from the form event
|
|
630
633
|
const { name: fieldName, value, type, checked } = event.target;
|
|
631
|
-
console.log(
|
|
634
|
+
// console.log(`${eventType}: formFieldOnXXX ${fieldName} invoked for change with value:`, value);
|
|
632
635
|
|
|
633
636
|
// TODO: check if there is a change handler registered with this form view, load it and fire it.
|
|
634
|
-
const changeHandler = solidView.layout
|
|
635
|
-
console.log(`changeHandler for this form is ${changeHandler}`);
|
|
637
|
+
const changeHandler = solidView.layout[eventType];
|
|
638
|
+
// console.log(`changeHandler for this form is ${changeHandler}`);
|
|
636
639
|
|
|
637
640
|
if (changeHandler) {
|
|
638
641
|
// Get hold of the dynamic module...
|
|
@@ -645,69 +648,148 @@ const SolidFormView = (params: SolidFormViewProps) => {
|
|
|
645
648
|
fieldsMetadata: solidFieldsMetadata,
|
|
646
649
|
formData: formik.values,
|
|
647
650
|
modifiedField: fieldName,
|
|
648
|
-
|
|
651
|
+
modifiedFieldValue: value,
|
|
652
|
+
// @ts-ignore
|
|
653
|
+
// TODO: HP & OR: This will be fixed once we figure out how to get types exported from solid-core-ui
|
|
654
|
+
type: eventType,
|
|
649
655
|
viewMetadata: solidView
|
|
650
656
|
}
|
|
651
657
|
const updatedFormInfo = dynamicChangeHandler(event);
|
|
652
|
-
console.log(
|
|
658
|
+
// console.log(`${eventType}: formFieldOnXXX response received: `, updatedFormInfo);
|
|
659
|
+
|
|
660
|
+
// If dataChanged is true, update Formik values
|
|
661
|
+
if (updatedFormInfo?.dataChanged && updatedFormInfo.newFormData) {
|
|
662
|
+
// This does one field at a time.
|
|
663
|
+
Object.entries(updatedFormInfo.newFormData).forEach(([key, newValue]) => {
|
|
664
|
+
formik.setFieldValue(key, newValue);
|
|
665
|
+
});
|
|
666
|
+
|
|
667
|
+
// This does all at once.
|
|
668
|
+
// if (updatedFormInfo?.dataChanged && updatedFormInfo.newData) {
|
|
669
|
+
// formik.setValues({
|
|
670
|
+
// ...formik.values,
|
|
671
|
+
// ...updatedFormInfo.newFormData
|
|
672
|
+
// });
|
|
673
|
+
// }
|
|
674
|
+
}
|
|
653
675
|
|
|
676
|
+
// if layout has changed then we need to re-render.
|
|
677
|
+
if (updatedFormInfo?.layoutChanged && updatedFormInfo.newLayout) {
|
|
678
|
+
// setFormViewMetaData({ ...formViewMetaData, layout: updatedFormInfo.newLayout });
|
|
679
|
+
// console.log(`Existing form view metadata is: `, formViewMetaData);
|
|
680
|
+
|
|
681
|
+
// TODO: this will trigger a useEffect dependent on formViewMetadata that invokes setFormViewLayout, which means that this will not work if custom layout has been injected as a prop.
|
|
682
|
+
setFormViewLayout(updatedFormInfo.newLayout);
|
|
683
|
+
setFormViewMetaData((prevMetaData: any) => {
|
|
684
|
+
const updatedFormViewMetadata = {
|
|
685
|
+
...prevMetaData,
|
|
686
|
+
data: {
|
|
687
|
+
...prevMetaData.data,
|
|
688
|
+
solidView: {
|
|
689
|
+
...prevMetaData.data.solidView,
|
|
690
|
+
layout: updatedFormInfo.newLayout,
|
|
691
|
+
},
|
|
692
|
+
},
|
|
693
|
+
};
|
|
694
|
+
// console.log(`Updated form view metadata is: `, updatedFormViewMetadata);
|
|
695
|
+
return updatedFormViewMetadata;
|
|
696
|
+
});
|
|
697
|
+
}
|
|
654
698
|
}
|
|
655
699
|
else {
|
|
656
700
|
console.log(`Unable to load dynamic module:`, changeHandler);
|
|
657
701
|
}
|
|
658
|
-
|
|
659
702
|
}
|
|
660
|
-
|
|
661
|
-
// Invoke the formik change
|
|
662
|
-
formik.handleChange(event);
|
|
663
703
|
}
|
|
664
704
|
|
|
665
705
|
// Now render the form dynamically...
|
|
666
706
|
const renderFormElementDynamically: any = (element: any, solidFormViewMetaData: any) => {
|
|
667
|
-
|
|
707
|
+
let { type, attrs, body, children } = element;
|
|
668
708
|
|
|
669
709
|
// const key = attrs?.name ?? generateRandomKey();
|
|
670
710
|
const key = attrs?.name;
|
|
711
|
+
let visible = attrs?.visible;
|
|
712
|
+
if (visible === undefined || visible === null) {
|
|
713
|
+
visible = true;
|
|
714
|
+
}
|
|
715
|
+
// console.log(`Resolved visibility of form element ${key} to ${visible}`);
|
|
716
|
+
// console.log(`Form element ${key}: `, attrs);
|
|
671
717
|
|
|
672
718
|
switch (type) {
|
|
673
719
|
case "form":
|
|
720
|
+
if (!children)
|
|
721
|
+
children = [];
|
|
674
722
|
return <div key={key}>{children.map((element: any) => renderFormElementDynamically(element, solidFormViewMetaData))}</div>;
|
|
723
|
+
case "div":
|
|
724
|
+
if (!children)
|
|
725
|
+
children = [];
|
|
726
|
+
return <div key={key} {...attrs}>{children.map((element: any) => renderFormElementDynamically(element, solidFormViewMetaData))}</div>
|
|
727
|
+
case "span":
|
|
728
|
+
return <span key={key} {...attrs}>{body}</span>
|
|
729
|
+
case "p":
|
|
730
|
+
return <p key={key} {...attrs}>{body}</p>
|
|
731
|
+
case "h1":
|
|
732
|
+
return <h1 key={key} {...attrs}>{body}</h1>
|
|
733
|
+
case "h2":
|
|
734
|
+
return <h2 key={key} {...attrs}>{body}</h2>
|
|
735
|
+
case "ul":
|
|
736
|
+
if (!children)
|
|
737
|
+
children = [];
|
|
738
|
+
return <ul key={key} {...attrs}>{children.map((element: any) => renderFormElementDynamically(element, solidFormViewMetaData))}</ul>
|
|
739
|
+
case "li":
|
|
740
|
+
return <li key={key} {...attrs}>{body}</li>
|
|
675
741
|
case "sheet":
|
|
676
742
|
return <SolidSheet key={key}>{children.map((element: any) => renderFormElementDynamically(element, solidFormViewMetaData))}</SolidSheet>;
|
|
677
743
|
case "group":
|
|
678
|
-
|
|
744
|
+
if (visible === true) {
|
|
745
|
+
return <SolidGroup key={key} attrs={attrs}>{children.map((element: any) => renderFormElementDynamically(element, solidFormViewMetaData))}</SolidGroup>;
|
|
746
|
+
}
|
|
679
747
|
case "row":
|
|
680
|
-
|
|
748
|
+
if (visible === true) {
|
|
749
|
+
return <SolidRow key={key} attrs={attrs}>{children.map((element: any) => renderFormElementDynamically(element, solidFormViewMetaData))}</SolidRow>;
|
|
750
|
+
}
|
|
681
751
|
case "column":
|
|
682
|
-
|
|
752
|
+
if (visible === true) {
|
|
753
|
+
return <SolidColumn key={key} attrs={attrs}>{children.map((element: any) => renderFormElementDynamically(element, solidFormViewMetaData))}</SolidColumn>;
|
|
754
|
+
}
|
|
683
755
|
case "field": {
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
756
|
+
if (visible === true) {
|
|
757
|
+
|
|
758
|
+
// const fieldMetadata = solidFieldsMetadata[attrs.name];
|
|
759
|
+
const fieldMetadata = solidFormViewMetaData.data.solidFieldsMetadata[attrs.name];
|
|
760
|
+
// Read only permission if there is no update permission on model and router doesnt contains new
|
|
761
|
+
const readOnlyPermission = !actionsAllowed.includes(`${updatePermission(params.modelName)}`) && params.id !== "new"
|
|
762
|
+
return <SolidField
|
|
763
|
+
key={key}
|
|
764
|
+
field={element}
|
|
765
|
+
formik={formik}
|
|
766
|
+
fieldMetadata={fieldMetadata}
|
|
767
|
+
initialEntityData={solidFormViewData ? solidFormViewData.data : null}
|
|
768
|
+
solidFormViewMetaData={solidFormViewMetaData}
|
|
769
|
+
modelName={params.modelName}
|
|
770
|
+
readOnly={readOnlyPermission}
|
|
771
|
+
onChange={formFieldOnXXX}
|
|
772
|
+
onBlur={formFieldOnXXX}
|
|
773
|
+
/>;
|
|
774
|
+
}
|
|
699
775
|
}
|
|
700
776
|
case "notebook":
|
|
701
|
-
|
|
777
|
+
if (visible === true) {
|
|
778
|
+
return <SolidNotebook key={key}>{children.map((element: any) => renderFormElementDynamically(element, solidFormViewMetaData))}</SolidNotebook>;
|
|
779
|
+
}
|
|
702
780
|
case "page":
|
|
703
|
-
|
|
704
|
-
|
|
781
|
+
// console.log(`Resolved visibility of form element ${key} to ${visible}`);
|
|
782
|
+
if (visible === true) {
|
|
783
|
+
const pageChildren = children.map((element: any) => renderFormElementDynamically(element, solidFormViewMetaData));
|
|
784
|
+
return SolidPage({ children: pageChildren, attrs: attrs, key: key });
|
|
785
|
+
}
|
|
705
786
|
default:
|
|
706
787
|
return null;
|
|
707
788
|
}
|
|
708
789
|
};
|
|
709
790
|
|
|
710
791
|
const renderFormDynamically = (solidFormViewMetaData: any) => {
|
|
792
|
+
// console.log(`renderFormDynamically invoked....`);
|
|
711
793
|
if (!solidFormViewMetaData) {
|
|
712
794
|
return;
|
|
713
795
|
}
|
|
@@ -794,35 +876,16 @@ const SolidFormView = (params: SolidFormViewProps) => {
|
|
|
794
876
|
onClick={() => setDeleteDialogVisible(true)}
|
|
795
877
|
/>
|
|
796
878
|
}
|
|
797
|
-
{params.embeded == true &&
|
|
798
|
-
actionsAllowed.includes(`${deletePermission(params.modelName)}`) &&
|
|
799
|
-
!formViewLayout.attrs.readonly &&
|
|
800
|
-
<Button
|
|
801
|
-
text
|
|
802
|
-
type="button"
|
|
803
|
-
className="w-8rem text-left gap-2"
|
|
804
|
-
label="Delete"
|
|
805
|
-
size="small"
|
|
806
|
-
iconPos="left"
|
|
807
|
-
severity="danger"
|
|
808
|
-
icon={'pi pi-trash'}
|
|
809
|
-
onClick={() => setDeleteDialogVisible(true)}
|
|
810
|
-
/>
|
|
811
|
-
}
|
|
812
879
|
</div>
|
|
813
880
|
</OverlayPanel>
|
|
814
881
|
</div>
|
|
815
882
|
)
|
|
816
883
|
}
|
|
817
884
|
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
];
|
|
822
|
-
|
|
823
|
-
// see if we have an injected dynamic component.s
|
|
885
|
+
// TODO: This was simply to demonstrate how we can use dynamic components, we will remove this and use it in a more sensible way in the layout.
|
|
886
|
+
// TODO: to demonstrated this you can simply add the below to the layout of the book form view.
|
|
887
|
+
// TODO: "header": "BookFormViewDynamicComponent",
|
|
824
888
|
const dynamicHeader = solidView.layout?.header;
|
|
825
|
-
// const dynamicHeader = "BookFormViewDynamicComponent";
|
|
826
889
|
let DynamicHeaderComponent = null;
|
|
827
890
|
if (dynamicHeader) {
|
|
828
891
|
DynamicHeaderComponent = getExtensionComponent(dynamicHeader);
|
|
@@ -943,6 +1006,19 @@ const SolidFormView = (params: SolidFormViewProps) => {
|
|
|
943
1006
|
/>
|
|
944
1007
|
</div>
|
|
945
1008
|
} */}
|
|
1009
|
+
{params.embeded == true &&
|
|
1010
|
+
actionsAllowed.includes(`${deletePermission(params.modelName)}`) &&
|
|
1011
|
+
!formViewLayout.attrs.readonly &&
|
|
1012
|
+
<div>
|
|
1013
|
+
<Button
|
|
1014
|
+
size="small"
|
|
1015
|
+
type="button"
|
|
1016
|
+
label="Delete"
|
|
1017
|
+
severity="danger"
|
|
1018
|
+
onClick={() => setDeleteDialogVisible(true)}
|
|
1019
|
+
/>
|
|
1020
|
+
</div>
|
|
1021
|
+
}
|
|
946
1022
|
{params.embeded == true &&
|
|
947
1023
|
<Button outlined size="small" type="button" label="Close" onClick={() => params.handlePopupClose()} className='bg-primary-reverse' />
|
|
948
1024
|
|
|
@@ -955,7 +1031,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
|
|
|
955
1031
|
</>
|
|
956
1032
|
)}
|
|
957
1033
|
</div>
|
|
958
|
-
<SolidBreadcrumb
|
|
1034
|
+
<SolidBreadcrumb />
|
|
959
1035
|
{/* {params.embeded !== true &&
|
|
960
1036
|
<div className="solid-form-stepper">
|
|
961
1037
|
<SolidFormStepper />
|
|
@@ -117,7 +117,8 @@ export class SolidSelectionStaticField implements ISolidField {
|
|
|
117
117
|
suggestions={selectionStaticItems}
|
|
118
118
|
completeMethod={selectionStaticSearch}
|
|
119
119
|
// onChange={(e) => updateInputs(index, e.value)} />
|
|
120
|
-
onChange={formik.handleChange}
|
|
120
|
+
// onChange={formik.handleChange}
|
|
121
|
+
onChange={(e) => this.fieldContext.onChange(e, 'onFieldChange')}
|
|
121
122
|
className="solid-standard-autocomplete"
|
|
122
123
|
/>
|
|
123
124
|
</div>
|
|
@@ -92,9 +92,11 @@ export class SolidShortTextField implements ISolidField {
|
|
|
92
92
|
readOnly={formReadonly || fieldReadonly || readOnlyPermission}
|
|
93
93
|
disabled={formDisabled || fieldDisabled}
|
|
94
94
|
id={fieldLayoutInfo.attrs.name}
|
|
95
|
+
name={fieldMetadata.name}
|
|
95
96
|
aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}
|
|
96
97
|
// onChange={formik.handleChange}
|
|
97
|
-
onChange={this.fieldContext.
|
|
98
|
+
onChange={(e) => this.fieldContext.onChange(e, 'onFieldChange')}
|
|
99
|
+
onBlur={(e) => this.fieldContext.onBlur(e, 'onFieldBlur')}
|
|
98
100
|
value={formik.values[fieldLayoutInfo.attrs.name] || ''}
|
|
99
101
|
/>
|
|
100
102
|
</div>
|
|
@@ -137,12 +137,12 @@ export class SolidRelationManyToOneField implements ISolidField {
|
|
|
137
137
|
}
|
|
138
138
|
return (
|
|
139
139
|
<div className={className}>
|
|
140
|
-
|
|
141
|
-
{
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
140
|
+
{showFieldLabel != false &&
|
|
141
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">
|
|
142
|
+
{fieldLabel}
|
|
143
|
+
</label>
|
|
144
|
+
}
|
|
145
|
+
<div className="flex align-items-center gap-3">
|
|
146
146
|
<AutoComplete
|
|
147
147
|
readOnly={formReadonly || fieldReadonly || readOnlyPermission}
|
|
148
148
|
disabled={formDisabled || fieldDisabled || readOnlyPermission}
|
|
@@ -702,7 +702,7 @@ export const SolidListView = (params: SolidListViewParams) => {
|
|
|
702
702
|
loadingIcon="pi pi-spinner"
|
|
703
703
|
selection={[...selectedRecords, ...selectedRecoverRecords]}
|
|
704
704
|
onSelectionChange={onSelectionChange}
|
|
705
|
-
selectionMode="
|
|
705
|
+
selectionMode="checkbox"
|
|
706
706
|
removableSort
|
|
707
707
|
filterIcon={<FilterIcon />}
|
|
708
708
|
tableClassName="solid-data-table"
|
|
@@ -356,11 +356,6 @@ const CreateModel = ({ data, params }: any) => {
|
|
|
356
356
|
)
|
|
357
357
|
}
|
|
358
358
|
|
|
359
|
-
const breadcrumbData = [
|
|
360
|
-
{ label: 'Model', link: '/admin/core/solid-core/model-metadata/list' },
|
|
361
|
-
{ label: params.id === "new" ? 'Create Model' : 'Edit Model' },
|
|
362
|
-
];
|
|
363
|
-
|
|
364
359
|
const [isDirty, setIsDirty] = useState(false);
|
|
365
360
|
|
|
366
361
|
|
|
@@ -376,9 +371,9 @@ const CreateModel = ({ data, params }: any) => {
|
|
|
376
371
|
<div className="form-wrapper-title">Create Model</div>
|
|
377
372
|
</div>
|
|
378
373
|
<div className="gap-3 flex">
|
|
379
|
-
{isDirty &&
|
|
374
|
+
{/* {isDirty && */}
|
|
380
375
|
<Button label="Save" size="small" onClick={handleSubmit} type="submit" />
|
|
381
|
-
}
|
|
376
|
+
{/* } */}
|
|
382
377
|
<CancelButton />
|
|
383
378
|
</div>
|
|
384
379
|
</>
|
|
@@ -392,13 +387,13 @@ const CreateModel = ({ data, params }: any) => {
|
|
|
392
387
|
{data?.isSystem !== true &&
|
|
393
388
|
<>
|
|
394
389
|
<div>
|
|
395
|
-
{isDirty &&
|
|
390
|
+
{/* {isDirty && */}
|
|
396
391
|
<Button label="Save" size="small" type="submit" onClick={handleSubmit} />
|
|
397
|
-
}
|
|
392
|
+
{/* } */}
|
|
398
393
|
</div>
|
|
399
|
-
<div>
|
|
394
|
+
{/* <div>
|
|
400
395
|
<Button outlined label="Delete" size="small" severity="danger" type="button" onClick={() => setDeleteEntity(true)} />
|
|
401
|
-
</div>
|
|
396
|
+
</div> */}
|
|
402
397
|
</>
|
|
403
398
|
}
|
|
404
399
|
<CancelButton />
|
|
@@ -407,7 +402,7 @@ const CreateModel = ({ data, params }: any) => {
|
|
|
407
402
|
</>
|
|
408
403
|
}
|
|
409
404
|
</div>
|
|
410
|
-
<SolidBreadcrumb
|
|
405
|
+
<SolidBreadcrumb />
|
|
411
406
|
{/* <div className="solid-form-stepper">
|
|
412
407
|
<SolidFormStepper />
|
|
413
408
|
</div> */}
|
|
@@ -450,6 +445,7 @@ const CreateModel = ({ data, params }: any) => {
|
|
|
450
445
|
nextTab={nextTab}
|
|
451
446
|
formikFieldsMetadataRef={formikFieldsMetadataRef}
|
|
452
447
|
params={params}
|
|
448
|
+
setIsDirty={setIsDirty}
|
|
453
449
|
></FieldMetaData>
|
|
454
450
|
</TabPanel>
|
|
455
451
|
</TabView>
|
|
@@ -11,7 +11,7 @@ import { useRef, useState } from "react";
|
|
|
11
11
|
import FieldMetaDataForm from "./FieldMetaDataForm";
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
const FieldMetaData = ({ modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params }: any) => {
|
|
14
|
+
const FieldMetaData = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params }: any) => {
|
|
15
15
|
const pathname = usePathname();
|
|
16
16
|
const msgs = useRef<Messages>(null);
|
|
17
17
|
|
|
@@ -156,7 +156,7 @@ const FieldMetaData = ({ modelMetaData, fieldMetaData, setFieldMetaData, deleteM
|
|
|
156
156
|
}}
|
|
157
157
|
showHeader={false}
|
|
158
158
|
>
|
|
159
|
-
<FieldMetaDataForm modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp} showToaster={showToaster}></FieldMetaDataForm>
|
|
159
|
+
<FieldMetaDataForm setIsDirty={setIsDirty} modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp} showToaster={showToaster}></FieldMetaDataForm>
|
|
160
160
|
</Dialog>
|
|
161
161
|
<Dialog
|
|
162
162
|
visible={isRequiredPopUp}
|