@solidstarters/solid-core-ui 1.1.6 → 1.1.7
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/auth/SolidChangeForcePassword.d.ts.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.js +7 -7
- package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidForgotPassword.js +9 -4
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +13 -6
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/common/BackButton.d.ts +2 -0
- package/dist/components/common/BackButton.d.ts.map +1 -0
- package/dist/components/common/BackButton.js +17 -0
- package/dist/components/common/BackButton.js.map +1 -0
- package/dist/components/common/CancelButton.js +2 -2
- package/dist/components/common/CancelButton.js.map +1 -1
- package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
- package/dist/components/common/DropzonePlaceholder.js +2 -1
- package/dist/components/common/DropzonePlaceholder.js.map +1 -1
- package/dist/components/common/FileReaderExt.d.ts +4 -0
- package/dist/components/common/FileReaderExt.d.ts.map +1 -0
- package/dist/components/common/FileReaderExt.js +15 -0
- package/dist/components/common/FileReaderExt.js.map +1 -0
- package/dist/components/common/GeneralSettings.d.ts +4 -0
- package/dist/components/common/GeneralSettings.d.ts.map +1 -0
- package/dist/components/common/GeneralSettings.js +139 -0
- package/dist/components/common/GeneralSettings.js.map +1 -0
- package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -1
- package/dist/components/common/SingleSelectAutoCompleteField.js +1 -1
- package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -1
- package/dist/components/common/SolidFormStepper.d.ts +2 -0
- package/dist/components/common/SolidFormStepper.d.ts.map +1 -0
- package/dist/components/common/SolidFormStepper.js +6 -0
- package/dist/components/common/SolidFormStepper.js.map +1 -0
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +83 -54
- 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 +4 -4
- 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 -7
- 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 -7
- 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 +4 -4
- 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 +4 -4
- 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 +2 -2
- 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 +2 -2
- 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 +11 -11
- 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 +13 -13
- 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 +2 -2
- 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 +4 -4
- 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 +4 -4
- 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 +2 -2
- 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 -7
- 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 -14
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.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/form/fields/relations/SolidRelationOneToManyField.js +2 -2
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +15 -11
- 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 +6 -6
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +167 -152
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldSelector.d.ts.map +1 -1
- package/dist/components/core/model/FieldSelector.js +1 -1
- package/dist/components/core/model/FieldSelector.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +46 -42
- 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 +98 -60
- 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 +18 -15
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/redux/api/solidSettingsApi.d.ts +9 -0
- package/dist/redux/api/solidSettingsApi.d.ts.map +1 -0
- package/dist/redux/api/solidSettingsApi.js +40 -0
- package/dist/redux/api/solidSettingsApi.js.map +1 -0
- package/package.json +1 -1
- package/src/components/auth/SolidChangeForcePassword.tsx +2 -3
- package/src/components/auth/SolidForgotPassword.tsx +9 -4
- package/src/components/auth/SolidLogin.tsx +21 -12
- package/src/components/common/BackButton.tsx +27 -0
- package/src/components/common/CancelButton.tsx +2 -2
- package/src/components/common/DropzonePlaceholder.tsx +11 -3
- package/src/components/common/FileReaderExt.tsx +18 -0
- package/src/components/common/GeneralSettings.tsx +286 -0
- package/src/components/common/SingleSelectAutoCompleteField.tsx +0 -1
- package/src/components/common/SolidFormStepper.tsx +12 -0
- package/src/components/core/form/SolidFormView.tsx +201 -186
- package/src/components/core/form/fields/SolidBooleanField.tsx +3 -7
- package/src/components/core/form/fields/SolidDateField.tsx +2 -8
- package/src/components/core/form/fields/SolidDateTimeField.tsx +19 -24
- package/src/components/core/form/fields/SolidDecimalField.tsx +2 -7
- package/src/components/core/form/fields/SolidIntegerField.tsx +17 -22
- package/src/components/core/form/fields/SolidJsonField.tsx +15 -19
- package/src/components/core/form/fields/SolidLongTextField.tsx +19 -24
- package/src/components/core/form/fields/SolidMediaMultipleField.tsx +47 -51
- package/src/components/core/form/fields/SolidMediaSingleField.tsx +47 -51
- package/src/components/core/form/fields/SolidRichTextField.tsx +3 -7
- package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +2 -7
- package/src/components/core/form/fields/SolidSelectionStaticField.tsx +20 -25
- package/src/components/core/form/fields/SolidShortTextField.tsx +18 -23
- package/src/components/core/form/fields/SolidTimeField.tsx +19 -24
- package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +51 -52
- package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +20 -25
- package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +6 -5
- package/src/components/core/model/CreateModel.tsx +68 -53
- package/src/components/core/model/FieldMetaData.tsx +16 -21
- package/src/components/core/model/FieldMetaDataForm.tsx +802 -896
- package/src/components/core/model/FieldSelector.tsx +10 -15
- package/src/components/core/model/ModelMetaData.tsx +364 -356
- package/src/components/core/module/CreateModule.tsx +327 -295
- package/src/components/core/users/CreateUser.tsx +175 -167
- package/src/index.ts +5 -2
- package/src/redux/api/solidSettingsApi.tsx +47 -0
|
@@ -41,7 +41,7 @@ export class SolidTimeField implements ISolidField {
|
|
|
41
41
|
render(formik: FormikObject) {
|
|
42
42
|
const fieldMetadata = this.fieldContext.fieldMetadata;
|
|
43
43
|
const fieldLayoutInfo = this.fieldContext.field;
|
|
44
|
-
const className = fieldLayoutInfo.attrs?.className || 'col-
|
|
44
|
+
const className = fieldLayoutInfo.attrs?.className || 'field col-6 flex flex-column gap-2 mt-4';
|
|
45
45
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
46
46
|
const calendarRef = useRef<any>(null); // Reference for the Calendar component
|
|
47
47
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
@@ -54,31 +54,26 @@ export class SolidTimeField implements ISolidField {
|
|
|
54
54
|
|
|
55
55
|
return (
|
|
56
56
|
<div className={className}>
|
|
57
|
-
<
|
|
58
|
-
<label htmlFor={fieldLayoutInfo.attrs.name}>{fieldLabel}
|
|
57
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
59
58
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
showTime className=""
|
|
77
|
-
hourFormat="24"
|
|
78
|
-
|
|
79
|
-
/>
|
|
80
|
-
</div>
|
|
59
|
+
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
60
|
+
</label>
|
|
61
|
+
<Calendar
|
|
62
|
+
disabled={formDisabled || fieldDisabled}
|
|
63
|
+
ref={calendarRef} // Attach ref to Calendar
|
|
64
|
+
id={fieldLayoutInfo.attrs.name}
|
|
65
|
+
aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}
|
|
66
|
+
onChange={formik.handleChange}
|
|
67
|
+
//@ts-ignore
|
|
68
|
+
value={formik.values[fieldLayoutInfo.attrs.name] ? formik.values[fieldLayoutInfo.attrs.name] : Date()}
|
|
69
|
+
// dateFormat="mm/dd/yy"
|
|
70
|
+
// placeholder="mm/dd/yyyy hh:mm"
|
|
71
|
+
hideOnDateTimeSelect
|
|
72
|
+
timeOnly
|
|
73
|
+
showTime className=""
|
|
74
|
+
hourFormat="24"
|
|
81
75
|
|
|
76
|
+
/>
|
|
82
77
|
{isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (
|
|
83
78
|
<Message severity="error" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />
|
|
84
79
|
)}
|
|
@@ -97,7 +97,7 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
97
97
|
render(formik: FormikObject) {
|
|
98
98
|
const fieldMetadata = this.fieldContext.fieldMetadata;
|
|
99
99
|
const fieldLayoutInfo = this.fieldContext.field;
|
|
100
|
-
const className = fieldLayoutInfo.attrs?.className || 'col-
|
|
100
|
+
const className = fieldLayoutInfo.attrs?.className || 'field col-6 flex flex-column gap-2 mt-4';
|
|
101
101
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
102
102
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
103
103
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
@@ -115,24 +115,26 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
115
115
|
|
|
116
116
|
|
|
117
117
|
return (
|
|
118
|
-
|
|
119
|
-
<div className=
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
118
|
+
<>
|
|
119
|
+
{/* <div className={className}> */}
|
|
120
|
+
{fieldLayoutInfo.attrs.renderMode === "checkbox" &&
|
|
121
|
+
<div className={className}>
|
|
122
|
+
{this.renderCheckBoxMode(formik, visibleCreateRelationEntity, setvisibleCreateRelationEntity)}
|
|
123
|
+
</div>
|
|
124
|
+
}
|
|
125
|
+
{(!fieldLayoutInfo.attrs.renderMode || fieldLayoutInfo.attrs.renderMode === "autocomplete") &&
|
|
126
|
+
this.renderAutoCompleteMode(formik, visibleCreateRelationEntity, setvisibleCreateRelationEntity)
|
|
127
|
+
}
|
|
128
|
+
{isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (<Message severity="error" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />)}
|
|
129
|
+
{/* </div> */}
|
|
130
|
+
</>
|
|
129
131
|
);
|
|
130
132
|
}
|
|
131
133
|
|
|
132
134
|
renderCheckBoxMode(formik: FormikObject, visibleCreateRelationEntity: any, setvisibleCreateRelationEntity: any) {
|
|
133
135
|
const fieldMetadata = this.fieldContext.fieldMetadata;
|
|
134
136
|
const fieldLayoutInfo = this.fieldContext.field;
|
|
135
|
-
const className = fieldLayoutInfo.attrs?.className || 'col-
|
|
137
|
+
const className = fieldLayoutInfo.attrs?.className || 'field col-6 flex flex-column gap-2 mt-4';
|
|
136
138
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
137
139
|
|
|
138
140
|
// auto complete specific code.
|
|
@@ -232,8 +234,10 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
232
234
|
|
|
233
235
|
return (
|
|
234
236
|
<div className={className}>
|
|
235
|
-
<div className="flex align-items-center gap-
|
|
236
|
-
|
|
237
|
+
<div className="flex align-items-center gap-3">
|
|
238
|
+
<label className="form-field-label">
|
|
239
|
+
{capitalize(fieldLayoutInfo.attrs.name)}
|
|
240
|
+
</label>
|
|
237
241
|
{fieldLayoutInfo.attrs.inlineCreate === "true" &&
|
|
238
242
|
this.renderSolidFormEmbededView(formik, customCreateHandler, visibleCreateRelationEntity, setvisibleCreateRelationEntity)
|
|
239
243
|
}
|
|
@@ -259,18 +263,18 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
259
263
|
return (
|
|
260
264
|
<div>
|
|
261
265
|
|
|
262
|
-
<Panel toggleable headerTemplate={headerTemplate}
|
|
266
|
+
<Panel toggleable headerTemplate={headerTemplate}>
|
|
263
267
|
|
|
264
|
-
<div
|
|
265
|
-
{autoCompleteItems && autoCompleteItems.map((a: any) => {
|
|
268
|
+
<div className="formgrid grid">
|
|
269
|
+
{autoCompleteItems && autoCompleteItems.map((a: any, i: number) => {
|
|
266
270
|
return (
|
|
267
|
-
<div key={a.label} className=
|
|
271
|
+
<div key={a.label} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>
|
|
268
272
|
<Checkbox
|
|
269
273
|
inputId={a.label}
|
|
270
274
|
checked={formik.values[fieldLayoutInfo.attrs.name].some((item: any) => item.label === a.label)}
|
|
271
275
|
onChange={() => handleCheckboxChange(a)}
|
|
272
276
|
/>
|
|
273
|
-
<label htmlFor={a.label}> {a.label}</label>
|
|
277
|
+
<label htmlFor={a.label} className="form-field-label m-0"> {a.label}</label>
|
|
274
278
|
</div>
|
|
275
279
|
)
|
|
276
280
|
})}
|
|
@@ -285,7 +289,7 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
285
289
|
renderAutoCompleteMode(formik: FormikObject, visibleCreateRelationEntity: any, setvisibleCreateRelationEntity: any) {
|
|
286
290
|
const fieldMetadata = this.fieldContext.fieldMetadata;
|
|
287
291
|
const fieldLayoutInfo = this.fieldContext.field;
|
|
288
|
-
const className = fieldLayoutInfo.attrs?.className || 'col-
|
|
292
|
+
const className = fieldLayoutInfo.attrs?.className || 'field col-6 flex flex-column gap-2 mt-4';
|
|
289
293
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
290
294
|
|
|
291
295
|
// auto complete specific code.
|
|
@@ -354,32 +358,24 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
354
358
|
|
|
355
359
|
return (
|
|
356
360
|
<div className={className}>
|
|
357
|
-
<
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
completeMethod={autoCompleteSearch}
|
|
376
|
-
onChange={formik.handleChange} />
|
|
377
|
-
{fieldLayoutInfo.attrs.inlineCreate === "true" &&
|
|
378
|
-
this.renderSolidFormEmbededView(formik, customCreateHandler, visibleCreateRelationEntity, setvisibleCreateRelationEntity)
|
|
379
|
-
}
|
|
380
|
-
</div>
|
|
381
|
-
|
|
382
|
-
</div>
|
|
361
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
362
|
+
|
|
363
|
+
</label>
|
|
364
|
+
<AutoComplete
|
|
365
|
+
readOnly={readOnly}
|
|
366
|
+
disabled={disabled}
|
|
367
|
+
multiple
|
|
368
|
+
{...formik.getFieldProps(fieldLayoutInfo.attrs.name)}
|
|
369
|
+
id={fieldLayoutInfo.attrs.name}
|
|
370
|
+
field="label"
|
|
371
|
+
value={formik.values[fieldLayoutInfo.attrs.name] || ''}
|
|
372
|
+
dropdown
|
|
373
|
+
suggestions={autoCompleteItems}
|
|
374
|
+
completeMethod={autoCompleteSearch}
|
|
375
|
+
onChange={formik.handleChange} />
|
|
376
|
+
{fieldLayoutInfo.attrs.inlineCreate === "true" &&
|
|
377
|
+
this.renderSolidFormEmbededView(formik, customCreateHandler, visibleCreateRelationEntity, setvisibleCreateRelationEntity)
|
|
378
|
+
}
|
|
383
379
|
</div>
|
|
384
380
|
);
|
|
385
381
|
}
|
|
@@ -388,7 +384,7 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
388
384
|
|
|
389
385
|
const fieldMetadata = this.fieldContext.fieldMetadata;
|
|
390
386
|
const fieldLayoutInfo = this.fieldContext.field;
|
|
391
|
-
const className = fieldLayoutInfo.attrs?.className || 'col-
|
|
387
|
+
const className = fieldLayoutInfo.attrs?.className || 'field col-6 flex flex-column gap-2 mt-4';
|
|
392
388
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
393
389
|
|
|
394
390
|
const params = {
|
|
@@ -406,22 +402,25 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
406
402
|
}),
|
|
407
403
|
modelName: camelCase(this.fieldContext.fieldMetadata.relationModelSingularName)
|
|
408
404
|
}
|
|
405
|
+
// console.log("fieldLayoutInfo?.attrs?.inlineCreateLayout?.attrs?.width ", fieldLayoutInfo?.attrs?.inlineCreateLayout?.attrs?.width);
|
|
409
406
|
|
|
410
407
|
return (
|
|
411
|
-
<div
|
|
412
|
-
<Button
|
|
408
|
+
<div >
|
|
409
|
+
<Button
|
|
410
|
+
icon="pi pi-plus"
|
|
413
411
|
rounded
|
|
414
412
|
outlined
|
|
415
413
|
aria-label="Filter"
|
|
416
414
|
type="button"
|
|
415
|
+
size="small"
|
|
417
416
|
onClick={() => setvisibleCreateRelationEntity(true)}
|
|
417
|
+
className="custom-add-button"
|
|
418
418
|
/>
|
|
419
419
|
<Dialog
|
|
420
420
|
header=""
|
|
421
421
|
showHeader={false}
|
|
422
422
|
visible={visibleCreateRelationEntity}
|
|
423
|
-
|
|
424
|
-
style={{ width: fieldLayoutInfo?.attrs?.inlineCreateLayout?.attrs?.width ?? "40vw" }}
|
|
423
|
+
style={{ width: fieldLayoutInfo?.attrs?.inlineCreateLayout?.attrs?.width ?? "60vw" }}
|
|
425
424
|
onHide={() => {
|
|
426
425
|
if (!visibleCreateRelationEntity) return;
|
|
427
426
|
setvisibleCreateRelationEntity(false);
|
|
@@ -54,7 +54,7 @@ export class SolidRelationManyToOneField implements ISolidField {
|
|
|
54
54
|
render(formik: FormikObject) {
|
|
55
55
|
const fieldMetadata = this.fieldContext.fieldMetadata;
|
|
56
56
|
const fieldLayoutInfo = this.fieldContext.field;
|
|
57
|
-
const className = fieldLayoutInfo.attrs?.className || 'col-
|
|
57
|
+
const className = fieldLayoutInfo.attrs?.className || 'field col-6 flex flex-column gap-2 mt-4';
|
|
58
58
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
59
59
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
60
60
|
|
|
@@ -103,35 +103,30 @@ export class SolidRelationManyToOneField implements ISolidField {
|
|
|
103
103
|
setAutoCompleteItems(autoCompleteItems);
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
console.log("formik",formik.values);
|
|
106
|
+
console.log("formik", formik.values);
|
|
107
107
|
|
|
108
108
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
109
109
|
|
|
110
110
|
return (
|
|
111
111
|
<div className={className}>
|
|
112
|
-
<
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
{isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (
|
|
132
|
-
<Message severity="error" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />
|
|
133
|
-
)}
|
|
134
|
-
</div>
|
|
112
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
113
|
+
|
|
114
|
+
</label>
|
|
115
|
+
<AutoComplete
|
|
116
|
+
readOnly={formReadonly || fieldReadonly}
|
|
117
|
+
disabled={formDisabled || fieldDisabled}
|
|
118
|
+
{...formik.getFieldProps(fieldLayoutInfo.attrs.name)}
|
|
119
|
+
id={fieldLayoutInfo.attrs.name}
|
|
120
|
+
field="label"
|
|
121
|
+
value={formik.values[fieldLayoutInfo.attrs.name] || ''}
|
|
122
|
+
dropdown
|
|
123
|
+
suggestions={autoCompleteItems}
|
|
124
|
+
completeMethod={autoCompleteSearch}
|
|
125
|
+
onChange={formik.handleChange} />
|
|
126
|
+
|
|
127
|
+
{isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (
|
|
128
|
+
<Message severity="error" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />
|
|
129
|
+
)}
|
|
135
130
|
</div>
|
|
136
131
|
);
|
|
137
132
|
}
|
|
@@ -54,7 +54,7 @@ export class SolidRelationOneToManyField implements ISolidField {
|
|
|
54
54
|
const fieldMetadata = this.fieldContext.fieldMetadata;
|
|
55
55
|
|
|
56
56
|
const fieldLayoutInfo = this.fieldContext.field;
|
|
57
|
-
const className = fieldLayoutInfo.attrs?.className || 'col-12
|
|
57
|
+
const className = fieldLayoutInfo.attrs?.className || 'field col-12 flex flex-column gap-2 mt-3';
|
|
58
58
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
59
59
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
60
60
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
@@ -132,10 +132,10 @@ export class SolidRelationOneToManyField implements ISolidField {
|
|
|
132
132
|
|
|
133
133
|
return (
|
|
134
134
|
<div className={className}>
|
|
135
|
-
<div className="justify-content-center align-items-center">
|
|
136
|
-
<label htmlFor={fieldLayoutInfo.attrs.name}>{fieldLabel} {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}</label>
|
|
137
|
-
</div>
|
|
138
|
-
<br></br>
|
|
135
|
+
{/* <div className="justify-content-center align-items-center"> */}
|
|
136
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel} {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}</label>
|
|
137
|
+
{/* </div>
|
|
138
|
+
<br></br> */}
|
|
139
139
|
{listViewParams &&
|
|
140
140
|
<SolidListView key={refreshList.toString()} {...listViewParams} handlePopUpOpen={handlePopupOpen} />
|
|
141
141
|
}
|
|
@@ -183,3 +183,4 @@ export class SolidRelationOneToManyField implements ISolidField {
|
|
|
183
183
|
)
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
|
+
|
|
@@ -13,6 +13,8 @@ import qs from "qs";
|
|
|
13
13
|
import { useEffect, useRef, useState } from "react";
|
|
14
14
|
import FieldMetaData from "./FieldMetaData";
|
|
15
15
|
import ModelMetaData from "./ModelMetaData";
|
|
16
|
+
import { BackButton } from "@/components/common/BackButton";
|
|
17
|
+
import { SolidFormStepper } from "@/components/common/SolidFormStepper";
|
|
16
18
|
|
|
17
19
|
|
|
18
20
|
interface ErrorResponseData {
|
|
@@ -264,75 +266,88 @@ const CreateModel = ({ data, params }: any) => {
|
|
|
264
266
|
|
|
265
267
|
|
|
266
268
|
return (
|
|
267
|
-
<div className="
|
|
269
|
+
<div className="solid-form-wrapper">
|
|
268
270
|
<Toast ref={toast} />
|
|
269
271
|
|
|
270
|
-
<div className="
|
|
271
|
-
{params.id === "new" ?
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
<
|
|
272
|
+
<div className="solid-form-header">
|
|
273
|
+
{params.id === "new" ?
|
|
274
|
+
<>
|
|
275
|
+
<div className="flex align-items-center gap-3">
|
|
276
|
+
<BackButton />
|
|
277
|
+
<div className="form-wrapper-title">Create Model</div>
|
|
278
|
+
</div>
|
|
279
|
+
<div className="gap-3 flex">
|
|
280
|
+
<Button label="Save" size="small" onClick={handleSubmit} type="submit" />
|
|
281
|
+
<CancelButton />
|
|
282
|
+
</div>
|
|
283
|
+
</>
|
|
284
|
+
:
|
|
285
|
+
<>
|
|
286
|
+
<div className="flex align-items-center gap-3">
|
|
287
|
+
<BackButton />
|
|
288
|
+
<div className="form-wrapper-title">Edit Model</div>
|
|
276
289
|
</div>
|
|
277
|
-
<CancelButton />
|
|
278
|
-
</div>
|
|
279
|
-
</div> :
|
|
280
|
-
<div className="flex gap-3 justify-content-between">
|
|
281
|
-
<h1 className="m-0"></h1>
|
|
282
290
|
<div className="gap-3 flex">
|
|
283
291
|
{data?.isSystem !== true &&
|
|
284
292
|
<>
|
|
285
293
|
<div>
|
|
286
|
-
<Button label="Save"
|
|
294
|
+
<Button label="Save" size="small" type="submit" onClick={handleSubmit} />
|
|
287
295
|
</div>
|
|
288
296
|
<div>
|
|
289
|
-
<Button outlined label="Delete"
|
|
297
|
+
<Button outlined label="Delete" size="small" severity="danger" type="button" onClick={deleteModelFunction} />
|
|
290
298
|
</div>
|
|
291
299
|
</>
|
|
292
300
|
}
|
|
293
|
-
|
|
294
301
|
<CancelButton />
|
|
295
302
|
</div>
|
|
296
|
-
|
|
303
|
+
</>
|
|
297
304
|
}
|
|
298
305
|
</div>
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
306
|
+
<div className="solid-form-stepper">
|
|
307
|
+
<SolidFormStepper />
|
|
308
|
+
</div>
|
|
309
|
+
<div className="p-4 solid-form-content">
|
|
310
|
+
<div className="grid">
|
|
311
|
+
<div className="col-8 mx-auto">
|
|
312
|
+
<TabView
|
|
313
|
+
activeIndex={activeIndex}
|
|
314
|
+
onTabChange={(e) => {
|
|
315
|
+
if (activeIndex == 0) {
|
|
316
|
+
formikModelMetadataRef.current.handleSubmit();
|
|
317
|
+
setActiveIndex(e.index)
|
|
318
|
+
|
|
319
|
+
}
|
|
320
|
+
if (activeIndex == 1) {
|
|
321
|
+
setActiveIndex(e.index)
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
}}
|
|
325
|
+
>
|
|
326
|
+
<TabPanel header="Model">
|
|
327
|
+
<ModelMetaData
|
|
328
|
+
modelMetaData={modelMetaData}
|
|
329
|
+
setModelMetaData={setModelMetaData}
|
|
330
|
+
allModelsNames={allModelsNames}
|
|
331
|
+
deleteModelFunction={deleteModelFunction}
|
|
332
|
+
nextTab={nextTab}
|
|
333
|
+
formikModelMetadataRef={formikModelMetadataRef}
|
|
334
|
+
params={params}
|
|
335
|
+
></ModelMetaData>
|
|
336
|
+
</TabPanel>
|
|
337
|
+
<TabPanel header="Fields" >
|
|
338
|
+
<FieldMetaData
|
|
339
|
+
modelMetaData={modelMetaData}
|
|
340
|
+
fieldMetaData={fieldMetaData}
|
|
341
|
+
setFieldMetaData={setFieldMetaData}
|
|
342
|
+
deleteModelFunction={deleteModelFunction}
|
|
343
|
+
nextTab={nextTab}
|
|
344
|
+
formikFieldsMetadataRef={formikFieldsMetadataRef}
|
|
345
|
+
></FieldMetaData>
|
|
346
|
+
</TabPanel>
|
|
347
|
+
</TabView>
|
|
348
|
+
</div>
|
|
349
|
+
</div>
|
|
350
|
+
</div>
|
|
336
351
|
</div >
|
|
337
352
|
);
|
|
338
353
|
};
|
|
@@ -44,11 +44,12 @@ const FieldMetaData = ({ modelMetaData, fieldMetaData, setFieldMetaData, deleteM
|
|
|
44
44
|
{rowData.isSystem !== true &&
|
|
45
45
|
<Button
|
|
46
46
|
icon="pi pi-pencil"
|
|
47
|
+
text
|
|
47
48
|
onClick={() => {
|
|
48
49
|
setSelectedFieldMetaData(rowData);
|
|
49
50
|
setVisiblePopup(true);
|
|
50
51
|
}}
|
|
51
|
-
|
|
52
|
+
size="small"
|
|
52
53
|
/>
|
|
53
54
|
}
|
|
54
55
|
</>
|
|
@@ -65,7 +66,7 @@ const FieldMetaData = ({ modelMetaData, fieldMetaData, setFieldMetaData, deleteM
|
|
|
65
66
|
return (
|
|
66
67
|
<>
|
|
67
68
|
{(pathname.includes('create') || rowData.isSystem !== true) &&
|
|
68
|
-
<Button icon="pi pi-trash" onClick={() => deleteRow(rowData)}
|
|
69
|
+
<Button icon="pi pi-trash" text severity="danger" onClick={() => deleteRow(rowData)} size="small" />
|
|
69
70
|
|
|
70
71
|
}
|
|
71
72
|
</>
|
|
@@ -102,31 +103,26 @@ const FieldMetaData = ({ modelMetaData, fieldMetaData, setFieldMetaData, deleteM
|
|
|
102
103
|
setVisiblePopup(true)
|
|
103
104
|
}
|
|
104
105
|
}} size="small"
|
|
105
|
-
className="small-button"
|
|
106
106
|
/>
|
|
107
107
|
}
|
|
108
108
|
</div>
|
|
109
|
-
<
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
{
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
{
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
</DataTable>
|
|
123
|
-
</div>
|
|
109
|
+
<DataTable value={fieldMetaData} dataKey="id"
|
|
110
|
+
tableStyle={{ minWidth: '50rem' }} size="small">
|
|
111
|
+
<Column field="displayName" header="Display Name" headerClassName="table-header-fs"></Column>
|
|
112
|
+
<Column field="name" header="Name" headerClassName="table-header-fs"></Column>
|
|
113
|
+
<Column field="type" header="Type" headerClassName="table-header-fs"></Column>
|
|
114
|
+
|
|
115
|
+
{modelMetaData.isSystem !== true &&
|
|
116
|
+
<Column body={editTemplate} header="Edit" headerClassName="table-header-fs" style={{ width: '10%' }} />
|
|
117
|
+
}
|
|
118
|
+
{modelMetaData.isSystem !== true &&
|
|
119
|
+
<Column body={deleteTemplate} header="Delete" headerClassName="table-header-fs" style={{ width: '10%' }} />
|
|
120
|
+
}
|
|
121
|
+
</DataTable>
|
|
124
122
|
<Dialog
|
|
125
|
-
className="field-poopup-container"
|
|
126
123
|
header=""
|
|
127
124
|
visible={visiblePopup}
|
|
128
125
|
style={{ width: "40vw" }}
|
|
129
|
-
contentStyle={{ borderRadius: 8 }}
|
|
130
126
|
onHide={() => {
|
|
131
127
|
if (!visiblePopup) return;
|
|
132
128
|
|
|
@@ -145,5 +141,4 @@ const FieldMetaData = ({ modelMetaData, fieldMetaData, setFieldMetaData, deleteM
|
|
|
145
141
|
|
|
146
142
|
);
|
|
147
143
|
};
|
|
148
|
-
|
|
149
144
|
export default FieldMetaData;
|