Gantt ve Scheduler için AllowAdding vs...
This commit is contained in:
parent
aa3a3c7684
commit
0420f1a3e5
8 changed files with 556 additions and 376 deletions
|
|
@ -63,7 +63,22 @@ public class GanttOptionDto
|
|||
/// İlerleme ifadesi (örn: "%50")
|
||||
/// </summary>
|
||||
public string ProgressExpr { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Düzenlemeye izin verilsin mi
|
||||
/// </summary>
|
||||
public bool AllowEditing { get; set; } = false;
|
||||
/// <summary>
|
||||
/// Task eklemeye izin verilsin mi
|
||||
/// </summary>
|
||||
public bool AllowTaskAdding { get; set; } = false;
|
||||
/// <summary>
|
||||
/// Task güncellemeye izin verilsin mi
|
||||
/// </summary>
|
||||
public bool AllowTaskUpdating { get; set; } = false;
|
||||
/// <summary>
|
||||
/// Task silmeye izin verilsin mi
|
||||
/// </summary>
|
||||
public bool AllowTaskDeleting { get; set; } = false;
|
||||
/// <summary>
|
||||
/// Bağlantılar için kullanılan field adı (örn: "predecessors")
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ public class SchedulerOptionDto
|
|||
/// Tüm gün panelini gösterme durumu
|
||||
/// </summary>
|
||||
public bool ShowAllDayPanel { get; set; } = true;
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// Hücre süresi (dakika cinsinden, örn: 30)
|
||||
/// </summary>
|
||||
public int CellDuration { get; set; } = 30;
|
||||
|
|
@ -65,4 +65,16 @@ public class SchedulerOptionDto
|
|||
/// Etkinliklerin sürüklenip bırakılmasına izin verilip verilmediğini belirtir
|
||||
/// </summary>
|
||||
public bool AllowDragging { get; set; } = false;
|
||||
/// <summary>
|
||||
/// Etkinlik eklemeye izin verilip verilmediğini belirtir
|
||||
/// </summary>
|
||||
public bool AllowDeleting { get; set; } = false;
|
||||
/// <summary>
|
||||
/// Etkinlik güncellemeye izin verilip verilmediğini belirtir
|
||||
/// </summary>
|
||||
public bool AllowUpdating { get; set; } = false;
|
||||
/// <summary>
|
||||
/// Etkinlik eklemeye izin verilip verilmediğini belirtir
|
||||
/// </summary>
|
||||
public bool AllowAdding { get; set; } = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4651,6 +4651,30 @@
|
|||
"en": "Auto Expand All",
|
||||
"tr": "Otomatik Tümünü Genişlet"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "ListForms.ListFormEdit.AllowEditing",
|
||||
"en": "Allow Editing",
|
||||
"tr": "Düzenlemeye İzin Ver"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "ListForms.ListFormEdit.AllowTaskAdding",
|
||||
"en": "Allow Task Adding",
|
||||
"tr": "Görev Ekleme İzni"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "ListForms.ListFormEdit.AllowTaskDeleting",
|
||||
"en": "Allow Task Deleting",
|
||||
"tr": "Görev Silme İzni"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "ListForms.ListFormEdit.AllowTaskUpdating",
|
||||
"en": "Allow Task Updating",
|
||||
"tr": "Görev Güncelleme İzni"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "ListForms.ListFormEdit.AllowDependencyAdding",
|
||||
|
|
@ -10165,6 +10189,24 @@
|
|||
"tr": "Sürüklemeye İzin Ver",
|
||||
"en": "Allow Dragging"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "ListForms.SchedulerOptions.AllowAdding",
|
||||
"tr": "Ekleme İzin Ver",
|
||||
"en": "Allow Adding"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "ListForms.SchedulerOptions.AllowUpdating",
|
||||
"tr": "Güncellemeye İzin Ver",
|
||||
"en": "Allow Updating"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "ListForms.SchedulerOptions.AllowDeleting",
|
||||
"tr": "Silmeye İzin Ver",
|
||||
"en": "Allow Deleting"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "ListForms.SchedulerOptions.Day",
|
||||
|
|
|
|||
|
|
@ -402,6 +402,10 @@ export interface GanttOptionDto {
|
|||
endExpr?: string
|
||||
progressExpr?: string
|
||||
scaleType: GanttScaleType
|
||||
allowEditing?: boolean
|
||||
allowTaskAdding?: boolean
|
||||
allowTaskUpdating?: boolean
|
||||
allowTaskDeleting?: boolean
|
||||
allowDependencyAdding?: boolean
|
||||
allowDependencyDeleting?: boolean
|
||||
allowResourceAdding?: boolean
|
||||
|
|
@ -424,6 +428,9 @@ export interface SchedulerOptionDto {
|
|||
firstDayOfWeek?: number
|
||||
allowResizing?: boolean
|
||||
allowDragging?: boolean
|
||||
allowDeleting?: boolean
|
||||
allowUpdating?: boolean
|
||||
allowAdding?: boolean
|
||||
resources?: SchedulerResourceDto[]
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -83,293 +83,376 @@ function FormTabGantt(props: FormEditProps) {
|
|||
{({ touched, errors, isSubmitting, values }) => (
|
||||
<Form>
|
||||
<FormContainer size="sm">
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.DatabaseDataSourceKeyFieldName')}
|
||||
invalid={errors.ganttOptionDto?.keyExpr && touched.ganttOptionDto?.keyExpr}
|
||||
errorMessage={errors.ganttOptionDto?.keyExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.keyExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.DatabaseDataSourceKeyFieldName')}
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.keyExpr,
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
|
||||
<Card className="mt-4">
|
||||
<h5 className="mb-4">{translate('::ListForms.SchedulerOptions.BasicSettings')}</h5>
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.DatabaseDataSourceKeyFieldName')}
|
||||
invalid={errors.ganttOptionDto?.keyExpr && touched.ganttOptionDto?.keyExpr}
|
||||
errorMessage={errors.ganttOptionDto?.keyExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.keyExpr"
|
||||
placeholder={translate(
|
||||
'::ListForms.ListFormEdit.DatabaseDataSourceKeyFieldName',
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.ParentIdExpr')}
|
||||
invalid={errors.ganttOptionDto?.parentIdExpr && touched.ganttOptionDto?.parentIdExpr}
|
||||
errorMessage={errors.ganttOptionDto?.parentIdExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.parentIdExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.ParentIdExpr')}
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.parentIdExpr,
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.keyExpr,
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.HasItemsExpr')}
|
||||
invalid={errors.ganttOptionDto?.hasItemsExpr && touched.ganttOptionDto?.hasItemsExpr}
|
||||
errorMessage={errors.ganttOptionDto?.hasItemsExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
autoComplete="off"
|
||||
name="ganttOptionDto.hasItemsExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.HasItemsExpr')}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.RootValue')}
|
||||
invalid={!!(errors.ganttOptionDto?.rootValue && touched.ganttOptionDto?.rootValue)}
|
||||
errorMessage={errors.ganttOptionDto?.rootValue as string}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
autoComplete="off"
|
||||
name="ganttOptionDto.rootValue"
|
||||
placeholder={translate('::ListForms.ListFormEdit.RootValue')}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AutoExpandAll')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.autoExpandAll && touched.ganttOptionDto?.autoExpandAll
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.autoExpandAll}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.autoExpandAll"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AutoExpandAll')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.RecursiveSelection')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.recursiveSelection &&
|
||||
touched.ganttOptionDto?.recursiveSelection
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.recursiveSelection}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.recursiveSelection"
|
||||
placeholder={translate('::ListForms.ListFormEdit.RecursiveSelection')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.ScaleType')}
|
||||
invalid={errors.ganttOptionDto?.scaleType && touched.ganttOptionDto?.scaleType}
|
||||
errorMessage={errors.ganttOptionDto?.scaleType}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.scaleType"
|
||||
placeholder={translate('::ListForms.ListFormEdit.ScaleType')}
|
||||
>
|
||||
{({ field, form }: FieldProps<GanttScaleType>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={gantScaleOptions}
|
||||
value={gantScaleOptions?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.scaleType,
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.ParentIdExpr')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.parentIdExpr && touched.ganttOptionDto?.parentIdExpr
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.parentIdExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.parentIdExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.ParentIdExpr')}
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.parentIdExpr,
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.TitleExpr')}
|
||||
invalid={errors.ganttOptionDto?.titleExpr && touched.ganttOptionDto?.titleExpr}
|
||||
errorMessage={errors.ganttOptionDto?.titleExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.titleExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.TitleExpr')}
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.titleExpr,
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.HasItemsExpr')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.hasItemsExpr && touched.ganttOptionDto?.hasItemsExpr
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.hasItemsExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
autoComplete="off"
|
||||
name="ganttOptionDto.hasItemsExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.HasItemsExpr')}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.RootValue')}
|
||||
invalid={
|
||||
!!(errors.ganttOptionDto?.rootValue && touched.ganttOptionDto?.rootValue)
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.rootValue as string}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
autoComplete="off"
|
||||
name="ganttOptionDto.rootValue"
|
||||
placeholder={translate('::ListForms.ListFormEdit.RootValue')}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AutoExpandAll')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.autoExpandAll && touched.ganttOptionDto?.autoExpandAll
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.autoExpandAll}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.autoExpandAll"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AutoExpandAll')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.RecursiveSelection')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.recursiveSelection &&
|
||||
touched.ganttOptionDto?.recursiveSelection
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.recursiveSelection}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.recursiveSelection"
|
||||
placeholder={translate('::ListForms.ListFormEdit.RecursiveSelection')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.ScaleType')}
|
||||
invalid={errors.ganttOptionDto?.scaleType && touched.ganttOptionDto?.scaleType}
|
||||
errorMessage={errors.ganttOptionDto?.scaleType}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.scaleType"
|
||||
placeholder={translate('::ListForms.ListFormEdit.ScaleType')}
|
||||
>
|
||||
{({ field, form }: FieldProps<GanttScaleType>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={gantScaleOptions}
|
||||
value={gantScaleOptions?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.scaleType,
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.StartExpr')}
|
||||
invalid={errors.ganttOptionDto?.startExpr && touched.ganttOptionDto?.startExpr}
|
||||
errorMessage={errors.ganttOptionDto?.startExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.startExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.StartExpr')}
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.startExpr,
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.TitleExpr')}
|
||||
invalid={errors.ganttOptionDto?.titleExpr && touched.ganttOptionDto?.titleExpr}
|
||||
errorMessage={errors.ganttOptionDto?.titleExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.titleExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.TitleExpr')}
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.titleExpr,
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.EndExpr')}
|
||||
invalid={errors.ganttOptionDto?.endExpr && touched.ganttOptionDto?.endExpr}
|
||||
errorMessage={errors.ganttOptionDto?.endExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.endExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.EndExpr')}
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.endExpr,
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.StartExpr')}
|
||||
invalid={errors.ganttOptionDto?.startExpr && touched.ganttOptionDto?.startExpr}
|
||||
errorMessage={errors.ganttOptionDto?.startExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.startExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.StartExpr')}
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.startExpr,
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.ProgressExpr')}
|
||||
invalid={errors.ganttOptionDto?.progressExpr && touched.ganttOptionDto?.progressExpr}
|
||||
errorMessage={errors.ganttOptionDto?.progressExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.progressExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.ProgressExpr')}
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.progressExpr,
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.EndExpr')}
|
||||
invalid={errors.ganttOptionDto?.endExpr && touched.ganttOptionDto?.endExpr}
|
||||
errorMessage={errors.ganttOptionDto?.endExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.endExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.EndExpr')}
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.endExpr,
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.ProgressExpr')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.progressExpr && touched.ganttOptionDto?.progressExpr
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.progressExpr}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="ganttOptionDto.progressExpr"
|
||||
placeholder={translate('::ListForms.ListFormEdit.ProgressExpr')}
|
||||
>
|
||||
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
isClearable={true}
|
||||
options={fieldList}
|
||||
value={fieldList?.filter(
|
||||
(option) => option.value === values.ganttOptionDto.progressExpr,
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
</Card>
|
||||
|
||||
<Card className="mt-4">
|
||||
<h5 className="mb-4">
|
||||
{translate('::ListForms.SchedulerOptions.InteractionSettings')}
|
||||
</h5>
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowEditing')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowEditing && touched.ganttOptionDto?.allowEditing
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowEditing}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowEditing"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowEditing')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowDependencyAdding')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowDependencyAdding && touched.ganttOptionDto?.allowDependencyAdding
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowDependencyAdding}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowDependencyAdding"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowDependencyAdding')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowTaskAdding')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowTaskAdding &&
|
||||
touched.ganttOptionDto?.allowTaskAdding
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowTaskAdding}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowTaskAdding"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowTaskAdding')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowDependencyDeleting')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowDependencyDeleting && touched.ganttOptionDto?.allowDependencyDeleting
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowDependencyDeleting}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowDependencyDeleting"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowDependencyDeleting')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowTaskUpdating')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowTaskUpdating &&
|
||||
touched.ganttOptionDto?.allowTaskUpdating
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowTaskUpdating}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowTaskUpdating"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowTaskUpdating')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowResourceAdding')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowResourceAdding && touched.ganttOptionDto?.allowResourceAdding
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowResourceAdding}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowResourceAdding"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowResourceAdding')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowTaskDeleting')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowTaskDeleting &&
|
||||
touched.ganttOptionDto?.allowTaskDeleting
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowTaskDeleting}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowTaskDeleting"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowTaskDeleting')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowResourceDeleting')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowResourceDeleting && touched.ganttOptionDto?.allowResourceDeleting
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowResourceDeleting}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowResourceDeleting"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowResourceDeleting')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowDependencyAdding')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowDependencyAdding &&
|
||||
touched.ganttOptionDto?.allowDependencyAdding
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowDependencyAdding}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowDependencyAdding"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowDependencyAdding')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowDependencyDeleting')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowDependencyDeleting &&
|
||||
touched.ganttOptionDto?.allowDependencyDeleting
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowDependencyDeleting}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowDependencyDeleting"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowDependencyDeleting')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowResourceAdding')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowResourceAdding &&
|
||||
touched.ganttOptionDto?.allowResourceAdding
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowResourceAdding}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowResourceAdding"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowResourceAdding')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.ListFormEdit.AllowResourceDeleting')}
|
||||
invalid={
|
||||
errors.ganttOptionDto?.allowResourceDeleting &&
|
||||
touched.ganttOptionDto?.allowResourceDeleting
|
||||
}
|
||||
errorMessage={errors.ganttOptionDto?.allowResourceDeleting}
|
||||
>
|
||||
<Field
|
||||
name="ganttOptionDto.allowResourceDeleting"
|
||||
placeholder={translate('::ListForms.ListFormEdit.AllowResourceDeleting')}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
<Button block variant="solid" loading={isSubmitting} type="submit" className="my-2">
|
||||
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ function FormTabScheduler(props: FormEditProps) {
|
|||
<Form>
|
||||
<FormContainer size="sm">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
|
||||
<Card>
|
||||
<Card className="mt-4">
|
||||
<h5 className="mb-4">{translate('::ListForms.SchedulerOptions.BasicSettings')}</h5>
|
||||
|
||||
<FormItem
|
||||
|
|
@ -181,6 +181,98 @@ function FormTabScheduler(props: FormEditProps) {
|
|||
</FormItem>
|
||||
</Card>
|
||||
|
||||
<Card className="mt-4">
|
||||
<h5 className="mb-4">{translate('::ListForms.SchedulerOptions.ViewSettings')}</h5>
|
||||
|
||||
<FormItem label={translate('::ListForms.SchedulerOptions.DefaultView')}>
|
||||
<Field name="schedulerOptionDto.defaultView">
|
||||
{({ field, form }: FieldProps) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
options={schedulerViewOptions}
|
||||
value={schedulerViewOptions.find(
|
||||
(option) => option.value === values.schedulerOptionDto?.defaultView,
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem label={translate('::ListForms.SchedulerOptions.FirstDayOfWeek')}>
|
||||
<Field name="schedulerOptionDto.firstDayOfWeek">
|
||||
{({ field, form }: FieldProps) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
options={firstDayOfWeekOptions}
|
||||
value={firstDayOfWeekOptions.find(
|
||||
(option) => option.value === values.schedulerOptionDto?.firstDayOfWeek,
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.SchedulerOptions.StartDayHour')}
|
||||
invalid={
|
||||
errors.schedulerOptionDto?.startDayHour &&
|
||||
touched.schedulerOptionDto?.startDayHour
|
||||
}
|
||||
errorMessage={errors.schedulerOptionDto?.startDayHour}
|
||||
>
|
||||
<Field
|
||||
type="number"
|
||||
autoComplete="off"
|
||||
name="schedulerOptionDto.startDayHour"
|
||||
placeholder="8"
|
||||
component={Input}
|
||||
min={0}
|
||||
max={23}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.SchedulerOptions.EndDayHour')}
|
||||
invalid={
|
||||
errors.schedulerOptionDto?.endDayHour && touched.schedulerOptionDto?.endDayHour
|
||||
}
|
||||
errorMessage={errors.schedulerOptionDto?.endDayHour}
|
||||
>
|
||||
<Field
|
||||
type="number"
|
||||
autoComplete="off"
|
||||
name="schedulerOptionDto.endDayHour"
|
||||
placeholder="18"
|
||||
component={Input}
|
||||
min={0}
|
||||
max={24}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.SchedulerOptions.CellDuration')}
|
||||
invalid={
|
||||
errors.schedulerOptionDto?.cellDuration &&
|
||||
touched.schedulerOptionDto?.cellDuration
|
||||
}
|
||||
errorMessage={errors.schedulerOptionDto?.cellDuration}
|
||||
>
|
||||
<Field
|
||||
type="number"
|
||||
autoComplete="off"
|
||||
name="schedulerOptionDto.cellDuration"
|
||||
component={Input}
|
||||
placeholder="30"
|
||||
min={5}
|
||||
step={5}
|
||||
/>
|
||||
</FormItem>
|
||||
</Card>
|
||||
|
||||
<Card className="mt-4">
|
||||
<h5 className="mb-4">
|
||||
{translate('::ListForms.SchedulerOptions.RecurrenceSettings')}
|
||||
|
|
@ -237,95 +329,10 @@ function FormTabScheduler(props: FormEditProps) {
|
|||
</FormItem>
|
||||
</Card>
|
||||
|
||||
<Card className="mt-4">
|
||||
<h5 className="mb-4">{translate('::ListForms.SchedulerOptions.ViewSettings')}</h5>
|
||||
|
||||
<FormItem label={translate('::ListForms.SchedulerOptions.DefaultView')}>
|
||||
<Field name="schedulerOptionDto.defaultView">
|
||||
{({ field, form }: FieldProps) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
options={schedulerViewOptions}
|
||||
value={schedulerViewOptions.find(
|
||||
(option) => option.value === values.schedulerOptionDto?.defaultView,
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem label={translate('::ListForms.SchedulerOptions.FirstDayOfWeek')}>
|
||||
<Field name="schedulerOptionDto.firstDayOfWeek">
|
||||
{({ field, form }: FieldProps) => (
|
||||
<Select
|
||||
field={field}
|
||||
form={form}
|
||||
options={firstDayOfWeekOptions}
|
||||
value={firstDayOfWeekOptions.find(
|
||||
(option) => option.value === values.schedulerOptionDto?.firstDayOfWeek,
|
||||
)}
|
||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.SchedulerOptions.StartDayHour')}
|
||||
invalid={errors.schedulerOptionDto?.startDayHour && touched.schedulerOptionDto?.startDayHour}
|
||||
errorMessage={errors.schedulerOptionDto?.startDayHour}
|
||||
>
|
||||
<Field
|
||||
type="number"
|
||||
autoComplete="off"
|
||||
name="schedulerOptionDto.startDayHour"
|
||||
placeholder="8"
|
||||
component={Input}
|
||||
min={0}
|
||||
max={23}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.SchedulerOptions.EndDayHour')}
|
||||
invalid={errors.schedulerOptionDto?.endDayHour && touched.schedulerOptionDto?.endDayHour}
|
||||
errorMessage={errors.schedulerOptionDto?.endDayHour}
|
||||
>
|
||||
<Field
|
||||
type="number"
|
||||
autoComplete="off"
|
||||
name="schedulerOptionDto.endDayHour"
|
||||
placeholder="18"
|
||||
component={Input}
|
||||
min={0}
|
||||
max={24}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label={translate('::ListForms.SchedulerOptions.CellDuration')}
|
||||
invalid={errors.schedulerOptionDto?.cellDuration && touched.schedulerOptionDto?.cellDuration}
|
||||
errorMessage={errors.schedulerOptionDto?.cellDuration}
|
||||
>
|
||||
<Field
|
||||
type="number"
|
||||
autoComplete="off"
|
||||
name="schedulerOptionDto.cellDuration"
|
||||
component={Input}
|
||||
placeholder="30"
|
||||
min={5}
|
||||
step={5}
|
||||
/>
|
||||
</FormItem>
|
||||
</Card>
|
||||
|
||||
<Card className="mt-4">
|
||||
<h5 className="mb-4">
|
||||
{translate('::ListForms.SchedulerOptions.InteractionSettings')}
|
||||
</h5>
|
||||
|
||||
|
||||
<FormItem label={translate('::ListForms.SchedulerOptions.ShowAllDayPanel')}>
|
||||
<Field name="schedulerOptionDto.showAllDayPanel" component={Checkbox} />
|
||||
|
|
@ -342,13 +349,24 @@ function FormTabScheduler(props: FormEditProps) {
|
|||
<FormItem label={translate('::ListForms.SchedulerOptions.AllowDragging')}>
|
||||
<Field name="schedulerOptionDto.allowDragging" component={Checkbox} />
|
||||
</FormItem>
|
||||
|
||||
<FormItem label={translate('::ListForms.SchedulerOptions.AllowAdding')}>
|
||||
<Field name="schedulerOptionDto.allowAdding" component={Checkbox} />
|
||||
</FormItem>
|
||||
|
||||
<FormItem label={translate('::ListForms.SchedulerOptions.AllowUpdating')}>
|
||||
<Field name="schedulerOptionDto.allowUpdating" component={Checkbox} />
|
||||
</FormItem>
|
||||
|
||||
<FormItem label={translate('::ListForms.SchedulerOptions.AllowDeleting')}>
|
||||
<Field name="schedulerOptionDto.allowDeleting" component={Checkbox} />
|
||||
</FormItem>
|
||||
</Card>
|
||||
</div>
|
||||
<FormItem className="mt-4">
|
||||
<Button variant="solid" type="submit" loading={isSubmitting}>
|
||||
{translate('::Submit')}
|
||||
</Button>
|
||||
</FormItem>
|
||||
|
||||
<Button block variant="solid" loading={isSubmitting} type="submit" className="my-2">
|
||||
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||
</Button>{' '}
|
||||
</FormContainer>
|
||||
</Form>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -249,8 +249,8 @@ const GanttView = (props: GanttViewProps) => {
|
|||
<Item name="separator" />
|
||||
<Item name="collapseAll" />
|
||||
<Item name="expandAll" />
|
||||
{gridDto.gridOptions.editingOptionDto?.allowAdding && <Item name="addTask" />}
|
||||
{gridDto.gridOptions.editingOptionDto?.allowDeleting && (
|
||||
{gridDto.gridOptions.ganttOptionDto?.allowTaskAdding && <Item name="addTask" />}
|
||||
{gridDto.gridOptions.ganttOptionDto?.allowTaskDeleting && (
|
||||
<Item name="deleteTask" />
|
||||
)}
|
||||
<Item name="separator" />
|
||||
|
|
@ -285,14 +285,17 @@ const GanttView = (props: GanttViewProps) => {
|
|||
</Toolbar>
|
||||
|
||||
<Editing
|
||||
enabled={gridDto.gridOptions.editingOptionDto?.allowUpdating}
|
||||
allowTaskAdding={gridDto.gridOptions.editingOptionDto?.allowAdding}
|
||||
allowTaskUpdating={gridDto.gridOptions.editingOptionDto?.allowUpdating}
|
||||
allowTaskDeleting={gridDto.gridOptions.editingOptionDto?.allowDeleting}
|
||||
allowDependencyAdding={false}
|
||||
allowDependencyDeleting={false}
|
||||
allowResourceAdding={false}
|
||||
allowResourceDeleting={false}
|
||||
enabled={gridDto.gridOptions.ganttOptionDto?.allowEditing}
|
||||
allowTaskAdding={gridDto.gridOptions.ganttOptionDto?.allowTaskAdding}
|
||||
allowTaskUpdating={gridDto.gridOptions.ganttOptionDto?.allowTaskUpdating}
|
||||
allowTaskDeleting={gridDto.gridOptions.ganttOptionDto?.allowTaskDeleting}
|
||||
|
||||
allowDependencyAdding={gridDto.gridOptions.ganttOptionDto?.allowDependencyAdding}
|
||||
allowDependencyDeleting={
|
||||
gridDto.gridOptions.ganttOptionDto?.allowDependencyDeleting
|
||||
}
|
||||
allowResourceAdding={gridDto.gridOptions.ganttOptionDto?.allowResourceAdding}
|
||||
allowResourceDeleting={gridDto.gridOptions.ganttOptionDto?.allowResourceDeleting}
|
||||
/>
|
||||
|
||||
<FilterRow visible={gridDto.gridOptions.filterRowDto?.visible}></FilterRow>
|
||||
|
|
|
|||
|
|
@ -257,9 +257,9 @@ const SchedulerView = (props: SchedulerViewProps) => {
|
|||
</Toolbar>
|
||||
|
||||
<Editing
|
||||
allowAdding={gridDto.gridOptions.editingOptionDto?.allowAdding ?? false}
|
||||
allowUpdating={gridDto.gridOptions.editingOptionDto?.allowUpdating ?? false}
|
||||
allowDeleting={gridDto.gridOptions.editingOptionDto?.allowDeleting ?? false}
|
||||
allowAdding={gridDto.gridOptions.schedulerOptionDto?.allowAdding ?? false}
|
||||
allowUpdating={gridDto.gridOptions.schedulerOptionDto?.allowUpdating ?? false}
|
||||
allowDeleting={gridDto.gridOptions.schedulerOptionDto?.allowDeleting ?? false}
|
||||
allowResizing={gridDto.gridOptions.schedulerOptionDto?.allowResizing ?? false}
|
||||
allowDragging={gridDto.gridOptions.schedulerOptionDto?.allowDragging ?? false}
|
||||
/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue