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 10c0cd0ada
9 changed files with 1169 additions and 457 deletions

View file

@ -17094,6 +17094,24 @@
"en": "Tags",
"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",
"key": "App.Listform.ListformField.Target",
@ -20561,6 +20579,648 @@
"key": "App.UpdateCheckFailed",
"en": "Update check failed.",
"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",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key=1, Name="Tenant" },
new () { Key=2, Name="Host" },
new () { Key=3, Name="Both" },
new () { Key=1, Name="App.StaticLookup.Tenant" },
new () { Key=2, Name="App.StaticLookup.Host" },
new () { Key=3, Name="App.StaticLookup.Both" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -566,10 +566,10 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key=0, Name="String" },
new () { Key=1, Name="Number" },
new () { Key=2, Name="Boolean" },
new () { Key=3, Name="DateTime" },
new () { Key=0, Name="App.StaticLookup.String" },
new () { Key=1, Name="App.StaticLookup.Number" },
new () { Key=2, Name="App.StaticLookup.Boolean" },
new () { Key=3, Name="App.StaticLookup.DateTime" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -1080,8 +1080,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key=PlatformConsts.AbpIdentity.User.InternalUserTypeDefaultValue, Name="Internal" },
new () { Key=PlatformConsts.AbpIdentity.User.ExternalUserTypeDefaultValue, Name="External" },
new () { Key=PlatformConsts.AbpIdentity.User.InternalUserTypeDefaultValue, Name="App.StaticLookup.Internal" },
new () { Key=PlatformConsts.AbpIdentity.User.ExternalUserTypeDefaultValue, Name="App.StaticLookup.External" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -1814,8 +1814,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "active", Name= "Aktif" },
new () { Key= "passive", Name= "Pasif" },
new () { Key= "active", Name= "App.StaticLookup.Active" },
new () { Key= "passive", Name= "App.StaticLookup.Passive" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -2339,9 +2339,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="User", Name="User" },
new () { Key="Role", Name="Role" },
new () { Key="Global", Name="Global" },
new () { Key="User", Name="App.StaticLookup.User" },
new () { Key="Role", Name="App.StaticLookup.Role" },
new () { Key="Global", Name="App.StaticLookup.Global" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -3046,10 +3046,10 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "general", Name= "General" },
new () { Key= "event", Name= "Event" },
new () { Key= "urgent", Name= "Urgent" },
new () { Key= "announcement", Name= "Announcement" },
new () { Key= "general", Name= "App.StaticLookup.General" },
new () { Key= "event", Name= "App.StaticLookup.Event" },
new () { Key= "urgent", Name= "App.StaticLookup.Urgent" },
new () { Key= "announcement", Name= "App.StaticLookup.Announcement" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -3576,8 +3576,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "active", Name= "Aktif" },
new () { Key= "passive", Name= "Pasif" },
new () { Key= "active", Name= "App.StaticLookup.Active" },
new () { Key= "passive", Name= "App.StaticLookup.Passive" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -3755,11 +3755,11 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "rating", Name= "Rating" },
new () { Key= "multiple-choice", Name= "Multiple Choice" },
new () { Key= "text", Name= "Text" },
new () { Key= "textarea", Name= "Textarea" },
new () { Key= "yes-no", Name= "Yes/No" },
new () { Key= "rating", Name= "App.StaticLookup.Rating" },
new () { Key= "multiple-choice", Name= "App.StaticLookup.MultipleChoice" },
new () { Key= "text", Name= "App.StaticLookup.Text" },
new () { Key= "textarea", Name= "App.StaticLookup.Textarea" },
new () { Key= "yes-no", Name= "App.StaticLookup.YesNo" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -5141,9 +5141,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="published",Name="Yayımlandı" },
new () { Key="draft",Name="Taslak" },
new () { Key="cancelled",Name="İptal" },
new () { Key="published",Name="App.StaticLookup.Published" },
new () { Key="draft",Name="App.StaticLookup.Draft" },
new () { Key="cancelled",Name="App.StaticLookup.Cancelled" },
}),
}),
ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -5761,8 +5761,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="yearly", Name="Yearly" },
new () { Key="monthly", Name="Monthly" },
new () { Key="yearly", Name="App.StaticLookup.Yearly" },
new () { Key="monthly", Name="App.StaticLookup.Monthly" },
}),
}),
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 = "Importance", 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",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Backlog", Name="Backlog" },
new () { Key="Ready to Start", Name="Ready to Start" },
new () { Key="In Progress", Name="In Progress" },
new () { Key="Code Review", Name="Code Review" },
new () { Key="Testing", Name="HiTestinggh" },
new () { Key="Staging", Name="Staging" }
new () { Key="backlog", Name="App.StaticLookup.Backlog" },
new () { Key="ready_to_start", Name="App.StaticLookup.ReadyToStart" },
new () { Key="in_progress", Name="App.StaticLookup.InProgress" },
new () { Key="code_review", Name="App.StaticLookup.CodeReview" },
new () { Key="testing", Name="App.StaticLookup.Testing" },
new () { Key="staging", Name="App.StaticLookup.Staging" }
}),
}),
ColSpan = 1,

View file

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

View file

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

View file

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

View file

@ -57,6 +57,7 @@ import { orderListToolbarItems } from './toolbarOrder'
import { updateWorkflowApprovalToolbarItems, useToolbar } from './useToolbar'
import { layoutTypes } from '../admin/listForm/edit/types'
import { RowMode } from '../form/types'
import WidgetGroup from '@/components/ui/Widget/WidgetGroup'
interface CardViewProps {
listFormCode: string
@ -419,6 +420,7 @@ const CardView = (props: CardViewProps) => {
const [mode, setMode] = useState<RowMode>('view')
const [isPopupFullScreen, setIsPopupFullScreen] = useState(false)
const [formData, setFormData] = useState<Record<string, any>>()
const widgetGroupRef = useRef<HTMLDivElement>(null)
const formDataRef = useRef<Record<string, any>>()
useEffect(() => {
formDataRef.current = formData
@ -724,11 +726,21 @@ const CardView = (props: CardViewProps) => {
.then((values) => {
if (!active) return
applyLookupDisplayValues(values)
setLookupReadyState({ listFormCode, ready: true })
setLookupReadyState((current) =>
current.listFormCode === listFormCode && current.ready
? current
: { listFormCode, ready: true },
)
})
.catch((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 () => {
@ -1122,289 +1134,301 @@ const CardView = (props: CardViewProps) => {
)
return (
<Container className={DX_CLASSNAMES}>
{!isSubForm && (
<Helmet
titleTemplate={`%s | ${APP_NAME}`}
title={translate('::' + gridDto?.gridOptions.title)}
defaultTitle={APP_NAME}
/>
)}
{!gridDto ||
!dataSource ||
lookupReadyState.listFormCode !== listFormCode ||
!lookupReadyState.ready ? (
<div className="p-4">
<Loading loading>{translate('::App.Loading')}</Loading>
</div>
) : (
<div className="p-1">
<DxCardView
key={`CardView-${listFormCode}-${localizationRevision}`}
ref={cardViewRef as any}
fieldHintEnabled
id={`CardView-${listFormCode}`}
dataSource={dataSource}
columns={cardColumns}
height={gridDto.gridOptions.height > 0 ? gridDto.gridOptions.height : undefined}
width={gridDto.gridOptions.width || '100%'}
cardMinWidth={280}
cardsPerRow={cardColumnCount}
allowColumnReordering={gridDto.gridOptions.columnOptionDto?.allowColumnReordering}
rtlEnabled={gridDto.gridOptions.columnOptionDto?.rtlEnabled}
className="list-card-view list-view-toolbar-host"
hoverStateEnabled={gridDto.gridOptions.columnOptionDto?.hoverStateEnabled}
remoteOperations={{ paging: true, filtering: true, sorting: true }}
wordWrapEnabled={gridDto.gridOptions.rowDto?.whiteSpace !== 'nowrap'}
onContentReady={onContentReady}
onSelectionChanged={onSelectionChanged}
onInitNewCard={onInitNewCard}
onEditingStart={(event) => {
const nextFormData = (event.data as Record<string, any>) ?? {}
formDataRef.current = nextFormData
setFormData(nextFormData)
setMode('edit')
setIsPopupFullScreen(
useMobileEditPopup || (editingOptions?.popup?.fullScreen ?? false),
)
}}
onEditCanceled={() => {
setMode('view')
setIsPopupFullScreen(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),
}}
/>
<>
<div ref={widgetGroupRef} className={(gridDto?.widgets?.length ?? 0) > 0 ? 'mt-2' : ''}>
<WidgetGroup widgetGroups={gridDto?.widgets ?? []} />
</div>
<Container className={DX_CLASSNAMES}>
{!isSubForm && (
<Helmet
titleTemplate={`%s | ${APP_NAME}`}
title={translate('::' + gridDto?.gridOptions.title)}
defaultTitle={APP_NAME}
/>
)}
{!gridDto ||
!dataSource ||
lookupReadyState.listFormCode !== listFormCode ||
!lookupReadyState.ready ? (
<div className="p-4">
<Loading loading>{translate('::App.Loading')}</Loading>
</div>
) : (
<div className="p-1">
<DxCardView
key={`CardView-${listFormCode}-${localizationRevision}`}
ref={cardViewRef as any}
fieldHintEnabled
id={`CardView-${listFormCode}`}
dataSource={dataSource}
columns={cardColumns}
height={gridDto.gridOptions.height > 0 ? gridDto.gridOptions.height : undefined}
width={gridDto.gridOptions.width || '100%'}
cardMinWidth={280}
cardsPerRow={cardColumnCount}
allowColumnReordering={gridDto.gridOptions.columnOptionDto?.allowColumnReordering}
rtlEnabled={gridDto.gridOptions.columnOptionDto?.rtlEnabled}
className="list-card-view list-view-toolbar-host"
hoverStateEnabled={gridDto.gridOptions.columnOptionDto?.hoverStateEnabled}
remoteOperations={{ paging: true, filtering: true, sorting: true }}
wordWrapEnabled={gridDto.gridOptions.rowDto?.whiteSpace !== 'nowrap'}
onContentReady={onContentReady}
onSelectionChanged={onSelectionChanged}
onInitNewCard={onInitNewCard}
onEditingStart={(event) => {
const nextFormData = (event.data as Record<string, any>) ?? {}
formDataRef.current = nextFormData
setFormData(nextFormData)
setMode('edit')
setIsPopupFullScreen(
useMobileEditPopup || (editingOptions?.popup?.fullScreen ?? false),
)
})}
{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>
onEditCanceled={() => {
setMode('view')
setIsPopupFullScreen(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,
}}
/>
<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.subFormsListFormType === SubFormTabTypeEnum.List && (
<>
<hr className="my-2" />
<SubForms gridDto={gridDto} formData={formData} level={level ?? 0} />
</>
)}
{gridDto.gridOptions.subFormsDto?.length > 0 &&
gridDto.gridOptions.subFormsListFormType === SubFormTabTypeEnum.List && (
<>
<hr className="my-2" />
<SubForms gridDto={gridDto} formData={formData} level={level ?? 0} />
</>
)}
<Dialog
width={1000}
isOpen={filterData.isImportModalOpen || false}
onClose={() => filterData.setIsImportModalOpen(false)}
onRequestClose={() => filterData.setIsImportModalOpen(false)}
>
<Dialog.Header className="-mt-5 border-b border-gray-200 p-2 dark:border-gray-700">
<h2 className="text-lg font-semibold">
{translate('::ListForms.ListForm.ImportManager')}
</h2>
</Dialog.Header>
<Dialog.Body className="mt-2 flex flex-col">
<ImportDashboard gridDto={gridDto} />
</Dialog.Body>
</Dialog>
</div>
)}
<Dialog
width={1000}
isOpen={filterData.isImportModalOpen || false}
onClose={() => filterData.setIsImportModalOpen(false)}
onRequestClose={() => filterData.setIsImportModalOpen(false)}
>
<Dialog.Header className="-mt-5 border-b border-gray-200 p-2 dark:border-gray-700">
<h2 className="text-lg font-semibold">
{translate('::ListForms.ListForm.ImportManager')}
</h2>
</Dialog.Header>
<Dialog.Body className="mt-2 flex flex-col">
<ImportDashboard gridDto={gridDto} />
</Dialog.Body>
</Dialog>
</div>
)}
<Dialog
isOpen={toolbarModalData?.open || false}
onClose={() => setToolbarModalData(undefined)}
onRequestClose={() => setToolbarModalData(undefined)}
>
{toolbarModalData?.content}
</Dialog>
<GridFilterDialogs gridRef={cardViewRef as any} listFormCode={listFormCode} {...filterData} />
{notePanelTarget && (
<NotePanel
isVisible
entityName={notePanelTarget.entityName}
entityId={notePanelTarget.entityId}
onToggle={() => setNotePanelTarget(null)}
<Dialog
isOpen={toolbarModalData?.open || false}
onClose={() => setToolbarModalData(undefined)}
onRequestClose={() => setToolbarModalData(undefined)}
>
{toolbarModalData?.content}
</Dialog>
<GridFilterDialogs
gridRef={cardViewRef as any}
listFormCode={listFormCode}
{...filterData}
/>
)}
</Container>
{notePanelTarget && (
<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 chartRef = useRef<ChartRef>(null)
const refListFormCode = useRef('')
const widgetGroupRef = useRef<HTMLDivElement>(null)
const config = useStoreState((state) => state.abpConfig.config)
const [gridDataSource, setGridDataSource] = useState<CustomStore<any, any>>()
@ -431,7 +432,9 @@ const Pivot = (props: PivotProps) => {
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}>
{!isSubForm && (

View file

@ -83,6 +83,15 @@ interface UserOption {
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[] =>
columns.flatMap((column) =>
column.columns?.length ? flattenColumns(column.columns as GridColumnData[]) : [column],
@ -260,6 +269,14 @@ const TodoBoard = ({ listFormCode, searchParams, isSubForm, gridDto }: TodoBoard
[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(() => {
dragActiveRef.current = false
setDraggedKey(undefined)
@ -633,7 +650,11 @@ const TodoBoard = ({ listFormCode, searchParams, isSubForm, gridDto }: TodoBoard
})
return
}
if (!window.confirm(translate('::ListForms.TodoBoard.ConfirmDeleteColumn', { 0: status })))
if (
!window.confirm(
translate('::ListForms.TodoBoard.ConfirmDeleteColumn', { 0: statusText(status) }),
)
)
return
const next = statuses.filter((item) => item !== status)
@ -1051,7 +1072,7 @@ const TodoBoard = ({ listFormCode, searchParams, isSubForm, gridDto }: TodoBoard
>
{statuses.map((status) => (
<option key={status} value={status}>
{lookupText(options.statusExpr, status)}
{statusText(status)}
</option>
))}
</select>
@ -1270,11 +1291,8 @@ const TodoBoard = ({ listFormCode, searchParams, isSubForm, gridDto }: TodoBoard
</form>
) : (
<>
<h4
className="min-w-0 truncate font-sm"
title={lookupText(options.statusExpr, status)}
>
{lookupText(options.statusExpr, status)}
<h4 className="min-w-0 truncate font-sm" title={statusText(status)}>
{statusText(status)}
</h4>
{canUpdate && (
<button

View file

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