Listelerdeki Lookupların localization özelliği

This commit is contained in:
Sedat Öztürk 2026-07-31 23:52:32 +03:00
parent f8dcf25b26
commit 2eef3ead35
9 changed files with 1169 additions and 457 deletions

View file

@ -17094,6 +17094,24 @@
"en": "Tags", "en": "Tags",
"tr": "Etiketler" "tr": "Etiketler"
}, },
{
"resourceName": "Platform",
"key": "App.Listform.ListformField.Assignees",
"en": "Assignees",
"tr": "Atananlar"
},
{
"resourceName": "Platform",
"key": "App.Listform.ListformField.Completed",
"en": "Completed",
"tr": "Tamamlandı"
},
{
"resourceName": "Platform",
"key": "App.Listform.ListformField.SortOrder",
"en": "Sort Order",
"tr": "Sıralama"
},
{ {
"resourceName": "Platform", "resourceName": "Platform",
"key": "App.Listform.ListformField.Target", "key": "App.Listform.ListformField.Target",
@ -20561,6 +20579,648 @@
"key": "App.UpdateCheckFailed", "key": "App.UpdateCheckFailed",
"en": "Update check failed.", "en": "Update check failed.",
"tr": "Güncelleme kontrolü başarısız" "tr": "Güncelleme kontrolü başarısız"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.AbpAccount",
"en": "AbpAccount",
"tr": "AbpAccount"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Active",
"en": "Active",
"tr": "Aktif"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.All",
"en": "All",
"tr": "Tümü"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Announcement",
"en": "Announcement",
"tr": "Duyuru"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.AnsiString",
"en": "ANSI String",
"tr": "ANSI Metin"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.AnsiStringFixedLength",
"en": "ANSI Fixed-Length String",
"tr": "ANSI Sabit Uzunluklu Metin"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Authenticated",
"en": "Authenticated",
"tr": "Kimliği Doğrulanmış"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Backlog",
"en": "Backlog",
"tr": "Bekleyen İşler"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.BackupWorker",
"en": "Backup Worker",
"tr": "Yedekleme İşçisi"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.BiggerThanReference",
"en": "Bigger Than Reference",
"tr": "Referanstan Büyük"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Binary",
"en": "Binary",
"tr": "İkili"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Bool",
"en": "Bool",
"tr": "Mantıksal"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Boolean",
"en": "Boolean",
"tr": "Mantıksal"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Both",
"en": "Both",
"tr": "Her İkisi"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Byte",
"en": "Byte",
"tr": "Bayt"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Cancelled",
"en": "Cancelled",
"tr": "İptal"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Chart",
"en": "Chart",
"tr": "Grafik"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.CodeReview",
"en": "Code Review",
"tr": "Kod İncelemesi"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Configuration",
"en": "Configuration",
"tr": "Yapılandırma"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Currency",
"en": "Currency",
"tr": "Para Birimi"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Custom",
"en": "Custom",
"tr": "Özel"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Daily",
"en": "Daily",
"tr": "Günlük"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Date",
"en": "Date",
"tr": "Tarih"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.DateTime",
"en": "Date Time",
"tr": "Tarih Saat"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.DateTime2",
"en": "Date Time 2",
"tr": "Tarih Saat 2"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.DateTimeOffset",
"en": "Date Time Offset",
"tr": "Tarih Saat Ofseti"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Decimal",
"en": "Decimal",
"tr": "Ondalık"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Default",
"en": "Default",
"tr": "Varsayılan"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Desktop",
"en": "Desktop",
"tr": "Masaüstü"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Double",
"en": "Double",
"tr": "Çift Hassasiyetli Sayı"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Draft",
"en": "Draft",
"tr": "Taslak"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Event",
"en": "Event",
"tr": "Etkinlik"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.External",
"en": "External",
"tr": "Harici"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Form",
"en": "Form",
"tr": "Form"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.General",
"en": "General",
"tr": "Genel"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Get",
"en": "GET",
"tr": "GET"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Global",
"en": "Global",
"tr": "Genel"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Guid",
"en": "GUID",
"tr": "GUID"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Host",
"en": "Host",
"tr": "Host"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Hourly",
"en": "Hourly",
"tr": "Saatlik"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.InProgress",
"en": "In Progress",
"tr": "Devam Ediyor"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Int16",
"en": "Int16",
"tr": "Int16"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Int32",
"en": "Int32",
"tr": "Int32"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Int64",
"en": "Int64",
"tr": "Int64"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Internal",
"en": "Internal",
"tr": "Dahili"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.List",
"en": "List",
"tr": "Liste"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Mail",
"en": "Mail",
"tr": "E-posta"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.MailQueueWorker",
"en": "Mail Queue Worker",
"tr": "E-posta Kuyruğu İşçisi"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Memo",
"en": "Memo",
"tr": "Not"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Minutely",
"en": "Minutely",
"tr": "Dakikalık"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Monthly",
"en": "Monthly",
"tr": "Aylık"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Mssql",
"en": "Microsoft SQL Server",
"tr": "Microsoft SQL Server"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.MultipleChoice",
"en": "Multiple Choice",
"tr": "Çoktan Seçmeli"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.None",
"en": "None",
"tr": "Yok"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Normal",
"en": "Normal",
"tr": "Normal"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.NotificationWorker",
"en": "Notification Worker",
"tr": "Bildirim İşçisi"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Number",
"en": "Number",
"tr": "Sayı"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Object",
"en": "Object",
"tr": "Nesne"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.OrganizationUnit",
"en": "Organization Unit",
"tr": "Organizasyon Birimi"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Passive",
"en": "Passive",
"tr": "Pasif"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Platform",
"en": "Platform",
"tr": "Platform"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Post",
"en": "POST",
"tr": "POST"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Postgresql",
"en": "PostgreSQL",
"tr": "PostgreSQL"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Protected",
"en": "Protected",
"tr": "Korumalı"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Public",
"en": "Public",
"tr": "Herkese Açık"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Published",
"en": "Published",
"tr": "Yayımlandı"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Query",
"en": "Query",
"tr": "Sorgu"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Rating",
"en": "Rating",
"tr": "Derecelendirme"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.ReadyToStart",
"en": "Ready to Start",
"tr": "Başlamaya Hazır"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Reference",
"en": "Reference",
"tr": "Referans"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Rocket",
"en": "Rocket",
"tr": "Rocket"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Role",
"en": "Role",
"tr": "Rol"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.SByte",
"en": "Signed Byte",
"tr": "İşaretli Bayt"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.SessionCleanupWorker",
"en": "Session Cleanup Worker",
"tr": "Oturum Temizleme İşçisi"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Single",
"en": "Single",
"tr": "Tek Hassasiyetli Sayı"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.SmallerThanReference",
"en": "Smaller Than Reference",
"tr": "Referanstan Küçük"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Sms",
"en": "SMS",
"tr": "SMS"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.SortMultiple",
"en": "Multiple",
"tr": "Çoklu"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.SortNone",
"en": "None",
"tr": "Yok"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.SortSingle",
"en": "Single",
"tr": "Tekli"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.SqlWorker",
"en": "SQL Worker",
"tr": "SQL İşçisi"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Staging",
"en": "Staging",
"tr": "Hazırlık"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.StoredProcedure",
"en": "Stored Procedure",
"tr": "Saklı Yordam"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.String",
"en": "String",
"tr": "Metin"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.StringFixedLength",
"en": "Fixed-Length String",
"tr": "Sabit Uzunluklu Metin"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Table",
"en": "Table",
"tr": "Tablo"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.TableValuedFunction",
"en": "Table-Valued Function",
"tr": "Tablo Değerli Fonksiyon"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Tenant",
"en": "Tenant",
"tr": "Kiracı"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Testing",
"en": "Testing",
"tr": "Test"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Text",
"en": "Text",
"tr": "Metin"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Textarea",
"en": "Text Area",
"tr": "Metin Alanı"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Time",
"en": "Time",
"tr": "Saat"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.UiActivity",
"en": "UI Activity",
"tr": "Arayüz Etkinliği"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.UInt16",
"en": "UInt16",
"tr": "UInt16"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.UInt32",
"en": "UInt32",
"tr": "UInt32"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.UInt64",
"en": "UInt64",
"tr": "UInt64"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.UiToast",
"en": "UI Toast",
"tr": "Arayüz Bildirimi"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Urgent",
"en": "Urgent",
"tr": "Acil"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.User",
"en": "User",
"tr": "Kullanıcı"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.VarNumeric",
"en": "Variable Numeric",
"tr": "Değişken Sayısal"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.View",
"en": "View",
"tr": "Görünüm"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.WhatsApp",
"en": "WhatsApp",
"tr": "WhatsApp"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Xml",
"en": "XML",
"tr": "XML"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Yearly",
"en": "Yearly",
"tr": "Yıllık"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.YesNo",
"en": "Yes/No",
"tr": "Evet/Hayır"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Telegram",
"en": "Telegram",
"tr": "Telegram"
},
{
"resourceName": "Platform",
"key": "App.StaticLookup.Dynamic",
"en": "Dynamic",
"tr": "Dinamik"
} }
] ]
} }

View file

@ -402,9 +402,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key=1, Name="Tenant" }, new () { Key=1, Name="App.StaticLookup.Tenant" },
new () { Key=2, Name="Host" }, new () { Key=2, Name="App.StaticLookup.Host" },
new () { Key=3, Name="Both" }, new () { Key=3, Name="App.StaticLookup.Both" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -566,10 +566,10 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key=0, Name="String" }, new () { Key=0, Name="App.StaticLookup.String" },
new () { Key=1, Name="Number" }, new () { Key=1, Name="App.StaticLookup.Number" },
new () { Key=2, Name="Boolean" }, new () { Key=2, Name="App.StaticLookup.Boolean" },
new () { Key=3, Name="DateTime" }, new () { Key=3, Name="App.StaticLookup.DateTime" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -1080,8 +1080,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key=PlatformConsts.AbpIdentity.User.InternalUserTypeDefaultValue, Name="Internal" }, new () { Key=PlatformConsts.AbpIdentity.User.InternalUserTypeDefaultValue, Name="App.StaticLookup.Internal" },
new () { Key=PlatformConsts.AbpIdentity.User.ExternalUserTypeDefaultValue, Name="External" }, new () { Key=PlatformConsts.AbpIdentity.User.ExternalUserTypeDefaultValue, Name="App.StaticLookup.External" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -1814,8 +1814,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "active", Name= "Aktif" }, new () { Key= "active", Name= "App.StaticLookup.Active" },
new () { Key= "passive", Name= "Pasif" }, new () { Key= "passive", Name= "App.StaticLookup.Passive" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -2339,9 +2339,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="User", Name="User" }, new () { Key="User", Name="App.StaticLookup.User" },
new () { Key="Role", Name="Role" }, new () { Key="Role", Name="App.StaticLookup.Role" },
new () { Key="Global", Name="Global" }, new () { Key="Global", Name="App.StaticLookup.Global" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -3046,10 +3046,10 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "general", Name= "General" }, new () { Key= "general", Name= "App.StaticLookup.General" },
new () { Key= "event", Name= "Event" }, new () { Key= "event", Name= "App.StaticLookup.Event" },
new () { Key= "urgent", Name= "Urgent" }, new () { Key= "urgent", Name= "App.StaticLookup.Urgent" },
new () { Key= "announcement", Name= "Announcement" }, new () { Key= "announcement", Name= "App.StaticLookup.Announcement" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -3576,8 +3576,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "active", Name= "Aktif" }, new () { Key= "active", Name= "App.StaticLookup.Active" },
new () { Key= "passive", Name= "Pasif" }, new () { Key= "passive", Name= "App.StaticLookup.Passive" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -3755,11 +3755,11 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "rating", Name= "Rating" }, new () { Key= "rating", Name= "App.StaticLookup.Rating" },
new () { Key= "multiple-choice", Name= "Multiple Choice" }, new () { Key= "multiple-choice", Name= "App.StaticLookup.MultipleChoice" },
new () { Key= "text", Name= "Text" }, new () { Key= "text", Name= "App.StaticLookup.Text" },
new () { Key= "textarea", Name= "Textarea" }, new () { Key= "textarea", Name= "App.StaticLookup.Textarea" },
new () { Key= "yes-no", Name= "Yes/No" }, new () { Key= "yes-no", Name= "App.StaticLookup.YesNo" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -5141,9 +5141,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="published",Name="Yayımlandı" }, new () { Key="published",Name="App.StaticLookup.Published" },
new () { Key="draft",Name="Taslak" }, new () { Key="draft",Name="App.StaticLookup.Draft" },
new () { Key="cancelled",Name="İptal" }, new () { Key="cancelled",Name="App.StaticLookup.Cancelled" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -5761,8 +5761,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="yearly", Name="Yearly" }, new () { Key="yearly", Name="App.StaticLookup.Yearly" },
new () { Key="monthly", Name="Monthly" }, new () { Key="monthly", Name="App.StaticLookup.Monthly" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -5980,7 +5980,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
new() { FieldName = "RequestDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, new() { FieldName = "RequestDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
new() { FieldName = "Importance", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value }, new() { FieldName = "Importance", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value },
new() { FieldName = "Urgency", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value }, new() { FieldName = "Urgency", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value },
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Backlog", CustomValueType = FieldCustomValueTypeEnum.Value }, new() { FieldName = "Status", FieldDbType = DbType.String, Value = "backlog", CustomValueType = FieldCustomValueTypeEnum.Value },
}) })
}); });
@ -6082,12 +6082,12 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Backlog", Name="Backlog" }, new () { Key="backlog", Name="App.StaticLookup.Backlog" },
new () { Key="Ready to Start", Name="Ready to Start" }, new () { Key="ready_to_start", Name="App.StaticLookup.ReadyToStart" },
new () { Key="In Progress", Name="In Progress" }, new () { Key="in_progress", Name="App.StaticLookup.InProgress" },
new () { Key="Code Review", Name="Code Review" }, new () { Key="code_review", Name="App.StaticLookup.CodeReview" },
new () { Key="Testing", Name="HiTestinggh" }, new () { Key="testing", Name="App.StaticLookup.Testing" },
new () { Key="Staging", Name="Staging" } new () { Key="staging", Name="App.StaticLookup.Staging" }
}), }),
}), }),
ColSpan = 1, ColSpan = 1,

View file

@ -2697,9 +2697,9 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Reference", Name="Referans" }, new () { Key="Reference", Name="App.StaticLookup.Reference" },
new () { Key="SmallerThanReference", Name="Referanstan Küçük" }, new () { Key="SmallerThanReference", Name="App.StaticLookup.SmallerThanReference" },
new () { Key="BiggerThanReference", Name="Referanstan Büyük" }, new () { Key="BiggerThanReference", Name="App.StaticLookup.BiggerThanReference" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -3040,12 +3040,12 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key=0, Name="None" }, new() { Key=0, Name="App.StaticLookup.None" },
new() { Key=1, Name="Yearly"}, new() { Key=1, Name="App.StaticLookup.Yearly"},
new() { Key=2, Name="Monthly"}, new() { Key=2, Name="App.StaticLookup.Monthly"},
new() { Key=3, Name="Daily"}, new() { Key=3, Name="App.StaticLookup.Daily"},
new() { Key=4, Name="Hourly"}, new() { Key=4, Name="App.StaticLookup.Hourly"},
new() { Key=5, Name="Minutely"}, new() { Key=5, Name="App.StaticLookup.Minutely"},
}), }),
}), }),
AllowSearch = true, AllowSearch = true,
@ -3782,11 +3782,11 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key="U", Name="User" }, new() { Key="U", Name="App.StaticLookup.User" },
new() { Key="T", Name="Tenant"}, new() { Key="T", Name="App.StaticLookup.Tenant"},
new() { Key="G", Name="Global"}, new() { Key="G", Name="App.StaticLookup.Global"},
new() { Key="C", Name="Configuration"}, new() { Key="C", Name="App.StaticLookup.Configuration"},
new() { Key="D", Name="Default"}, new() { Key="D", Name="App.StaticLookup.Default"},
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -3838,11 +3838,11 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key="Bool", Name="Bool" }, new() { Key="Bool", Name="App.StaticLookup.Bool" },
new() { Key="Number", Name="Number"}, new() { Key="Number", Name="App.StaticLookup.Number"},
new() { Key="Text", Name="Text"}, new() { Key="Text", Name="App.StaticLookup.Text"},
new() { Key="Memo", Name="Memo"}, new() { Key="Memo", Name="App.StaticLookup.Memo"},
new() { Key="List", Name="List"}, new() { Key="List", Name="App.StaticLookup.List"},
}) })
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -4227,8 +4227,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key="AbpAccount",Name="AbpAccount" }, new() { Key="AbpAccount",Name="App.StaticLookup.AbpAccount" },
new() { Key="Platform",Name="Platform" }, new() { Key="Platform",Name="App.StaticLookup.Platform" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -4402,8 +4402,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "Name", DisplayExpr = "Name",
ValueExpr = "Key", ValueExpr = "Key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key = 1, Name = "Mssql" }, new() { Key = 1, Name = "App.StaticLookup.Mssql" },
new() { Key = 2, Name = "Postgresql" }, new() { Key = 2, Name = "App.StaticLookup.Postgresql" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -4628,9 +4628,9 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key = ListFormTypeEnum.Form, Name = ListFormTypeEnum.Form.ToString() }, new() { Key = ListFormTypeEnum.Form, Name = "App.StaticLookup.Form" },
new() { Key = ListFormTypeEnum.List, Name = ListFormTypeEnum.List.ToString() }, new() { Key = ListFormTypeEnum.List, Name = "App.StaticLookup.List" },
new() { Key = ListFormTypeEnum.Chart, Name = ListFormTypeEnum.Chart.ToString() }, new() { Key = ListFormTypeEnum.Chart, Name = "App.StaticLookup.Chart" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -4660,11 +4660,11 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key=SelectCommandTypeEnum.Table,Name=SelectCommandTypeEnum.Table.ToString() }, new() { Key=SelectCommandTypeEnum.Table, Name="App.StaticLookup.Table" },
new() { Key=SelectCommandTypeEnum.View,Name=SelectCommandTypeEnum.View.ToString() }, new() { Key=SelectCommandTypeEnum.View, Name="App.StaticLookup.View" },
new() { Key=SelectCommandTypeEnum.TableValuedFunction,Name=SelectCommandTypeEnum.TableValuedFunction.ToString() }, new() { Key=SelectCommandTypeEnum.TableValuedFunction, Name="App.StaticLookup.TableValuedFunction" },
new() { Key=SelectCommandTypeEnum.Query,Name=SelectCommandTypeEnum.Query.ToString() }, new() { Key=SelectCommandTypeEnum.Query, Name="App.StaticLookup.Query" },
new() { Key=SelectCommandTypeEnum.StoredProcedure,Name=SelectCommandTypeEnum.StoredProcedure.ToString() }, new() { Key=SelectCommandTypeEnum.StoredProcedure, Name="App.StaticLookup.StoredProcedure" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -4757,33 +4757,33 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key=DbType.AnsiString,Name=DbType.AnsiString.ToString() }, new() { Key=DbType.AnsiString, Name="App.StaticLookup.AnsiString" },
new() { Key=DbType.Binary,Name=DbType.Binary.ToString() }, new() { Key=DbType.Binary, Name="App.StaticLookup.Binary" },
new() { Key=DbType.Byte,Name=DbType.Byte.ToString() }, new() { Key=DbType.Byte, Name="App.StaticLookup.Byte" },
new() { Key=DbType.Boolean,Name=DbType.Boolean.ToString() }, new() { Key=DbType.Boolean, Name="App.StaticLookup.Boolean" },
new() { Key=DbType.Currency,Name=DbType.Currency.ToString() }, new() { Key=DbType.Currency, Name="App.StaticLookup.Currency" },
new() { Key=DbType.Date,Name=DbType.Date.ToString() }, new() { Key=DbType.Date, Name="App.StaticLookup.Date" },
new() { Key=DbType.DateTime,Name=DbType.DateTime.ToString() }, new() { Key=DbType.DateTime, Name="App.StaticLookup.DateTime" },
new() { Key=DbType.Decimal,Name=DbType.Decimal.ToString() }, new() { Key=DbType.Decimal, Name="App.StaticLookup.Decimal" },
new() { Key=DbType.Double,Name=DbType.Double.ToString() }, new() { Key=DbType.Double, Name="App.StaticLookup.Double" },
new() { Key=DbType.Guid,Name=DbType.Guid.ToString() }, new() { Key=DbType.Guid, Name="App.StaticLookup.Guid" },
new() { Key=DbType.Int16,Name=DbType.Int16.ToString() }, new() { Key=DbType.Int16, Name="App.StaticLookup.Int16" },
new() { Key=DbType.Int32,Name=DbType.Int32.ToString() }, new() { Key=DbType.Int32, Name="App.StaticLookup.Int32" },
new() { Key=DbType.Int64,Name=DbType.Int64.ToString() }, new() { Key=DbType.Int64, Name="App.StaticLookup.Int64" },
new() { Key=DbType.Object,Name=DbType.Object.ToString() }, new() { Key=DbType.Object, Name="App.StaticLookup.Object" },
new() { Key=DbType.SByte,Name=DbType.SByte.ToString() }, new() { Key=DbType.SByte, Name="App.StaticLookup.SByte" },
new() { Key=DbType.Single,Name=DbType.Single.ToString() }, new() { Key=DbType.Single, Name="App.StaticLookup.Single" },
new() { Key=DbType.String,Name=DbType.String.ToString() }, new() { Key=DbType.String, Name="App.StaticLookup.String" },
new() { Key=DbType.Time,Name=DbType.Time.ToString() }, new() { Key=DbType.Time, Name="App.StaticLookup.Time" },
new() { Key=DbType.UInt16,Name=DbType.UInt16.ToString() }, new() { Key=DbType.UInt16, Name="App.StaticLookup.UInt16" },
new() { Key=DbType.UInt32,Name=DbType.UInt32.ToString() }, new() { Key=DbType.UInt32, Name="App.StaticLookup.UInt32" },
new() { Key=DbType.UInt64,Name=DbType.UInt64.ToString() }, new() { Key=DbType.UInt64, Name="App.StaticLookup.UInt64" },
new() { Key=DbType.VarNumeric,Name=DbType.VarNumeric.ToString() }, new() { Key=DbType.VarNumeric, Name="App.StaticLookup.VarNumeric" },
new() { Key=DbType.AnsiStringFixedLength,Name=DbType.AnsiStringFixedLength.ToString() }, new() { Key=DbType.AnsiStringFixedLength, Name="App.StaticLookup.AnsiStringFixedLength" },
new() { Key=DbType.StringFixedLength,Name=DbType.StringFixedLength.ToString() }, new() { Key=DbType.StringFixedLength, Name="App.StaticLookup.StringFixedLength" },
new() { Key=DbType.Xml,Name=DbType.Xml.ToString() }, new() { Key=DbType.Xml, Name="App.StaticLookup.Xml" },
new() { Key=DbType.DateTime2,Name=DbType.DateTime2.ToString() }, new() { Key=DbType.DateTime2, Name="App.StaticLookup.DateTime2" },
new() { Key=DbType.DateTimeOffset,Name=DbType.DateTimeOffset.ToString() }, new() { Key=DbType.DateTimeOffset, Name="App.StaticLookup.DateTimeOffset" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -4832,9 +4832,9 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key=GridOptions.SortModeNone,Name=GridOptions.SortModeNone }, new() { Key=GridOptions.SortModeNone, Name="App.StaticLookup.SortNone" },
new() { Key=GridOptions.SortModeSingle,Name=GridOptions.SortModeSingle }, new() { Key=GridOptions.SortModeSingle, Name="App.StaticLookup.SortSingle" },
new() { Key=GridOptions.SortModeMultiple,Name=GridOptions.SortModeMultiple }, new() { Key=GridOptions.SortModeMultiple, Name="App.StaticLookup.SortMultiple" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -5259,11 +5259,11 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="All",Name="All" }, new () { Key="All", Name="App.StaticLookup.All" },
new () { Key="User",Name="User" }, new () { Key="User", Name="App.StaticLookup.User" },
new () { Key="Role",Name="Role" }, new () { Key="Role", Name="App.StaticLookup.Role" },
new () { Key="OrganizationUnit",Name="OrganizationUnit" }, new () { Key="OrganizationUnit", Name="App.StaticLookup.OrganizationUnit" },
new () { Key="Custom",Name="Custom" }, new () { Key="Custom", Name="App.StaticLookup.Custom" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -5316,14 +5316,13 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Sms",Name="Sms" }, new () { Key="Sms", Name="App.StaticLookup.Sms" },
new () { Key="Mail",Name="Mail" }, new () { Key="Mail", Name="App.StaticLookup.Mail" },
new () { Key="WhatsApp",Name="WhatsApp" }, new () { Key="WhatsApp", Name="App.StaticLookup.WhatsApp" },
new () { Key="Rocket",Name="Rocket" }, new () { Key="Rocket", Name="App.StaticLookup.Rocket" },
new () { Key="UiActivity",Name="UiActivity" }, new () { Key="UiActivity", Name="App.StaticLookup.UiActivity" },
new () { Key="UiToast",Name="UiToast" }, new () { Key="UiToast", Name="App.StaticLookup.UiToast" },
new () { Key="Desktop",Name="Desktop" }, new () { Key="Desktop", Name="App.StaticLookup.Desktop" },
// new () { Key="Telegram",Name="Telegram" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -5534,14 +5533,13 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Sms",Name="Sms" }, new () { Key="Sms", Name="App.StaticLookup.Sms" },
new () { Key="Mail",Name="Mail" }, new () { Key="Mail", Name="App.StaticLookup.Mail" },
new () { Key="Rocket",Name="Rocket" }, new () { Key="Rocket", Name="App.StaticLookup.Rocket" },
new () { Key="Desktop",Name="Desktop" }, new () { Key="Desktop", Name="App.StaticLookup.Desktop" },
new () { Key="UiActivity",Name="UiActivity" }, new () { Key="UiActivity", Name="App.StaticLookup.UiActivity" },
new () { Key="UiToast",Name="UiToast" }, new () { Key="UiToast", Name="App.StaticLookup.UiToast" },
new () { Key="WhatsApp",Name="WhatsApp" }, new () { Key="WhatsApp", Name="App.StaticLookup.WhatsApp" },
// new () { Key="Telegram",Name="Telegram" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -5823,11 +5821,11 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key=1,Name="MailQueueWorker" }, new() { Key=1, Name="App.StaticLookup.MailQueueWorker" },
new() { Key=2,Name="SqlWorker" }, new() { Key=2, Name="App.StaticLookup.SqlWorker" },
new() { Key=3,Name="NotificationWorker" }, new() { Key=3, Name="App.StaticLookup.NotificationWorker" },
new() { Key=4,Name="SessionCleanupWorker" }, new() { Key=4, Name="App.StaticLookup.SessionCleanupWorker" },
new() { Key=5,Name="BackupWorker" }, new() { Key=5, Name="App.StaticLookup.BackupWorker" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -6222,8 +6220,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="normal",Name="Normal" }, new () { Key="normal",Name="App.StaticLookup.Normal" },
// new () { Key="dynamic",Name="Dynamic" }, // new () { Key="dynamic",Name="App.StaticLookup.Dynamic" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -6275,9 +6273,9 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="public",Name="Public" }, new () { Key="public",Name="App.StaticLookup.Public" },
new () { Key="protected",Name="Protected" }, new () { Key="protected",Name="App.StaticLookup.Protected" },
new () { Key="authenticated",Name="Authenticated" }, new () { Key="authenticated",Name="App.StaticLookup.Authenticated" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -6922,8 +6920,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="GET", Name="GET" }, new () { Key="GET", Name="App.StaticLookup.Get" },
new () { Key="POSt", Name="POST" }, new () { Key="POSt", Name="App.StaticLookup.Post" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -7173,9 +7171,9 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Public.products.categories.Üyelik",Name="Üyelik" }, new () { Key="Public.products.categories.Üyelik",Name="Public.products.categories.Üyelik" },
new () { Key="Public.products.categories.Lisans",Name="Lisans" }, new () { Key="Public.products.categories.Lisans",Name="Public.products.categories.Lisans" },
new () { Key="Public.products.categories.Ek Hizmetler",Name="Ek Hizmetler" }, new () { Key="Public.products.categories.Ek Hizmetler",Name="Public.products.categories.Ek Hizmetler" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -7841,8 +7839,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="yearly", Name="Yearly" }, new () { Key="yearly", Name="App.StaticLookup.Yearly" },
new () { Key="monthly", Name="Monthly" }, new () { Key="monthly", Name="App.StaticLookup.Monthly" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -8619,8 +8617,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="yearly", Name="Yearly" }, new () { Key="yearly", Name="App.StaticLookup.Yearly" },
new () { Key="monthly", Name="Monthly" }, new () { Key="monthly", Name="App.StaticLookup.Monthly" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -9718,7 +9716,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
new() { FieldName = "RequestDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, new() { FieldName = "RequestDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
new() { FieldName = "Importance", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value }, new() { FieldName = "Importance", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value },
new() { FieldName = "Urgency", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value }, new() { FieldName = "Urgency", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value },
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Backlog", CustomValueType = FieldCustomValueTypeEnum.Value }, new() { FieldName = "Status", FieldDbType = DbType.String, Value = "backlog", CustomValueType = FieldCustomValueTypeEnum.Value },
}), }),
TodoOptionJson = DefaultTodoOptionJson() TodoOptionJson = DefaultTodoOptionJson()
}); });
@ -9816,17 +9814,16 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
EditorType2 = EditorTypes.dxSelectBox, EditorType2 = EditorTypes.dxSelectBox,
LookupJson = JsonSerializer.Serialize(new LookupDto LookupJson = JsonSerializer.Serialize(new LookupDto
{ {
DataSourceType = UiLookupDataSourceTypeEnum.StaticData, DataSourceType = UiLookupDataSourceTypeEnum.StaticData,
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Backlog", Name="Backlog" }, new () { Key="backlog", Name="App.StaticLookup.Backlog" },
new () { Key="Ready to Start", Name="Ready to Start" }, new () { Key="ready_to_start", Name="App.StaticLookup.ReadyToStart" },
new () { Key="In Progress", Name="In Progress" }, new () { Key="in_progress", Name="App.StaticLookup.InProgress" },
new () { Key="Code Review", Name="Code Review" }, new () { Key="code_review", Name="App.StaticLookup.CodeReview" },
new () { Key="Testing", Name="HiTestinggh" }, new () { Key="testing", Name="App.StaticLookup.Testing" },
new () { Key="Staging", Name="Staging" } new () { Key="staging", Name="App.StaticLookup.Staging" }
}), }),
}), }),
ColSpan = 1, ColSpan = 1,

View file

@ -1,30 +1,29 @@
import { getLocalization } from '@/services/localization.service' import { getLocalization } from '@/services/localization.service'
import { useStoreState } from '@/store' import { useStoreState } from '@/store'
import { useCallback } from 'react'
type TranslateParams = Record<string, string | number> type TranslateParams = Record<string, string | number>
const useLocalization = () => { const useLocalization = () => {
const { texts, config } = useStoreState((state) => state.abpConfig) const { texts, config } = useStoreState((state) => state.abpConfig)
function translate( const defaultResourceName = config?.localization?.defaultResourceName
localizationKey: string, const translate = useCallback(
params?: TranslateParams, (localizationKey: string, params?: TranslateParams, resourceName?: string): string => {
defaultResourceName?: string // Guard against undefined texts
): string { if (!texts) {
// Guard against undefined texts return localizationKey
if (!texts) { }
return localizationKey
}
return getLocalization( return getLocalization(texts, resourceName ?? defaultResourceName, localizationKey, params)
texts, },
defaultResourceName ?? config?.localization?.defaultResourceName, [defaultResourceName, texts],
localizationKey, )
params
) return {
translate,
cultureName: config?.localization?.currentCulture?.cultureName,
} }
return { translate }
} }
export { useLocalization } export { useLocalization }

View file

@ -2,6 +2,7 @@ import { dynamicFetch } from '@/services/form.service'
import { UiLookupDataSourceTypeEnum } from '@/proxy/form/models' import { UiLookupDataSourceTypeEnum } from '@/proxy/form/models'
import CustomStore from 'devextreme/data/custom_store' import CustomStore from 'devextreme/data/custom_store'
import { useCallback } from 'react' import { useCallback } from 'react'
import { useLocalization } from '@/utils/hooks/useLocalization'
const __lookupCache = new Map<string, Promise<any[]>>() const __lookupCache = new Map<string, Promise<any[]>>()
@ -128,6 +129,8 @@ export const useLookupDataSource = ({
listFormCode: string listFormCode: string
isSubForm?: boolean isSubForm?: boolean
}) => { }) => {
const { translate, cultureName } = useLocalization()
const getLookupDataSource = useCallback( const getLookupDataSource = useCallback(
(options: any, colData: any, data: any) => { (options: any, colData: any, data: any) => {
const { lookupDto } = colData const { lookupDto } = colData
@ -149,9 +152,13 @@ export const useLookupDataSource = ({
} }
if (lookupDto.dataSourceType == UiLookupDataSourceTypeEnum.StaticData) { if (lookupDto.dataSourceType == UiLookupDataSourceTypeEnum.StaticData) {
const staticKey = `static:${listFormCode}:${colData.fieldName}` const staticKey = `static:${cultureName}:${listFormCode}:${colData.fieldName}`
return createLookupStaticDataSource( return createLookupStaticDataSource(
() => JSON.parse(lookupDto?.lookupQuery), () =>
JSON.parse(lookupDto?.lookupQuery).map((item: any) => ({
...item,
name: typeof item.name === 'string' ? translate(`::${item.name}`) : item.name,
})),
filters.length ? filters : null, filters.length ? filters : null,
staticKey, staticKey,
) )
@ -169,7 +176,7 @@ export const useLookupDataSource = ({
return { store: [] } return { store: [] }
} }
}, },
[listFormCode, isSubForm], [listFormCode, isSubForm, translate, cultureName],
) )
return { getLookupDataSource } return { getLookupDataSource }

View file

@ -57,6 +57,7 @@ import { orderListToolbarItems } from './toolbarOrder'
import { updateWorkflowApprovalToolbarItems, useToolbar } from './useToolbar' import { updateWorkflowApprovalToolbarItems, useToolbar } from './useToolbar'
import { layoutTypes } from '../admin/listForm/edit/types' import { layoutTypes } from '../admin/listForm/edit/types'
import { RowMode } from '../form/types' import { RowMode } from '../form/types'
import WidgetGroup from '@/components/ui/Widget/WidgetGroup'
interface CardViewProps { interface CardViewProps {
listFormCode: string listFormCode: string
@ -419,6 +420,7 @@ const CardView = (props: CardViewProps) => {
const [mode, setMode] = useState<RowMode>('view') const [mode, setMode] = useState<RowMode>('view')
const [isPopupFullScreen, setIsPopupFullScreen] = useState(false) const [isPopupFullScreen, setIsPopupFullScreen] = useState(false)
const [formData, setFormData] = useState<Record<string, any>>() const [formData, setFormData] = useState<Record<string, any>>()
const widgetGroupRef = useRef<HTMLDivElement>(null)
const formDataRef = useRef<Record<string, any>>() const formDataRef = useRef<Record<string, any>>()
useEffect(() => { useEffect(() => {
formDataRef.current = formData formDataRef.current = formData
@ -724,11 +726,21 @@ const CardView = (props: CardViewProps) => {
.then((values) => { .then((values) => {
if (!active) return if (!active) return
applyLookupDisplayValues(values) applyLookupDisplayValues(values)
setLookupReadyState({ listFormCode, ready: true }) setLookupReadyState((current) =>
current.listFormCode === listFormCode && current.ready
? current
: { listFormCode, ready: true },
)
}) })
.catch((error) => { .catch((error) => {
console.error('CardView lookup preload error:', error) console.error('CardView lookup preload error:', error)
if (active) setLookupReadyState({ listFormCode, ready: true }) if (active) {
setLookupReadyState((current) =>
current.listFormCode === listFormCode && current.ready
? current
: { listFormCode, ready: true },
)
}
}) })
return () => { return () => {
@ -1122,289 +1134,301 @@ const CardView = (props: CardViewProps) => {
) )
return ( return (
<Container className={DX_CLASSNAMES}> <>
{!isSubForm && ( <div ref={widgetGroupRef} className={(gridDto?.widgets?.length ?? 0) > 0 ? 'mt-2' : ''}>
<Helmet <WidgetGroup widgetGroups={gridDto?.widgets ?? []} />
titleTemplate={`%s | ${APP_NAME}`} </div>
title={translate('::' + gridDto?.gridOptions.title)}
defaultTitle={APP_NAME} <Container className={DX_CLASSNAMES}>
/> {!isSubForm && (
)} <Helmet
{!gridDto || titleTemplate={`%s | ${APP_NAME}`}
!dataSource || title={translate('::' + gridDto?.gridOptions.title)}
lookupReadyState.listFormCode !== listFormCode || defaultTitle={APP_NAME}
!lookupReadyState.ready ? ( />
<div className="p-4"> )}
<Loading loading>{translate('::App.Loading')}</Loading> {!gridDto ||
</div> !dataSource ||
) : ( lookupReadyState.listFormCode !== listFormCode ||
<div className="p-1"> !lookupReadyState.ready ? (
<DxCardView <div className="p-4">
key={`CardView-${listFormCode}-${localizationRevision}`} <Loading loading>{translate('::App.Loading')}</Loading>
ref={cardViewRef as any} </div>
fieldHintEnabled ) : (
id={`CardView-${listFormCode}`} <div className="p-1">
dataSource={dataSource} <DxCardView
columns={cardColumns} key={`CardView-${listFormCode}-${localizationRevision}`}
height={gridDto.gridOptions.height > 0 ? gridDto.gridOptions.height : undefined} ref={cardViewRef as any}
width={gridDto.gridOptions.width || '100%'} fieldHintEnabled
cardMinWidth={280} id={`CardView-${listFormCode}`}
cardsPerRow={cardColumnCount} dataSource={dataSource}
allowColumnReordering={gridDto.gridOptions.columnOptionDto?.allowColumnReordering} columns={cardColumns}
rtlEnabled={gridDto.gridOptions.columnOptionDto?.rtlEnabled} height={gridDto.gridOptions.height > 0 ? gridDto.gridOptions.height : undefined}
className="list-card-view list-view-toolbar-host" width={gridDto.gridOptions.width || '100%'}
hoverStateEnabled={gridDto.gridOptions.columnOptionDto?.hoverStateEnabled} cardMinWidth={280}
remoteOperations={{ paging: true, filtering: true, sorting: true }} cardsPerRow={cardColumnCount}
wordWrapEnabled={gridDto.gridOptions.rowDto?.whiteSpace !== 'nowrap'} allowColumnReordering={gridDto.gridOptions.columnOptionDto?.allowColumnReordering}
onContentReady={onContentReady} rtlEnabled={gridDto.gridOptions.columnOptionDto?.rtlEnabled}
onSelectionChanged={onSelectionChanged} className="list-card-view list-view-toolbar-host"
onInitNewCard={onInitNewCard} hoverStateEnabled={gridDto.gridOptions.columnOptionDto?.hoverStateEnabled}
onEditingStart={(event) => { remoteOperations={{ paging: true, filtering: true, sorting: true }}
const nextFormData = (event.data as Record<string, any>) ?? {} wordWrapEnabled={gridDto.gridOptions.rowDto?.whiteSpace !== 'nowrap'}
formDataRef.current = nextFormData onContentReady={onContentReady}
setFormData(nextFormData) onSelectionChanged={onSelectionChanged}
setMode('edit') onInitNewCard={onInitNewCard}
setIsPopupFullScreen( onEditingStart={(event) => {
useMobileEditPopup || (editingOptions?.popup?.fullScreen ?? false), const nextFormData = (event.data as Record<string, any>) ?? {}
) formDataRef.current = nextFormData
}} setFormData(nextFormData)
onEditCanceled={() => { setMode('edit')
setMode('view') setIsPopupFullScreen(
setIsPopupFullScreen(false) useMobileEditPopup || (editingOptions?.popup?.fullScreen ?? false),
}}
onSaved={() => {
setMode('view')
setIsPopupFullScreen(false)
}}
onDataErrorOccurred={(event) => {
toast.push(
<Notification type="danger" duration={2500}>
{String(event.error?.message ?? event.error ?? 'Select error')}
</Notification>,
{ placement: 'bottom-end' },
)
}}
onCardInserted={() => refreshParentData?.()}
onCardUpdated={() => refreshParentData?.()}
onCardRemoved={() => refreshParentData?.()}
>
<CardHeader template={renderCardHeader} />
<Editing
allowAdding={
editingOptions?.allowAdding && checkPermission(gridDto.gridOptions.permissionDto?.c)
}
allowUpdating={
editingOptions?.allowUpdating &&
checkPermission(gridDto.gridOptions.permissionDto?.u)
}
allowDeleting={
editingOptions?.allowDeleting &&
checkPermission(gridDto.gridOptions.permissionDto?.d)
}
confirmDelete={editingOptions?.confirmDelete}
form={{
colCount: 1,
items: editingFormItems,
labelLocation: 'top',
onFieldDataChanged: onEditingFormFieldChanged,
showColonAfterLabel: false,
}}
popup={{
animation: {},
deferRendering: true,
wrapperAttr: useMobileEditPopup ? { class: 'mobile-edit-popup' } : undefined,
title:
(mode === 'new' ? '✚ ' : '🖊️ ') + translate('::' + editingOptions?.popup?.title),
showTitle: editingOptions?.popup?.showTitle,
hideOnOutsideClick: editingOptions?.popup?.hideOnOutsideClick,
width: useMobileEditPopup
? '100%'
: Number(editingOptions?.popup?.width) > 0
? editingOptions?.popup?.width
: 'auto',
maxWidth: useMobileEditPopup ? '100%' : '95vw',
height: getPopupHeight(useMobileEditPopup, isPopupFullScreen),
maxHeight: getPopupMaxHeight(
useMobileEditPopup,
isPopupFullScreen,
editingOptions?.popup?.height,
),
fullScreen: isPopupFullScreen,
position: useMobileEditPopup
? {
my: 'top center',
at: 'top center',
of: typeof window !== 'undefined' ? window : undefined,
}
: editingOptions?.popup?.position,
resizeEnabled: editingOptions?.popup?.resizeEnabled,
dragEnabled: editingOptions?.popup?.dragEnabled,
restorePosition: editingOptions?.popup?.restorePosition,
toolbarItems: [
{
widget: 'dxButton',
toolbar: 'bottom',
location: 'after',
options: {
text: translate('::Save'),
type: 'default',
onClick: () => cardViewRef.current?.instance().saveEditData(),
},
},
{
widget: 'dxButton',
toolbar: 'bottom',
location: 'after',
options: {
text: translate('::Cancel'),
onClick: () => cardViewRef.current?.instance().cancelEditData(),
},
},
{
widget: 'dxButton',
toolbar: 'top',
location: 'after',
options: {
icon: isPopupFullScreen ? 'collapse' : 'fullscreen',
hint: isPopupFullScreen
? translate('::Normal Boyut')
: translate('::Tam Ekran'),
stylingMode: 'text',
onClick: () => setIsPopupFullScreen((current) => !current),
},
},
],
}}
/>
<Toolbar visible>
{cardColumnCountOptions.map((columnCount) => {
const selected = cardColumnCount === columnCount
return (
<ToolbarItem
key={`card-column-count-${columnCount}`}
location="before"
locateInMenu="never"
widget="dxButton"
options={{
text: String(columnCount),
hint: String(columnCount),
type: selected ? 'default' : 'normal',
stylingMode: selected ? 'contained' : 'text',
elementAttr: {
'aria-label': String(columnCount),
'aria-pressed': selected,
},
onClick: () => setCardColumnCount(columnCount),
}}
/>
) )
})}
{orderedToolbarData.map((item, index) => (
<ToolbarItem key={`${item.name ?? 'toolbar'}-${index}`} {...(item as any)} />
))}
{gridDto.gridOptions.extraFilterDto?.length ? (
<ToolbarItem
location="before"
render={() => (
<GridExtraFilterToolbar
filters={gridDto.gridOptions.extraFilterDto ?? []}
extraFilters={extraFilters}
setExtraFilters={setExtraFilters}
/>
)}
/>
) : null}
</Toolbar>
<Sorting mode={gridDto.gridOptions.sortMode} />
<SearchPanel
visible={gridDto.gridOptions.searchPanelDto.visible}
width={gridDto.gridOptions.searchPanelDto.width}
placeholder={translate('::App.Search')}
/>
<FilterPanel
visible={gridDto.gridOptions.filterPanelDto.visible}
texts={gridDto.gridOptions.filterPanelDto.texts}
/>
<HeaderFilter
visible={gridDto.gridOptions.headerFilterDto.visible}
width={gridDto.gridOptions.headerFilterDto.width}
height={gridDto.gridOptions.headerFilterDto.height}
search={{
enabled: gridDto.gridOptions.headerFilterDto.allowSearch,
timeout: gridDto.gridOptions.headerFilterDto.searchTimeout,
}} }}
/> onEditCanceled={() => {
<Selection setMode('view')
mode={selectionOptions?.mode} setIsPopupFullScreen(false)
allowSelectAll={selectionOptions?.allowSelectAll} }}
selectAllMode={selectionOptions?.selectAllMode} onSaved={() => {
showCheckBoxesMode={selectionOptions?.showCheckBoxesMode} setMode('view')
/> setIsPopupFullScreen(false)
<Paging defaultPageSize={gridDto.gridOptions.pageSize ?? 20} /> }}
<Pager onDataErrorOccurred={(event) => {
visible={gridDto.gridOptions.pagerOptionDto?.visible} toast.push(
allowedPageSizes={gridDto.gridOptions.pagerOptionDto?.allowedPageSizes <Notification type="danger" duration={2500}>
?.split(',') {String(event.error?.message ?? event.error ?? 'Select error')}
.map(Number)} </Notification>,
showPageSizeSelector={gridDto.gridOptions.pagerOptionDto?.showPageSizeSelector} { placement: 'bottom-end' },
showInfo={gridDto.gridOptions.pagerOptionDto?.showInfo} )
infoText={gridDto.gridOptions.pagerOptionDto?.infoText} }}
showNavigationButtons={gridDto.gridOptions.pagerOptionDto?.showNavigationButtons} onCardInserted={() => refreshParentData?.()}
displayMode={gridDto.gridOptions.pagerOptionDto?.displayMode} onCardUpdated={() => refreshParentData?.()}
/> onCardRemoved={() => refreshParentData?.()}
<ColumnChooser >
enabled={gridDto.gridOptions.columnOptionDto?.columnChooserEnabled} <CardHeader template={renderCardHeader} />
mode={gridDto.gridOptions.columnOptionDto?.columnChooserMode} <Editing
/> allowAdding={
<LoadPanel editingOptions?.allowAdding &&
visible={gridDto.gridOptions.pagerOptionDto?.loadPanelEnabled !== false} checkPermission(gridDto.gridOptions.permissionDto?.c)
message={gridDto.gridOptions.pagerOptionDto?.loadPanelText} }
/> allowUpdating={
</DxCardView> editingOptions?.allowUpdating &&
checkPermission(gridDto.gridOptions.permissionDto?.u)
}
allowDeleting={
editingOptions?.allowDeleting &&
checkPermission(gridDto.gridOptions.permissionDto?.d)
}
confirmDelete={editingOptions?.confirmDelete}
form={{
colCount: 1,
items: editingFormItems,
labelLocation: 'top',
onFieldDataChanged: onEditingFormFieldChanged,
showColonAfterLabel: false,
}}
popup={{
animation: {},
deferRendering: true,
wrapperAttr: useMobileEditPopup ? { class: 'mobile-edit-popup' } : undefined,
title:
(mode === 'new' ? '✚ ' : '🖊️ ') +
translate('::' + editingOptions?.popup?.title),
showTitle: editingOptions?.popup?.showTitle,
hideOnOutsideClick: editingOptions?.popup?.hideOnOutsideClick,
width: useMobileEditPopup
? '100%'
: Number(editingOptions?.popup?.width) > 0
? editingOptions?.popup?.width
: 'auto',
maxWidth: useMobileEditPopup ? '100%' : '95vw',
height: getPopupHeight(useMobileEditPopup, isPopupFullScreen),
maxHeight: getPopupMaxHeight(
useMobileEditPopup,
isPopupFullScreen,
editingOptions?.popup?.height,
),
fullScreen: isPopupFullScreen,
position: useMobileEditPopup
? {
my: 'top center',
at: 'top center',
of: typeof window !== 'undefined' ? window : undefined,
}
: editingOptions?.popup?.position,
resizeEnabled: editingOptions?.popup?.resizeEnabled,
dragEnabled: editingOptions?.popup?.dragEnabled,
restorePosition: editingOptions?.popup?.restorePosition,
toolbarItems: [
{
widget: 'dxButton',
toolbar: 'bottom',
location: 'after',
options: {
text: translate('::Save'),
type: 'default',
onClick: () => cardViewRef.current?.instance().saveEditData(),
},
},
{
widget: 'dxButton',
toolbar: 'bottom',
location: 'after',
options: {
text: translate('::Cancel'),
onClick: () => cardViewRef.current?.instance().cancelEditData(),
},
},
{
widget: 'dxButton',
toolbar: 'top',
location: 'after',
options: {
icon: isPopupFullScreen ? 'collapse' : 'fullscreen',
hint: isPopupFullScreen
? translate('::Normal Boyut')
: translate('::Tam Ekran'),
stylingMode: 'text',
onClick: () => setIsPopupFullScreen((current) => !current),
},
},
],
}}
/>
<Toolbar visible>
{cardColumnCountOptions.map((columnCount) => {
const selected = cardColumnCount === columnCount
return (
<ToolbarItem
key={`card-column-count-${columnCount}`}
location="before"
locateInMenu="never"
widget="dxButton"
options={{
text: String(columnCount),
hint: String(columnCount),
type: selected ? 'default' : 'normal',
stylingMode: selected ? 'contained' : 'text',
elementAttr: {
'aria-label': String(columnCount),
'aria-pressed': selected,
},
onClick: () => setCardColumnCount(columnCount),
}}
/>
)
})}
{orderedToolbarData.map((item, index) => (
<ToolbarItem key={`${item.name ?? 'toolbar'}-${index}`} {...(item as any)} />
))}
{gridDto.gridOptions.extraFilterDto?.length ? (
<ToolbarItem
location="before"
render={() => (
<GridExtraFilterToolbar
filters={gridDto.gridOptions.extraFilterDto ?? []}
extraFilters={extraFilters}
setExtraFilters={setExtraFilters}
/>
)}
/>
) : null}
</Toolbar>
<Sorting mode={gridDto.gridOptions.sortMode} />
<SearchPanel
visible={gridDto.gridOptions.searchPanelDto.visible}
width={gridDto.gridOptions.searchPanelDto.width}
placeholder={translate('::App.Search')}
/>
<FilterPanel
visible={gridDto.gridOptions.filterPanelDto.visible}
texts={gridDto.gridOptions.filterPanelDto.texts}
/>
<HeaderFilter
visible={gridDto.gridOptions.headerFilterDto.visible}
width={gridDto.gridOptions.headerFilterDto.width}
height={gridDto.gridOptions.headerFilterDto.height}
search={{
enabled: gridDto.gridOptions.headerFilterDto.allowSearch,
timeout: gridDto.gridOptions.headerFilterDto.searchTimeout,
}}
/>
<Selection
mode={selectionOptions?.mode}
allowSelectAll={selectionOptions?.allowSelectAll}
selectAllMode={selectionOptions?.selectAllMode}
showCheckBoxesMode={selectionOptions?.showCheckBoxesMode}
/>
<Paging defaultPageSize={gridDto.gridOptions.pageSize ?? 20} />
<Pager
visible={gridDto.gridOptions.pagerOptionDto?.visible}
allowedPageSizes={gridDto.gridOptions.pagerOptionDto?.allowedPageSizes
?.split(',')
.map(Number)}
showPageSizeSelector={gridDto.gridOptions.pagerOptionDto?.showPageSizeSelector}
showInfo={gridDto.gridOptions.pagerOptionDto?.showInfo}
infoText={gridDto.gridOptions.pagerOptionDto?.infoText}
showNavigationButtons={gridDto.gridOptions.pagerOptionDto?.showNavigationButtons}
displayMode={gridDto.gridOptions.pagerOptionDto?.displayMode}
/>
<ColumnChooser
enabled={gridDto.gridOptions.columnOptionDto?.columnChooserEnabled}
mode={gridDto.gridOptions.columnOptionDto?.columnChooserMode}
/>
<LoadPanel
visible={gridDto.gridOptions.pagerOptionDto?.loadPanelEnabled !== false}
message={gridDto.gridOptions.pagerOptionDto?.loadPanelText}
/>
</DxCardView>
{gridDto.gridOptions.subFormsDto?.length > 0 && {gridDto.gridOptions.subFormsDto?.length > 0 &&
gridDto.gridOptions.subFormsListFormType === SubFormTabTypeEnum.List && ( gridDto.gridOptions.subFormsListFormType === SubFormTabTypeEnum.List && (
<> <>
<hr className="my-2" /> <hr className="my-2" />
<SubForms gridDto={gridDto} formData={formData} level={level ?? 0} /> <SubForms gridDto={gridDto} formData={formData} level={level ?? 0} />
</> </>
)} )}
<Dialog <Dialog
width={1000} width={1000}
isOpen={filterData.isImportModalOpen || false} isOpen={filterData.isImportModalOpen || false}
onClose={() => filterData.setIsImportModalOpen(false)} onClose={() => filterData.setIsImportModalOpen(false)}
onRequestClose={() => filterData.setIsImportModalOpen(false)} onRequestClose={() => filterData.setIsImportModalOpen(false)}
> >
<Dialog.Header className="-mt-5 border-b border-gray-200 p-2 dark:border-gray-700"> <Dialog.Header className="-mt-5 border-b border-gray-200 p-2 dark:border-gray-700">
<h2 className="text-lg font-semibold"> <h2 className="text-lg font-semibold">
{translate('::ListForms.ListForm.ImportManager')} {translate('::ListForms.ListForm.ImportManager')}
</h2> </h2>
</Dialog.Header> </Dialog.Header>
<Dialog.Body className="mt-2 flex flex-col"> <Dialog.Body className="mt-2 flex flex-col">
<ImportDashboard gridDto={gridDto} /> <ImportDashboard gridDto={gridDto} />
</Dialog.Body> </Dialog.Body>
</Dialog> </Dialog>
</div> </div>
)} )}
<Dialog <Dialog
isOpen={toolbarModalData?.open || false} isOpen={toolbarModalData?.open || false}
onClose={() => setToolbarModalData(undefined)} onClose={() => setToolbarModalData(undefined)}
onRequestClose={() => setToolbarModalData(undefined)} onRequestClose={() => setToolbarModalData(undefined)}
> >
{toolbarModalData?.content} {toolbarModalData?.content}
</Dialog> </Dialog>
<GridFilterDialogs gridRef={cardViewRef as any} listFormCode={listFormCode} {...filterData} /> <GridFilterDialogs
{notePanelTarget && ( gridRef={cardViewRef as any}
<NotePanel listFormCode={listFormCode}
isVisible {...filterData}
entityName={notePanelTarget.entityName}
entityId={notePanelTarget.entityId}
onToggle={() => setNotePanelTarget(null)}
/> />
)} {notePanelTarget && (
</Container> <NotePanel
isVisible
entityName={notePanelTarget.entityName}
entityId={notePanelTarget.entityId}
onToggle={() => setNotePanelTarget(null)}
/>
)}
</Container>
</>
) )
} }

View file

@ -66,6 +66,7 @@ const Pivot = (props: PivotProps) => {
const gridRef = useRef<PivotGridRef>() const gridRef = useRef<PivotGridRef>()
const chartRef = useRef<ChartRef>(null) const chartRef = useRef<ChartRef>(null)
const refListFormCode = useRef('') const refListFormCode = useRef('')
const widgetGroupRef = useRef<HTMLDivElement>(null)
const config = useStoreState((state) => state.abpConfig.config) const config = useStoreState((state) => state.abpConfig.config)
const [gridDataSource, setGridDataSource] = useState<CustomStore<any, any>>() const [gridDataSource, setGridDataSource] = useState<CustomStore<any, any>>()
@ -431,7 +432,9 @@ const Pivot = (props: PivotProps) => {
return ( return (
<> <>
<WidgetGroup widgetGroups={gridDto?.widgets ?? []} /> <div ref={widgetGroupRef} className={(gridDto?.widgets?.length ?? 0) > 0 ? 'mt-2' : ''}>
<WidgetGroup widgetGroups={gridDto?.widgets ?? []} />
</div>
<Container className={DX_CLASSNAMES}> <Container className={DX_CLASSNAMES}>
{!isSubForm && ( {!isSubForm && (

View file

@ -83,6 +83,15 @@ interface UserOption {
type LookupDisplayValues = Record<string, Map<string, string>> type LookupDisplayValues = Record<string, Map<string, string>>
const TODO_STATUS_LANGUAGE_KEYS: Record<string, string> = {
backlog: 'App.StaticLookup.Backlog',
'ready to start': 'App.StaticLookup.ReadyToStart',
'in progress': 'App.StaticLookup.InProgress',
'code review': 'App.StaticLookup.CodeReview',
testing: 'App.StaticLookup.Testing',
staging: 'App.StaticLookup.Staging',
}
const flattenColumns = (columns: GridColumnData[] = []): GridColumnData[] => const flattenColumns = (columns: GridColumnData[] = []): GridColumnData[] =>
columns.flatMap((column) => columns.flatMap((column) =>
column.columns?.length ? flattenColumns(column.columns as GridColumnData[]) : [column], column.columns?.length ? flattenColumns(column.columns as GridColumnData[]) : [column],
@ -260,6 +269,14 @@ const TodoBoard = ({ listFormCode, searchParams, isSubForm, gridDto }: TodoBoard
[lookupValuesForField], [lookupValuesForField],
) )
const statusText = useCallback(
(status: string) => {
const languageKey = TODO_STATUS_LANGUAGE_KEYS[status.trim().toLocaleLowerCase()]
return languageKey ? translate(`::${languageKey}`) : lookupText(options.statusExpr, status)
},
[lookupText, options.statusExpr, translate],
)
const clearDragState = useCallback(() => { const clearDragState = useCallback(() => {
dragActiveRef.current = false dragActiveRef.current = false
setDraggedKey(undefined) setDraggedKey(undefined)
@ -633,7 +650,11 @@ const TodoBoard = ({ listFormCode, searchParams, isSubForm, gridDto }: TodoBoard
}) })
return return
} }
if (!window.confirm(translate('::ListForms.TodoBoard.ConfirmDeleteColumn', { 0: status }))) if (
!window.confirm(
translate('::ListForms.TodoBoard.ConfirmDeleteColumn', { 0: statusText(status) }),
)
)
return return
const next = statuses.filter((item) => item !== status) const next = statuses.filter((item) => item !== status)
@ -1051,7 +1072,7 @@ const TodoBoard = ({ listFormCode, searchParams, isSubForm, gridDto }: TodoBoard
> >
{statuses.map((status) => ( {statuses.map((status) => (
<option key={status} value={status}> <option key={status} value={status}>
{lookupText(options.statusExpr, status)} {statusText(status)}
</option> </option>
))} ))}
</select> </select>
@ -1270,11 +1291,8 @@ const TodoBoard = ({ listFormCode, searchParams, isSubForm, gridDto }: TodoBoard
</form> </form>
) : ( ) : (
<> <>
<h4 <h4 className="min-w-0 truncate font-sm" title={statusText(status)}>
className="min-w-0 truncate font-sm" {statusText(status)}
title={lookupText(options.statusExpr, status)}
>
{lookupText(options.statusExpr, status)}
</h4> </h4>
{canUpdate && ( {canUpdate && (
<button <button

View file

@ -408,7 +408,7 @@ const useListFormColumns = ({
onShowNote?: (rowData: Record<string, any>) => void onShowNote?: (rowData: Record<string, any>) => void
}) => { }) => {
const dialog: any = useDialogContext() const dialog: any = useDialogContext()
const { translate } = useLocalization() const { translate, cultureName } = useLocalization()
const { checkPermission } = usePermission() const { checkPermission } = usePermission()
const isPwaMode = usePWA() const isPwaMode = usePWA()
@ -442,9 +442,13 @@ const useListFormColumns = ({
// WebService = 3 (API servisten geliyor) // WebService = 3 (API servisten geliyor)
if (lookupDto.dataSourceType == UiLookupDataSourceTypeEnum.StaticData) { if (lookupDto.dataSourceType == UiLookupDataSourceTypeEnum.StaticData) {
return createLookupStaticDataSource( return createLookupStaticDataSource(
() => JSON.parse(lookupDto?.lookupQuery), () =>
JSON.parse(lookupDto?.lookupQuery).map((item: any) => ({
...item,
name: typeof item.name === 'string' ? translate(`::${item.name}`) : item.name,
})),
filters.length ? filters : null, filters.length ? filters : null,
`static:${listFormCode}:${colData.fieldName}`, // cache key `static:${cultureName}:${listFormCode}:${colData.fieldName}`, // cache key
) )
} else if (lookupDto.dataSourceType == UiLookupDataSourceTypeEnum.Query) { } else if (lookupDto.dataSourceType == UiLookupDataSourceTypeEnum.Query) {
return createLookupQueryDataSource(listFormCode, colData.fieldName, filters) return createLookupQueryDataSource(listFormCode, colData.fieldName, filters)
@ -461,7 +465,7 @@ const useListFormColumns = ({
} }
} }
}, },
[listFormCode], [listFormCode, translate, cultureName],
) )
const loadLookupDisplayValues = useCallback( const loadLookupDisplayValues = useCallback(