Form Fields sütun ekleme işlemi güncellendi

This commit is contained in:
Sedat Öztürk 2026-05-23 17:21:20 +03:00
parent 73cb479e50
commit cb77dd2109
3 changed files with 43 additions and 24 deletions

View file

@ -74,8 +74,8 @@ const FormEdit = () => {
const [langOptions, setLangOptions] = useState<SelectBoxOption[]>([]) const [langOptions, setLangOptions] = useState<SelectBoxOption[]>([])
const [roleList, setRoleList] = useState<SelectBoxOption[]>([]) const [roleList, setRoleList] = useState<SelectBoxOption[]>([])
const [userList, setUserList] = useState<SelectBoxOption[]>([]) const [userList, setUserList] = useState<SelectBoxOption[]>([])
const [workflowColumns, setWorkflowColumns] = useState<DatabaseColumnDto[]>([]) const [columns, setColumns] = useState<DatabaseColumnDto[]>([])
const [isLoadingWorkflowColumns, setIsLoadingWorkflowColumns] = useState(false) const [isLoadingColumns, setIsLoadingColumns] = useState(false)
const languages: LanguageInfo[] | undefined = useStoreState( const languages: LanguageInfo[] | undefined = useStoreState(
(state) => state.abpConfig.config?.localization.languages, (state) => state.abpConfig.config?.localization.languages,
@ -152,11 +152,11 @@ const FormEdit = () => {
const selectCommand = listFormValues?.selectCommand const selectCommand = listFormValues?.selectCommand
if (!dataSourceCode || !selectCommand) { if (!dataSourceCode || !selectCommand) {
setWorkflowColumns([]) setColumns([])
return return
} }
setIsLoadingWorkflowColumns(true) setIsLoadingColumns(true)
try { try {
const objectsResponse = await sqlObjectManagerService.getAllObjects(dataSourceCode) const objectsResponse = await sqlObjectManagerService.getAllObjects(dataSourceCode)
const objects = objectsResponse.data const objects = objectsResponse.data
@ -167,7 +167,7 @@ const FormEdit = () => {
) )
if (!objectInfo) { if (!objectInfo) {
setWorkflowColumns([]) setColumns([])
return return
} }
@ -176,11 +176,11 @@ const FormEdit = () => {
objectInfo.schemaName, objectInfo.schemaName,
objectInfo.objectName, objectInfo.objectName,
) )
setWorkflowColumns(columnsResponse.data ?? []) setColumns(columnsResponse.data ?? [])
} catch { } catch {
setWorkflowColumns([]) setColumns([])
} finally { } finally {
setIsLoadingWorkflowColumns(false) setIsLoadingColumns(false)
} }
} }
@ -448,8 +448,8 @@ const FormEdit = () => {
<FormTabWorkflow <FormTabWorkflow
listFormCode={listFormCode} listFormCode={listFormCode}
userList={userList} userList={userList}
selectCommandColumns={workflowColumns} selectCommandColumns={columns}
isLoadingSelectCommandColumns={isLoadingWorkflowColumns} isLoadingSelectCommandColumns={isLoadingColumns}
onSubmit={onSubmit} onSubmit={onSubmit}
/> />
</TabContent> </TabContent>
@ -459,6 +459,7 @@ const FormEdit = () => {
langOptions={langOptions} langOptions={langOptions}
roleList={roleList} roleList={roleList}
userList={userList} userList={userList}
columns={columns}
></FormFields> ></FormFields>
</TabContent> </TabContent>
<TabContent value="customization" className="px-2"> <TabContent value="customization" className="px-2">

View file

@ -74,11 +74,13 @@ function FormFields({
langOptions, langOptions,
roleList, roleList,
userList, userList,
columns,
}: { }: {
listFormCode: string listFormCode: string
langOptions: SelectBoxOption[] langOptions: SelectBoxOption[]
roleList: SelectBoxOption[] roleList: SelectBoxOption[]
userList: SelectBoxOption[] userList: SelectBoxOption[]
columns: DatabaseColumnDto[]
}) { }) {
const { translate } = useLocalization() const { translate } = useLocalization()
const [fields, setFields] = useState<ColumnFormatEditDto[]>() const [fields, setFields] = useState<ColumnFormatEditDto[]>()
@ -94,6 +96,13 @@ function FormFields({
const [allDbColumns, setAllDbColumns] = useState<DatabaseColumnDto[]>([]) const [allDbColumns, setAllDbColumns] = useState<DatabaseColumnDto[]>([])
const [isAddingAllColumns, setIsAddingAllColumns] = useState(false) const [isAddingAllColumns, setIsAddingAllColumns] = useState(false)
const columnOptions: SelectBoxOption[] = columns.length
? columns.map((column) => ({
value: column.columnName,
label: `${column.columnName} (${column.dataType})`,
}))
: []
useEffect(() => { useEffect(() => {
const dsCode = listFormValues?.dataSourceCode const dsCode = listFormValues?.dataSourceCode
const cmd = listFormValues?.selectCommand const cmd = listFormValues?.selectCommand
@ -564,14 +573,26 @@ function FormFields({
errorMessage={errors.fieldName} errorMessage={errors.fieldName}
asterisk={true} asterisk={true}
> >
<Field <Field type="text" name="fieldName">
type="text" {({ field, form }: FieldProps<SelectBoxOption>) => (
autoFocus={true} <Select
autoComplete="off" field={field}
name="fieldName" form={form}
placeholder={translate('::ListForms.ListFormFieldEdit.FieldName')} options={columnOptions}
component={Input} isClearable={true}
value={columnOptions.filter((option) => option.value === values.fieldName)}
onChange={(option) => {
form.setFieldValue(field.name, option?.value)
form.setFieldValue(
'sourceDbType',
sqlDataTypeToDbType(
columns.find((c) => c.columnName === option?.value)?.dataType || '',
) as any,
)
}}
/> />
)}
</Field>
</FormItem> </FormItem>
<FormItem label={translate('::ListForms.ListFormEdit.CustomValueType')}> <FormItem label={translate('::ListForms.ListFormEdit.CustomValueType')}>
@ -901,10 +922,7 @@ function FormFields({
</Field> </Field>
</FormItem> </FormItem>
<div className="grid grid-cols-4 gap-4"> <div className="grid grid-cols-4 gap-4">
<FormItem <FormItem label={translate('::App.Reports.Search')} labelClass="justify-center">
label={translate('::App.Reports.Search')}
labelClass="justify-center"
>
<Field name="copiedFields.all" component={Checkbox} className="mr-1" /> <Field name="copiedFields.all" component={Checkbox} className="mr-1" />
</FormItem> </FormItem>
<FormItem <FormItem

View file

@ -174,7 +174,7 @@ function DesignerToolbar({
return ( return (
<div className="flex flex-wrap justify-end gap-2"> <div className="flex flex-wrap justify-end gap-2">
{/* <button <button
type="button" type="button"
className={classNames(designerButtonClass, 'border-gray-300 bg-white text-slate-700')} className={classNames(designerButtonClass, 'border-gray-300 bg-white text-slate-700')}
disabled={busy} disabled={busy}
@ -183,7 +183,7 @@ function DesignerToolbar({
> >
<FiRefreshCw /> <FiRefreshCw />
Demo Demo
</button> */} </button>
<button <button
type="button" type="button"
className={classNames(designerButtonClass, 'border-blue-600 bg-white text-blue-600')} className={classNames(designerButtonClass, 'border-blue-600 bg-white text-blue-600')}