Scheduler View
This commit is contained in:
parent
f5315a4aca
commit
9055657ef2
15 changed files with 472 additions and 146 deletions
|
|
@ -63,5 +63,25 @@ public class GanttOptionDto
|
||||||
/// İlerleme ifadesi (örn: "%50")
|
/// İlerleme ifadesi (örn: "%50")
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ProgressExpr { get; set; }
|
public string ProgressExpr { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bağlantılar için kullanılan field adı (örn: "predecessors")
|
||||||
|
/// </summary>
|
||||||
|
public bool AllowDependencyAdding { get; set; } = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bağlantılar için kullanılan field adı (örn: "predecessors")
|
||||||
|
/// </summary>
|
||||||
|
public bool AllowDependencyDeleting { get; set; } = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Kaynaklar için kullanılan field adı (örn: "resources")
|
||||||
|
/// </summary>
|
||||||
|
public bool AllowResourceAdding { get; set; } = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Kaynaklar için kullanılan field adı (örn: "resources")
|
||||||
|
/// </summary>
|
||||||
|
public bool AllowResourceDeleting { get; set; } = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ public class LayoutDto
|
||||||
public bool Chart { get; set; } = true;
|
public bool Chart { get; set; } = true;
|
||||||
public bool Tree { get; set; } = true;
|
public bool Tree { get; set; } = true;
|
||||||
public bool Gantt { get; set; } = true;
|
public bool Gantt { get; set; } = true;
|
||||||
|
public bool Scheduler { get; set; } = true;
|
||||||
public string DefaultLayout { get; set; } = "grid";
|
public string DefaultLayout { get; set; } = "grid";
|
||||||
public int CardLayoutColumn { get; set; } = 4;
|
public int CardLayoutColumn { get; set; } = 4;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,20 +8,61 @@ public class SchedulerOptionDto
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Text olarak gösterilecek field adı (örn: "title")
|
/// Text olarak gösterilecek field adı (örn: "title")
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string TextField { get; set; }
|
public string TextExpr { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Başlangıç tarihinin tutulduğu field adı (örn: "startDate")
|
/// Başlangıç tarihinin tutulduğu field adı (örn: "startDate")
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string StartDateField { get; set; }
|
public string StartDateExpr { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Bitiş tarihinin tutulduğu field adı (örn: "endDate")
|
/// Bitiş tarihinin tutulduğu field adı (örn: "endDate")
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string EndDateField { get; set; }
|
public string EndDateExpr { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Tüm gün etkinlikler için kullanılan field adı (örn: "allDay")
|
/// Tüm gün etkinlikler için kullanılan field adı (örn: "allDay")
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string AllDayField { get; set; }
|
public string AllDayExpr { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Tekrarlama kuralının tutulduğu field adı (örn: "recurrenceRule")
|
||||||
|
/// </summary>
|
||||||
|
public string RecurrenceRuleExpr { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Tekrarlama istisnasının tutulduğu field adı (örn: "recurrenceException")
|
||||||
|
/// </summary>
|
||||||
|
public string RecurrenceExceptionExpr { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Kaynaklar (örn: kaynaklar için kullanılan field adı, veri kaynağı vb.)
|
||||||
|
/// </summary>
|
||||||
|
public int StartDayHour { get; set; } = 8;
|
||||||
|
/// <summary>
|
||||||
|
/// Günün bitiş saati (örn: "18" = 18:00)
|
||||||
|
/// </summary>
|
||||||
|
public int EndDayHour { get; set; } = 18;
|
||||||
|
/// <summary>
|
||||||
|
/// Varsayılan görünüm (örn: "week", "month", "day")
|
||||||
|
/// </summary>
|
||||||
|
public string DefaultView { get; set; } = "week";
|
||||||
|
/// <summary>
|
||||||
|
/// Tüm gün panelini gösterme durumu
|
||||||
|
/// </summary>
|
||||||
|
public bool ShowAllDayPanel { get; set; } = true;
|
||||||
|
/// <summary>
|
||||||
|
/// Hücre süresi (dakika cinsinden, örn: 30)
|
||||||
|
/// </summary>
|
||||||
|
public int CellDuration { get; set; } = 30;
|
||||||
|
/// <summary>
|
||||||
|
/// Haftanın ilk günü (örn: "0" = Pazar, "1" = Pazartesi)
|
||||||
|
/// </summary>
|
||||||
|
public int FirstDayOfWeek { get; set; } = 1;
|
||||||
|
/// <summary>
|
||||||
|
/// Kaydırma çubuğunun çapraz kaydırma durumunu belirtir
|
||||||
|
/// </summary>
|
||||||
|
public bool CrossScrollingEnabled { get; set; } = false;
|
||||||
|
/// <summary>
|
||||||
|
/// Etkinliklerin yeniden boyutlandırılmasına izin verilip verilmediğini belirtir
|
||||||
|
/// </summary>
|
||||||
|
public bool AllowResizing { get; set; } = false;
|
||||||
|
/// <summary>
|
||||||
|
/// Etkinliklerin sürüklenip bırakılmasına izin verilip verilmediğini belirtir
|
||||||
|
/// </summary>
|
||||||
|
public bool AllowDragging { get; set; } = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3817,6 +3817,12 @@
|
||||||
"en": "Full Height",
|
"en": "Full Height",
|
||||||
"tr": "Tam Yükseklik"
|
"tr": "Tam Yükseklik"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.DetailsLayoutDto.SchedulerLayout",
|
||||||
|
"en": "Scheduler Layout",
|
||||||
|
"tr": "Zamanlayıcı Düzeni"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"resourceName": "Platform",
|
"resourceName": "Platform",
|
||||||
"key": "ListForms.ListFormEdit.DetailsLayoutDto.GanttLayout",
|
"key": "ListForms.ListFormEdit.DetailsLayoutDto.GanttLayout",
|
||||||
|
|
@ -4645,6 +4651,30 @@
|
||||||
"en": "Auto Expand All",
|
"en": "Auto Expand All",
|
||||||
"tr": "Otomatik Tümünü Genişlet"
|
"tr": "Otomatik Tümünü Genişlet"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.AllowDependencyAdding",
|
||||||
|
"en": "Allow Dependency Adding",
|
||||||
|
"tr": "Bağımlılık Ekleme İzni"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.AllowDependencyDeleting",
|
||||||
|
"en": "Allow Dependency Deleting",
|
||||||
|
"tr": "Bağımlılık Silme İzni"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.AllowResourceAdding",
|
||||||
|
"en": "Allow Resource Adding",
|
||||||
|
"tr": "Kaynak Ekleme İzni"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.AllowResourceDeleting",
|
||||||
|
"en": "Allow Resource Deleting",
|
||||||
|
"tr": "Kaynak Silme İzni"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"resourceName": "Platform",
|
"resourceName": "Platform",
|
||||||
"key": "ListForms.ListFormEdit.SelectionMode",
|
"key": "ListForms.ListFormEdit.SelectionMode",
|
||||||
|
|
@ -10020,6 +10050,168 @@
|
||||||
"key": "App.Accounting.CheckNote",
|
"key": "App.Accounting.CheckNote",
|
||||||
"tr": "Çek & Senet",
|
"tr": "Çek & Senet",
|
||||||
"en": "Check & Notes"
|
"en": "Check & Notes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.BasicSettings",
|
||||||
|
"tr": "Temel Ayarlar",
|
||||||
|
"en": "Basic Settings"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.TextExpr",
|
||||||
|
"tr": "Metin İfadesi",
|
||||||
|
"en": "Text Expression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.StartDateExpr",
|
||||||
|
"tr": "Başlangıç Tarihi İfadesi",
|
||||||
|
"en": "Start Date Expression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.EndDateExpr",
|
||||||
|
"tr": "Bitiş Tarihi İfadesi",
|
||||||
|
"en": "End Date Expression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.AllDayExpr",
|
||||||
|
"tr": "Tüm Gün İfadesi",
|
||||||
|
"en": "All Day Expression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.RecurrenceSettings",
|
||||||
|
"tr": "Tekrarlama Ayarları",
|
||||||
|
"en": "Recurrence Settings"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.RecurrenceRuleExpr",
|
||||||
|
"tr": "Tekrarlama Kuralı İfadesi",
|
||||||
|
"en": "Recurrence Rule Expression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.RecurrenceExceptionExpr",
|
||||||
|
"tr": "Tekrarlama İstisnası İfadesi",
|
||||||
|
"en": "Recurrence Exception Expression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.ViewSettings",
|
||||||
|
"tr": "Görünüm Ayarları",
|
||||||
|
"en": "View Settings"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.DefaultView",
|
||||||
|
"tr": "Varsayılan Görünüm",
|
||||||
|
"en": "Default View"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.FirstDayOfWeek",
|
||||||
|
"tr": "Haftanın İlk Günü",
|
||||||
|
"en": "First Day of Week"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.StartDayHour",
|
||||||
|
"tr": "Günün Başlangıç Saati",
|
||||||
|
"en": "Start Day Hour"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.EndDayHour",
|
||||||
|
"tr": "Günün Bitiş Saati",
|
||||||
|
"en": "End Day Hour"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.CellDuration",
|
||||||
|
"tr": "Hücre Süresi",
|
||||||
|
"en": "Cell Duration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.InteractionSettings",
|
||||||
|
"tr": "Etkileşim Ayarları",
|
||||||
|
"en": "Interaction Settings"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.ShowAllDayPanel",
|
||||||
|
"tr": "Tüm Gün Panelini Göster",
|
||||||
|
"en": "Show All Day Panel"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.CrossScrollingEnabled",
|
||||||
|
"tr": "Çapraz Kaydırma Etkin",
|
||||||
|
"en": "Cross Scrolling Enabled"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.AllowResizing",
|
||||||
|
"tr": "Boyutlandırmaya İzin Ver",
|
||||||
|
"en": "Allow Resizing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.AllowDragging",
|
||||||
|
"tr": "Sürüklemeye İzin Ver",
|
||||||
|
"en": "Allow Dragging"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.Day",
|
||||||
|
"tr": "Gün",
|
||||||
|
"en": "Day"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.Week",
|
||||||
|
"tr": "Hafta",
|
||||||
|
"en": "Week"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.WorkWeek",
|
||||||
|
"tr": "İş Haftası",
|
||||||
|
"en": "WorkWeek"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.Month",
|
||||||
|
"tr": "Ay",
|
||||||
|
"en": "Month"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.TimelineDay",
|
||||||
|
"tr": "Gün Çizelgesi",
|
||||||
|
"en": "Timeline Day"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.TimelineWeek",
|
||||||
|
"tr": "Hafta Çizelgesi",
|
||||||
|
"en": "Timeline Week"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.TimelineMonth",
|
||||||
|
"tr": "Ay Çizelgesi",
|
||||||
|
"en": "Timeline Month"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.SchedulerOptions.Agenda",
|
||||||
|
"tr": "Ajanda",
|
||||||
|
"en": "Agenda"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -70,6 +70,7 @@ public static class SeederDefaults
|
||||||
Chart = true,
|
Chart = true,
|
||||||
Tree = true,
|
Tree = true,
|
||||||
Gantt = true,
|
Gantt = true,
|
||||||
|
Scheduler = true,
|
||||||
DefaultLayout = "grid",
|
DefaultLayout = "grid",
|
||||||
CardLayoutColumn = 4
|
CardLayoutColumn = 4
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
|
||||||
namespace Erp.Platform.Migrations
|
namespace Erp.Platform.Migrations
|
||||||
{
|
{
|
||||||
[DbContext(typeof(PlatformDbContext))]
|
[DbContext(typeof(PlatformDbContext))]
|
||||||
[Migration("20251202131047_Initial")]
|
[Migration("20251202182338_Initial")]
|
||||||
partial class Initial
|
partial class Initial
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|
@ -6274,6 +6274,9 @@ namespace Erp.Platform.Migrations
|
||||||
b.Property<string>("RowJson")
|
b.Property<string>("RowJson")
|
||||||
.HasColumnType("nvarchar(max)");
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("SchedulerOptionJson")
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
b.Property<string>("ScrollBarJson")
|
b.Property<string>("ScrollBarJson")
|
||||||
.HasColumnType("text");
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
|
@ -2247,6 +2247,7 @@ namespace Erp.Platform.Migrations
|
||||||
PivotOptionJson = table.Column<string>(type: "text", nullable: true),
|
PivotOptionJson = table.Column<string>(type: "text", nullable: true),
|
||||||
TreeOptionJson = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
TreeOptionJson = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
||||||
GanttOptionJson = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
GanttOptionJson = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
||||||
|
SchedulerOptionJson = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
||||||
FilterRowJson = table.Column<string>(type: "text", nullable: true),
|
FilterRowJson = table.Column<string>(type: "text", nullable: true),
|
||||||
RowJson = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
RowJson = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
||||||
HeaderFilterJson = table.Column<string>(type: "text", nullable: true),
|
HeaderFilterJson = table.Column<string>(type: "text", nullable: true),
|
||||||
|
|
@ -6271,6 +6271,9 @@ namespace Erp.Platform.Migrations
|
||||||
b.Property<string>("RowJson")
|
b.Property<string>("RowJson")
|
||||||
.HasColumnType("nvarchar(max)");
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("SchedulerOptionJson")
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
b.Property<string>("ScrollBarJson")
|
b.Property<string>("ScrollBarJson")
|
||||||
.HasColumnType("text");
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -402,6 +402,10 @@ export interface GanttOptionDto {
|
||||||
endExpr?: string
|
endExpr?: string
|
||||||
progressExpr?: string
|
progressExpr?: string
|
||||||
scaleType: GanttScaleType
|
scaleType: GanttScaleType
|
||||||
|
allowDependencyAdding?: boolean
|
||||||
|
allowDependencyDeleting?: boolean
|
||||||
|
allowResourceAdding?: boolean
|
||||||
|
allowResourceDeleting?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SchedulerOptionDto {
|
export interface SchedulerOptionDto {
|
||||||
|
|
@ -746,7 +750,7 @@ export interface SubFormDto {
|
||||||
|
|
||||||
export interface SubFormRelationDto {
|
export interface SubFormRelationDto {
|
||||||
parentFieldName: string
|
parentFieldName: string
|
||||||
dbType : DbTypeEnum
|
dbType: DbTypeEnum
|
||||||
childFieldName: string
|
childFieldName: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -366,6 +366,20 @@ function FormTabDetails(
|
||||||
component={Checkbox}
|
component={Checkbox}
|
||||||
/>
|
/>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
|
<FormItem
|
||||||
|
label={translate('::ListForms.ListFormEdit.DetailsLayoutDto.SchedulerLayout')}
|
||||||
|
invalid={errors.layoutDto?.scheduler && touched.layoutDto?.scheduler}
|
||||||
|
errorMessage={errors.layoutDto?.scheduler}
|
||||||
|
>
|
||||||
|
<Field
|
||||||
|
className="w-20"
|
||||||
|
autoComplete="off"
|
||||||
|
name="layoutDto.scheduler"
|
||||||
|
placeholder={translate('::ListForms.ListFormEdit.DetailsLayoutDto.SchedulerLayout')}
|
||||||
|
component={Checkbox}
|
||||||
|
/>
|
||||||
|
</FormItem>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<FormItem
|
<FormItem
|
||||||
|
|
|
||||||
|
|
@ -314,6 +314,63 @@ function FormTabGantt(props: FormEditProps) {
|
||||||
)}
|
)}
|
||||||
</Field>
|
</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.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>
|
||||||
|
|
||||||
<Button block variant="solid" loading={isSubmitting} type="submit" className="my-2">
|
<Button block variant="solid" loading={isSubmitting} type="submit" className="my-2">
|
||||||
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||||
</Button>
|
</Button>
|
||||||
|
|
|
||||||
|
|
@ -20,30 +20,10 @@ import { useEffect, useState } from 'react'
|
||||||
import { getListFormFields } from '@/services/admin/list-form-field.service'
|
import { getListFormFields } from '@/services/admin/list-form-field.service'
|
||||||
import { groupBy } from 'lodash'
|
import { groupBy } from 'lodash'
|
||||||
import { useParams } from 'react-router-dom'
|
import { useParams } from 'react-router-dom'
|
||||||
|
import { firstDayOfWeekOptions, schedulerViewOptions } from './options'
|
||||||
|
|
||||||
const validationSchema = Yup.object().shape({})
|
const validationSchema = Yup.object().shape({})
|
||||||
|
|
||||||
const schedulerViewOptions = [
|
|
||||||
{ value: 'day', label: 'Day' },
|
|
||||||
{ value: 'week', label: 'Week' },
|
|
||||||
{ value: 'workWeek', label: 'Work Week' },
|
|
||||||
{ value: 'month', label: 'Month' },
|
|
||||||
{ value: 'timelineDay', label: 'Timeline Day' },
|
|
||||||
{ value: 'timelineWeek', label: 'Timeline Week' },
|
|
||||||
{ value: 'timelineMonth', label: 'Timeline Month' },
|
|
||||||
{ value: 'agenda', label: 'Agenda' },
|
|
||||||
]
|
|
||||||
|
|
||||||
const firstDayOfWeekOptions = [
|
|
||||||
{ value: 0, label: 'Sunday' },
|
|
||||||
{ value: 1, label: 'Monday' },
|
|
||||||
{ value: 2, label: 'Tuesday' },
|
|
||||||
{ value: 3, label: 'Wednesday' },
|
|
||||||
{ value: 4, label: 'Thursday' },
|
|
||||||
{ value: 5, label: 'Friday' },
|
|
||||||
{ value: 6, label: 'Saturday' },
|
|
||||||
]
|
|
||||||
|
|
||||||
function FormTabScheduler(props: FormEditProps) {
|
function FormTabScheduler(props: FormEditProps) {
|
||||||
const { listFormCode } = useParams()
|
const { listFormCode } = useParams()
|
||||||
const { translate } = useLocalization()
|
const { translate } = useLocalization()
|
||||||
|
|
@ -104,10 +84,10 @@ function FormTabScheduler(props: FormEditProps) {
|
||||||
<FormContainer size="sm">
|
<FormContainer size="sm">
|
||||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
|
||||||
<Card>
|
<Card>
|
||||||
<h5 className="mb-4">{translate('::SchedulerOptions.BasicSettings')}</h5>
|
<h5 className="mb-4">{translate('::ListForms.SchedulerOptions.BasicSettings')}</h5>
|
||||||
|
|
||||||
<FormItem
|
<FormItem
|
||||||
label={translate('::SchedulerOptions.TextField')}
|
label={translate('::ListForms.SchedulerOptions.TextExpr')}
|
||||||
invalid={
|
invalid={
|
||||||
errors.schedulerOptionDto?.textExpr && touched.schedulerOptionDto?.textExpr
|
errors.schedulerOptionDto?.textExpr && touched.schedulerOptionDto?.textExpr
|
||||||
}
|
}
|
||||||
|
|
@ -121,15 +101,16 @@ function FormTabScheduler(props: FormEditProps) {
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={fieldList}
|
options={fieldList}
|
||||||
value={fieldList.find(
|
value={fieldList.find(
|
||||||
(option) => option.value === values.schedulerOptionDto?.textExpr,
|
(option) => option.value === values.schedulerOptionDto.textExpr,
|
||||||
)}
|
)}
|
||||||
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Field>
|
</Field>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem
|
<FormItem
|
||||||
label={translate('::SchedulerOptions.StartDateField')}
|
label={translate('::ListForms.SchedulerOptions.StartDateExpr')}
|
||||||
invalid={
|
invalid={
|
||||||
errors.schedulerOptionDto?.startDateExpr &&
|
errors.schedulerOptionDto?.startDateExpr &&
|
||||||
touched.schedulerOptionDto?.startDateExpr
|
touched.schedulerOptionDto?.startDateExpr
|
||||||
|
|
@ -146,13 +127,14 @@ function FormTabScheduler(props: FormEditProps) {
|
||||||
value={fieldList.find(
|
value={fieldList.find(
|
||||||
(option) => option.value === values.schedulerOptionDto?.startDateExpr,
|
(option) => option.value === values.schedulerOptionDto?.startDateExpr,
|
||||||
)}
|
)}
|
||||||
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Field>
|
</Field>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem
|
<FormItem
|
||||||
label={translate('::SchedulerOptions.EndDateField')}
|
label={translate('::ListForms.SchedulerOptions.EndDateExpr')}
|
||||||
invalid={
|
invalid={
|
||||||
errors.schedulerOptionDto?.endDateExpr &&
|
errors.schedulerOptionDto?.endDateExpr &&
|
||||||
touched.schedulerOptionDto?.endDateExpr
|
touched.schedulerOptionDto?.endDateExpr
|
||||||
|
|
@ -169,13 +151,14 @@ function FormTabScheduler(props: FormEditProps) {
|
||||||
value={fieldList.find(
|
value={fieldList.find(
|
||||||
(option) => option.value === values.schedulerOptionDto?.endDateExpr,
|
(option) => option.value === values.schedulerOptionDto?.endDateExpr,
|
||||||
)}
|
)}
|
||||||
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Field>
|
</Field>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem
|
<FormItem
|
||||||
label={translate('::SchedulerOptions.AllDayField')}
|
label={translate('::ListForms.SchedulerOptions.AllDayExpr')}
|
||||||
invalid={
|
invalid={
|
||||||
errors.schedulerOptionDto?.allDayExpr && touched.schedulerOptionDto?.allDayExpr
|
errors.schedulerOptionDto?.allDayExpr && touched.schedulerOptionDto?.allDayExpr
|
||||||
}
|
}
|
||||||
|
|
@ -191,6 +174,7 @@ function FormTabScheduler(props: FormEditProps) {
|
||||||
value={fieldList.find(
|
value={fieldList.find(
|
||||||
(option) => option.value === values.schedulerOptionDto?.allDayExpr,
|
(option) => option.value === values.schedulerOptionDto?.allDayExpr,
|
||||||
)}
|
)}
|
||||||
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Field>
|
</Field>
|
||||||
|
|
@ -198,10 +182,12 @@ function FormTabScheduler(props: FormEditProps) {
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<Card className="mt-4">
|
<Card className="mt-4">
|
||||||
<h5 className="mb-4">{translate('::SchedulerOptions.RecurrenceSettings')}</h5>
|
<h5 className="mb-4">
|
||||||
|
{translate('::ListForms.SchedulerOptions.RecurrenceSettings')}
|
||||||
|
</h5>
|
||||||
|
|
||||||
<FormItem
|
<FormItem
|
||||||
label={translate('::SchedulerOptions.RecurrenceRuleField')}
|
label={translate('::ListForms.SchedulerOptions.RecurrenceRuleExpr')}
|
||||||
invalid={
|
invalid={
|
||||||
errors.schedulerOptionDto?.recurrenceRuleExpr &&
|
errors.schedulerOptionDto?.recurrenceRuleExpr &&
|
||||||
touched.schedulerOptionDto?.recurrenceRuleExpr
|
touched.schedulerOptionDto?.recurrenceRuleExpr
|
||||||
|
|
@ -219,13 +205,14 @@ function FormTabScheduler(props: FormEditProps) {
|
||||||
(option) =>
|
(option) =>
|
||||||
option.value === values.schedulerOptionDto?.recurrenceRuleExpr,
|
option.value === values.schedulerOptionDto?.recurrenceRuleExpr,
|
||||||
)}
|
)}
|
||||||
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Field>
|
</Field>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem
|
<FormItem
|
||||||
label={translate('::SchedulerOptions.RecurrenceExceptionField')}
|
label={translate('::ListForms.SchedulerOptions.RecurrenceExceptionExpr')}
|
||||||
invalid={
|
invalid={
|
||||||
errors.schedulerOptionDto?.recurrenceExceptionExpr &&
|
errors.schedulerOptionDto?.recurrenceExceptionExpr &&
|
||||||
touched.schedulerOptionDto?.recurrenceExceptionExpr
|
touched.schedulerOptionDto?.recurrenceExceptionExpr
|
||||||
|
|
@ -243,6 +230,7 @@ function FormTabScheduler(props: FormEditProps) {
|
||||||
(option) =>
|
(option) =>
|
||||||
option.value === values.schedulerOptionDto?.recurrenceExceptionExpr,
|
option.value === values.schedulerOptionDto?.recurrenceExceptionExpr,
|
||||||
)}
|
)}
|
||||||
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Field>
|
</Field>
|
||||||
|
|
@ -250,9 +238,9 @@ function FormTabScheduler(props: FormEditProps) {
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<Card className="mt-4">
|
<Card className="mt-4">
|
||||||
<h5 className="mb-4">{translate('::SchedulerOptions.ViewSettings')}</h5>
|
<h5 className="mb-4">{translate('::ListForms.SchedulerOptions.ViewSettings')}</h5>
|
||||||
|
|
||||||
<FormItem label={translate('::SchedulerOptions.DefaultView')}>
|
<FormItem label={translate('::ListForms.SchedulerOptions.DefaultView')}>
|
||||||
<Field name="schedulerOptionDto.defaultView">
|
<Field name="schedulerOptionDto.defaultView">
|
||||||
{({ field, form }: FieldProps) => (
|
{({ field, form }: FieldProps) => (
|
||||||
<Select
|
<Select
|
||||||
|
|
@ -262,12 +250,13 @@ function FormTabScheduler(props: FormEditProps) {
|
||||||
value={schedulerViewOptions.find(
|
value={schedulerViewOptions.find(
|
||||||
(option) => option.value === values.schedulerOptionDto?.defaultView,
|
(option) => option.value === values.schedulerOptionDto?.defaultView,
|
||||||
)}
|
)}
|
||||||
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Field>
|
</Field>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem label={translate('::SchedulerOptions.FirstDayOfWeek')}>
|
<FormItem label={translate('::ListForms.SchedulerOptions.FirstDayOfWeek')}>
|
||||||
<Field name="schedulerOptionDto.firstDayOfWeek">
|
<Field name="schedulerOptionDto.firstDayOfWeek">
|
||||||
{({ field, form }: FieldProps) => (
|
{({ field, form }: FieldProps) => (
|
||||||
<Select
|
<Select
|
||||||
|
|
@ -277,110 +266,81 @@ function FormTabScheduler(props: FormEditProps) {
|
||||||
value={firstDayOfWeekOptions.find(
|
value={firstDayOfWeekOptions.find(
|
||||||
(option) => option.value === values.schedulerOptionDto?.firstDayOfWeek,
|
(option) => option.value === values.schedulerOptionDto?.firstDayOfWeek,
|
||||||
)}
|
)}
|
||||||
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Field>
|
</Field>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem label={translate('::SchedulerOptions.StartDayHour')}>
|
<FormItem
|
||||||
<Field name="schedulerOptionDto.startDayHour">
|
label={translate('::ListForms.SchedulerOptions.StartDayHour')}
|
||||||
{({ field, form }: FieldProps) => (
|
invalid={errors.schedulerOptionDto?.startDayHour && touched.schedulerOptionDto?.startDayHour}
|
||||||
<Input
|
errorMessage={errors.schedulerOptionDto?.startDayHour}
|
||||||
|
>
|
||||||
|
<Field
|
||||||
type="number"
|
type="number"
|
||||||
field={field}
|
autoComplete="off"
|
||||||
form={form}
|
name="schedulerOptionDto.startDayHour"
|
||||||
placeholder="8"
|
placeholder="8"
|
||||||
|
component={Input}
|
||||||
min={0}
|
min={0}
|
||||||
max={23}
|
max={23}
|
||||||
/>
|
/>
|
||||||
)}
|
|
||||||
</Field>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem label={translate('::SchedulerOptions.EndDayHour')}>
|
<FormItem
|
||||||
<Field name="schedulerOptionDto.endDayHour">
|
label={translate('::ListForms.SchedulerOptions.EndDayHour')}
|
||||||
{({ field, form }: FieldProps) => (
|
invalid={errors.schedulerOptionDto?.endDayHour && touched.schedulerOptionDto?.endDayHour}
|
||||||
<Input
|
errorMessage={errors.schedulerOptionDto?.endDayHour}
|
||||||
|
>
|
||||||
|
<Field
|
||||||
type="number"
|
type="number"
|
||||||
field={field}
|
autoComplete="off"
|
||||||
form={form}
|
name="schedulerOptionDto.endDayHour"
|
||||||
placeholder="18"
|
placeholder="18"
|
||||||
|
component={Input}
|
||||||
min={0}
|
min={0}
|
||||||
max={24}
|
max={24}
|
||||||
/>
|
/>
|
||||||
)}
|
|
||||||
</Field>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem label={translate('::SchedulerOptions.CellDuration')}>
|
<FormItem
|
||||||
<Field name="schedulerOptionDto.cellDuration">
|
label={translate('::ListForms.SchedulerOptions.CellDuration')}
|
||||||
{({ field, form }: FieldProps) => (
|
invalid={errors.schedulerOptionDto?.cellDuration && touched.schedulerOptionDto?.cellDuration}
|
||||||
<Input
|
errorMessage={errors.schedulerOptionDto?.cellDuration}
|
||||||
|
>
|
||||||
|
<Field
|
||||||
type="number"
|
type="number"
|
||||||
field={field}
|
autoComplete="off"
|
||||||
form={form}
|
name="schedulerOptionDto.cellDuration"
|
||||||
|
component={Input}
|
||||||
placeholder="30"
|
placeholder="30"
|
||||||
min={5}
|
min={5}
|
||||||
step={5}
|
step={5}
|
||||||
/>
|
/>
|
||||||
)}
|
|
||||||
</Field>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<Card className="mt-4">
|
<Card className="mt-4">
|
||||||
<h5 className="mb-4">{translate('::SchedulerOptions.InteractionSettings')}</h5>
|
<h5 className="mb-4">
|
||||||
|
{translate('::ListForms.SchedulerOptions.InteractionSettings')}
|
||||||
|
</h5>
|
||||||
|
|
||||||
<FormItem>
|
|
||||||
<Field name="schedulerOptionDto.showAllDayPanel">
|
<FormItem label={translate('::ListForms.SchedulerOptions.ShowAllDayPanel')}>
|
||||||
{({ field, form }: FieldProps) => (
|
<Field name="schedulerOptionDto.showAllDayPanel" component={Checkbox} />
|
||||||
<Checkbox
|
|
||||||
{...field}
|
|
||||||
checked={values.schedulerOptionDto?.showAllDayPanel ?? true}
|
|
||||||
>
|
|
||||||
{translate('::SchedulerOptions.ShowAllDayPanel')}
|
|
||||||
</Checkbox>
|
|
||||||
)}
|
|
||||||
</Field>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem>
|
<FormItem label={translate('::ListForms.SchedulerOptions.CrossScrollingEnabled')}>
|
||||||
<Field name="schedulerOptionDto.crossScrollingEnabled">
|
<Field name="schedulerOptionDto.crossScrollingEnabled" component={Checkbox} />
|
||||||
{({ field, form }: FieldProps) => (
|
|
||||||
<Checkbox
|
|
||||||
{...field}
|
|
||||||
checked={values.schedulerOptionDto?.crossScrollingEnabled ?? false}
|
|
||||||
>
|
|
||||||
{translate('::SchedulerOptions.CrossScrollingEnabled')}
|
|
||||||
</Checkbox>
|
|
||||||
)}
|
|
||||||
</Field>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem>
|
<FormItem label={translate('::ListForms.SchedulerOptions.AllowResizing')}>
|
||||||
<Field name="schedulerOptionDto.allowResizing">
|
<Field name="schedulerOptionDto.allowResizing" component={Checkbox} />
|
||||||
{({ field, form }: FieldProps) => (
|
|
||||||
<Checkbox
|
|
||||||
{...field}
|
|
||||||
checked={values.schedulerOptionDto?.allowResizing ?? false}
|
|
||||||
>
|
|
||||||
{translate('::SchedulerOptions.AllowResizing')}
|
|
||||||
</Checkbox>
|
|
||||||
)}
|
|
||||||
</Field>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem>
|
<FormItem label={translate('::ListForms.SchedulerOptions.AllowDragging')}>
|
||||||
<Field name="schedulerOptionDto.allowDragging">
|
<Field name="schedulerOptionDto.allowDragging" component={Checkbox} />
|
||||||
{({ field, form }: FieldProps) => (
|
|
||||||
<Checkbox
|
|
||||||
{...field}
|
|
||||||
checked={values.schedulerOptionDto?.allowDragging ?? false}
|
|
||||||
>
|
|
||||||
{translate('::SchedulerOptions.AllowDragging')}
|
|
||||||
</Checkbox>
|
|
||||||
)}
|
|
||||||
</Field>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -405,6 +405,33 @@ export const chartBreakStyleLineListOptions = [
|
||||||
{ value: 'waved', label: 'Waved' },
|
{ value: 'waved', label: 'Waved' },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
export const colSpanOptions = colSpan.map((span) => ({
|
||||||
|
value: span,
|
||||||
|
label: span,
|
||||||
|
}))
|
||||||
|
export const gantScaleOptions = enumToList<string>(GanttScaleTypeEnum)
|
||||||
|
|
||||||
|
export const schedulerViewOptions = [
|
||||||
|
{ value: 'day', label: 'Day' },
|
||||||
|
{ value: 'week', label: 'Week' },
|
||||||
|
{ value: 'workWeek', label: 'Work Week' },
|
||||||
|
{ value: 'month', label: 'Month' },
|
||||||
|
{ value: 'timelineDay', label: 'Timeline Day' },
|
||||||
|
{ value: 'timelineWeek', label: 'Timeline Week' },
|
||||||
|
{ value: 'timelineMonth', label: 'Timeline Month' },
|
||||||
|
{ value: 'agenda', label: 'Agenda' },
|
||||||
|
]
|
||||||
|
|
||||||
|
export const firstDayOfWeekOptions = [
|
||||||
|
{ value: 0, label: 'Sunday' },
|
||||||
|
{ value: 1, label: 'Monday' },
|
||||||
|
{ value: 2, label: 'Tuesday' },
|
||||||
|
{ value: 3, label: 'Wednesday' },
|
||||||
|
{ value: 4, label: 'Thursday' },
|
||||||
|
{ value: 5, label: 'Friday' },
|
||||||
|
{ value: 6, label: 'Saturday' },
|
||||||
|
]
|
||||||
|
|
||||||
export const dbSourceTypeOptions = enumToList(DbTypeEnum)
|
export const dbSourceTypeOptions = enumToList(DbTypeEnum)
|
||||||
export const dataSourceTypeOptions = enumToList(DataSourceTypeEnum)
|
export const dataSourceTypeOptions = enumToList(DataSourceTypeEnum)
|
||||||
export const selectCommandTypeOptions = enumToList(SelectCommandTypeEnum)
|
export const selectCommandTypeOptions = enumToList(SelectCommandTypeEnum)
|
||||||
|
|
@ -433,9 +460,3 @@ export const widgetIconOptions = iconList.map((icon) => ({
|
||||||
value: icon,
|
value: icon,
|
||||||
label: icon,
|
label: icon,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
export const colSpanOptions = colSpan.map((span) => ({
|
|
||||||
value: span,
|
|
||||||
label: span,
|
|
||||||
}))
|
|
||||||
export const gantScaleOptions = enumToList<string>(GanttScaleTypeEnum)
|
|
||||||
|
|
|
||||||
|
|
@ -279,7 +279,17 @@ const GanttView = (props: GanttViewProps) => {
|
||||||
<Item location="after" widget="dxButton" options={getSettingButtonOptions()} />
|
<Item location="after" widget="dxButton" options={getSettingButtonOptions()} />
|
||||||
</Toolbar>
|
</Toolbar>
|
||||||
|
|
||||||
<Editing enabled={false} />
|
<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}
|
||||||
|
/>
|
||||||
|
|
||||||
<FilterRow visible={gridDto.gridOptions.filterRowDto?.visible}></FilterRow>
|
<FilterRow visible={gridDto.gridOptions.filterRowDto?.visible}></FilterRow>
|
||||||
<HeaderFilter visible={gridDto.gridOptions.headerFilterDto.visible}></HeaderFilter>
|
<HeaderFilter visible={gridDto.gridOptions.headerFilterDto.visible}></HeaderFilter>
|
||||||
<Sorting mode={gridDto.gridOptions?.sortMode}></Sorting>
|
<Sorting mode={gridDto.gridOptions?.sortMode}></Sorting>
|
||||||
|
|
|
||||||
|
|
@ -155,8 +155,6 @@ const SchedulerView = (props: SchedulerViewProps) => {
|
||||||
title={translate('::' + gridDto?.gridOptions.title)}
|
title={translate('::' + gridDto?.gridOptions.title)}
|
||||||
defaultTitle="Erp Platform"
|
defaultTitle="Erp Platform"
|
||||||
>
|
>
|
||||||
<link rel="stylesheet" href="/css/scheduler/dx.common.css" />
|
|
||||||
<link rel="stylesheet" href="/css/scheduler/dx.light.css" />
|
|
||||||
</Helmet>
|
</Helmet>
|
||||||
)}
|
)}
|
||||||
{!gridDto && (
|
{!gridDto && (
|
||||||
|
|
@ -222,26 +220,26 @@ const SchedulerView = (props: SchedulerViewProps) => {
|
||||||
allowDragging={gridDto.gridOptions.schedulerOptionDto?.allowDragging ?? false}
|
allowDragging={gridDto.gridOptions.schedulerOptionDto?.allowDragging ?? false}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<View type="day" name={translate('::Day')} />
|
<View type="day" name={translate('::ListForms.SchedulerOptions.Day')} />
|
||||||
<View type="week" name={translate('::Week')} />
|
<View type="week" name={translate('::ListForms.SchedulerOptions.Week')} />
|
||||||
<View type="workWeek" name={translate('::WorkWeek')} />
|
<View type="workWeek" name={translate('::ListForms.SchedulerOptions.WorkWeek')} />
|
||||||
<View type="month" name={translate('::Month')} />
|
<View type="month" name={translate('::ListForms.SchedulerOptions.Month')} />
|
||||||
<View
|
<View
|
||||||
type="timelineDay"
|
type="timelineDay"
|
||||||
name={translate('::TimelineDay')}
|
name={translate('::ListForms.SchedulerOptions.TimelineDay')}
|
||||||
maxAppointmentsPerCell="unlimited"
|
maxAppointmentsPerCell="unlimited"
|
||||||
/>
|
/>
|
||||||
<View
|
<View
|
||||||
type="timelineWeek"
|
type="timelineWeek"
|
||||||
name={translate('::TimelineWeek')}
|
name={translate('::ListForms.SchedulerOptions.TimelineWeek')}
|
||||||
maxAppointmentsPerCell="unlimited"
|
maxAppointmentsPerCell="unlimited"
|
||||||
/>
|
/>
|
||||||
<View
|
<View
|
||||||
type="timelineMonth"
|
type="timelineMonth"
|
||||||
name={translate('::TimelineMonth')}
|
name={translate('::ListForms.SchedulerOptions.TimelineMonth')}
|
||||||
maxAppointmentsPerCell="unlimited"
|
maxAppointmentsPerCell="unlimited"
|
||||||
/>
|
/>
|
||||||
<View type="agenda" name={translate('::Agenda')} />
|
<View type="agenda" name={translate('::ListForms.SchedulerOptions.Agenda')} />
|
||||||
|
|
||||||
{gridDto.gridOptions.schedulerOptionDto?.resources?.map((resource, index) => (
|
{gridDto.gridOptions.schedulerOptionDto?.resources?.map((resource, index) => (
|
||||||
<Resource
|
<Resource
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue