LanguageText aynı olan Keyler unique hale getirildi

This commit is contained in:
Sedat ÖZTÜRK 2026-08-14 17:03:34 +03:00
parent f372c17249
commit c1a74bc245
270 changed files with 6855 additions and 9612 deletions

View file

@ -833,21 +833,21 @@ public class ListFormWorkflowAppService : PlatformAppService, IListFormWorkflowA
{
"Start" => new[]
{
localizer["ListForms.ListForm.Workflow.WorkflowStarted"].Value,
localizer["ListForms.ListForm.Workflow.Step", node.Title].Value,
localizer["ListForms.ListForm.Workflow.PerformedBy", userName].Value
localizer["App.ListFormWorkflow.WorkflowStarted"].Value,
localizer["App.ListFormWorkflow.Step", node.Title].Value,
localizer["App.ListFormWorkflow.PerformedBy", userName].Value
}.Concat(FormatNextToastNode(next)),
"Inform" => new[]
{
localizer["ListForms.ListForm.Workflow.InformReached"].Value,
localizer["ListForms.ListForm.Workflow.Step", node.Title].Value,
localizer["ListForms.ListForm.Workflow.InformUser", FormatToastUser(node.Approver)].Value
localizer["App.ListFormWorkflow.InformReached"].Value,
localizer["App.ListFormWorkflow.Step", node.Title].Value,
localizer["App.ListFormWorkflow.InformUser", FormatToastUser(node.Approver)].Value
}.Concat(FormatNextToastNode(next)),
"End" => new[]
{
localizer["ListForms.ListForm.Workflow.WorkflowCompleted"].Value,
localizer["ListForms.ListForm.Workflow.Step", node.Title].Value,
localizer["ListForms.ListForm.Workflow.PerformedBy", userName].Value
localizer["App.ListFormWorkflow.WorkflowCompleted"].Value,
localizer["App.ListFormWorkflow.Step", node.Title].Value,
localizer["App.ListFormWorkflow.PerformedBy", userName].Value
},
_ => null
};
@ -889,29 +889,29 @@ public class ListFormWorkflowAppService : PlatformAppService, IListFormWorkflowA
{
"Approval" =>
[
localizer["ListForms.ListForm.Workflow.NextStep.Approval"].Value,
localizer["ListForms.ListForm.Workflow.NextStepName", node.Title].Value,
localizer["ListForms.ListForm.Workflow.ApproverUser", FormatToastUser(node.Approver)].Value
localizer["App.WorkflowNextStep.Approval"].Value,
localizer["App.ListFormWorkflow.NextStepName", node.Title].Value,
localizer["App.ListFormWorkflow.ApproverUser", FormatToastUser(node.Approver)].Value
],
"Inform" =>
[
localizer["ListForms.ListForm.Workflow.NextStep.Inform"].Value,
localizer["ListForms.ListForm.Workflow.NextStepName", node.Title].Value,
localizer["ListForms.ListForm.Workflow.InformUser", FormatToastUser(node.Approver)].Value
localizer["App.WorkflowNextStep.Inform"].Value,
localizer["App.ListFormWorkflow.NextStepName", node.Title].Value,
localizer["App.ListFormWorkflow.InformUser", FormatToastUser(node.Approver)].Value
],
"End" =>
[
localizer["ListForms.ListForm.Workflow.NextStep.End"].Value,
localizer["ListForms.ListForm.Workflow.NextStepName", node.Title].Value
localizer["App.WorkflowNextStep.End"].Value,
localizer["App.ListFormWorkflow.NextStepName", node.Title].Value
],
_ => [localizer["ListForms.ListForm.Workflow.NextStep", node.Title].Value]
_ => [localizer["App.ListFormWorkflow.NextStep", node.Title].Value]
};
}
private string FormatToastUser(string userName)
{
return userName.IsNullOrWhiteSpace()
? localizer["ListForms.ListForm.Workflow.UndefinedUser"].Value
? localizer["App.ListFormWorkflow.UndefinedUser"].Value
: FormatWorkflowApprovers(userName);
}

View file

@ -656,7 +656,7 @@ public class PublicAppService : PlatformAppService
</head>
<body bgcolor=""#f3f4f6"" style=""margin:0;padding:0;background-color:#f3f4f6;font-family:Arial,Helvetica,sans-serif;color:#111827;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;"">
<div style=""display:none;font-size:1px;color:#f3f4f6;line-height:1px;max-height:0;max-width:0;opacity:0;overflow:hidden;"">
{Html(Translate("Public.order.success.title"))} #{order.Id}
{Html(Translate("App.OrderSuccess.SuccessTitle"))} #{order.Id}
</div>
<table role=""presentation"" width=""100%"" cellpadding=""0"" cellspacing=""0"" border=""0"" bgcolor=""#f3f4f6"" style=""width:100%;background-color:#f3f4f6;border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;"">
<tr>
@ -679,10 +679,10 @@ public class PublicAppService : PlatformAppService
<td style=""vertical-align:middle;"">
<table role=""presentation"" cellpadding=""0"" cellspacing=""0"" border=""0"" style=""border-collapse:collapse;"">
<tr>
<td style=""font-size:22px;line-height:28px;font-weight:800;color:#111827;"">{Html(Translate("Public.order.success.title"))}</td>
<td style=""font-size:22px;line-height:28px;font-weight:800;color:#111827;"">{Html(Translate("App.OrderSuccess.SuccessTitle"))}</td>
</tr>
<tr>
<td style=""padding-top:6px;color:#4b5563;font-size:14px;line-height:20px;"">{Html(Translate("Public.order.success.number"))} <strong style=""color:#2563eb;"">#{order.Id}</strong></td>
<td style=""padding-top:6px;color:#4b5563;font-size:14px;line-height:20px;"">{Html(Translate("App.OrderSuccess.Number"))} <strong style=""color:#2563eb;"">#{order.Id}</strong></td>
</tr>
</table>
</td>
@ -785,15 +785,15 @@ public class PublicAppService : PlatformAppService
<td style=""width:42%;vertical-align:top;"">
<table role=""presentation"" width=""100%"" cellpadding=""0"" cellspacing=""0"" border=""0"" style=""width:100%;border-collapse:collapse;color:#374151;font-size:14px;mso-table-lspace:0pt;mso-table-rspace:0pt;"">
<tr>
<td style=""padding:8px 0;text-align:left;line-height:20px;"">{Html(Translate("Public.payment.summary.subtotal"))}</td>
<td style=""padding:8px 0;text-align:left;line-height:20px;"">{Html(Translate("App.Listform.ListformField.Subtotal"))}</td>
<td align=""right"" style=""padding:8px 0;text-align:right;font-weight:700;color:#111827;white-space:nowrap;line-height:20px;"">{FormatPrice(order.Subtotal)}</td>
</tr>
<tr>
<td style=""padding:8px 0;text-align:left;line-height:20px;"">{Html(Translate("Public.products.kdv"))}</td>
<td style=""padding:8px 0;text-align:left;line-height:20px;"">{Html(Translate("App.PublicProducts.Kdv"))}</td>
<td align=""right"" style=""padding:8px 0;text-align:right;font-weight:700;color:#111827;white-space:nowrap;line-height:20px;"">{FormatPrice(order.VatTotal)}</td>
</tr>
<tr>
<td style=""padding:8px 0;text-align:left;line-height:20px;"">{Html(Translate("Public.payment.installments.commission"))}</td>
<td style=""padding:8px 0;text-align:left;line-height:20px;"">{Html(Translate("App.Listform.ListformField.Commission"))}</td>
<td align=""right"" style=""padding:8px 0;text-align:right;font-weight:700;color:#111827;white-space:nowrap;line-height:20px;"">{FormatPrice(order.Commission)}</td>
</tr>
<tr>

View file

@ -11,7 +11,7 @@
{
"code": "App.SiteManagement.General.NewMemberNotificationEmails",
"nameKey": "App.SiteManagement.General.NewMemberNotificationEmails",
"descriptionKey": "App.SiteManagement.General.NewMemberNotificationEmails.Description",
"descriptionKey": "App.GeneralNewMemberNotificationEmails.NewMemberNotificationEmailsDescription",
"defaultValue": "system@sozsoft.com",
"isVisibleToClients": false,
"providers": "T|G|D",
@ -27,7 +27,7 @@
{
"code": "App.SiteManagement.General.TimedLoginEmails",
"nameKey": "App.SiteManagement.General.TimedLoginEmails",
"descriptionKey": "App.SiteManagement.General.TimedLoginEmails.Description",
"descriptionKey": "App.GeneralTimedLoginEmails.TimedLoginEmailsDescription",
"defaultValue": "system@sozsoft.com",
"isVisibleToClients": false,
"providers": "T|G|D",
@ -43,7 +43,7 @@
{
"code": "App.SiteManagement.General.NewTenantNotificationEmails",
"nameKey": "App.SiteManagement.General.NewTenantNotificationEmails",
"descriptionKey": "App.SiteManagement.General.NewTenantNotificationEmails.Description",
"descriptionKey": "App.GeneralNewTenantNotificationEmails.NewTenantNotificationEmailsDescription",
"defaultValue": "destek@sozsoft.com",
"isVisibleToClients": false,
"providers": "T|G|D",
@ -59,7 +59,7 @@
{
"code": "App.SiteManagement.Theme.Style",
"nameKey": "App.SiteManagement.Theme.Style",
"descriptionKey": "App.SiteManagement.Theme.Style.Description",
"descriptionKey": "App.ThemeStyle.StyleDescription",
"defaultValue": "dx.material.blue.dark.compact",
"isVisibleToClients": true,
"providers": "U|G|D",
@ -305,7 +305,7 @@
{
"code": "App.Sender.Sms.PostaGuvercini.Url",
"nameKey": "App.Sender.Sms.PostaGuvercini.Url",
"descriptionKey": "App.Sender.Url.Description",
"descriptionKey": "App.SenderUrl.UrlDescription",
"defaultValue": "https://www.postaguvercini.com/api_http",
"isVisibleToClients": false,
"providers": "T|G|D",
@ -321,7 +321,7 @@
{
"code": "App.Sender.Sms.PostaGuvercini.Username",
"nameKey": "App.Sender.Sms.PostaGuvercini.Username",
"descriptionKey": "App.Sender.Sms.PostaGuvercini.Username.Description",
"descriptionKey": "App.PostaGuverciniUsername.UsernameDescription",
"defaultValue": "2AIlj4QlCrvlbDDBS/712A==",
"isVisibleToClients": false,
"providers": "T|G|D",
@ -337,7 +337,7 @@
{
"code": "App.Sender.Sms.PostaGuvercini.Password",
"nameKey": "App.Sender.Sms.PostaGuvercini.Password",
"descriptionKey": "App.Sender.Sms.PostaGuvercini.Password.Description",
"descriptionKey": "App.PostaGuverciniPassword.PasswordDescription",
"defaultValue": "oTuwyZM9sxfJI+jDH5wJAw==",
"isVisibleToClients": false,
"providers": "T|G|D",
@ -353,7 +353,7 @@
{
"code": "App.Sender.WhatsApp.Url",
"nameKey": "App.Sender.WhatsApp.Url",
"descriptionKey": "App.Sender.Url.Description",
"descriptionKey": "App.SenderUrl.UrlDescription",
"defaultValue": "https://graph.facebook.com/v21.0",
"isVisibleToClients": false,
"providers": "T|G|D",
@ -369,7 +369,7 @@
{
"code": "App.Sender.WhatsApp.PhoneNumberId",
"nameKey": "App.Sender.WhatsApp.PhoneNumberId",
"descriptionKey": "App.Sender.WhatsApp.PhoneNumberId.Description",
"descriptionKey": "App.WhatsAppPhoneNumberId.PhoneNumberIdDescription",
"defaultValue": "442035112335974",
"isVisibleToClients": false,
"providers": "T|G|D",
@ -385,7 +385,7 @@
{
"code": "App.Sender.WhatsApp.Token",
"nameKey": "App.Sender.WhatsApp.Token",
"descriptionKey": "App.Sender.WhatsApp.Token.Description",
"descriptionKey": "App.WhatsAppToken.TokenDescription",
"defaultValue": "EAANoftqZAJ64BO5oPwXPqniUtNGF70u8TKvQVzGZBaYQh5UY8fYrgQkcXP9UbQUqT9PWRah1L7TzcBIiWQMacT8AkmZB33AP1begLoywIZCsQSdBSUz21GQaCowfVosYgBoXSyqH8irSBPQDLIjxxVxrC2n76SD9X6zPXeHgOqIPY92DqJXplstWrlhtZCAZDZD",
"isVisibleToClients": false,
"providers": "T|G|D",
@ -401,7 +401,7 @@
{
"code": "App.Sender.WhatsApp.TemplateName",
"nameKey": "App.Sender.WhatsApp.TemplateName",
"descriptionKey": "App.Sender.WhatsApp.TemplateName.Description",
"descriptionKey": "App.WhatsAppTemplateName.TemplateNameDescription",
"defaultValue": "Erp_platform_notification",
"isVisibleToClients": false,
"providers": "T|G|D",
@ -417,7 +417,7 @@
{
"code": "App.Sender.Rocket.Url",
"nameKey": "App.Sender.Rocket.Url",
"descriptionKey": "App.Sender.Url.Description",
"descriptionKey": "App.SenderUrl.UrlDescription",
"defaultValue": "https://chat.sozsoft.com/api/v1",
"isVisibleToClients": false,
"providers": "G|D",
@ -433,7 +433,7 @@
{
"code": "App.Sender.Rocket.UserId",
"nameKey": "App.Sender.Rocket.UserId",
"descriptionKey": "App.Sender.Rocket.UserId.Description",
"descriptionKey": "App.RocketUserId.UserIdDescription",
"defaultValue": "LfpzPjzag4QJXm84N",
"isVisibleToClients": false,
"providers": "G|D",
@ -449,7 +449,7 @@
{
"code": "App.Sender.Rocket.Token",
"nameKey": "App.Sender.Rocket.Token",
"descriptionKey": "App.Sender.Rocket.Token.Description",
"descriptionKey": "App.RocketToken.TokenDescription",
"defaultValue": "jvqALawvXn0Q7c6FfHJV3h58DCHDfQLgFF5y7oIc7oc",
"isVisibleToClients": false,
"providers": "G|D",

View file

@ -285,7 +285,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
EditorOptions = EditorOptionValues.ShowClearButton,
CaptionName = "App.Listform.ListformField.ParentName",
CaptionName = "App.Listform.ListformField.ParentId",
Width = 0,
ListOrderNo = 3,
Visible = true,
@ -403,7 +403,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key=1, Name="App.StaticLookup.Tenant" },
new () { Key=2, Name="App.StaticLookup.Host" },
new () { Key=2, Name="Abp.Mailing.Smtp.Host" },
new () { Key=3, Name="App.StaticLookup.Both" },
}),
}),
@ -793,7 +793,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditOrderNo = 2,
EditorType2 = EditorTypes.dxCheckBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.IsDefault",
CaptionName = "Abp.Mailing.Default",
Width = 0,
ListOrderNo = 2,
Visible = true,
@ -874,8 +874,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
UpdateServiceAddress = "list-form-dynamic-api/user-update",
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
new() {
Hint = "App.Platform.Detail",
Text ="App.Platform.Detail",
Hint = "Detail",
Text ="Detail",
UrlTarget="_blank",
AuthName=PlatformConsts.IdentityPermissions.Users.Update,
Url="/admin/users/detail/@Id",
@ -998,7 +998,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditOrderNo = 2,
EditorType2 = EditorTypes.dxTextBox,
ColSpan = 1,
CaptionName = "Abp.Account.EmailAddress",
CaptionName = "App.Listform.ListformField.Email",
Width = 0,
ListOrderNo = 2,
Visible = true,
@ -1152,7 +1152,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
EditorOptions = EditorOptionValues.ShowClearButton,
CaptionName = "App.Listform.ListformField.DepartmentId",
CaptionName = "App.Listform.ListformField.Department",
Width = 0,
ListOrderNo = 8,
LookupJson = JsonSerializer.Serialize(new LookupDto {
@ -1342,8 +1342,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
PagerOptionJson = DefaultPagerOptionJson,
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
new CommandColumnDto() {
Hint = "ListForms.ListFormEdit.TabDetails",
Text = "ListForms.ListFormEdit.TabDetails",
Hint = "Detail",
Text = "Detail",
AuthName = listFormName,
DialogName = "AuditLogDetail",
DialogParameters = JsonSerializer.Serialize(new { id = "@Id" }),
@ -1408,7 +1408,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Url",
CaptionName = "App.Listform.ListformField.Url",
CaptionName = "App.Sender.Rocket.Url",
Width = 0,
ListOrderNo = 4,
Visible = true,
@ -1424,7 +1424,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "UserName",
CaptionName = "App.Listform.ListformField.UserName",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 5,
Visible = true,
@ -1782,7 +1782,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditOrderNo = 3,
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.CategoryId",
CaptionName = "App.Listform.ListformField.Category",
Width = 0,
ListOrderNo = 3,
Visible = true,
@ -1814,8 +1814,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "active", Name= "App.StaticLookup.Active" },
new () { Key= "passive", Name= "App.StaticLookup.Passive" },
new () { Key= "active", Name= "App.Listform.ListformField.IsActive" },
new () { Key= "passive", Name= "App.Platform.Passive" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -2339,7 +2339,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="User", Name="App.StaticLookup.User" },
new () { Key="User", Name="App.Platform.User" },
new () { Key="Role", Name="App.StaticLookup.Role" },
new () { Key="Global", Name="App.StaticLookup.Global" },
}),
@ -2523,7 +2523,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "UserId",
CaptionName = "App.Listform.ListformField.UserName",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 5,
Visible = true,
@ -2563,7 +2563,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "IpAddresses",
CaptionName = "App.Listform.ListformField.IpAddress",
CaptionName = "App.Listform.ListformField.IP",
Width = 0,
ListOrderNo = 7,
Visible = true,
@ -2843,7 +2843,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
EditorOptions = EditorOptionValues.ShowClearButton,
CaptionName = "App.Listform.ListformField.DepartmentId",
CaptionName = "App.Listform.ListformField.Department",
Width = 0,
ListOrderNo = 4,
Visible = true,
@ -3046,9 +3046,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "general", Name= "App.StaticLookup.General" },
new () { Key= "general", Name= "Abp.Account.General" },
new () { Key= "event", Name= "App.StaticLookup.Event" },
new () { Key= "urgent", Name= "App.StaticLookup.Urgent" },
new () { Key= "urgent", Name= "App.Listform.ListformField.IsUrgent" },
new () { Key= "announcement", Name= "App.StaticLookup.Announcement" },
}),
}),
@ -3067,7 +3067,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
EditorOptions = EditorOptionValues.ShowClearButton,
CaptionName = "App.Listform.ListformField.UserId",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 6,
Visible = true,
@ -3239,7 +3239,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditOrderNo = 1,
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.UserId",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 2,
Visible = true,
@ -3347,7 +3347,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditOrderNo = 1,
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.UserId",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 2,
Visible = true,
@ -3576,8 +3576,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "active", Name= "App.StaticLookup.Active" },
new () { Key= "passive", Name= "App.StaticLookup.Passive" },
new () { Key= "active", Name= "App.Listform.ListformField.IsActive" },
new () { Key= "passive", Name= "App.Platform.Passive" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -3757,7 +3757,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "rating", Name= "App.StaticLookup.Rating" },
new () { Key= "multiple-choice", Name= "App.StaticLookup.MultipleChoice" },
new () { Key= "text", Name= "App.StaticLookup.Text" },
new () { Key= "text", Name= "App.Listform.ListformField.Text" },
new () { Key= "textarea", Name= "App.StaticLookup.Textarea" },
new () { Key= "yes-no", Name= "App.StaticLookup.YesNo" },
}),
@ -3776,7 +3776,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditOrderNo = 4,
EditorType2 = EditorTypes.dxCheckBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.IsRequired",
CaptionName = "App.Listform.ListformField.Required",
Width = 0,
ListOrderNo = 5,
Visible = true,
@ -4022,7 +4022,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
EditorOptions = EditorOptionValues.ShowClearButton,
CaptionName = "App.Listform.ListformField.UserId",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 2,
Visible = true,
@ -4321,7 +4321,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
EditorOptions = EditorOptionValues.ShowClearButton,
CaptionName = "App.Listform.ListformField.UserId",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 2,
Visible = true,
@ -4604,7 +4604,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditOrderNo = 1,
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.UserId",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 2,
Visible = true,
@ -4932,7 +4932,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
EditorOptions = EditorOptionValues.ShowClearButton,
CaptionName = "App.Listform.ListformField.CategoryId",
CaptionName = "App.Listform.ListformField.Category",
Width = 0,
ListOrderNo = 2,
Visible = true,
@ -4955,7 +4955,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
EditorOptions = EditorOptionValues.ShowClearButton,
CaptionName = "App.Listform.ListformField.TypeId",
CaptionName = "App.Listform.ListformField.Type",
Width = 0,
ListOrderNo = 3,
Visible = true,
@ -5065,7 +5065,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
EditorOptions = EditorOptionValues.ShowClearButton,
CaptionName = "App.Listform.ListformField.UserId",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 8,
Visible = true,
@ -5248,7 +5248,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditOrderNo = 1,
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.UserId",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 2,
Visible = true,
@ -5356,7 +5356,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditOrderNo = 1,
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.UserId",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 2,
Visible = true,
@ -6035,7 +6035,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditOrderNo = 2,
EditorType2 = EditorTypes.dxTextBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.UserName",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 2,
Visible = true,
@ -6321,7 +6321,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditOrderNo = 1,
EditorType2 = EditorTypes.dxTextBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.UserName",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 1,
Visible = true,

View file

@ -1000,7 +1000,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
EditOrderNo = 5,
EditorType2 = EditorTypes.dxTextBox,
ColSpan = 1,
CaptionName = "Abp.Account.EmailAddress",
CaptionName = "App.Listform.ListformField.Email",
Width = 0,
ListOrderNo = 13,
Visible = true,
@ -1273,7 +1273,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
EditOrderNo = 4,
EditorType2 = EditorTypes.dxTextBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.Url",
CaptionName = "App.Sender.Rocket.Url",
Width = 0,
ListOrderNo = 5,
Visible = true,
@ -3357,7 +3357,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
EditOrderNo = 3,
EditorType2 = EditorTypes.dxCheckBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.IsDefault",
CaptionName = "Abp.Mailing.Default",
Width = 0,
ListOrderNo = 4,
Visible = true,
@ -3782,11 +3782,11 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key="U", Name="App.StaticLookup.User" },
new() { Key="U", Name="App.Platform.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"},
new() { Key="D", Name="Abp.Mailing.Default"},
}),
}),
ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -3838,9 +3838,9 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key="Bool", Name="App.StaticLookup.Bool" },
new() { Key="Bool", Name="App.StaticLookup.Boolean" },
new() { Key="Number", Name="App.StaticLookup.Number"},
new() { Key="Text", Name="App.StaticLookup.Text"},
new() { Key="Text", Name="App.Listform.ListformField.Text"},
new() { Key="Memo", Name="App.StaticLookup.Memo"},
new() { Key="List", Name="App.StaticLookup.List"},
})
@ -4147,8 +4147,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
new() {
ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar,
Hint = "ListForms.ListForm.ClearRedisCache",
Text = "ListForms.ListForm.ClearRedisCache",
Hint = "App.ListForm.ClearRedisCache",
Text = "App.ListForm.ClearRedisCache",
AuthName = listFormName,
OnClick = "UiEvalService.ApiClearRedisCache();",
IsVisible = true,
@ -4485,8 +4485,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
}),
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
new() {
Hint = "App.Platform.Manage",
Text ="App.Platform.Manage",
Hint = "App.Platform.Manage2",
Text ="App.Platform.Manage2",
UrlTarget = "_blank",
AuthName = listFormName + ".Update",
Url = "/admin/listform/edit/@ListFormCode",
@ -4630,7 +4630,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key = ListFormTypeEnum.Form, Name = "App.StaticLookup.Form" },
new() { Key = ListFormTypeEnum.List, Name = "App.StaticLookup.List" },
new() { Key = ListFormTypeEnum.Chart, Name = "App.StaticLookup.Chart" },
new() { Key = ListFormTypeEnum.Chart, Name = "App.Platform.Chart" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -4761,8 +4761,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
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.Currency, Name="App.Listform.ListformField.Currency" },
new() { Key=DbType.Date, Name="App.Listform.ListformField.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" },
@ -4832,7 +4832,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key=GridOptions.SortModeNone, Name="App.StaticLookup.SortNone" },
new() { Key=GridOptions.SortModeNone, Name="App.StaticLookup.None" },
new() { Key=GridOptions.SortModeSingle, Name="App.StaticLookup.SortSingle" },
new() { Key=GridOptions.SortModeMultiple, Name="App.StaticLookup.SortMultiple" },
}),
@ -5260,9 +5260,9 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="All", Name="App.StaticLookup.All" },
new () { Key="User", Name="App.StaticLookup.User" },
new () { Key="User", Name="App.Platform.User" },
new () { Key="Role", Name="App.StaticLookup.Role" },
new () { Key="OrganizationUnit", Name="App.StaticLookup.OrganizationUnit" },
new () { Key="OrganizationUnit", Name="App.Listform.ListformField.IsOrganizationUnit" },
new () { Key="Custom", Name="App.StaticLookup.Custom" },
}),
}),
@ -5316,9 +5316,9 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Sms", Name="App.StaticLookup.Sms" },
new () { Key="Sms", Name="App.Sender.Sms" },
new () { Key="Mail", Name="App.StaticLookup.Mail" },
new () { Key="WhatsApp", Name="App.StaticLookup.WhatsApp" },
new () { Key="WhatsApp", Name="App.Sender.WhatsApp" },
new () { Key="Rocket", Name="App.StaticLookup.Rocket" },
new () { Key="UiActivity", Name="App.StaticLookup.UiActivity" },
new () { Key="UiToast", Name="App.StaticLookup.UiToast" },
@ -5533,13 +5533,13 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Sms", Name="App.StaticLookup.Sms" },
new () { Key="Sms", Name="App.Sender.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" },
new () { Key="WhatsApp", Name="App.Sender.WhatsApp" },
}),
}),
ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -6278,7 +6278,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="public",Name="App.StaticLookup.Public" },
new () { Key="public",Name="App.Listform.ListformField.IsPublic" },
new () { Key="protected",Name="App.StaticLookup.Protected" },
new () { Key="authenticated",Name="App.StaticLookup.Authenticated" },
}),
@ -6888,7 +6888,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
EditOrderNo = 2,
EditorType2 = EditorTypes.dxTextBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.Url",
CaptionName = "App.Sender.Rocket.Url",
Width = 0,
ListOrderNo = 4,
Visible = true,
@ -7178,9 +7178,9 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
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" },
new () { Key="App.ProductsCategories.Uyelik",Name="App.ProductsCategories.Uyelik" },
new () { Key="App.ProductsCategories.Lisans",Name="App.ProductsCategories.Lisans" },
new () { Key="App.ProductsCategories.EkHizmetler",Name="App.ProductsCategories.EkHizmetler" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -9226,7 +9226,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
EditorType2 = EditorTypes.dxSelectBox,
ColSpan = 1,
EditorOptions = EditorOptionValues.ShowClearButton,
CaptionName = "App.Listform.ListformField.CategoryId",
CaptionName = "App.Listform.ListformField.Category",
Width = 0,
ListOrderNo = 7,
Visible = true,
@ -9544,7 +9544,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
EditOrderNo = 3,
EditorType2 = EditorTypes.dxTextBox,
ColSpan = 1,
CaptionName = "Abp.Account.EmailAddress",
CaptionName = "App.Listform.ListformField.Email",
Width = 0,
ListOrderNo = 4,
Visible = true,
@ -9779,7 +9779,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
EditOrderNo = 2,
EditorType2 = EditorTypes.dxTextBox,
ColSpan = 1,
CaptionName = "App.Listform.ListformField.UserName",
CaptionName = "Abp.Mailing.Smtp.UserName",
Width = 0,
ListOrderNo = 2,
Visible = true,

View file

@ -441,12 +441,12 @@
"authority": ["App.Contact"]
},
{
"key": "admin.videoroom.dashboard",
"key": "admin.videoroom",
"path": "/admin/videoroom/dashboard",
"componentType": "normal",
"componentPath": "@/views/admin/videoroom/Dashboard",
"routeType": "protected",
"authority": ["App.Videoroom.Dashboard"]
"authority": ["App.Videoroom"]
},
{
"key": "admin.videoroom.list",
@ -457,12 +457,12 @@
"authority": ["App.Videoroom.List"]
},
{
"key": "admin.videoroom.roomdetail",
"key": "admin.videoroom.detail",
"path": "/admin/videoroom/room/:id",
"componentType": "normal",
"componentPath": "@/views/admin/videoroom/RoomDetail",
"routeType": "protected",
"authority": ["App.Videoroom.RoomDetail"]
"authority": ["App.Videoroom.Detail"]
}
],
"MenuGroups": [
@ -488,7 +488,7 @@
{
"ParentCode": "App.Saas",
"Code": "App.Saas.Definitions",
"DisplayName": "App.Definitions",
"DisplayName": "App.Platform.Definitions",
"Order": 1,
"Url": null,
"Icon": "FcFilingCabinet",
@ -1030,7 +1030,7 @@
{
"ParentCode": "App.Administration",
"Code": "App.Administration.Definitions",
"DisplayName": "App.Definitions",
"DisplayName": "App.Platform.Definitions",
"Order": 1,
"Url": null,
"Icon": "FcFilingCabinet",
@ -1190,7 +1190,7 @@
{
"ParentCode": "App.Administration",
"Code": "App.Administration.Restrictions",
"DisplayName": "App.Restrictions",
"DisplayName": "App.Platform.Restrictions",
"Order": 7,
"Url": null,
"Icon": "FaLock",
@ -1339,12 +1339,12 @@
},
{
"ParentCode": "App.Administration",
"Code": "App.Videoroom.Dashboard",
"DisplayName": "App.Videoroom.Dashboard",
"Code": "App.Videoroom",
"DisplayName": "App.Videoroom",
"Order": 10,
"Url": "/admin/videoroom/dashboard",
"Icon": "FcVideoCall",
"RequiredPermissionName": "App.Videoroom.Dashboard",
"RequiredPermissionName": "App.Videoroom",
"IsDisabled": false
},
{

View file

@ -565,7 +565,7 @@ public static class PlatformConsts
public static class AppErrorCodes
{
public const string NoAuth = "Error:0001";
public const string EntityNotFound = "App.NoResults";
public const string EntityNotFound = "App.Platform.NoResults2";
public const string ParameterNotValid = "Error:0003";
public const string SimilarInformationNotCopied = "Error:0004";
public const string InternalError = "Error:0005";

View file

@ -27,12 +27,12 @@ public static class WizardConsts
public static string PermExport(string code) => $"{WizardKey(code)}.Export";
public static string PermImport(string code) => $"{WizardKey(code)}.Import";
public static string PermNote(string code) => $"{WizardKey(code)}.Note";
public static string LangKeyCreate => "Create";
public static string LangKeyUpdate => "Update";
public static string LangKeyDelete => "Delete";
public static string LangKeyExport => "Export";
public static string LangKeyImport => "Import";
public static string LangKeyNote => "Note";
public static string LangKeyCreate => "App.Platform.Create";
public static string LangKeyUpdate => "App.Platform.Update";
public static string LangKeyDelete => "App.Platform.Delete";
public static string LangKeyExport => "App.Platform.Export";
public static string LangKeyImport => "App.Platform.Import";
public static string LangKeyNote => "App.Platform.Note";
public static string MenuUrl(string code) => $"/admin/list/{code}";
public static string MenuIcon => "FcList";

File diff suppressed because one or more lines are too long

View file

@ -31,8 +31,8 @@ public interface IPlatformSignInManager
public class PlatformSignInManager : AbpSignInManager, IPlatformSignInManager
{
private const string UserLicenseProductName = "Public.products.userLicense";
private const string BranchLicenseProductName = "Public.products.branchHosting";
private const string UserLicenseProductName = "App.PublicProducts.UserLicense";
private const string BranchLicenseProductName = "App.PublicProducts.BranchHosting";
private const string ApprovedOrderStatus = "Approved";
private readonly IClock clock;

View file

@ -357,12 +357,12 @@ internal static class DynamicReportImageHelper
if (!string.IsNullOrWhiteSpace(filterText))
{
parts.Add(localizer["ListForms.ListFormField.Filter"] + ": " + filterText);
parts.Add(localizer["App.ListFormField.Filter"] + ": " + filterText);
}
if (!string.IsNullOrWhiteSpace(sortText))
{
parts.Add(localizer["ListForms.ListFormField.Sorting"] + ": " + sortText);
parts.Add(localizer["App.ListFormField.Sorting"] + ": " + sortText);
}
return string.Join(" | ", parts);
@ -911,8 +911,8 @@ internal static class DynamicReportImageHelper
var fieldName = parts[0].Trim('"');
var direction = parts.Length > 1 ? parts[1] : "asc";
var directionText = string.Equals(direction, "desc", StringComparison.OrdinalIgnoreCase)
? localizer["ListForms.ListFormField.Sorting_Descending"]
: localizer["ListForms.ListFormField.Sorting_Ascending"];
? localizer["App.ListFormField.SortingDescending"]
: localizer["App.ListFormField.SortingAscending"];
return $"{GetFieldCaption(fieldName, fieldCaptions)} {directionText}";
})

View file

@ -433,7 +433,7 @@ const StyleModal = ({
}}
/>
<Button icon={<FaPlus />} size="sm" variant="default" onClick={addCustomClass}>
{translate('::ListForms.Wizard.Add')}
{translate('::App.Platform.Add')}
</Button>
</div>
)}
@ -475,10 +475,10 @@ const StyleModal = ({
</span>
<div className="flex gap-2">
<Button size="sm" variant="default" onClick={() => onChange('')}>
{translate('::App.DeveloperKit.CrudEndpoints.Clear')}
{translate('::App.Platform.Clear')}
</Button>
<Button size="sm" variant="solid" onClick={onClose}>
{translate('::OK')}
{translate('::App.Platform.OK')}
</Button>
</div>
</div>

View file

@ -5,7 +5,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Alert',
icon: 'AlertCircle',
category: 'feedback',
description: 'App.CodeLayout.Component.Alert.Description',
description: 'App.ComponentAlert.AlertDescription',
properties: [
{
name: 'children',
@ -62,7 +62,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Avatar',
icon: 'User',
category: 'media',
description: 'App.CodeLayout.Component.Avatar.Description',
description: 'App.ComponentAvatar.AvatarDescription',
properties: [
{
name: 'alt',
@ -108,7 +108,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Badge',
icon: 'Tag',
category: 'feedback',
description: 'App.CodeLayout.Component.Badge.Description',
description: 'App.ComponentBadge.BadgeDescription',
properties: [
{
name: 'children',
@ -138,7 +138,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Button',
icon: 'MousePointer',
category: 'basic',
description: 'App.CodeLayout.Component.Button.Description',
description: 'App.ComponentButton.ButtonDescription',
properties: [
{
name: 'children',
@ -192,7 +192,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Card',
icon: 'Square',
category: 'layout',
description: 'App.CodeLayout.Component.Card.Description',
description: 'App.ComponentCard.CardDescription',
properties: [
{
name: 'children',
@ -250,7 +250,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Checkbox',
icon: 'Check',
category: 'form',
description: 'App.CodeLayout.Component.Checkbox.Description',
description: 'App.ComponentCheckbox.CheckboxDescription',
properties: [
{
name: 'children',
@ -298,7 +298,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'DatePicker',
icon: 'Calendar',
category: 'form',
description: 'App.CodeLayout.Component.DatePicker.Description',
description: 'App.ComponentDatePicker.DatePickerDescription',
properties: [
{
name: 'closePickerOnChange',
@ -510,7 +510,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Drawer',
icon: 'Sidebar',
category: 'interactive',
description: 'App.CodeLayout.Component.Drawer.Description',
description: 'App.ComponentDrawer.DrawerDescription',
properties: [
{
name: 'children',
@ -583,7 +583,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Dropdown',
icon: 'MoreVertical',
category: 'interactive',
description: 'App.CodeLayout.Component.Dropdown.Description',
description: 'App.ComponentDropdown.DropdownDescription',
properties: [
{
name: 'title',
@ -644,7 +644,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Input',
icon: 'Edit',
category: 'form',
description: 'App.CodeLayout.Component.Input.Description',
description: 'App.ComponentInput.InputDescription',
properties: [
{
name: 'disabled',
@ -768,7 +768,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Menu',
icon: 'Menu',
category: 'navigation',
description: 'App.CodeLayout.Component.Menu.Description',
description: 'App.ComponentMenu.MenuDescription',
properties: [
{ name: 'children', type: 'string', value: '', category: 'properties' },
{
@ -828,7 +828,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Notification',
icon: 'Bell',
category: 'feedback',
description: 'App.CodeLayout.Component.Notification.Description',
description: 'App.ComponentNotification.NotificationDescription',
properties: [
{
name: 'children',
@ -873,7 +873,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Pagination',
icon: 'ChevronRight',
category: 'navigation',
description: 'App.CodeLayout.Component.Pagination.Description',
description: 'App.ComponentPagination.PaginationDescription',
properties: [
{ name: 'currentPage', type: 'number', value: 1, category: 'properties' },
{
@ -893,7 +893,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Progress',
icon: 'Activity',
category: 'feedback',
description: 'App.CodeLayout.Component.Progress.Description',
description: 'App.ComponentProgress.ProgressDescription',
properties: [
{ name: 'customInfo', type: 'string', value: '', category: 'properties' },
{ name: 'color', type: 'string', value: '', category: 'styling' },
@ -1002,7 +1002,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Segment',
icon: 'ToggleLeft',
category: 'form',
description: 'App.CodeLayout.Component.Segment.Description',
description: 'App.ComponentSegment.SegmentDescription',
properties: [
{ name: 'children', type: 'string', value: '', category: 'properties' },
{
@ -1045,7 +1045,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Select',
icon: 'ChevronDown',
category: 'form',
description: 'App.CodeLayout.Component.Select.Description',
description: 'App.ComponentSelect.SelectDescription',
properties: [
{ name: 'children', type: 'string', value: '', category: 'properties' },
{
@ -1100,7 +1100,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Skeleton',
icon: 'Square',
category: 'feedback',
description: 'App.CodeLayout.Component.Skeleton.Description',
description: 'App.ComponentSkeleton.SkeletonDescription',
properties: [
{
name: 'animated',
@ -1125,7 +1125,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Spinner',
icon: 'Loader',
category: 'feedback',
description: 'App.CodeLayout.Component.Spinner.Description',
description: 'App.ComponentSpinner.SpinnerDescription',
properties: [
{ name: 'color', type: 'string', value: '#3b82f6', category: 'styling' },
{
@ -1154,7 +1154,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Steps',
icon: 'GitBranch',
category: 'navigation',
description: 'App.CodeLayout.Component.Steps.Description',
description: 'App.ComponentSteps.StepsDescription',
properties: [
{ name: 'children', type: 'string', value: '', category: 'properties' },
{ name: 'current', type: 'number', value: 0, category: 'properties' },
@ -1178,20 +1178,20 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
value: [
{
title: 'Giriş',
description: 'App.CodeLayout.Component.Array.Description',
description: 'App.ComponentArray.ArrayDescription',
icon: '',
},
{
title: 'Sipariş',
description: 'App.CodeLayout.Component.Array.Description2',
description: 'App.ComponentArray.ArrayDescription2',
icon: '',
},
{
title: 'İnceleme',
description: 'App.CodeLayout.Component.Array.Description3',
description: 'App.ComponentArray.ArrayDescription3',
icon: '',
},
{ title: 'Onay', description: 'App.CodeLayout.Component.Array.Description4', icon: '' },
{ title: 'Onay', description: 'App.ComponentArray.ArrayDescription4', icon: '' },
],
category: 'properties',
},
@ -1203,7 +1203,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Switcher',
icon: 'ToggleLeft',
category: 'form',
description: 'App.CodeLayout.Component.Switcher.Description',
description: 'App.ComponentSwitcher.SwitcherDescription',
properties: [
{
name: 'checked',
@ -1362,7 +1362,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Tag',
icon: 'Hash',
category: 'feedback',
description: 'App.CodeLayout.Component.Tag.Description',
description: 'App.ComponentTag.TagDescription',
properties: [
{
name: 'children',
@ -1383,7 +1383,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'TimeInput',
icon: 'Clock',
category: 'form',
description: 'App.CodeLayout.Component.TimeInput.Description',
description: 'App.ComponentTimeInput.TimeInputDescription',
properties: [
{ name: 'amLabel', type: 'string', value: 'AM', category: 'properties' },
{
@ -1468,7 +1468,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Tooltip',
icon: 'MessageCircle',
category: 'interactive',
description: 'App.CodeLayout.Component.Tooltip.Description',
description: 'App.ComponentTooltip.TooltipDescription',
properties: [
{
name: 'children',
@ -1511,7 +1511,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Upload',
icon: 'Upload',
category: 'form',
description: 'App.CodeLayout.Component.Upload.Description',
description: 'App.ComponentUpload.UploadDescription',
properties: [
{
name: 'children',
@ -1560,7 +1560,7 @@ export const CUSTOM_COMPONENTS: ComponentDefinition[] = [
name: 'Grid',
icon: 'Grid3x3',
category: 'layout',
description: 'App.CodeLayout.Component.Grid.Description',
description: 'App.ComponentGrid.GridDescription',
properties: [
{ name: 'children', type: 'string', value: '', category: 'properties' },
{
@ -1707,7 +1707,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'div',
icon: 'Square',
category: 'basic',
description: 'App.CodeLayout.Component.Div.Description',
description: 'App.ComponentDiv.DivDescription',
properties: [
{
name: 'children',
@ -1763,7 +1763,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'input',
icon: 'Input',
category: 'form',
description: 'App.CodeLayout.Component.Input.Description2',
description: 'App.ComponentInput.InputDescription2',
properties: [
{
name: 'type',
@ -1808,7 +1808,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'button',
icon: 'MousePointerClick',
category: 'form',
description: 'App.CodeLayout.Component.Button.Description2',
description: 'App.ComponentButton.ButtonDescription2',
properties: [
{
name: 'children',
@ -1856,7 +1856,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'textarea',
icon: 'AlignLeft',
category: 'form',
description: 'App.CodeLayout.Component.Textarea.Description',
description: 'App.ComponentTextarea.TextareaDescription',
properties: [
{
name: 'value',
@ -1914,7 +1914,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'select',
icon: 'ListTree',
category: 'form',
description: 'App.CodeLayout.Component.Select.Description2',
description: 'App.ComponentSelect.SelectDescription2',
properties: [
{
name: 'value',
@ -1960,7 +1960,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'checkbox',
icon: 'CheckSquare',
category: 'form',
description: 'App.CodeLayout.Component.Checkbox.Description2',
description: 'App.ComponentCheckbox.CheckboxDescription2',
properties: [
{
name: 'checked',
@ -1990,7 +1990,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'p',
icon: 'Text',
category: 'basic',
description: 'App.CodeLayout.Component.P.Description',
description: 'App.ComponentP.PDescription',
properties: [
{
name: 'children',
@ -2024,7 +2024,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'span',
icon: 'Type',
category: 'basic',
description: 'App.CodeLayout.Component.Span.Description',
description: 'App.ComponentSpan.SpanDescription',
properties: [
{
name: 'children',
@ -2058,7 +2058,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'h1',
icon: 'Heading1',
category: 'basic',
description: 'App.CodeLayout.Component.H1.Description',
description: 'App.ComponentH1.H1Description',
properties: [
{
name: 'children',
@ -2093,7 +2093,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'h2',
icon: 'Heading2',
category: 'basic',
description: 'App.CodeLayout.Component.H2.Description',
description: 'App.ComponentH2.H2Description',
properties: [
{
name: 'children',
@ -2128,7 +2128,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'h3',
icon: 'Heading3',
category: 'basic',
description: 'App.CodeLayout.Component.H3.Description',
description: 'App.ComponentH3.H3Description',
properties: [
{
name: 'children',
@ -2162,7 +2162,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'h4',
icon: 'Heading4',
category: 'basic',
description: 'App.CodeLayout.Component.H4.Description',
description: 'App.ComponentH4.H4Description',
properties: [
{
name: 'children',
@ -2190,7 +2190,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'h5',
icon: 'Heading5',
category: 'basic',
description: 'App.CodeLayout.Component.H5.Description',
description: 'App.ComponentH5.H5Description',
properties: [
{
name: 'children',
@ -2218,7 +2218,7 @@ export const HTML_ELEMENTS: ComponentDefinition[] = [
name: 'img',
icon: 'Image',
category: 'media',
description: 'App.CodeLayout.Component.Img.Description',
description: 'App.ComponentImg.ImgDescription',
properties: [
{
name: 'src',

View file

@ -44,7 +44,7 @@ const StatusBadge: React.FC<StatusBadgeProps> = ({ status, size = 'md', showIcon
return {
color: 'bg-yellow-100 text-yellow-800',
icon: <FaExclamationTriangle size={14} />,
text: 'App.Platform.Priority.Low',
text: 'App.ListFormTodoBoard.PriorityLow',
}
case 'normal':
return {

View file

@ -23,7 +23,7 @@ const ComponentPreview: React.FC<ComponentPreviewProps> = ({ componentName, clas
if (!componentName) {
return (
<div className="text-sm text-gray-500 dark:text-gray-400">
{translate('::App.DeveloperKit.ComponentPreview.NoComponentName')}
{translate('::App.DeveloperKitComponentPreview.NoComponentName')}
</div>
)
}

View file

@ -34,7 +34,7 @@ export const FileUploadArea: React.FC<FileUploadAreaProps> = ({
const fileExtension = '.' + file.name.split('.').pop()?.toLowerCase()
if (!acceptedFormats.includes(fileExtension)) {
setError(
translate('::App.Listforms.ImportManager.FileTypeError') + `${acceptedFormats.join(', ')}`,
translate('::App.ListFormImportManager.FileTypeError') + `${acceptedFormats.join(', ')}`,
)
return false
}
@ -124,14 +124,14 @@ export const FileUploadArea: React.FC<FileUploadAreaProps> = ({
/>
<div className="text-lg font-medium text-gray-700 dark:text-gray-200 mb-2">
{dragActive
? translate('::App.Listforms.ImportManager.DropHere')
: translate('::App.Listforms.ImportManager.UploadYourFile')}
? translate('::App.ListFormImportManager.DropHere')
: translate('::App.ListFormImportManager.UploadYourFile')}
</div>
<p className="text-gray-500 dark:text-gray-400 mb-4">
{translate('::App.Listforms.ImportManager.DragOrClick')}
{translate('::App.ListFormImportManager.DragOrClick')}
</p>
<div className="text-sm text-gray-400 dark:text-gray-500">
{translate('::App.Listforms.ImportManager.SupportedFormats')}{' '}
{translate('::App.ListFormImportManager.SupportedFormats')}{' '}
{acceptedFormats.join(', ')} Max size: {maxSize}MB
</div>
</div>
@ -155,7 +155,7 @@ export const FileUploadArea: React.FC<FileUploadAreaProps> = ({
icon={<FaTimes className="w-4 h-4" />}
variant="plain"
size="xs"
title={translate('::Clear')}
title={translate('::App.Platform.Clear')}
/>
</div>
</div>
@ -179,8 +179,8 @@ export const FileUploadArea: React.FC<FileUploadAreaProps> = ({
size="sm"
>
{loading
? translate('::App.Uploading')
: translate('::App.Listforms.ImportManager.UploadFile')}
? translate('::App.Platform.Uploading')
: translate('::App.Platform.UploadFile')}
</Button>
)}
</div>

View file

@ -211,21 +211,21 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
const getSessionStatusLabel = (status: string) => {
switch (status) {
case 'uploading':
return translate('::App.Uploading')
return translate('::App.Platform.Uploading')
case 'validating':
return translate('::App.Listforms.ImportManager.Validating')
return translate('::App.ListFormImportManager.Validating')
case 'processing':
return translate('::App.Listforms.ImportManager.Processing')
return translate('::App.ListFormStatus.Processing')
case 'uploaded':
return translate('::App.Listforms.ImportManager.Uploaded')
return translate('::App.ListFormImportManager.Uploaded')
case 'failed':
return translate('::App.Listforms.ImportManager.Failed')
return translate('::App.Platform.Failed')
case 'executed':
return translate('::App.Listforms.ImportManager.Executed')
return translate('::App.ListFormImportManager.Executed')
case 'executed_with_errors':
return translate('::App.Listforms.ImportManager.ExecutedWithErrors')
return translate('::App.ListFormImportManager.ExecutedWithErrors')
case 'execute_failed':
return translate('::App.Listforms.ImportManager.ExecuteFailed')
return translate('::App.ListFormImportManager.ExecuteFailed')
default:
return status.charAt(0).toUpperCase() + status.slice(1)
}
@ -234,15 +234,15 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
const getSessionGuidance = (status: string) => {
switch (status) {
case 'uploaded':
return translate('::App.Listforms.ImportManager.UploadedDescription')
return translate('::App.ListFormImportManager.UploadedDescription')
case 'executed':
return translate('::App.Listforms.ImportManager.ExecutedDescription')
return translate('::App.ListFormImportManager.ExecutedDescription')
case 'executed_with_errors':
return translate('::App.Listforms.ImportManager.ExecutedWithErrorsDescription')
return translate('::App.ListFormImportManager.ExecutedWithErrorsDescription')
case 'execute_failed':
return translate('::App.Listforms.ImportManager.ExecuteFailedDescription')
return translate('::App.ListFormImportManager.ExecuteFailedDescription')
case 'failed':
return translate('::App.Listforms.ImportManager.FailedDescription')
return translate('::App.ListFormImportManager.FailedDescription')
default:
return null
}
@ -364,7 +364,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
<div className="px-3 py-3 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between">
<h3 className="text-xl font-semibold text-gray-800 dark:text-gray-100 flex items-center">
<FaDownload className="w-4 h-4 mr-2" />
{translate('::App.Listforms.ImportManager.TemplateColumns')} (
{translate('::App.ListFormImportManager.TemplateColumns')} (
{editableColumns.length})
</h3>
@ -377,7 +377,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
variant="twoTone"
size="xs"
>
{translate('::App.Listforms.ImportManager.ExcelTemplate')}
{translate('::App.ListFormImportManager.ExcelTemplate')}
</Button>
<Button
@ -387,7 +387,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
variant="twoTone"
size="xs"
>
{translate('::App.Listforms.ImportManager.CsvTemplate')}
{translate('::App.ListFormImportManager.CsvTemplate')}
</Button>
</div>
</div>
@ -400,10 +400,10 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
{translate('::App.Listform.ListformField.Column')}
</th>
<th className="px-4 py-2 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase">
{translate('::ListForms.ListFormEdit.Type')}
{translate('::App.Platform.PlatformType')}
</th>
<th className="px-4 py-2 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase">
{translate('::App.Required')}
{translate('::App.Listform.ListformField.Required')}
</th>
<th className="px-4 py-2 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase">
{translate('::Abp.Mailing.Default')}
@ -439,11 +439,11 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
(rule: any) => rule.type === 'required',
) ? (
<span className="text-red-500 dark:text-red-300 font-medium">
{translate('::App.Listforms.ImportManager.Yes')}
{translate('::App.Platform.Yes')}
</span>
) : (
<span className="text-gray-400 dark:text-gray-500">
{translate('::App.Listforms.ImportManager.No')}
{translate('::App.Platform.No')}
</span>
)}
</td>
@ -462,7 +462,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
<div className="flex items-center justify-center py-4">
<div className="animate-spin rounded-full h-6 w-6 border-b-2 border-blue-500"></div>
<span className="ml-2 text-gray-600 dark:text-gray-400">
{translate('::App.Listforms.ImportManager.GeneratingTemplate')}
{translate('::App.ListFormImportManager.GeneratingTemplate')}
</span>
</div>
)}
@ -474,7 +474,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
<div className="bg-white dark:bg-gray-900 rounded-xl shadow-sm border border-gray-200 dark:border-gray-700 p-4 h-full">
<h2 className="text-xl font-semibold text-gray-800 dark:text-gray-100 mb-4 flex items-center">
<FaUpload className="w-5 h-5 mr-2 text-green-500" />
{translate('::App.Listforms.ImportManager.UploadData')}
{translate('::App.ListFormImportManager.UploadData')}
</h2>
<FileUploadArea
onFileUpload={handleFileUpload}
@ -513,9 +513,9 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
<div className="text-center text-gray-500 dark:text-gray-400">
<FaEye className="w-16 h-16 mx-auto mb-4 text-gray-300 dark:text-gray-600" />
<div className="text-xl font-medium mb-2">
{translate('::App.Listforms.ImportManager.NoDataToPreview')}
{translate('::App.ListFormImportManager.NoDataToPreview')}
</div>
<div>{translate('::App.Listforms.ImportManager.UploadFileToPreview')}</div>
<div>{translate('::App.ListFormImportManager.UploadFileToPreview')}</div>
</div>
</div>
)}
@ -548,7 +548,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
</div>
{currentSession?.id === session.id && (
<span className="inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 text-blue-800 dark:bg-gray-800 dark:text-blue-300">
{translate('::App.Status.Active')}
{translate('::App.Listform.ListformField.IsActive')}
</span>
)}
</div>
@ -557,7 +557,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
<div className="flex items-center space-x-4">
<div className="text-right">
<div className="text-sm font-medium text-gray-800 dark:text-gray-100">
{session.totalRows} {translate('::App.Listforms.ImportManager.TotalRows')}
{session.totalRows} {translate('::App.ListFormImportManager.TotalRows')}
</div>
</div>
@ -576,7 +576,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
variant={expandedSessions.has(session.id) ? 'twoTone' : 'plain'}
color="red-600"
size="xs"
title={translate('::App.Listforms.ImportManager.ViewExecutionDetails')}
title={translate('::App.ListFormImportManager.ViewExecutionDetails')}
/>
<Button
onClick={async () => {
@ -605,7 +605,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
icon={<FaSync className="w-4 h-4" />}
variant="twoTone"
size="xs"
title={translate('::App.Listforms.ImportManager.RefreshExecutionDetails')}
title={translate('::App.ListFormImportManager.RefreshExecutionDetails')}
/>
<Button
onClick={async () => {
@ -622,8 +622,8 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
size="xs"
title={
currentSession?.id === session.id
? translate('::App.Listforms.ImportManager.CannotDeleteActiveSession')
: translate('::App.Listforms.ImportManager.DeleteImportSession')
? translate('::App.ListFormImportManager.CannotDeleteActiveSession')
: translate('::App.ListFormImportManager.DeleteImportSession')
}
/>
</div>
@ -666,7 +666,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
<div className="flex items-center space-x-2 text-gray-500 dark:text-gray-400 py-2">
<FaSync className="w-4 h-4 animate-spin" />
<span className="text-sm">
{translate('::App.Listforms.ImportManager.LoadingExecutionDetails')}
{translate('::App.ListFormImportManager.LoadingExecutionDetails')}
</span>
</div>
) : sessionExecutes[session.id] &&
@ -689,7 +689,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
{execute.execRows}
</div>
<div className="text-gray-500 dark:text-gray-400">
{translate('::App.Listforms.ImportManager.Executed')}
{translate('::App.ListFormImportManager.Executed')}
</div>
</div>
<div className="text-center">
@ -697,7 +697,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
{execute.validRows}
</div>
<div className="text-gray-500 dark:text-gray-400">
{translate('::App.Listforms.ImportManager.Valid')}
{translate('::App.ListFormImportManager.Valid')}
</div>
</div>
<div className="text-center">
@ -705,7 +705,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
{execute.errorRows}
</div>
<div className="text-gray-500 dark:text-gray-400">
{translate('::App.Listforms.ImportManager.Errors')}
{translate('::App.Platform.Error')}
</div>
</div>
</div>
@ -741,7 +741,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
size="xs"
>
<span>
{translate('::App.Listforms.ImportManager.ErrorDetails', {
{translate('::App.ListFormImportManager.ErrorDetails', {
count: execute.errorRows,
})}{' '}
{translate(
@ -785,7 +785,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
) : (
<p className="px-3 py-2 text-orange-600 dark:text-orange-300">
{translate(
'::App.Listforms.ImportManager.NoErrorDetail',
'::App.ListFormImportManager.NoErrorDetail',
)}
</p>
)}
@ -798,7 +798,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
</div>
) : (
<div className="text-sm text-gray-500 dark:text-gray-400 py-2">
{translate('::App.Listforms.ImportManager.NoExecutionRecords')}
{translate('::App.ListFormImportManager.NoExecutionRecords')}
</div>
)}
</div>
@ -811,9 +811,9 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
<div className="p-12 text-center text-gray-500 dark:text-gray-400">
<FaClock className="w-12 h-12 mx-auto mb-4 text-gray-300 dark:text-gray-600" />
<div className="text-lg font-medium mb-2">
{translate('::App.Listforms.ImportManager.NoImportHistory')}
{translate('::App.ListFormImportManager.NoImportHistory')}
</div>
<div>{translate('::App.Listforms.ImportManager.ImportHistoryHint')}</div>
<div>{translate('::App.ListFormImportManager.ImportHistoryHint')}</div>
</div>
)}
</div>

View file

@ -154,7 +154,7 @@ export const ImportPreview: React.FC<ImportPreviewProps> = ({
<div className="flex items-center order-1 lg:order-none">
<FaEye className="w-5 h-5 mr-2 text-blue-500" />
<h3 className="text-xl font-semibold text-gray-800 dark:text-gray-100">
{translate('::App.Listforms.ImportManager.ImportPreviewTitle')}
{translate('::App.ListFormImportManager.ImportPreviewTitle')}
</h3>
</div>
@ -164,7 +164,7 @@ export const ImportPreview: React.FC<ImportPreviewProps> = ({
<div className="text-center px-3 py-1 bg-blue-50 dark:bg-gray-800 rounded-full border border-blue-200 dark:border-gray-700 font-bold text-blue-600 dark:text-blue-300">
{previewData?.rows?.length || session.totalRows || 0}{' '}
<span className="text-xs text-blue-700 dark:text-blue-300">
{translate('::App.Listforms.ImportManager.TotalRows')}
{translate('::App.ListFormImportManager.TotalRows')}
</span>
</div>
</div>
@ -187,7 +187,7 @@ export const ImportPreview: React.FC<ImportPreviewProps> = ({
{previewData && previewData.headers && previewData.headers.length > 0 ? (
<div className="p-3 border-b border-gray-200 dark:border-gray-700">
<h4 className="font-semibold text-gray-800 dark:text-gray-100 mb-4">
{translate('::App.Listforms.ImportManager.DataPreviewTitle')}
{translate('::App.ListFormImportManager.DataPreviewTitle')}
</h4>
<div className="overflow-auto border border-gray-200 dark:border-gray-700 rounded-lg max-h-90">
@ -247,10 +247,10 @@ export const ImportPreview: React.FC<ImportPreviewProps> = ({
<div className="text-center py-8">
<FaExclamationTriangle className="w-12 h-12 mx-auto mb-4 text-yellow-500" />
<h4 className="font-semibold text-gray-800 dark:text-gray-100 mb-2">
{translate('::App.Listforms.ImportManager.NoDataFoundTitle')}
{translate('::App.ListFormImportManager.NoDataFoundTitle')}
</h4>
<p className="text-gray-600 dark:text-gray-400">
{translate('::App.Listforms.ImportManager.NoDataFoundDescription')}
{translate('::App.ListFormImportManager.NoDataFoundDescription')}
</p>
</div>
</div>
@ -259,10 +259,10 @@ export const ImportPreview: React.FC<ImportPreviewProps> = ({
<div className="text-center py-8">
<div className="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500 mx-auto mb-4"></div>
<h4 className="font-semibold text-gray-800 dark:text-gray-100 mb-2">
{translate('::App.Listforms.ImportManager.LoadingPreviewTitle')}
{translate('::App.ListFormImportManager.LoadingPreviewTitle')}
</h4>
<p className="text-gray-600 dark:text-gray-400">
{translate('::App.Listforms.ImportManager.LoadingPreviewDescription')}
{translate('::App.ListFormImportManager.LoadingPreviewDescription')}
</p>
</div>
</div>
@ -276,7 +276,7 @@ export const ImportPreview: React.FC<ImportPreviewProps> = ({
<div className="flex items-center space-x-2 text-green-700 dark:text-green-300">
<FaCheckCircle className="w-5 h-5" />
<span className="font-medium">
{translate('::App.Listforms.ImportManager.ImportProgress.Status.Uploaded')}{' '}
{translate('::App.ImportProgressStatus.Uploaded')}{' '}
{lastExecutionResult.successCount} of {lastExecutionResult.selectedCount} rows were
imported.
</span>
@ -290,7 +290,7 @@ export const ImportPreview: React.FC<ImportPreviewProps> = ({
<div className="flex items-center space-x-2 text-orange-600 dark:text-orange-300">
<FaExclamationTriangle className="w-5 h-5" />
<span className="font-medium">
{translate('::App.Listforms.ImportManager.SelectRowsWarning')}
{translate('::App.ListFormImportManager.SelectRowsWarning')}
</span>
</div>
)}
@ -299,7 +299,7 @@ export const ImportPreview: React.FC<ImportPreviewProps> = ({
<div className="flex items-center space-x-2 text-blue-600 dark:text-blue-300">
<FaCheckCircle className="w-5 h-5" />
<span className="font-medium">
{selectedRows.length} {translate('::App.Listforms.ImportManager.RowsSelected')}
{selectedRows.length} {translate('::App.ListFormImportManager.RowsSelected')}
</span>
</div>
)}
@ -308,7 +308,7 @@ export const ImportPreview: React.FC<ImportPreviewProps> = ({
<div className="flex items-center space-x-2 text-red-600 dark:text-red-300">
<FaExclamationTriangle className="w-5 h-5" />
<span className="font-medium">
{translate('::App.Listforms.ImportManager.NoRowsAvailable')}
{translate('::App.ListFormImportManager.NoRowsAvailable')}
</span>
</div>
)}
@ -320,7 +320,7 @@ export const ImportPreview: React.FC<ImportPreviewProps> = ({
variant="default"
size="sm"
>
{translate('::Cancel')}
{translate('::App.Platform.Cancel')}
</Button>
<Button
@ -332,8 +332,8 @@ export const ImportPreview: React.FC<ImportPreviewProps> = ({
size="sm"
>
{loading
? translate('::App.Listforms.Status.Processing')
: translate('::App.Listforms.ImportManager.Button.ExecuteImport')}
? translate('::App.ListFormStatus.Processing')
: translate('::App.ImportManagerButton.ExecuteImport')}
</Button>
</div>
</div>

View file

@ -30,17 +30,17 @@ export const ImportProgress: React.FC<ImportProgressProps> = ({ session }) => {
const getStatusMessage = () => {
switch (session.status) {
case 'uploading':
return translate('::App.Listforms.ImportManager.ImportProgress.Status.Uploading')
return translate('::App.ImportProgressStatus.Uploading')
case 'validating':
return translate('::App.Listforms.ImportManager.ImportProgress.Status.Validating')
return translate('::App.ImportProgressStatus.Validating')
case 'processing':
return translate('::App.Listforms.Status.Processing')
return translate('::App.ListFormStatus.Processing')
case 'uploaded':
return translate('::App.Listforms.ImportManager.ImportProgress.Status.Uploaded')
return translate('::App.ImportProgressStatus.Uploaded')
case 'failed':
return translate('::App.Listforms.ImportManager.ImportProgress.Status.Failed')
return translate('::App.ImportProgressStatus.Failed')
default:
return translate('::App.Listforms.Status.Processing')
return translate('::App.ListFormStatus.Processing')
}
}
@ -70,14 +70,14 @@ export const ImportProgress: React.FC<ImportProgressProps> = ({ session }) => {
{getStatusMessage()}
</h3>
<p className="text-gray-600 dark:text-gray-400">
{translate('::App.Listforms.Status.Processing')} {session.blobName}
{translate('::App.ListFormStatus.Processing')} {session.blobName}
</p>
</div>
{/* Progress Bar */}
<div className="w-full max-w-md mx-auto">
<div className="flex justify-between text-sm text-gray-600 dark:text-gray-400 mb-2">
<span>{translate('::App.Listforms.ImportManager.ImportProgress.ProgressLabel')}</span>
<span>{translate('::App.Listform.ListformField.Progress')}</span>
<span>{Math.round(getProgressPercentage())}%</span>
</div>
<div className="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-2">

View file

@ -34,10 +34,10 @@ const Cover = ({ children, content, ...rest }: CoverProps) => {
<Avatar className="border-2 border-white" shape="circle" src="/img/others/cto.png" />
<div className="text-white">
<div className="font-semibold text-base">Sedat ÖZTÜRK</div>
<span className="opacity-80">{translate('::LoginPanel.Profil')}</span>
<span className="opacity-80">{translate('::App.Listform.ListformField.Founder')}</span>
</div>
</div>
<p className="text-lg text-white opacity-80">{translate('::LoginPanel.Message')}</p>
<p className="text-lg text-white opacity-80">{translate('::App.LoginPanel.Message')}</p>
</div>
<span className="text-white">
Copyright &copy; {`${new Date().getFullYear()}`}{' '}

View file

@ -31,11 +31,11 @@ const Side = ({ children, content, ...rest }: SideProps) => {
<Avatar className="border-2 border-white" shape="circle" src="/img/others/cto.png" />
<div className="text-white">
<div className="font-semibold text-base">Sedat ÖZTÜRK</div>
<span className="opacity-80">{ translate('::LoginPanel.Profil')}</span>
<span className="opacity-80">{ translate('::App.Listform.ListformField.Founder')}</span>
</div>
</div>
<p className="text-lg text-white opacity-80">
{ translate('::LoginPanel.Message')}
{ translate('::App.LoginPanel.Message')}
</p>
</div>
<span className="text-white">

View file

@ -85,13 +85,13 @@ const PublicLayout = () => {
},
{
resourceKey: 'Public.nav.products',
name: translate('::App.Orders'),
name: translate('::App.Platform.Orders'),
path: ROUTES_ENUM.public.products,
icon: LuPackage,
},
{
resourceKey: 'Public.nav.blog',
name: translate('::App.BlogManagement'),
name: translate('::App.Platform.BlogManagement'),
path: ROUTES_ENUM.public.blog,
icon: LuBookOpen,
},
@ -102,13 +102,13 @@ const PublicLayout = () => {
icon: LuPhone,
},
{
resourceKey: 'Public.nav.giris',
name: translate('::Public.nav.giris'),
resourceKey: 'App.PublicNav.Giris',
name: translate('::App.PublicNav.Giris'),
path: ROUTES_ENUM.authenticated.login,
},
]
const isLoginLink = (resourceKey?: string) => resourceKey === 'Public.nav.giris'
const isLoginLink = (resourceKey?: string) => resourceKey === 'App.PublicNav.Giris'
const demoButton = (className = '', onClick?: () => void) => (
<Button
@ -391,7 +391,7 @@ const PublicLayout = () => {
<div>
<Logo mode={isDarkMode ? 'dark' : 'light'} />
<p className="mt-4 text-gray-400 text-sm">
{translate('::Public.footer.companyInfo')}
{translate('::App.PublicFooter.CompanyInfo')}
</p>
<div className="flex space-x-4 mt-6">
<a
@ -432,7 +432,7 @@ const PublicLayout = () => {
{/* Quick Links */}
<div>
<h3 className="text-lg font-bold mb-4 text-white">
{translate('::Public.footer.quickLinksTitle')}
{translate('::App.PublicFooter.QuickLinksTitle')}
</h3>
<ul className="space-y-2">
<li>
@ -448,7 +448,7 @@ const PublicLayout = () => {
to={ROUTES_ENUM.public.products}
className="text-gray-400 hover:text-white transition-colors"
>
{translate('::App.Orders')}
{translate('::App.Platform.Orders')}
</Link>
</li>
<li>
@ -472,7 +472,7 @@ const PublicLayout = () => {
to={ROUTES_ENUM.public.blog}
className="text-gray-400 hover:text-white transition-colors"
>
{translate('::App.BlogManagement')}
{translate('::App.Platform.BlogManagement')}
</Link>
</li>
<li>
@ -489,7 +489,7 @@ const PublicLayout = () => {
{/* Services */}
<div>
<h3 className="text-lg font-bold mb-4 text-white">
{translate('::Public.services.title')}
{translate('::App.PublicServices.ServicesTitle')}
</h3>
<ul className="space-y-2">
<li>
@ -497,7 +497,7 @@ const PublicLayout = () => {
to={ROUTES_ENUM.public.services}
className="text-gray-400 hover:text-white transition-colors"
>
{translate('::Public.services.software.title')}
{translate('::App.ServicesSoftware.SoftwareTitle')}
</Link>
</li>
<li>
@ -505,7 +505,7 @@ const PublicLayout = () => {
to={ROUTES_ENUM.public.services}
className="text-gray-400 hover:text-white transition-colors"
>
{translate('::Public.services.web.title')}
{translate('::App.BlogCategories.Webdev')}
</Link>
</li>
<li>
@ -513,7 +513,7 @@ const PublicLayout = () => {
to={ROUTES_ENUM.public.services}
className="text-gray-400 hover:text-white transition-colors"
>
{translate('::Public.services.mobile.title')}
{translate('::App.ServicesMobile.MobileTitle')}
</Link>
</li>
<li>
@ -521,7 +521,7 @@ const PublicLayout = () => {
to={ROUTES_ENUM.public.services}
className="text-gray-400 hover:text-white transition-colors"
>
{translate('::Public.services.database.title')}
{translate('::App.ServicesDatabase.DatabaseTitle')}
</Link>
</li>
<li>
@ -529,7 +529,7 @@ const PublicLayout = () => {
to={ROUTES_ENUM.public.services}
className="text-gray-400 hover:text-white transition-colors"
>
{translate('::Public.services.integration.title')}
{translate('::App.ServicesIntegration.IntegrationTitle')}
</Link>
</li>
<li>
@ -537,7 +537,7 @@ const PublicLayout = () => {
to={ROUTES_ENUM.public.services}
className="text-gray-400 hover:text-white transition-colors"
>
{translate('::Public.services.consulting.title')}
{translate('::App.ServicesConsulting.ConsultingTitle')}
</Link>
</li>
</ul>
@ -555,7 +555,7 @@ const PublicLayout = () => {
strokeWidth={1.75}
className="text-gray-400 mt-1 flex-shrink-0"
/>
<span className="text-gray-400">{translate('::Public.footer.address')}</span>
<span className="text-gray-400">{translate('::App.PublicFooter.Address')}</span>
</li>
<li className="flex items-center space-x-3">
<LuPhone
@ -590,7 +590,7 @@ const PublicLayout = () => {
<div className="border-t border-gray-800 mt-12 pt-8">
<div className="flex flex-col md:flex-row justify-between items-center">
<p className="text-gray-400 text-sm">
&copy; {currentYear} Sözsoft Platform. {translate('::Public.footer.copyright')}
&copy; {currentYear} Sözsoft Platform. {translate('::App.PublicFooter.Copyright')}
</p>
<div className="mt-4 md:mt-0">
<ul className="flex space-x-6 text-sm">
@ -599,7 +599,7 @@ const PublicLayout = () => {
to={ROUTES_ENUM.public.about}
className="text-gray-400 hover:text-white transition-colors"
>
{translate('::Public.footer.privacyPolicy')}
{translate('::App.PublicFooter.PrivacyPolicy')}
</Link>
</li>
<li>
@ -607,7 +607,7 @@ const PublicLayout = () => {
to={ROUTES_ENUM.public.about}
className="text-gray-400 hover:text-white transition-colors"
>
{translate('::Public.footer.termsOfUse')}
{translate('::App.PublicFooter.TermsOfUse')}
</Link>
</li>
</ul>

View file

@ -35,7 +35,7 @@ export const Basket: React.FC<BasketProps> = ({
const { translate } = useLocalization()
const handleClearBasket = () => {
if (window.confirm(translate('::Public.basket.clearConfirm'))) {
if (window.confirm(translate('::App.PublicBasket.ClearConfirm'))) {
clearBasket()
}
}
@ -58,7 +58,7 @@ export const Basket: React.FC<BasketProps> = ({
<div className="flex flex-col h-full">
<div className="flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700">
<h2 className="text-base font-semibold text-gray-900 dark:text-gray-100">
{translate('::Public.basket.title')}
{translate('::App.PublicBasket.BasketTitle')}
</h2>
<div className="flex items-center space-x-2">
{basketData.items.length > 0 && (
@ -68,7 +68,7 @@ export const Basket: React.FC<BasketProps> = ({
variant="twoTone"
color="red-600"
size="xs"
title={translate('::Public.basket.clear')}
title={translate('::App.PublicBasket.Clear')}
/>
)}
<Button
@ -84,8 +84,8 @@ export const Basket: React.FC<BasketProps> = ({
{basketData.items.length === 0 ? (
<div className="flex flex-col items-center justify-center h-full text-gray-500 dark:text-gray-400">
<FaShoppingBag className="w-16 h-16 mb-4" />
<p className="text-lg font-medium">{translate('::Public.basket.empty.title')}</p>
<p className="text-sm">{translate('::Public.basket.empty.subtitle')}</p>
<p className="text-lg font-medium">{translate('::App.BasketEmpty.EmptyTitle')}</p>
<p className="text-sm">{translate('::App.BasketEmpty.Subtitle')}</p>
</div>
) : (
<div className="space-y-4">
@ -116,16 +116,16 @@ export const Basket: React.FC<BasketProps> = ({
</span>
)}
{item.billingCycle === 'monthly'
? translate('::Public.products.billingcycle.monthly')
? translate('::App.StaticLookup.Monthly')
: item.billingCycle === 'yearly'
? translate('::Public.products.billingcycle.yearly')
: translate('::Public.products.billingcycle.monthly')}
? translate('::App.StaticLookup.Yearly')
: translate('::App.StaticLookup.Monthly')}
{basketData.globalPeriod > 1 && item.product.isQuantityBased && (
<span className="text-xs text-gray-500 dark:text-gray-400">
({basketData.globalPeriod}{' '}
{item.billingCycle === 'monthly'
? translate('::Public.products.billingcycle.month')
: translate('::Public.products.billingcycle.year')}
? translate('::App.Platform.Months')
: translate('::App.Platform.Years')}
)
</span>
)}
@ -169,7 +169,7 @@ export const Basket: React.FC<BasketProps> = ({
<span>{formatPrice(basketData.subtotal)}</span>
</div>
<div className="flex justify-between text-sm text-gray-600 dark:text-gray-300">
<span>{translate('::Public.products.kdv')}</span>
<span>{translate('::App.PublicProducts.Kdv')}</span>
<span>{formatPrice(basketData.vatTotal)}</span>
</div>
<div className="flex justify-between items-center pt-2 border-t border-gray-200 dark:border-gray-700">
@ -183,7 +183,7 @@ export const Basket: React.FC<BasketProps> = ({
</div>
<Button onClick={onCheckout} block variant="solid" size="md">
{translate('::Public.basket.checkout')}
{translate('::App.PublicBasket.Checkout')}
</Button>
</div>
)}

View file

@ -42,7 +42,7 @@ export const BillingControls: React.FC<BillingControlsProps> = ({
<div className="flex items-center space-x-2 rounded-lg">
<FaCalendar className="w-5 h-5 text-gray-600 dark:text-gray-300" />
<span className="font-medium text-gray-900 dark:text-gray-100">
{translate('::Public.products.billingcycle')}
{translate('::App.PublicProducts.Billingcycle')}
</span>
</div>
@ -53,9 +53,9 @@ export const BillingControls: React.FC<BillingControlsProps> = ({
variant={globalBillingCycle === 'monthly' ? 'solid' : 'default'}
size="xs"
className={globalBillingCycle === 'monthly' ? 'shadow-md' : ''}
title={hasBasketItems ? translate('::Public.basket.billingCycleLocked') : undefined}
title={hasBasketItems ? translate('::App.PublicBasket.BillingCycleLocked') : undefined}
>
{translate('::Public.products.billingcycle.monthly')}
{translate('::App.StaticLookup.Monthly')}
</Button>
<Button
onClick={() => !hasBasketItems && setGlobalBillingCycle('yearly')}
@ -63,9 +63,9 @@ export const BillingControls: React.FC<BillingControlsProps> = ({
variant={globalBillingCycle === 'yearly' ? 'solid' : 'default'}
size="xs"
className={globalBillingCycle === 'yearly' ? 'shadow-md' : ''}
title={hasBasketItems ? translate('::Public.basket.billingCycleLocked') : undefined}
title={hasBasketItems ? translate('::App.PublicBasket.BillingCycleLocked') : undefined}
>
{translate('::Public.products.billingcycle.yearly')}
{translate('::App.StaticLookup.Yearly')}
</Button>
</div>
</div>
@ -75,7 +75,7 @@ export const BillingControls: React.FC<BillingControlsProps> = ({
<div className="flex items-center space-x-2">
<FaClock className="w-5 h-5 text-gray-600 dark:text-gray-300" />
<span className="font-medium text-gray-900 dark:text-gray-100">
{translate('::Public.products.period')}
{translate('::App.Listform.ListformField.Period')}
</span>
</div>
@ -86,7 +86,7 @@ export const BillingControls: React.FC<BillingControlsProps> = ({
icon={<FaMinus className="w-4 h-4" />}
variant="default"
size="xs"
title={hasBasketItems ? translate('::Public.basket.periodLocked') : undefined}
title={hasBasketItems ? translate('::App.PublicBasket.PeriodLocked') : undefined}
/>
<div className="flex items-center space-x-2 bg-gray-50 px-2 py-1 rounded-lg dark:bg-gray-800">
@ -95,8 +95,8 @@ export const BillingControls: React.FC<BillingControlsProps> = ({
</span>
<span className="text-xs text-gray-600 dark:text-white">
{globalBillingCycle === 'monthly'
? translate('::Public.products.billingcycle.month')
: translate('::Public.products.billingcycle.year')}
? translate('::App.Platform.Months')
: translate('::App.Platform.Years')}
</span>
</div>
@ -106,7 +106,7 @@ export const BillingControls: React.FC<BillingControlsProps> = ({
icon={<FaPlus className="w-4 h-4" />}
variant="default"
size="xs"
title={hasBasketItems ? translate('::Public.basket.periodLocked') : undefined}
title={hasBasketItems ? translate('::App.PublicBasket.PeriodLocked') : undefined}
/>
</div>
</div>
@ -119,7 +119,7 @@ export const BillingControls: React.FC<BillingControlsProps> = ({
size="xs"
className="relative shadow-md"
>
<span className="font-medium text-sm">{translate('::Public.nav.basket')}</span>
<span className="font-medium text-sm">{translate('::App.PublicNav.Basket')}</span>
{basketItemsCount > 0 && (
<span className="absolute -top-2 -right-2 bg-red-500 text-white text-xs rounded-full w-5 h-5 flex items-center justify-center font-bold">

View file

@ -42,9 +42,9 @@ export const OrderSuccess: React.FC<OrderSuccessProps> = ({ orderId, order }) =>
const billingCycleLabel =
order?.billingCycle === 'monthly'
? translate('::Public.products.billingcycle.monthly')
? translate('::App.StaticLookup.Monthly')
: order?.billingCycle === 'yearly'
? translate('::Public.products.billingcycle.yearly')
? translate('::App.StaticLookup.Yearly')
: '-'
const getItemPrice = (item: BasketItem) =>
@ -70,10 +70,10 @@ export const OrderSuccess: React.FC<OrderSuccessProps> = ({ orderId, order }) =>
<FaCheckCircle className="h-10 w-10 text-green-500" />
<div>
<h2 className="text-xl font-bold text-gray-900 dark:text-gray-100">
{translate('::Public.order.success.title')}
{translate('::App.OrderSuccess.SuccessTitle')}
</h2>
<p className="text-sm text-gray-600 dark:text-gray-300">
{translate('::Public.order.success.number')}{' '}
{translate('::App.OrderSuccess.Number')}{' '}
<span className="font-semibold text-blue-600">#{orderId}</span>
</p>
</div>
@ -152,7 +152,7 @@ export const OrderSuccess: React.FC<OrderSuccessProps> = ({ orderId, order }) =>
<div className="col-span-1 text-right">Period</div>
<div className="col-span-1 text-right">Qty</div>
<div className="col-span-1 text-right">Cycle</div>
<div className="col-span-2 text-right">{translate('::Public.products.kdv')}</div>
<div className="col-span-2 text-right">{translate('::App.PublicProducts.Kdv')}</div>
<div className="col-span-2 text-right">Amount</div>
</div>
{order.items.map((item, index) => (
@ -169,8 +169,8 @@ export const OrderSuccess: React.FC<OrderSuccessProps> = ({ orderId, order }) =>
<div className="col-span-1 text-right">
{translate(
item.billingCycle === 'monthly'
? '::Public.order.monthly'
: '::Public.order.yearly',
? '::App.StaticLookup.Monthly'
: '::App.StaticLookup.Yearly',
)}
</div>
<div className="col-span-2 text-right">
@ -186,18 +186,18 @@ export const OrderSuccess: React.FC<OrderSuccessProps> = ({ orderId, order }) =>
<div className="mt-6 flex justify-end">
<div className="w-full max-w-sm space-y-2 text-sm text-gray-700 dark:text-gray-300">
<div className="flex justify-between">
<span>{translate('::Public.payment.summary.subtotal')}</span>
<span>{translate('::App.Listform.ListformField.Subtotal')}</span>
<span>{formatPrice(order.subtotal)}</span>
</div>
<div className="flex justify-between">
<span>
{translate('::Public.products.kdv')}
{translate('::App.PublicProducts.Kdv')}
{vatRateLabel}
</span>
<span>{formatPrice(order.vatTotal)}</span>
</div>
<div className="flex justify-between">
<span>{translate('::Public.payment.installments.commission')}</span>
<span>{translate('::App.Listform.ListformField.Commission')}</span>
<span>{formatPrice(order.commission)}</span>
</div>
<div className="flex justify-between border-t border-gray-200 pt-3 text-lg font-bold text-gray-900 dark:border-gray-700 dark:text-gray-100">
@ -216,7 +216,7 @@ export const OrderSuccess: React.FC<OrderSuccessProps> = ({ orderId, order }) =>
variant="default"
size="sm"
>
{translate('::Public.notFound.button')}
{translate('::App.Platform.Button')}
</Button>
</div>
</div>

View file

@ -142,15 +142,15 @@ export const PaymentForm: React.FC<PaymentFormProps> = ({ onBack, onComplete, ba
const billingCycleLabel =
billingCycle === 'monthly'
? translate('::Public.products.billingcycle.monthly')
? translate('::App.StaticLookup.Monthly')
: billingCycle === 'yearly'
? translate('::Public.products.billingcycle.yearly')
? translate('::App.StaticLookup.Yearly')
: '-'
return (
<div className="mx-auto px-4 lg:px-8 mt-5">
{loading ? (
<div className="text-center py-12 text-gray-500">{translate('::App.Loading')}</div>
<div className="text-center py-12 text-gray-500">{translate('::App.Platform.LoadingWithThreeDot')}</div>
) : (
<form onSubmit={handleSubmit} className="flex flex-col lg:flex-row gap-6">
{/* 3 Sütun: Ödeme Yöntemi | Taksit Seçenekleri | Sipariş Özeti */}
@ -199,7 +199,7 @@ export const PaymentForm: React.FC<PaymentFormProps> = ({ onBack, onComplete, ba
<div className="bg-white rounded-xl shadow border p-6 dark:border-gray-700 dark:bg-gray-900 dark:shadow-gray-950/40">
<h2 className="text-lg font-semibold mb-4 flex items-center">
<FaLock className="w-5 h-5 text-green-600 mr-2" />{' '}
{translate('::Public.payment.method.title')}
{translate('::App.Listform.ListformField.PaymentMethodId')}
</h2>
<div className="space-y-3">
{paymentMethods.map((method) => (
@ -236,8 +236,8 @@ export const PaymentForm: React.FC<PaymentFormProps> = ({ onBack, onComplete, ba
</div>
<div className="text-sm text-gray-600 dark:text-gray-400">
{method.name === defaultPaymentMethod
? translate('::Public.payment.method.installmentsAvailable')
: translate('::Public.payment.method.noCommission')}
? translate('::App.PaymentMethod.InstallmentsAvailable')
: translate('::App.PaymentMethod.NoCommission')}
</div>
</div>
<span
@ -278,15 +278,15 @@ export const PaymentForm: React.FC<PaymentFormProps> = ({ onBack, onComplete, ba
/>
<div className="font-semibold text-base mb-1">{option.name}</div>
<div className="text-gray-500 mb-1">
{translate('::Public.payment.installments.commission')}{' '}
{translate('::App.Listform.ListformField.Commission')}{' '}
<span className="font-semibold">
%{(option.commission * 100).toFixed(1)}
</span>
</div>
<div className="font-bold mb-1">
{option.installment > 1
? `${option.installment} ${translate('::Public.payment.installments.monthly')}`
: translate('::Public.payment.installments.single')}
? `${option.installment} ${translate('::App.PaymentInstallments.Monthly')}`
: translate('::App.PaymentInstallments.Single')}
</div>
<div className="font-extrabold text-lg text-gray-900 dark:text-gray-100 mt-1">
{formatPrice(
@ -307,7 +307,7 @@ export const PaymentForm: React.FC<PaymentFormProps> = ({ onBack, onComplete, ba
{selectedPaymentMethod === defaultPaymentMethod && (
<div className="bg-white rounded-xl shadow border p-6 dark:border-gray-700 dark:bg-gray-900 dark:shadow-gray-950/40 space-y-3">
<h3 className="text-md font-medium text-gray-800 dark:text-gray-100 mb-3">
{translate('::Public.payment.card.title')}
{translate('::App.PaymentCard.CardTitle')}
</h3>
<input
type="text"
@ -315,7 +315,7 @@ export const PaymentForm: React.FC<PaymentFormProps> = ({ onBack, onComplete, ba
value={paymentData.cardName}
onChange={(e) => handleInputChange('cardName', e.target.value)}
className="w-full px-4 py-2 border border-gray-300 rounded-lg bg-white text-gray-900 placeholder-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-400"
placeholder={translate('::Public.payment.card.name')}
placeholder={translate('::App.PaymentCard.CardName')}
/>
<input
type="text"
@ -323,7 +323,7 @@ export const PaymentForm: React.FC<PaymentFormProps> = ({ onBack, onComplete, ba
value={paymentData.cardNumber}
onChange={(e) => handleInputChange('cardNumber', e.target.value)}
className="w-full px-4 py-2 border border-gray-300 rounded-lg bg-white text-gray-900 placeholder-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-400"
placeholder={translate('::Public.payment.card.number')}
placeholder={translate('::App.Listform.ListformField.CardNumber')}
maxLength={19}
/>
<div className="grid grid-cols-2 gap-3">
@ -352,7 +352,7 @@ export const PaymentForm: React.FC<PaymentFormProps> = ({ onBack, onComplete, ba
{/* Sipariş Özeti ve Butonlar */}
<div className="bg-white rounded-xl shadow border p-6 dark:border-gray-700 dark:bg-gray-900 dark:shadow-gray-950/40">
<h3 className="text-lg font-semibold text-gray-900 dark:text-gray-100 mb-4">
{translate('::Public.payment.summary.title')}
{translate('::App.PaymentSummary.SummaryTitle')}
</h3>
<div className="space-y-4 mb-4">
@ -386,25 +386,25 @@ export const PaymentForm: React.FC<PaymentFormProps> = ({ onBack, onComplete, ba
<div className="space-y-1 text-sm border-t border-gray-200 dark:border-gray-700 pt-4 text-gray-600 dark:text-gray-300">
<div className="flex justify-between">
<span>{translate('::Public.payment.summary.subtotal')}</span>
<span>{translate('::App.Listform.ListformField.Subtotal')}</span>
<span>{formatPrice(basketData.subtotal)}</span>
</div>
<div className="flex justify-between">
<span>
{translate('::Public.products.kdv')}
{translate('::App.PublicProducts.Kdv')}
{vatRateLabel}
</span>
<span>{formatPrice(basketData.vatTotal)}</span>
</div>
<div className="flex justify-between">
<span>{translate('::Public.payment.installments.commission')}</span>
<span>{translate('::App.Listform.ListformField.Commission')}</span>
<span>{formatPrice(commission)}</span>
</div>
{selectedPaymentMethod === defaultPaymentMethod &&
selectedInstallment?.installment &&
selectedInstallment.installment > 1 && (
<div className="flex justify-between text-blue-600">
<span>{translate('::Public.payment.summary.monthlyInstallment')}: </span>
<span>{translate('::App.PaymentSummary.MonthlyInstallment')}: </span>
<span>
{formatPrice(finalTotal / selectedInstallment.installment)} x{' '}
{selectedInstallment.installment}
@ -426,7 +426,7 @@ export const PaymentForm: React.FC<PaymentFormProps> = ({ onBack, onComplete, ba
variant="default"
size="sm"
>
{translate('::Back')}
{translate('::App.Platform.Back')}
</Button>
<Button
type="submit"
@ -435,8 +435,8 @@ export const PaymentForm: React.FC<PaymentFormProps> = ({ onBack, onComplete, ba
size="sm"
>
{selectedPaymentMethod === 'bank-transfer'
? translate('::Public.payment.buttons.completeOrder')
: translate('::Public.payment.buttons.pay')}
? translate('::App.PaymentButtons.CompleteOrder')
: translate('::App.PaymentButtons.Pay')}
</Button>
</div>
</div>

View file

@ -67,10 +67,10 @@ export const ProductCard: React.FC<ProductCardProps> = ({
switch (product.unit) {
case 'monthly':
return globalBillingCycle === 'monthly'
? translate('::Public.Products.MonthPeriod')
: translate('::Public.Products.YearPeriod')
? translate('::App.PublicProducts.MonthPeriod')
: translate('::App.PublicProducts.YearPeriod')
case 'yearly':
return translate('::Public.Products.YearPeriod')
return translate('::App.PublicProducts.YearPeriod')
default:
return ''
}
@ -79,8 +79,8 @@ export const ProductCard: React.FC<ProductCardProps> = ({
const getPeriodText = () => {
const periodText =
globalBillingCycle === 'monthly'
? translate('::Public.products.billingcycle.month')
: translate('::Public.products.billingcycle.year')
? translate('::App.Platform.Months')
: translate('::App.Platform.Years')
return globalPeriod > 1 ? ` (${globalPeriod} ${periodText})` : ''
}
@ -127,7 +127,7 @@ export const ProductCard: React.FC<ProductCardProps> = ({
{product.isQuantityBased && (
<div className="flex items-center space-x-3">
<span className="text-sm font-medium text-gray-700 dark:text-gray-300">
{translate('::Public.products.quantity')}
{translate('::App.PublicProducts.Quantity')}
</span>
<div className="flex items-center space-x-2">
<Button
@ -149,7 +149,7 @@ export const ProductCard: React.FC<ProductCardProps> = ({
{globalBillingCycle === 'yearly' && product.monthlyPrice && product.yearlyPrice && (
<div className="text-sm text-emerald-600 font-medium">
{translate('::Public.products.savings.yearly', {
{translate('::App.ProductsSavings.Yearly', {
percent: Math.round((1 - product.yearlyPrice / (product.monthlyPrice * 12)) * 100),
})}
</div>
@ -166,7 +166,7 @@ export const ProductCard: React.FC<ProductCardProps> = ({
</span>
</div>
<div className="mt-1 text-xs text-gray-500 dark:text-gray-400">
{translate('::Public.products.kdv')} (%{(getVatRate() * 100).toFixed(0)}):{' '}
{translate('::App.PublicProducts.Kdv')} (%{(getVatRate() * 100).toFixed(0)}):{' '}
{formatPrice(getVatAmount())}
</div>
{globalPeriod > 1 && (
@ -180,7 +180,7 @@ export const ProductCard: React.FC<ProductCardProps> = ({
)}
{globalPeriod <= 1 && (
<div className="text-lg font-semibold text-blue-600 mt-1">
{translate('::Public.products.kdvdahil')} {formatPrice(getTotalPriceWithVat())}
{translate('::App.PublicProducts.Kdvdahil')} {formatPrice(getTotalPriceWithVat())}
</div>
)}
</div>
@ -199,8 +199,8 @@ export const ProductCard: React.FC<ProductCardProps> = ({
className={!isDisabled ? 'hover:scale-[1.02] active:scale-[0.98]' : ''}
>
{isDisabled
? translate('::Public.products.inBasket')
: translate('::Public.products.addToBasket')}
? translate('::App.PublicProducts.InBasket')
: translate('::App.PublicProducts.AddToBasket')}
</Button>
)
})()}

View file

@ -92,7 +92,7 @@ export const ProductCatalog: React.FC<ProductCatalogProps> = ({
<div className="flex items-center space-x-2 mb-4">
<FaFilter className="w-5 h-5 text-gray-600 dark:text-gray-300" />
<h3 className="font-semibold text-gray-900 dark:text-gray-100">
{translate('::Public.products.categories')}
{translate('::App.Platform.Category')}
</h3>
</div>
<div className="space-y-2">
@ -108,7 +108,7 @@ export const ProductCatalog: React.FC<ProductCatalogProps> = ({
<span className="flex w-full items-center justify-between gap-3">
<span className="min-w-0 truncate">
{category === 'all'
? translate('::Public.products.categories.all')
? translate('::App.ProductsCategories.All')
: translate('::' + category)}
</span>
<span
@ -130,14 +130,14 @@ export const ProductCatalog: React.FC<ProductCatalogProps> = ({
<div className="flex items-center space-x-2 mb-3">
<FaSearch className="w-5 h-5 text-gray-600 dark:text-gray-300" />
<h3 className="font-semibold text-gray-900 dark:text-gray-100">
{translate('::ListForms.ListFormEdit.TabSearch')}
{translate('::App.Platform.Search3')}
</h3>
</div>
<div className="relative">
<FaSearch className="absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4" />
<input
type="text"
placeholder={translate('::Public.products.search.placeholder')}
placeholder={translate('::App.ProductsSearch.SearchPlaceholder')}
value={searchQuery}
onChange={(e) => onSearchChange(e.target.value)}
className="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg bg-white text-gray-900 placeholder-gray-500 focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-400"
@ -174,9 +174,9 @@ export const ProductCatalog: React.FC<ProductCatalogProps> = ({
<FaFilter className="w-12 h-12 mx-auto" />
</div>
<h2 className="text-2xl font-bold text-gray-900 mb-2 dark:text-gray-100">
{translate('::App.NoResults')}
{translate('::App.Platform.NoResults2')}
</h2>
<p className="text-gray-600 dark:text-gray-300">{translate('::Public.products.empty.description')}</p>
<p className="text-gray-600 dark:text-gray-300">{translate('::App.ProductsEmpty.EmptyDescription')}</p>
</div>
)}
</>

View file

@ -556,7 +556,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="mb-6">
<h2 className="text-lg font-semibold mb-4 flex items-center">
<FaUser className="w-5 h-5 text-green-600 mr-2" />{' '}
{translate('::Public.payment.customerInfo')}
{translate('::App.PublicPayment.CustomerInfo')}
</h2>
</div>
@ -575,10 +575,10 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<FaCheckCircle className="absolute right-4 top-4 h-5 w-5 text-blue-600 dark:text-sky-300" />
)}
<div className="font-semibold text-gray-900 dark:text-gray-100 mb-2">
{translate('::Public.products.tenantForm.existing.title')}
{translate('::App.Listform.ListformField.IsExisting')}
</div>
<div className="text-sm text-gray-700 dark:text-gray-300">
{translate('::Public.products.tenantForm.existing.desc')}
{translate('::App.TenantFormExisting.ExistingDesc')}
</div>
</Button>
@ -595,10 +595,10 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<FaCheckCircle className="absolute right-4 top-4 h-5 w-5 text-blue-600 dark:text-sky-300" />
)}
<div className="font-semibold text-gray-900 dark:text-gray-100 mb-2">
{translate('::Public.products.tenantForm.new.title')}
{translate('::App.TenantFormNew.NewTitle')}
</div>
<div className="text-sm text-gray-700 dark:text-gray-300">
{translate('::Public.products.tenantForm.new.desc')}
{translate('::App.TenantFormNew.NewDesc')}
</div>
</Button>
</div>
@ -611,7 +611,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
{isExisting ? (
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.payment.customer.code')}
{translate('::App.Platform.Organization')}
</label>
<div className="relative flex flex-col sm:flex-row sm:items-stretch gap-3">
<div className="relative w-full">
@ -643,7 +643,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
>
{isLoadingTenant
? translate('::App.Tenant.Searching')
: translate('::Public.products.tenantForm.searchOrg')}
: translate('::App.ProductsTenantForm.SearchOrg')}
</Button>
</div>
@ -664,21 +664,21 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="flex items-center gap-2">
<FaBuilding className="w-4 h-4 text-gray-500" />
<span className="font-medium">
{translate('::Public.payment.customer.company')}
{translate('::App.Platform.Company')}
</span>
<span>{formData.organizationName}</span>
</div>
<div className="flex items-center gap-2">
<FaUser className="w-4 h-4 text-gray-500" />
<span className="font-medium">{translate('::LoginPanel.Profil')}</span>
<span className="font-medium">{translate('::App.Listform.ListformField.Founder')}</span>
<span>{formData.founder}</span>
</div>
<div className="flex items-center gap-2">
<FaEnvelope className="w-4 h-4 text-gray-500" />
<span className="font-medium">
{translate('::Abp.Account.EmailAddress')}:
{translate('::App.Listform.ListformField.Email')}:
</span>
<span>{formData.email}</span>
</div>
@ -694,7 +694,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="flex items-start gap-2">
<FaMapPin className="w-4 h-4 text-gray-500 mt-0.5" />
<div>
<span className="font-medium">{translate('::App.Address')}:</span>
<span className="font-medium">{translate('::App.Listform.ListformField.Address')}:</span>
<div>{formData.address1}</div>
</div>
</div>
@ -702,21 +702,21 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="flex items-center gap-2">
<FaGlobe className="w-4 h-4 text-gray-500" />
<span className="font-medium">
{translate('::Public.payment.customer.country')}:
{translate('::App.Listform.ListformField.Country')}:
</span>
<span>{formData.country}</span>
</div>
<div className="flex items-center gap-2">
<FaGlobe className="w-4 h-4 text-gray-500" />
<span className="font-medium">{translate('::Public.common.city')}:</span>
<span className="font-medium">{translate('::App.Listform.ListformField.City')}:</span>
<span>{formData.city}</span>
</div>
<div className="flex items-center gap-2">
<FaMap className="w-4 h-4 text-gray-500" />
<span className="font-medium">
{translate('::Public.payment.customer.district')}:
{translate('::App.Listform.ListformField.District')}:
</span>
<span>{formData.district}</span>
</div>
@ -732,7 +732,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="flex items-center gap-2">
<FaMapPin className="w-4 h-4 text-gray-500" />
<span className="font-medium">
{translate('::Public.payment.customer.postalCode')}:
{translate('::App.Listform.ListformField.PostalCode')}:
</span>
<span>{formData.postalCode}</span>
</div>
@ -740,7 +740,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="flex items-center gap-2">
<FaMoneyBillWave className="w-4 h-4 text-gray-500" />
<span className="font-medium">
{translate('::Public.contact.taxOffice')}:
{translate('::App.PublicContact.TaxOffice')}:
</span>
<span>{formData.taxOffice}</span>
</div>
@ -748,7 +748,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="flex items-center gap-2">
<FaDollarSign className="w-4 h-4 text-gray-500" />
<span className="font-medium">
{translate('::Public.contact.taxNumber')}:
{translate('::App.PublicContact.TaxNumber')}:
</span>
<span>{formData.vknTckn}</span>
</div>
@ -757,7 +757,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="flex items-center gap-2">
<FaUserPlus className="w-4 h-4 text-gray-500" />
<span className="font-medium">
{translate('::Public.payment.customer.reference')}:
{translate('::App.StaticLookup.Reference')}:
</span>
<span>{formData.reference}</span>
</div>
@ -769,7 +769,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="space-y-4">
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.products.tenantForm.orgName')}
{translate('::App.Platform.Company')}
</label>
<div className="relative">
<FaBuilding className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
@ -787,7 +787,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::LoginPanel.Profil')}
{translate('::App.Listform.ListformField.Founder')}
</label>
<div className="relative">
<FaUser className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
@ -803,7 +803,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.payment.customer.country')}
{translate('::App.Listform.ListformField.Country')}
</label>
<div className="relative">
<Select<LocationOption<CountryDto>>
@ -824,7 +824,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.common.city')}
{translate('::App.Listform.ListformField.City')}
</label>
<div className="relative">
<Select<LocationOption<CityDto>>
@ -845,7 +845,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.payment.customer.district')}
{translate('::App.Listform.ListformField.District')}
</label>
<div className="relative">
<Select<LocationOption<DistrictDto>>
@ -897,7 +897,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.payment.customer.postalCode')}
{translate('::App.Listform.ListformField.PostalCode')}
</label>
<div className="relative">
<FaMapPin className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
@ -915,7 +915,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::App.Address')}
{translate('::App.Listform.ListformField.Address')}
</label>
<div className="relative">
<FaMapPin className="absolute left-3 top-3 text-gray-400 w-5 h-5" />
@ -978,7 +978,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Abp.Account.EmailAddress')}
{translate('::App.Listform.ListformField.Email')}
</label>
<div className="relative">
<FaEnvelope className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
@ -1024,14 +1024,14 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.payment.customer.website')}
{translate('::App.Listform.ListformField.Website')}
</label>
<div className="relative">
<FaSitemap className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
<input
type="text"
required
placeholder={translate('::Public.payment.customer.website')}
placeholder={translate('::App.Listform.ListformField.Website')}
value={formData.website || ''}
onChange={(e) => {
handleInputChange('website', e.target.value)
@ -1067,13 +1067,13 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.payment.customer.reference')}
{translate('::App.StaticLookup.Reference')}
</label>
<div className="relative">
<FaUserPlus className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
<input
type="text"
placeholder={translate('::Public.payment.customer.reference')}
placeholder={translate('::App.StaticLookup.Reference')}
value={formData.reference || ''}
onChange={(e) => handleInputChange('reference', e.target.value)}
className="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg bg-white text-gray-900 placeholder-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-400 focus:ring-2 focus:ring-blue-500 focus:border-transparent"
@ -1085,7 +1085,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.contact.taxOffice')}
{translate('::App.PublicContact.TaxOffice')}
</label>
<div className="relative">
<FaBuilding className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
@ -1101,7 +1101,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.contact.taxNumber')}
{translate('::App.PublicContact.TaxNumber')}
</label>
<div className="relative">
<FaDollarSign className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
@ -1129,7 +1129,7 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
variant="default"
size="sm"
>
{translate('::Back')}
{translate('::App.Platform.Back')}
</Button>
<Button
type="submit"

View file

@ -74,8 +74,8 @@ function ScriptBuilderDialog({
cancelLabel,
}: ScriptBuilderDialogProps) {
const { translate } = useLocalization()
const saveText = saveLabel ?? translate('::Save')
const cancelText = cancelLabel ?? translate('::Cancel')
const saveText = saveLabel ?? translate('::App.Platform.Save')
const cancelText = cancelLabel ?? translate('::App.Platform.Cancel')
const [rules, setRules] = useState<ScriptRule[]>([])
const [code, setCode] = useState('')
// Sihirbaz bir butona basılarak açılır; varsayılan her zaman kod editörüdür.
@ -405,8 +405,8 @@ function ScriptBuilderDialog({
updateRule(rule.id, { join: event.target.value as ScriptRule['join'] })
}
>
<option value="and">{translate('::App.ScriptBuilder.And')}</option>
<option value="or">{translate('::App.ScriptBuilder.Or')}</option>
<option value="and">{translate('::App.Platform.And')}</option>
<option value="or">{translate('::App.Platform.Or')}</option>
</select>
</label>
) : (
@ -440,7 +440,7 @@ function ScriptBuilderDialog({
{operator?.needsSource && dialect.conditionKinds.length > 1 && (
<label className="col-span-12 min-w-0 md:col-span-2">
<span className="mb-1 block text-xs text-gray-500">
{translate('::App.ScriptBuilder.Source')}
{translate('::App.Listform.ListformField.SourceId')}
</span>
<select
className={controlClass}
@ -461,7 +461,7 @@ function ScriptBuilderDialog({
{operator?.needsSource && (
<label className="col-span-12 min-w-0 md:col-span-3">
<span className="mb-1 block text-xs text-gray-500">
{translate('::App.ScriptBuilder.Field')}
{translate('::App.Platform.Field')}
</span>
{renderOptionInput(
kind?.optionSource,
@ -475,7 +475,7 @@ function ScriptBuilderDialog({
{operator?.needsValue && (
<label className="col-span-12 min-w-0 md:col-span-2">
<span className="mb-1 block text-xs text-gray-500">
{translate('::App.ScriptBuilder.Value')}
{translate('::App.Listform.ListformField.Value')}
</span>
<input
className={controlClass}
@ -537,7 +537,7 @@ function ScriptBuilderDialog({
{conditions.length > 1 && (
<span className="shrink-0 rounded-full bg-violet-100 px-2 py-[1px] text-[11px] text-violet-700 dark:bg-violet-900 dark:text-violet-200">
{translate('::App.ScriptBuilder.ConditionCount', { count: conditions.length })} ·{' '}
{translate(rule.join === 'or' ? '::App.ScriptBuilder.Or' : '::App.ScriptBuilder.And')}
{translate(rule.join === 'or' ? '::App.Platform.Or' : '::App.Platform.And')}
</span>
)}
{triggerInfo && trigger !== dialect.triggers?.[0]?.value && (
@ -766,7 +766,7 @@ function ScriptBuilderDialog({
</Button>
)}
<Button size="sm" type="button" icon={<FaCopy />} onClick={copyScript}>
{translate(copied ? '::App.Platform.Copied' : '::App.SqlQueryManager.Copy')}
{translate(copied ? '::App.Platform.Copied' : '::App.Platform.Copy')}
</Button>
<div className="flex overflow-hidden rounded-md border border-gray-200 dark:border-gray-700">
<button
@ -877,7 +877,7 @@ function ScriptBuilderDialog({
key={recipe.id}
size="sm"
type="button"
title={`${recipe.summary}\n\n${translate('::App.ScriptBuilder.Example')}: ${recipe.example}`}
title={`${recipe.summary}\n\n${translate('::App.Platform.Example')}: ${recipe.example}`}
onClick={() => addRule(recipe.id)}
>
{recipe.label}
@ -911,7 +911,7 @@ function ScriptBuilderDialog({
? translate('::App.ScriptBuilder.LineCount', {
count: generatedScript.split('\n').length - 1,
})
: translate('::ListForms.EditorOptions.Empty')}
: translate('::App.Platform.Empty')}
</span>
</div>
<div className="min-h-0 flex-1 overflow-hidden rounded-lg border border-gray-200 dark:border-gray-700">

View file

@ -163,36 +163,36 @@ export const DEFAULT_SCRIPT_OPERATORS: ScriptOperator[] = [
{ value: 'always', label: 'Her zaman' },
{
value: 'equals',
label: 'App.ScriptBuilder.Operator.Equals',
label: 'App.ScriptBuilderOperator.Equals',
needsValue: true,
needsSource: true,
},
{
value: 'notEquals',
label: 'App.ScriptBuilder.Operator.NotEquals',
label: 'App.ScriptBuilderOperator.NotEquals',
needsValue: true,
needsSource: true,
},
{
value: 'contains',
label: 'App.ScriptBuilder.Operator.Contains',
label: 'App.ScriptBuilderOperator.Contains',
needsValue: true,
needsSource: true,
},
{ value: 'empty', label: 'App.ScriptBuilder.Operator.Empty', needsSource: true },
{ value: 'empty', label: 'App.ScriptBuilderOperator.Empty', needsSource: true },
{ value: 'notEmpty', label: 'Doluysa', needsSource: true },
{
value: 'greaterThan',
label: 'App.ScriptBuilder.Operator.GreaterThan',
label: 'App.ScriptBuilderOperator.GreaterThan',
needsValue: true,
needsSource: true,
},
{
value: 'lessThan',
label: 'App.ScriptBuilder.Operator.LessThan',
label: 'App.ScriptBuilderOperator.LessThan',
needsValue: true,
needsSource: true,
},
{ value: 'isTrue', label: 'App.ScriptBuilder.Operator.IsTrue', needsSource: true },
{ value: 'isFalse', label: 'App.ScriptBuilder.Operator.IsFalse', needsSource: true },
{ value: 'isTrue', label: 'App.ScriptBuilderOperator.IsTrue', needsSource: true },
{ value: 'isFalse', label: 'App.ScriptBuilderOperator.IsFalse', needsSource: true },
]

View file

@ -29,7 +29,7 @@ const DbMigrateButton = ({ hideLabelOnMobile = false, className }: DbMigrateButt
return null
}
const label = translate('::ListForms.ListForm.DbMigrate')
const label = translate('::App.ListForm.DbMigrate')
return (
<>
@ -39,7 +39,7 @@ const DbMigrateButton = ({ hideLabelOnMobile = false, className }: DbMigrateButt
icon={<FcAcceptDatabase />}
className={className}
onClick={() => setIsConfirmOpen(true)}
title={translate('::App.DbMigrate.StartMessage')}
title={translate('::App.Platform.StartMessage')}
>
{hideLabelOnMobile ? <span className="hidden sm:inline">{label}</span> : label}
</Button>
@ -48,7 +48,7 @@ const DbMigrateButton = ({ hideLabelOnMobile = false, className }: DbMigrateButt
isOpen={isConfirmOpen}
type="info"
title={label}
cancelText={translate('::Cancel')}
cancelText={translate('::App.Platform.Cancel')}
confirmText={translate('::App.Platform.Execute')}
onCancel={() => setIsConfirmOpen(false)}
onClose={() => setIsConfirmOpen(false)}

View file

@ -126,11 +126,11 @@ const TenantSelector = () => {
return (
<>
<label className="form-label mb-2" style={tenantStyle}>
{translate('::Organization')}
{translate('::App.Platform.Organization')}
</label>
<div className="mb-4">
<Input
placeholder={translate('::Organization')}
placeholder={translate('::App.Platform.Organization')}
value={tenantName ?? ''}
onChange={(event) => handleTenantNameChange(event.target.value)}
onBlur={handleTenantNameBlur}

View file

@ -281,7 +281,7 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
if (tooLarge) {
toast.push(
<Notification
title={translate('::MessengerWidget.FileSizeLimitExceeded')}
title={translate('::App.MessengerWidget.FileSizeLimitExceeded')}
type="warning"
/>,
{
@ -299,7 +299,7 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
setAttachments((prev) => [...prev, ...uploaded])
} catch {
toast.push(
<Notification title={translate('::MessengerWidget.FileUploadFailed')} type="danger" />,
<Notification title={translate('::App.MessengerWidget.FileUploadFailed')} type="danger" />,
{ placement: 'bottom-end' },
)
} finally {
@ -314,7 +314,7 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
if (!canSendToSelectedContacts) {
toast.push(
<Notification
title={translate('::MessengerWidget.OnlyOnlineUsersCanReceiveMessages')}
title={translate('::App.MessengerWidget.OnlyOnlineUsersCanReceiveMessages')}
type="warning"
/>,
{
@ -339,21 +339,21 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
}, 0)
} catch {
toast.push(
<Notification title={translate('::MessengerWidget.MessageSendFailed')} type="danger" />,
<Notification title={translate('::App.MessengerWidget.MessageSendFailed')} type="danger" />,
{ placement: 'bottom-end' },
)
}
}
const deleteMessage = async (messageId: string) => {
if (!window.confirm(translate('::MessengerWidget.DeleteMessageConfirmation'))) return
if (!window.confirm(translate('::App.MessengerWidget.DeleteMessageConfirmation'))) return
try {
const response = await deleteMessengerMessage(messageId)
setMessages((prev) => prev.filter((item) => item.id !== response.data.messageId))
} catch {
toast.push(
<Notification title={translate('::MessengerWidget.MessageDeleteFailed')} type="danger" />,
<Notification title={translate('::App.MessengerWidget.MessageDeleteFailed')} type="danger" />,
{ placement: 'bottom-end' },
)
}
@ -377,7 +377,7 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
<>
<Button
type="button"
aria-label={translate('::MessengerWidget.Minimize')}
aria-label={translate('::App.MessengerWidget.Minimize')}
variant="plain"
shape="none"
className="fixed inset-0 z-50 !h-auto cursor-default bg-slate-950/25 !px-0 backdrop-blur-[1px] hover:!bg-slate-950/25 active:!bg-slate-950/25 dark:bg-black/55 dark:hover:!bg-black/55 dark:active:!bg-black/55"
@ -405,15 +405,15 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
<div className="truncate text-sm font-semibold text-gray-900 dark:text-gray-100">
{auth.user.name ||
auth.user.userName ||
translate('::MessengerWidget.Title')}
translate('::App.MessengerWidget.Title')}
</div>
<div className="flex items-center gap-1 text-xs text-gray-500 dark:text-gray-300">
<span
className={`h-2 w-2 rounded-full ${connected ? 'bg-emerald-500' : 'bg-gray-400'}`}
/>
{connected
? translate('::MessengerWidget.Connected')
: translate('::MessengerWidget.Connecting')}
? translate('::App.MessengerWidget.Connected')
: translate('::App.MessengerWidget.Connecting')}
</div>
</div>
</div>
@ -434,7 +434,7 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
size="sm"
value={filter}
prefix={<FaSearch />}
placeholder={translate('::MessengerWidget.SearchPerson')}
placeholder={translate('::App.MessengerWidget.SearchPerson')}
onChange={(event) => setFilter(event.target.value)}
/>
</div>
@ -443,12 +443,12 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
variant={multiSelect ? 'twoTone' : 'default'}
icon={<FaUsers />}
className="flex-1 shrink-0"
aria-label={translate('::MessengerWidget.MultiSelect')}
aria-label={translate('::App.MessengerWidget.MultiSelect')}
onClick={toggleMultiSelect}
title={
multiSelect
? translate('::MessengerWidget.MultiSelectEnabled')
: translate('::MessengerWidget.MultiSelect')
? translate('::App.MessengerWidget.MultiSelectEnabled')
: translate('::App.MessengerWidget.MultiSelect')
}
/>
</div>
@ -491,8 +491,8 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
}`}
/>
{contact.isOnline
? translate('::MessengerWidget.Online')
: translate('::MessengerWidget.Offline')}
? translate('::App.MessengerWidget.Online')
: translate('::App.MessengerWidget.Offline')}
</span>
</span>
{contactUnread > 0 && (
@ -547,19 +547,19 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
{selectedContacts.length === 1
? selectedContacts[0].fullName
: selectedContacts.length > 1
? `${selectedContacts.length} ${translate('::MessengerWidget.PeopleSelected')}`
: translate('::MessengerWidget.Chat')}
? `${selectedContacts.length} ${translate('::App.MessengerWidget.PeopleSelected')}`
: translate('::App.Platform.SohbetAnswer')}
</div>
<div className="truncate text-xs text-gray-500 dark:text-gray-300">
{selectedContacts.length === 1
? `${selectedContacts[0].isOnline ? translate('::MessengerWidget.Online') : translate('::MessengerWidget.Offline')} - ${
? `${selectedContacts[0].isOnline ? translate('::App.MessengerWidget.Online') : translate('::App.MessengerWidget.Offline')} - ${
selectedContacts[0].email || selectedContacts[0].userName
}`
: selectedContacts.length > 1
? canSendToSelectedContacts
? translate('::MessengerWidget.GroupMessage')
: translate('::MessengerWidget.OfflineUserSelected')
: translate('::MessengerWidget.SelectPersonToSendMessage')}
? translate('::App.MessengerWidget.GroupMessage')
: translate('::App.MessengerWidget.OfflineUserSelected')
: translate('::App.MessengerWidget.SelectPersonToSendMessage')}
</div>
</div>
</div>
@ -577,7 +577,7 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
<div className="flex-1 overflow-y-auto bg-white/55 px-4 py-3 backdrop-blur-xl dark:bg-gray-900/55">
{visibleMessages.length === 0 && (
<div className="flex h-full items-center justify-center text-sm text-gray-400">
{translate('::MessengerWidget.NoMessagesYet')}
{translate('::App.MessengerWidget.NoMessagesYet')}
</div>
)}
@ -613,7 +613,7 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
{own
? auth.user.name ||
auth.user.userName ||
translate('::MessengerWidget.Me')
translate('::App.MessengerWidget.Me')
: message.senderName}
</span>
</div>
@ -655,7 +655,7 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
{own && deletable && (
<Button
type="button"
title={translate('::MessengerWidget.DeleteMessage')}
title={translate('::App.MessengerWidget.DeleteMessage')}
size="xs"
variant="plain"
shape="circle"
@ -718,7 +718,7 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
className="hidden"
onChange={(event) => handleFiles(event.target.files)}
/>
<Tooltip title={translate('::MessengerWidget.AddFile')}>
<Tooltip title={translate('::App.MessengerWidget.AddFile')}>
<Button
type="button"
size="sm"
@ -730,7 +730,7 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
onClick={() => fileInputRef.current?.click()}
/>
</Tooltip>
<Tooltip title={translate('::MessengerWidget.Emoji')}>
<Tooltip title={translate('::App.MessengerWidget.Emoji')}>
<Button
type="button"
size="sm"
@ -745,8 +745,8 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
value={text}
placeholder={
canSendToSelectedContacts
? translate('::MessengerWidget.WriteMessage')
: translate('::MessengerWidget.OfflineUsersCannotReceiveMessages')
? translate('::App.MessengerWidget.WriteMessage')
: translate('::App.MessengerWidget.OfflineUsersCannotReceiveMessages')
}
rows={1}
disabled={!canSendToSelectedContacts}
@ -779,14 +779,14 @@ const MessengerWidgetContent = ({ className }: { className?: string }) => {
</>
)}
<Tooltip title={translate('::MessengerWidget.Title')}>
<Tooltip title={translate('::App.MessengerWidget.Title')}>
<div
className={classNames(
className,
textTheme,
'pointer-events-auto relative !mx-0 text-2xl transition-colors duration-300 ease-in-out hover:bg-black hover:bg-opacity-5 dark:hover:bg-black dark:hover:bg-opacity-40',
)}
aria-label={translate('::MessengerWidget.Title')}
aria-label={translate('::App.MessengerWidget.Title')}
role="button"
tabIndex={0}
onClick={() => (open ? closeWidget() : setOpen(true))}

View file

@ -343,7 +343,7 @@ const _Notification = ({ className }: { className?: string }) => {
>
<Dropdown.Item variant="header">
<div className="border-b border-gray-200 dark:border-gray-600 px-4 py-2 flex items-center justify-between">
<h6>{translate('::Abp.Identity.ActivityLogs.Notifications')}</h6>
<h6>{translate('::App.Notifications')}</h6>
<Tooltip title={translate('::Abp.Identity.ActivityLogs.MarkAllRead')}>
<Button
variant="plain"

View file

@ -174,7 +174,7 @@ const _Search = ({ className }: { className?: string }) => {
return (
<PermissionCheck permissions={[GLOBAL_SEARCH]}>
<Tooltip title={translate('::App.Search')}>
<Tooltip title={translate('::App.Platform.Search2')}>
<div className={classNames(className, 'text-2xl')} onClick={handleSearchOpen}>
<FcSearch />
</div>
@ -193,7 +193,7 @@ const _Search = ({ className }: { className?: string }) => {
<input
ref={inputRef}
className="ring-0 outline-none block w-full p-4 text-base bg-transparent text-gray-900 dark:text-gray-100"
placeholder={translate('::App.Search')}
placeholder={translate('::App.Platform.Search2')}
onKeyDown={(e) => e.key === 'Enter' && handleSearch()}
/>
</div>
@ -202,7 +202,7 @@ const _Search = ({ className }: { className?: string }) => {
<div>
<div className="flex items-center justify-between p-4 border-b border-gray-200 dark:border-gray-600">
<div className="flex items-center space-x-2">
<span className="text-sm">{translate('::App.SearchIn')}</span>
<span className="text-sm">{translate('::App.Platform.SearchIn')}</span>
<Checkbox.Group
value={currentSystems}
onChange={(value) => setCurrentSystems(value as string[])}
@ -238,7 +238,7 @@ const _Search = ({ className }: { className?: string }) => {
))}
{searchResult.length === 0 && noResult && (
<div className="my-10 text-center text-lg">
<span>{translate('::App.NoResults')}</span>
<span>{translate('::App.Platform.NoResults2')}</span>
<div className="heading-text">'{inputRef.current?.value}'</div>
</div>
)}

View file

@ -36,7 +36,7 @@ const _SidePanel = (props: SidePanelProps) => {
return (
<>
<Tooltip title={translate('::SidePanel.Title')}>
<Tooltip title={translate('::App.StaticLookup.Configuration')}>
<div className={classNames('text-2xl', className)} onClick={openPanel} {...rest}>
<FcEngineering />
</div>
@ -44,7 +44,7 @@ const _SidePanel = (props: SidePanelProps) => {
<Drawer
title={
<div className="flex items-center justify-between gap-x-2">
<h4>{translate('::SidePanel.Title')}</h4>
<h4>{translate('::App.StaticLookup.Configuration')}</h4>
<CopyButton />
</div>
}

View file

@ -39,7 +39,7 @@ const CopyButton = () => {
variant="plain"
size="sm"
onClick={handleCopy}
title={translate('::SidePanel.SaveConfig')}
title={translate('::App.SidePanel.SaveConfig')}
icon={<FaSave />}
/>
)

View file

@ -102,7 +102,7 @@ const LayoutSwitcher = () => {
/>
</SegmentItemOption>
<div className={classNames(active && textTheme, 'mt-2 font-semibold')}>
{translate('::SidePanel.Layout.' + layout.label)}
{translate('::App.SidePanelLayout.' + layout.label.replace(/\s+/g, ''))}
</div>
</div>
)

View file

@ -24,11 +24,11 @@ const ThemeConfigurator = ({ callBackClose }: ThemeConfiguratorProps) => {
<div className="flex flex-col h-full justify-between">
<div className="flex flex-col gap-y-3 mb-2 ml-1">
<div>
<h6 className="mb-3">{translate('::SidePanel.Layout')}</h6>
<h6 className="mb-3">{translate('::App.SidePanel.Layout')}</h6>
<LayoutSwitcher />
</div>
<div>
<h6 className="mb-3">{translate('::SidePanel.NavMode')}</h6>
<h6 className="mb-3">{translate('::App.SidePanel.NavMode')}</h6>
<NavModeSwitcher />
</div>
<div>
@ -36,20 +36,20 @@ const ThemeConfigurator = ({ callBackClose }: ThemeConfiguratorProps) => {
<StyleSwitcher onStyleChange={handleStyleChange} />
</div>
<div>
<h6 className="mb-3">{translate('::SidePanel.Themed')}</h6>
<h6 className="mb-3">{translate('::App.SiteManagement.Theme')}</h6>
<ThemeSwitcher />
</div>
<div className="flex items-center justify-between">
<div>
<h6>{translate('::SidePanel.Mode')}</h6>
<span>{translate('::SidePanel.Mode.Description')}</span>
<h6>{translate('::App.Platform.Mode')}</h6>
<span>{translate('::App.SidePanelMode.ModeDescription')}</span>
</div>
<ModeSwitcher key={modeKey} />
</div>
<div className="flex items-center justify-between">
<div>
<h6>{translate('::SidePanel.Direction')}</h6>
<span>{translate('::SidePanel.Direction.Description')}</span>
<h6>{translate('::App.SidePanel.Direction')}</h6>
<span>{translate('::App.SidePanelDirection.DirectionDescription')}</span>
</div>
<DirectionSwitcher callBackClose={callBackClose} />
</div>

View file

@ -48,7 +48,7 @@ const UserDropdownBase = ({ className }: CommonProps) => {
icon: <FcNfcSign />,
},
{
label: translate('::SidePanel.Title'),
label: translate('::App.StaticLookup.Configuration'),
path: ROUTES_ENUM.protected.admin.activityLog,
icon: <FcEngineering />,
},
@ -93,7 +93,7 @@ const UserDropdownBase = ({ className }: CommonProps) => {
</Dropdown.Item>
<Dropdown.Item variant="divider" />
{dropdownItemList.map((item) => {
const isSidePanel = item.label === translate('::SidePanel.Title')
const isSidePanel = item.label === translate('::App.StaticLookup.Configuration')
return (
<Dropdown.Item
key={item.label}
@ -137,8 +137,8 @@ const UserDropdownBase = ({ className }: CommonProps) => {
</span>
<span>
{isCheckingUpdate
? translate('::App.CheckUpdate')
: translate('::App.CheckForUpdates')}
? translate('::App.Platform.CheckUpdate')
: translate('::App.Platform.CheckForUpdates')}
</span>
</span>
</Dropdown.Item>
@ -151,7 +151,7 @@ const UserDropdownBase = ({ className }: CommonProps) => {
<span className="text-xl opacity-50">
<FcNews />
</span>
<span>{translate('::App.ChangeLog')}</span>
<span>{translate('::App.Platform.ChangeLog')}</span>
</Link>
</Dropdown.Item>

View file

@ -302,7 +302,7 @@ const AutoComplete = forwardRef<HTMLInputElement, AutoCompleteProps>((props, ref
className="autocomplete-clear"
onClick={handleClear}
tabIndex={-1}
aria-label={translate('::App.DeveloperKit.CrudEndpoints.Clear')}
aria-label={translate('::App.Platform.Clear')}
>
<svg
width={12}
@ -324,7 +324,7 @@ const AutoComplete = forwardRef<HTMLInputElement, AutoCompleteProps>((props, ref
<ul ref={listRef} id={listboxId} role="listbox" className="autocomplete-dropdown">
{loading ? (
<li className="autocomplete-option autocomplete-option-info">
{loadingText ?? translate('::App.Loading')}
{loadingText ?? translate('::App.Platform.LoadingWithThreeDot')}
</li>
) : filteredOptions.length === 0 ? (
<li className="autocomplete-option autocomplete-option-info">

View file

@ -300,7 +300,7 @@ const ImageViewerOverlay = ({
className="image-viewer-overlay"
role="dialog"
aria-modal
aria-label={current.alt ?? translate('::App.ImageViewer.Title')}
aria-label={current.alt ?? translate('::App.ImageViewer.ImageViewerTitle')}
>
{/* Toolbar */}
{showToolbar && (
@ -318,7 +318,7 @@ const ImageViewerOverlay = ({
<button type="button" onClick={zoomIn} title={translate('::App.Platform.ZoomIn')}>
<IconZoomIn />
</button>
<button type="button" onClick={resetTransform} title={translate('::Reset')}>
<button type="button" onClick={resetTransform} title={translate('::App.Platform.Reset')}>
<IconReset />
</button>
<button
@ -335,7 +335,7 @@ const ImageViewerOverlay = ({
>
<IconRotateCW />
</button>
<button type="button" onClick={handleDownload} title={translate('::Download')}>
<button type="button" onClick={handleDownload} title={translate('::App.Listform.ListformField.Download')}>
<IconDownload />
</button>
<button
@ -379,7 +379,7 @@ const ImageViewerOverlay = ({
type="button"
className="image-viewer-nav image-viewer-nav-prev"
onClick={goPrev}
aria-label={translate('::App.VisualDesigner.Canvas.Previous')}
aria-label={translate('::App.Platform.Previous')}
>
<IconPrev />
</button>
@ -389,7 +389,7 @@ const ImageViewerOverlay = ({
type="button"
className="image-viewer-nav image-viewer-nav-next"
onClick={goNext}
aria-label={translate('::App.VisualDesigner.Canvas.Next')}
aria-label={translate('::App.Platform.Next2')}
>
<IconNext />
</button>

View file

@ -212,7 +212,7 @@ const Rate = forwardRef<HTMLDivElement, RateProps>((props, ref) => {
onKeyDown={handleKeyDown}
tabIndex={disabled || readOnly ? undefined : 0}
role="radiogroup"
aria-label={translate('::App.Rate.Label')}
aria-label={translate('::App.Rate.RateLabel')}
{...rest}
>
{Array.from({ length: count }, (_, i) => renderStar(i))}

View file

@ -147,7 +147,7 @@ const Upload = forwardRef<HTMLDivElement, UploadProps>((props, ref) => {
if (!draggable && !children) {
return (
<Button size="sm" variant="solid" disabled={disabled} onClick={(e) => e.preventDefault()}>
{translate('::FileManager.Upload')}
{translate('::App.Platform.Upload')}
</Button>
)
}

View file

@ -674,11 +674,11 @@ const PlatformPlaceholder = ({ node }: { node: DesignerNode }) => {
</div>
<div className="mt-1 text-xs text-slate-500">
{String(
node.props.listFormCode || translate('::App.VisualDesigner.Canvas.SelectListFormCode'),
node.props.listFormCode || translate('::App.VisualDesignerCanvas.SelectListFormCode'),
)}
</div>
<div className="mt-3 text-[11px] uppercase tracking-wider text-sky-700 dark:text-sky-300">
{translate('::App.VisualDesigner.Canvas.PlatformView')}
{translate('::App.VisualDesignerCanvas.PlatformView')}
</div>
</div>
</div>
@ -715,7 +715,7 @@ const GridColumnHeaders = ({ columns }: { columns: string[] }) => {
</div>
) : (
<div className="px-3 py-2 text-center text-xs text-slate-400">
{translate('::App.VisualDesigner.Canvas.SelectColumnsFromData')}
{translate('::App.VisualDesignerCanvas.SelectColumnsFromData')}
</div>
)}
</div>
@ -753,7 +753,7 @@ const GridDataTablePreview = ({
if (!columns.length) {
return (
<div className="rounded-lg border border-dashed border-slate-300 bg-slate-50 p-4 text-center text-xs text-slate-500 [grid-column:1/-1] dark:border-slate-700 dark:bg-slate-900 dark:text-slate-400">
{translate('::App.VisualDesigner.Canvas.SelectAtLeastOneColumn')}
{translate('::App.VisualDesignerCanvas.SelectAtLeastOneColumn')}
</div>
)
}
@ -885,7 +885,7 @@ const SqlDataSourceView = ({
const canDelete = Boolean(getSqlDataSourceEndpointId(node, 'deleteEndpoint'))
// Save follows the explicit mode, exactly like the generated runtime does.
const canSave = mode === 'new' ? canInsert : canUpdate
const designTimeTitle = translate('::App.VisualDesigner.Canvas.DesignTimeNoCall')
const designTimeTitle = translate('::App.VisualDesignerCanvas.DesignTimeNoCall')
const toolbarButton = (
label: string,
@ -928,19 +928,19 @@ const SqlDataSourceView = ({
</span>
<span>
{selectId
? translate('::App.VisualDesigner.Canvas.RecordCount', { count: rows.length })
: translate('::App.VisualDesigner.Canvas.NoSelectEndpoint')}
? translate('::App.Platform.RecordCount', { count: rows.length })
: translate('::App.VisualDesignerCanvas.NoSelectEndpoint')}
</span>
<span className="rounded bg-sky-600 px-1.5 py-0.5 font-semibold text-white">
{translate(
mode === 'new'
? '::App.VisualDesigner.Canvas.NewRecord'
: '::App.VisualDesigner.Canvas.Editing',
? '::App.VisualDesignerCanvas.NewRecord'
: '::App.Platform.Editing',
)}
</span>
{rows.length > 1 && (
<label className="flex items-center gap-1">
{translate('::App.VisualDesigner.Canvas.Row')}
{translate('::App.Platform.Row')}
<select
className="rounded border border-sky-300 bg-white px-1 py-0.5 text-[10px] dark:border-sky-800 dark:bg-slate-900"
value={rowIndex}
@ -961,7 +961,7 @@ const SqlDataSourceView = ({
{/* The drop zone belongs with the content, above the command toolbar. */}
{interactive && !node.children.length && (
<div className="rounded border border-dashed border-slate-300 px-3 py-4 text-center text-xs text-slate-400 dark:border-slate-700">
{translate('::App.VisualDesigner.Canvas.DropAndBind')}
{translate('::App.VisualDesignerCanvas.DropAndBind')}
</div>
)}
{node.props.showToolbar !== false && (
@ -970,20 +970,20 @@ const SqlDataSourceView = ({
{rows.length > 1 && (
<>
{toolbarButton(
translate('::App.VisualDesigner.Canvas.Previous'),
translate('::App.Platform.Previous'),
rowIndex > 0,
'plain',
translate('::App.VisualDesigner.Canvas.AtFirstRecord'),
translate('::App.VisualDesignerCanvas.AtFirstRecord'),
() => goToRow(Math.max(0, rowIndex - 1)),
)}
<span className="text-xs text-slate-500">
{rows.length ? `${rowIndex + 1} / ${rows.length}` : '0 / 0'}
</span>
{toolbarButton(
translate('::App.VisualDesigner.Canvas.Next'),
translate('::App.Platform.Next2'),
rowIndex < rows.length - 1,
'plain',
translate('::App.VisualDesigner.Canvas.AtLastRecord'),
translate('::App.VisualDesignerCanvas.AtLastRecord'),
() => goToRow(Math.min(rows.length - 1, rowIndex + 1)),
)}
<span className="mx-1 h-5 w-px bg-slate-300 dark:bg-slate-700" />
@ -991,23 +991,23 @@ const SqlDataSourceView = ({
)}
{/* New and Reload only touch local state, so they work at design time. */}
{toolbarButton(
translate('::App.VisualDesigner.Canvas.New'),
translate('::App.Platform.New'),
canInsert,
'plain',
translate('::App.VisualDesigner.Canvas.SelectInsertEndpoint'),
translate('::App.VisualDesignerCanvas.SelectInsertEndpoint'),
() => {
setDraft({})
setMode('new')
},
)}
{toolbarButton(
translate('::Save'),
translate('::App.Platform.Save'),
canSave,
'primary',
translate(
mode === 'new'
? '::App.VisualDesigner.Canvas.SelectInsertEndpoint'
: '::App.VisualDesigner.Canvas.SelectUpdateEndpoint',
? '::App.VisualDesignerCanvas.SelectInsertEndpoint'
: '::App.VisualDesignerCanvas.SelectUpdateEndpoint',
),
)}
{toolbarButton(
@ -1015,14 +1015,14 @@ const SqlDataSourceView = ({
canDelete && hasKey && mode === 'edit',
'danger',
canDelete
? translate('::App.VisualDesigner.Canvas.KeyFieldRequired', { field: keyField })
: translate('::App.VisualDesigner.Canvas.SelectDeleteEndpoint'),
? translate('::App.VisualDesignerCanvas.KeyFieldRequired', { field: keyField })
: translate('::App.VisualDesignerCanvas.SelectDeleteEndpoint'),
)}
{toolbarButton(
translate('::App.Platform.Refresh'),
Boolean(selectId),
'plain',
translate('::App.VisualDesigner.Canvas.SelectSelectEndpoint'),
translate('::App.VisualDesignerCanvas.SelectSelectEndpoint'),
() => goToRow(rowIndex),
)}
</div>
@ -1389,7 +1389,7 @@ const NodeView = ({
const insideDraggedSubtree = React.useContext(DesignerDraggedSubtreeContext) || isDragSource
const canDropInside = acceptsDroppedChildren && !insideDraggedSubtree
const canDropBeside = !insideDraggedSubtree
const dragLabel = drag?.label || drag?.name || translate('::App.VisualDesigner.Canvas.Component')
const dragLabel = drag?.label || drag?.name || translate('::App.VisualDesignerCanvas.Component')
/**
* Taşımayı başlatan ortak kod. Hem düğüm gövdesi hem de tutamak bunu kullanır:
* Input/Select/Textarea gibi canlı önizleme kontrolleri Chrome'da üst öğenin
@ -1601,7 +1601,7 @@ const NodeView = ({
))}
{interactive && !tabNodes.length && !option.content && (
<div className="flex min-h-12 items-center justify-center rounded border border-dashed border-slate-300 px-2 text-center text-[10px] text-slate-400 dark:border-slate-700">
{translate('::App.VisualDesigner.Canvas.DropComponentInTab')}
{translate('::App.VisualDesignerCanvas.DropComponentInTab')}
</div>
)}
</div>
@ -1696,7 +1696,7 @@ const NodeView = ({
))}
{interactive && !cellNodes.length && (
<div className="flex min-h-12 items-center justify-center rounded border border-dashed border-slate-300 px-2 text-center text-[10px] text-slate-400 dark:border-slate-700">
{translate('::App.VisualDesigner.Canvas.DropComponent')}
{translate('::App.VisualDesignerCanvas.DropComponent')}
</div>
)}
</div>
@ -1755,7 +1755,7 @@ const NodeView = ({
key={`grid_loading_${node.id}`}
className="rounded-lg border border-slate-200 bg-slate-50 p-4 text-center text-xs text-slate-500 [grid-column:1/-1] dark:border-slate-700 dark:bg-slate-900 dark:text-slate-400"
>
{translate('::App.VisualDesigner.Canvas.LoadingData')}
{translate('::App.VisualDesignerCanvas.LoadingData')}
</div>,
]
: node.type === 'Grid' &&
@ -1817,8 +1817,8 @@ const NodeView = ({
{...containerDropZoneProps}
>
{containerDropZone.over
? translate('::App.VisualDesigner.Canvas.WillDropHere', { label: dragLabel })
: translate('::App.VisualDesigner.Canvas.DropComponentHere')}
? translate('::App.VisualDesignerCanvas.WillDropHere', { label: dragLabel })
: translate('::App.VisualDesignerCanvas.DropComponentHere')}
</div>,
]
: renderedChildren
@ -1923,7 +1923,7 @@ const NodeView = ({
{/* Sürükleme sürerken bırakılamayan hedef açıkça söylenir. */}
{dragging && insideDraggedSubtree && !isDragSource && (
<span className="pointer-events-none absolute right-1 top-1 z-30 rounded bg-slate-500 px-1.5 py-[1px] text-[10px] font-semibold text-white shadow">
{translate('::App.VisualDesigner.Canvas.CannotMoveHere')}
{translate('::App.VisualDesignerCanvas.CannotMoveHere')}
</span>
)}
{interactive && (
@ -1938,7 +1938,7 @@ const NodeView = ({
<span
draggable
className="flex cursor-grab items-center gap-1 px-2 text-[10px] font-semibold active:cursor-grabbing"
title={translate('::App.VisualDesigner.Canvas.DragToMove', {
title={translate('::App.VisualDesignerCanvas.DragToMove', {
name: node.ref || node.type,
})}
onDragStart={startNodeDrag}
@ -1950,7 +1950,7 @@ const NodeView = ({
className="p-1.5 enabled:hover:bg-sky-700 disabled:cursor-not-allowed disabled:opacity-40"
disabled={!canMoveUp}
title={translate(
canMoveUp ? '::App.Platform.MoveUp' : '::App.VisualDesigner.Canvas.AlreadyAtTop',
canMoveUp ? '::App.Platform.MoveUp' : '::App.VisualDesignerCanvas.AlreadyAtTop',
)}
type="button"
onClick={(event) => {
@ -1966,7 +1966,7 @@ const NodeView = ({
title={translate(
canMoveDown
? '::App.Platform.MoveDown'
: '::App.VisualDesigner.Canvas.AlreadyAtBottom',
: '::App.VisualDesignerCanvas.AlreadyAtBottom',
)}
type="button"
onClick={(event) => {
@ -1978,7 +1978,7 @@ const NodeView = ({
</button>
<button
className="p-1.5 hover:bg-sky-700"
title={translate('::App.VisualDesigner.Canvas.Duplicate')}
title={translate('::App.Platform.Duplicate')}
type="button"
onClick={(event) => {
event.stopPropagation()
@ -2035,7 +2035,7 @@ const NodeView = ({
className="m-2 rounded border border-dashed border-slate-300 px-3 py-4 text-center text-xs text-slate-400"
{...containerDropZoneProps}
>
{translate('::App.VisualDesigner.Canvas.DropComponentHere')}
{translate('::App.VisualDesignerCanvas.DropComponentHere')}
</div>
)}
<span className="hidden">{index}</span>
@ -2148,7 +2148,7 @@ const VisualCanvas = ({
<div className="pointer-events-none sticky top-0 z-40 mb-3 flex items-center justify-center">
<span className="rounded-full bg-slate-900/90 px-3 py-1 text-[11px] font-medium text-white shadow-lg">
<b>{drag.label || drag.name}</b>{' '}
{translate('::App.VisualDesigner.Canvas.DraggingHint')}
{translate('::App.VisualDesignerCanvas.DraggingHint')}
</span>
</div>
)}
@ -2187,7 +2187,7 @@ const VisualCanvas = ({
}`}
{...rootDropZone.props}
>
{translate('::App.VisualDesigner.Canvas.DropAtPageEnd')}
{translate('::App.VisualDesignerCanvas.DropAtPageEnd')}
</div>
)}
</div>
@ -2207,22 +2207,22 @@ const VisualCanvas = ({
+
</div>
<h3 className="font-semibold text-slate-700 dark:text-slate-200">
{translate('::App.VisualDesigner.Canvas.ChoosePageLayout')}
{translate('::App.VisualDesignerCanvas.ChoosePageLayout')}
</h3>
<p className="mt-1 text-sm text-slate-500">
{translate('::App.VisualDesigner.Canvas.ChoosePageLayoutHint')}
{translate('::App.VisualDesignerCanvas.ChoosePageLayoutHint')}
</p>
{interactive && (
<div className="mt-5 grid grid-cols-2 gap-2 sm:grid-cols-4">
{[
['PageContainer', translate('::App.VisualDesigner.Layout.PageContainer'), '□'],
['TwoColumns', translate('::App.VisualDesigner.Layout.TwoColumns'), '▥'],
['PageContainer', translate('::App.VisualDesignerLayout.PageContainer'), '□'],
['TwoColumns', translate('::App.VisualDesignerLayout.TwoColumns'), '▥'],
[
'SidebarContent',
translate('::App.VisualDesigner.Layout.SidebarContent'),
translate('::App.VisualDesignerLayout.SidebarContent'),
'◧',
],
['HeaderContent', translate('::App.VisualDesigner.Layout.HeaderContent'), '⊟'],
['HeaderContent', translate('::App.VisualDesignerLayout.HeaderContent'), '⊟'],
].map(([name, label, icon]) => (
<button
key={name}

View file

@ -187,93 +187,93 @@ export interface DesignerScriptRecipe {
}
export const DESIGNER_SCRIPT_RECIPE_GROUPS = [
'App.VisualDesigner.Catalog.Group.ComponentAccess',
'App.VisualDesigner.Catalog.Group.ApiCalls',
'App.VisualDesigner.Catalog.Group.SqlDataSource',
'App.VisualDesigner.Catalog.Group.EventAndPage',
'App.CatalogGroup.ComponentAccess',
'App.CatalogGroup.ApiCalls',
'App.CatalogGroup.SqlDataSource',
'App.CatalogGroup.EventAndPage',
] as const
export const DESIGNER_SCRIPT_RECIPES: DesignerScriptRecipe[] = [
{
group: 'App.VisualDesigner.Catalog.Group.ComponentAccess',
title: 'App.VisualDesigner.Catalog.ComponentAccess.Title',
description: 'App.VisualDesigner.Catalog.ComponentAccess.Description',
group: 'App.CatalogGroup.ComponentAccess',
title: 'App.CatalogComponentAccess.ComponentAccessTitle',
description: 'App.CatalogComponentAccess.ComponentAccessDescription',
code: `refs.{{ref}}.setValue('Merhaba')
const value = refs.{{ref}}.getValue()
console.log(value)`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ComponentAccess',
title: 'App.VisualDesigner.Catalog.ComponentAccess.Title2',
description: 'App.VisualDesigner.Catalog.ComponentAccess.Description2',
group: 'App.CatalogGroup.ComponentAccess',
title: 'App.CatalogComponentAccess.ComponentAccessTitle2',
description: 'App.CatalogComponentAccess.ComponentAccessDescription2',
code: `refs.{{ref}}.setEnabled(false)
console.log(refs.{{ref}}.isEnabled())`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ComponentAccess',
title: 'App.VisualDesigner.Catalog.ComponentAccess.Title3',
description: 'App.VisualDesigner.Catalog.ComponentAccess.Description3',
group: 'App.CatalogGroup.ComponentAccess',
title: 'App.CatalogComponentAccess.ComponentAccessTitle3',
description: 'App.CatalogComponentAccess.ComponentAccessDescription3',
code: `refs.{{ref}}.setVisible(false)
// veya: refs.{{ref}}.hide() / refs.{{ref}}.show()`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ComponentAccess',
group: 'App.CatalogGroup.ComponentAccess',
title: 'Salt okunur yapma',
description: 'App.VisualDesigner.Catalog.ComponentAccess.Description4',
description: 'App.CatalogComponentAccess.ComponentAccessDescription4',
code: `refs.{{ref}}.setReadOnly(true)`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ComponentAccess',
title: 'App.VisualDesigner.Catalog.ComponentAccess.Title4',
description: 'App.VisualDesigner.Catalog.ComponentAccess.Description5',
group: 'App.CatalogGroup.ComponentAccess',
title: 'App.CatalogComponentAccess.ComponentAccessTitle4',
description: 'App.CatalogComponentAccess.ComponentAccessDescription5',
code: `refs.{{ref}}.setText('Kaydediliyor…')`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ComponentAccess',
group: 'App.CatalogGroup.ComponentAccess',
title: 'Serbest property atama',
description: 'App.VisualDesigner.Catalog.ComponentAccess.Description6',
description: 'App.CatalogComponentAccess.ComponentAccessDescription6',
code: `refs.{{ref}}.setProps({ placeholder: 'Ara…', className: 'border-red-500' })
refs.{{ref}}.setProp('size', 'sm')`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ComponentAccess',
title: 'App.VisualDesigner.Catalog.ComponentAccess.Title5',
description: 'App.VisualDesigner.Catalog.ComponentAccess.Description7',
group: 'App.CatalogGroup.ComponentAccess',
title: 'App.CatalogComponentAccess.ComponentAccessTitle5',
description: 'App.CatalogComponentAccess.ComponentAccessDescription7',
code: `refs.{{ref}}.reset()`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ApiCalls',
title: 'App.VisualDesigner.Catalog.ApiCalls.Title',
description: 'App.VisualDesigner.Catalog.ApiCalls.Description',
group: 'App.CatalogGroup.ApiCalls',
title: 'App.CatalogApiCalls.ApiCallsTitle',
description: 'App.CatalogApiCalls.ApiCallsDescription',
code: `const rows = await api.get('{{url}}')
console.log(rows)`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ApiCalls',
title: 'App.VisualDesigner.Catalog.ApiCalls.Title2',
description: 'App.VisualDesigner.Catalog.ApiCalls.Description2',
group: 'App.CatalogGroup.ApiCalls',
title: 'App.CatalogApiCalls.ApiCallsTitle2',
description: 'App.CatalogApiCalls.ApiCallsDescription2',
code: `const rows = await api.get('{{url}}', { maxResultCount: 10 })
console.log(rows)`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ApiCalls',
title: 'App.VisualDesigner.Catalog.ApiCalls.Title3',
description: 'App.VisualDesigner.Catalog.ApiCalls.Description3',
group: 'App.CatalogGroup.ApiCalls',
title: 'App.CatalogApiCalls.ApiCallsTitle3',
description: 'App.CatalogApiCalls.ApiCallsDescription3',
code: `const created = await api.post('{{url}}', {
name: refs.{{ref}}.getValue(),
})
console.log(created)`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ApiCalls',
title: 'App.VisualDesigner.Catalog.ApiCalls.Title4',
description: 'App.VisualDesigner.Catalog.ApiCalls.Description4',
group: 'App.CatalogGroup.ApiCalls',
title: 'App.CatalogApiCalls.ApiCallsTitle4',
description: 'App.CatalogApiCalls.ApiCallsDescription4',
code: `await api.put('{{url}}/5', { name: 'Yeni ad' })
await api.delete('{{url}}/5')`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ApiCalls',
title: 'App.VisualDesigner.Catalog.ApiCalls.Title5',
group: 'App.CatalogGroup.ApiCalls',
title: 'App.CatalogApiCalls.ApiCallsTitle5',
description: 'notify tipleri: success, info, warning, danger.',
code: `try {
await api.post('{{url}}', { name: refs.{{ref}}.getValue() })
@ -283,9 +283,9 @@ await api.delete('{{url}}/5')`,
}`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ApiCalls',
title: 'App.VisualDesigner.Catalog.ApiCalls.Title6',
description: 'App.VisualDesigner.Catalog.ApiCalls.Description5',
group: 'App.CatalogGroup.ApiCalls',
title: 'App.CatalogApiCalls.ApiCallsTitle6',
description: 'App.CatalogApiCalls.ApiCallsDescription5',
code: `refs.{{ref}}.setEnabled(false)
refs.{{ref}}.setText('Gönderiliyor…')
try {
@ -299,9 +299,9 @@ try {
}`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ApiCalls',
group: 'App.CatalogGroup.ApiCalls',
title: 'Serbest istek',
description: 'App.VisualDesigner.Catalog.ApiCalls.Description6',
description: 'App.CatalogApiCalls.ApiCallsDescription6',
code: `const result = await api.request({
url: '{{url}}',
method: 'GET',
@ -310,25 +310,25 @@ try {
console.log(result)`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ComponentAccess',
title: 'App.VisualDesigner.Catalog.ComponentAccess.Title6',
description: 'App.VisualDesigner.Catalog.SelectHiddenColumns.Description',
group: 'App.CatalogGroup.ComponentAccess',
title: 'App.CatalogComponentAccess.ComponentAccessTitle6',
description: 'App.CatalogSelectHiddenColumns.SelectHiddenColumnsDescription',
code: `// onChange içinde: seçilen kaydın diğer sütunları
const fiyat = refs.{{ref}}.getColumn('unitPrice')
const stok = refs.{{ref}}.getColumn('stockQuantity')
refs.{{sql}}.setFields({ UnitPrice: fiyat, Stock: stok })`,
},
{
group: 'App.VisualDesigner.Catalog.Group.ComponentAccess',
title: 'App.VisualDesigner.Catalog.ComponentAccess.Title7',
description: 'App.VisualDesigner.Catalog.ComponentAccess.Description8',
group: 'App.CatalogGroup.ComponentAccess',
title: 'App.CatalogComponentAccess.ComponentAccessTitle7',
description: 'App.CatalogComponentAccess.ComponentAccessDescription8',
code: `const secilen = refs.{{ref}}.getSelectedOption()
console.log(secilen, refs.{{ref}}.getLabel())`,
},
{
group: 'SqlDataSource',
title: 'App.VisualDesigner.Catalog.SqlDataSource.Title',
description: 'App.VisualDesigner.Catalog.SqlDataSource.Description',
title: 'App.CatalogSqlDataSource.SqlDataSourceTitle',
description: 'App.CatalogSqlDataSource.SqlDataSourceDescription',
code: `await refs.{{sql}}.save()
// await refs.{{sql}}.remove()
// await refs.{{sql}}.reload()
@ -336,23 +336,23 @@ console.log(secilen, refs.{{ref}}.getLabel())`,
},
{
group: 'SqlDataSource',
title: 'App.VisualDesigner.Catalog.SqlDataSource.Title2',
description: 'App.VisualDesigner.Catalog.SqlDataSource.Description2',
title: 'App.CatalogSqlDataSource.SqlDataSourceTitle2',
description: 'App.CatalogSqlDataSource.SqlDataSourceDescription2',
code: `const record = refs.{{sql}}.getRecord()
console.log(record)
refs.{{sql}}.setField('name', 'Yeni ad')`,
},
{
group: 'SqlDataSource',
title: 'App.VisualDesigner.Catalog.SqlDataSource.Title3',
description: 'App.VisualDesigner.Catalog.SqlDataSource.Description3',
title: 'App.CatalogSqlDataSource.SqlDataSourceTitle3',
description: 'App.CatalogSqlDataSource.SqlDataSourceDescription3',
code: `const rows = refs.{{sql}}.getRows()
refs.{{sql}}.goToRow(rows.length - 1)`,
},
{
group: 'SqlDataSource',
title: 'App.VisualDesigner.Catalog.SqlDataSource.Title4',
description: 'App.VisualDesigner.Catalog.SqlDataSource.Description4',
title: 'App.CatalogSqlDataSource.SqlDataSourceTitle4',
description: 'App.CatalogSqlDataSource.SqlDataSourceDescription4',
code: `const record = refs.{{sql}}.getRecord()
if (!record.name) {
notify('Ad alanı zorunludur', 'warning')
@ -362,35 +362,35 @@ await refs.{{sql}}.save()`,
},
{
group: 'SqlDataSource',
title: 'App.VisualDesigner.Catalog.SqlDataSource.Title5',
description: 'App.VisualDesigner.Catalog.SqlDataSource.Description5',
title: 'App.CatalogSqlDataSource.SqlDataSourceTitle5',
description: 'App.CatalogSqlDataSource.SqlDataSourceDescription5',
code: `console.log(refs.{{sql}}.getMode(), refs.{{sql}}.isBusy(), refs.{{sql}}.getError())`,
},
{
group: 'App.VisualDesigner.Catalog.Group.EventAndPage',
group: 'App.CatalogGroup.EventAndPage',
title: 'Event verisi',
description: 'App.VisualDesigner.Catalog.EventAndPage.Description',
description: 'App.CatalogEventAndPage.EventAndPageDescription',
code: `// Input: event.target.value · Checkbox: event.checked
// Select/Dropdown/Menu: seçilen değer · Button: tıklama eventi
console.log(event)`,
},
{
group: 'App.VisualDesigner.Catalog.Group.EventAndPage',
group: 'App.CatalogGroup.EventAndPage',
title: 'Komponentin kendi bilgileri',
description: 'App.VisualDesigner.Catalog.EventAndPage.Description2',
description: 'App.CatalogEventAndPage.EventAndPageDescription2',
code: `console.log(component.type, component.ref)
console.log(props)`,
},
{
group: 'App.VisualDesigner.Catalog.Group.EventAndPage',
title: 'App.VisualDesigner.Catalog.EventAndPage.Title',
description: 'App.VisualDesigner.Catalog.EventAndPage.Description3',
group: 'App.CatalogGroup.EventAndPage',
title: 'App.CatalogEventAndPage.EventAndPageTitle',
description: 'App.CatalogEventAndPage.EventAndPageDescription3',
code: `window.location.href = '/app/orders'`,
},
{
group: 'App.VisualDesigner.Catalog.Group.EventAndPage',
group: 'App.CatalogGroup.EventAndPage',
title: 'URL parametresi okuma',
description: 'App.VisualDesigner.Catalog.EventAndPage.Description4',
description: 'App.CatalogEventAndPage.EventAndPageDescription4',
code: `const id = new URLSearchParams(window.location.search).get('id')
console.log(id)`,
},
@ -404,7 +404,7 @@ const COLLECTION_ITEMS_PROPERTY = {
type: 'array' as const,
value: [],
category: 'properties' as const,
description: 'App.VisualDesigner.Catalog.Items.Description',
description: 'App.CatalogItems.ItemsDescription',
tsType: 'unknown[]',
options: undefined,
required: false,
@ -414,7 +414,7 @@ const GRID_COMPACT_PROPERTY = {
type: 'boolean' as const,
value: false,
category: 'properties' as const,
description: 'App.VisualDesigner.Catalog.Compact.Description',
description: 'App.CatalogCompact.CompactDescription',
tsType: 'boolean',
options: undefined,
required: false,
@ -425,7 +425,7 @@ const GRID_TABLE_BEHAVIOR_PROPERTIES = [
type: 'boolean' as const,
value: true,
category: 'properties' as const,
description: 'App.VisualDesigner.Catalog.Hoverable.Description',
description: 'App.CatalogHoverable.HoverableDescription',
tsType: 'boolean',
options: undefined,
required: false,
@ -435,7 +435,7 @@ const GRID_TABLE_BEHAVIOR_PROPERTIES = [
type: 'boolean' as const,
value: true,
category: 'properties' as const,
description: 'App.VisualDesigner.Catalog.Overflow.Description',
description: 'App.CatalogOverflow.OverflowDescription',
tsType: 'boolean',
options: undefined,
required: false,
@ -445,7 +445,7 @@ const GRID_TABLE_BEHAVIOR_PROPERTIES = [
type: 'boolean' as const,
value: false,
category: 'properties' as const,
description: 'App.VisualDesigner.Catalog.BorderlessRow.Description',
description: 'App.CatalogBorderlessRow.BorderlessRowDescription',
tsType: 'boolean',
options: undefined,
required: false,
@ -457,7 +457,7 @@ const TABLE_DIMENSION_PROPERTIES = [
type: 'number' as const,
value: 2,
category: 'properties' as const,
description: 'App.VisualDesigner.Catalog.RowCount.Description',
description: 'App.CatalogRowCount.RowCountDescription',
tsType: 'number',
options: undefined,
required: false,
@ -467,7 +467,7 @@ const TABLE_DIMENSION_PROPERTIES = [
type: 'number' as const,
value: 3,
category: 'properties' as const,
description: 'App.VisualDesigner.Catalog.ColumnCount.Description',
description: 'App.CatalogColumnCount.ColumnCountDescription',
tsType: 'number',
options: undefined,
required: false,
@ -477,11 +477,11 @@ const SELECT_OPTIONS_PROPERTY = {
name: 'options',
type: 'array' as const,
value: [
{ label: 'App.VisualDesigner.Catalog.Options.Label', value: '1' },
{ label: 'App.VisualDesigner.Catalog.Options.Label2', value: '2' },
{ label: 'App.CatalogOptions.OptionsLabel', value: '1' },
{ label: 'App.CatalogOptions.OptionsLabel2', value: '2' },
],
category: 'properties' as const,
description: 'App.VisualDesigner.Catalog.Options.Description',
description: 'App.CatalogOptions.OptionsDescription',
tsType: 'Array<{ label: string; value: unknown }>',
options: undefined,
required: false,
@ -489,7 +489,7 @@ const SELECT_OPTIONS_PROPERTY = {
const MENU_ITEMS_PROPERTY = {
...SELECT_OPTIONS_PROPERTY,
name: 'items',
description: 'App.VisualDesigner.Catalog.Items.Description2',
description: 'App.CatalogItems.ItemsDescription2',
}
const TABS_ITEMS_PROPERTY = {
...SELECT_OPTIONS_PROPERTY,
@ -498,7 +498,7 @@ const TABS_ITEMS_PROPERTY = {
{ label: 'Sekme 1', value: '1', content: 'Sekme 1 içeriği' },
{ label: 'Sekme 2', value: '2', content: 'Sekme 2 içeriği' },
],
description: 'App.VisualDesigner.Catalog.Tabs.Description',
description: 'App.CatalogTabs.TabsDescription',
tsType: 'Array<{ label: string; value: unknown; content?: string }>',
}
@ -721,22 +721,22 @@ const platformDefinition = (
})
export const PLATFORM_COMPONENTS: DesignerComponentDefinition[] = [
platformDefinition('ListView', 'List', 'App.VisualDesigner.Catalog.ListView.Description'),
platformDefinition('DataGridView', 'Grid', 'App.VisualDesigner.Catalog.DataGridView.Description'),
platformDefinition('TreeView', 'Tree', 'App.VisualDesigner.Catalog.TreeView.Description'),
platformDefinition('GanttView', 'GanttView', 'App.VisualDesigner.Catalog.GanttView.Description'),
platformDefinition('TodoBoard', 'TodoBoard', 'App.VisualDesigner.Catalog.TodoBoard.Description'),
platformDefinition('CardView', 'CardView', 'App.VisualDesigner.Catalog.CardView.Description'),
platformDefinition('ListView', 'List', 'App.CatalogListView.ListViewDescription'),
platformDefinition('DataGridView', 'Grid', 'App.CatalogDataGridView.DataGridViewDescription'),
platformDefinition('TreeView', 'Tree', 'App.CatalogTreeView.TreeViewDescription'),
platformDefinition('GanttView', 'GanttView', 'App.CatalogGanttView.GanttViewDescription'),
platformDefinition('TodoBoard', 'TodoBoard', 'App.CatalogTodoBoard.TodoBoardDescription'),
platformDefinition('CardView', 'CardView', 'App.CatalogCardView.CardViewDescription'),
platformDefinition(
'SchedulerView',
'SchedulerView',
'App.VisualDesigner.Catalog.SchedulerView.Description',
'App.CatalogSchedulerView.SchedulerViewDescription',
),
platformDefinition('PivotView', 'Pivot', 'App.VisualDesigner.Catalog.PivotView.Description'),
platformDefinition('PivotView', 'Pivot', 'App.CatalogPivotView.PivotViewDescription'),
platformDefinition(
'ChartView',
'Chart',
'App.VisualDesigner.Catalog.ChartView.Description',
'App.CatalogChartView.ChartViewDescription',
'420px',
),
]
@ -753,7 +753,7 @@ export const SQL_DATA_SOURCE_DEFINITION: DesignerComponentDefinition = {
category: 'data',
kind: 'layout',
toolboxGroup: 'data',
description: 'App.VisualDesigner.Catalog.SqlDataSource.Description',
description: 'App.CatalogSqlDataSource.SqlDataSourceDescription',
acceptsChildren: true,
properties: [
{
@ -761,42 +761,42 @@ export const SQL_DATA_SOURCE_DEFINITION: DesignerComponentDefinition = {
type: 'string',
value: '',
category: 'properties',
description: 'App.VisualDesigner.Catalog.String.Description',
description: 'App.CatalogString.StringDescription',
},
{
name: 'insertEndpoint',
type: 'string',
value: '',
category: 'properties',
description: 'App.VisualDesigner.Catalog.String.Description2',
description: 'App.CatalogString.StringDescription2',
},
{
name: 'updateEndpoint',
type: 'string',
value: '',
category: 'properties',
description: 'App.VisualDesigner.Catalog.String.Description3',
description: 'App.CatalogString.StringDescription3',
},
{
name: 'deleteEndpoint',
type: 'string',
value: '',
category: 'properties',
description: 'App.VisualDesigner.Catalog.String.Description4',
description: 'App.CatalogString.StringDescription4',
},
{
name: 'keyFieldName',
type: 'string',
value: 'id',
category: 'properties',
description: 'App.VisualDesigner.Catalog.String.Description5',
description: 'App.CatalogString.StringDescription5',
},
{
name: 'collectionPath',
type: 'string',
value: '',
category: 'properties',
description: 'App.VisualDesigner.Catalog.String.Description6',
description: 'App.CatalogString.StringDescription6',
},
{
name: 'keySource',
@ -804,35 +804,35 @@ export const SQL_DATA_SOURCE_DEFINITION: DesignerComponentDefinition = {
value: 'query',
options: ['query', 'route'],
category: 'properties',
description: 'App.VisualDesigner.Catalog.Select.Description',
description: 'App.CatalogSelect.SelectDescription',
},
{
name: 'keyParamName',
type: 'string',
value: '',
category: 'properties',
description: 'App.VisualDesigner.Catalog.String.Description7',
description: 'App.CatalogString.StringDescription7',
},
{
name: 'previewKeyValue',
type: 'string',
value: '',
category: 'properties',
description: 'App.VisualDesigner.Catalog.PreviewKeyValue.Description',
description: 'App.CatalogPreviewKeyValue.PreviewKeyValueDescription',
},
{
name: 'autoLoad',
type: 'boolean',
value: true,
category: 'properties',
description: 'App.VisualDesigner.Catalog.Boolean.Description',
description: 'App.CatalogBoolean.BooleanDescription',
},
{
name: 'showToolbar',
type: 'boolean',
value: true,
category: 'properties',
description: 'App.VisualDesigner.Catalog.Boolean.Description2',
description: 'App.CatalogBoolean.BooleanDescription2',
},
{
name: 'gap',
@ -862,7 +862,7 @@ export const DESIGNER_EXTRAS: DesignerComponentDefinition[] = [
category: 'layout',
kind: 'layout',
toolboxGroup: 'layout',
description: 'App.VisualDesigner.Catalog.PageContainer.Description',
description: 'App.CatalogPageContainer.PageContainerDescription',
acceptsChildren: true,
properties: [
{ name: 'maxWidth', type: 'string', value: '1280px', category: 'styling' },
@ -878,7 +878,7 @@ export const DESIGNER_EXTRAS: DesignerComponentDefinition[] = [
category: 'layout',
kind: 'layout',
toolboxGroup: 'layout',
description: 'App.VisualDesigner.Catalog.TwoColumns.Description',
description: 'App.CatalogTwoColumns.TwoColumnsDescription',
acceptsChildren: true,
properties: [
{ name: 'gap', type: 'number', value: 16, category: 'styling' },
@ -892,7 +892,7 @@ export const DESIGNER_EXTRAS: DesignerComponentDefinition[] = [
category: 'layout',
kind: 'layout',
toolboxGroup: 'layout',
description: 'App.VisualDesigner.Catalog.SidebarContent.Description',
description: 'App.CatalogSidebarContent.SidebarContentDescription',
acceptsChildren: true,
properties: [
{ name: 'sidebarWidth', type: 'string', value: '280px', category: 'styling' },
@ -907,7 +907,7 @@ export const DESIGNER_EXTRAS: DesignerComponentDefinition[] = [
category: 'layout',
kind: 'layout',
toolboxGroup: 'layout',
description: 'App.VisualDesigner.Catalog.HeaderContent.Description',
description: 'App.CatalogHeaderContent.HeaderContentDescription',
acceptsChildren: true,
properties: [
{ name: 'gap', type: 'number', value: 16, category: 'styling' },
@ -921,7 +921,7 @@ export const DESIGNER_EXTRAS: DesignerComponentDefinition[] = [
category: 'layout',
kind: 'layout',
toolboxGroup: 'layout',
description: 'App.VisualDesigner.Catalog.FlexRow.Description',
description: 'App.CatalogFlexRow.FlexRowDescription',
acceptsChildren: true,
properties: [
{ name: 'gap', type: 'number', value: 16, category: 'styling' },
@ -943,7 +943,7 @@ export const DESIGNER_EXTRAS: DesignerComponentDefinition[] = [
category: 'layout',
kind: 'layout',
toolboxGroup: 'ui',
description: 'App.VisualDesigner.Catalog.Spacer.Description',
description: 'App.CatalogSpacer.SpacerDescription',
properties: [{ name: 'height', type: 'number', value: 24, category: 'styling' }],
hooks: [],
},
@ -988,7 +988,7 @@ export const getDesignerCatalog = (customNames: string[] = []): DesignerComponen
category: 'custom',
kind: 'custom',
toolboxGroup: 'custom',
description: 'App.VisualDesigner.Catalog.Spacer.Description2',
description: 'App.CatalogSpacer.SpacerDescription2',
acceptsChildren: true,
properties: [{ name: 'className', type: 'string', value: '', category: 'styling' }],
hooks: [],

View file

@ -76,57 +76,57 @@ const snippets = (sqlRef: string): ScriptSnippet[] => {
const sql = sqlRef || 'sqlDataSource1'
return [
{
label: 'App.VisualDesigner.Snippet.CalcOnFieldChange.Label',
group: 'App.VisualDesigner.Snippet.Group.Record',
description: 'App.VisualDesigner.Snippet.CalcOnFieldChange.Description',
label: 'App.SnippetCalcOnFieldChange.CalcOnFieldChangeLabel',
group: 'App.SnippetGroup.Record',
description: 'App.SnippetCalcOnFieldChange.CalcOnFieldChangeDescription',
code: `if (['\${1:Quantity}', '\${2:UnitPrice}'].includes(event.field)) {\n const total = Number(event.record.\${1:Quantity} || 0) * Number(event.record.\${2:UnitPrice} || 0)\n refs.${sql}.setField('\${3:TotalAmount}', Math.round(total * 100) / 100)\n}`,
},
{
label: 'App.VisualDesigner.Snippet.ValidateBeforeSave.Label',
group: 'App.VisualDesigner.Snippet.Group.Flow',
description: 'App.VisualDesigner.Snippet.ValidateBeforeSave.Description',
label: 'App.SnippetValidateBeforeSave.ValidateBeforeSaveLabel',
group: 'App.SnippetGroup.Flow',
description: 'App.SnippetValidateBeforeSave.ValidateBeforeSaveDescription',
code: `const eksik = ['\${1:Name}', '\${2:Code}'].filter((column) => !event.record[column])\nif (eksik.length) {\n notify('Zorunlu alanlar: ' + eksik.join(', '), 'warning')\n return false\n}`,
},
{
label: 'App.VisualDesigner.Snippet.MultiCondition.Label',
group: 'App.VisualDesigner.Snippet.Group.Flow',
description: 'App.VisualDesigner.Snippet.MultiCondition.Description',
label: 'App.SnippetMultiCondition.MultiConditionLabel',
group: 'App.SnippetGroup.Flow',
description: 'App.SnippetMultiCondition.MultiConditionDescription2',
code: `if (refs.${sql}.getMode() === 'new' || Number(refs.${sql}.getField('\${1:Total}') || 0) > \${2:1000}) {\n \${3:notify('Kontrol edin')}\n}`,
},
{
label: 'App.VisualDesigner.Snippet.BulkSet.Label',
group: 'App.VisualDesigner.Snippet.Group.Record',
description: 'App.VisualDesigner.Snippet.BulkSet.Description',
label: 'App.SnippetBulkSet.BulkSetLabel',
group: 'App.SnippetGroup.Record',
description: 'App.SnippetBulkSet.BulkSetDescription2',
code: `refs.${sql}.setFields({ \${1:Status}: '\${2:Taslak}', \${3:Currency}: '\${4:TRY}' })`,
},
{
label: 'App.VisualDesigner.Snippet.Visibility.Label',
group: 'App.VisualDesigner.Snippet.Group.Component',
description: 'App.VisualDesigner.Snippet.Visibility.Description',
label: 'App.SnippetVisibility.VisibilityLabel',
group: 'App.VisualDesignerWord.Component',
description: 'App.SnippetVisibility.VisibilityDescription',
code: `refs.\${1:card1}.setVisible(refs.${sql}.getMode() === '\${2:edit}')`,
},
{
label: 'App.VisualDesigner.Snippet.ApiCall.Label',
group: 'App.VisualDesigner.Snippet.Group.Integration',
description: 'App.VisualDesigner.Snippet.ApiCall.Description',
label: 'App.SnippetApiCall.ApiCallLabel',
group: 'App.SnippetGroup.Integration',
description: 'App.SnippetApiCall.ApiCallDescription2',
code: `try {\n const sonuc = await api.get('\${1:/api/app/customer/1}')\n refs.${sql}.setField('\${2:Title}', sonuc?.\${3:name})\n} catch (error) {\n notify(api.errorMessage(error), 'danger')\n}`,
},
{
label: 'App.VisualDesigner.Snippet.IterateRows.Label',
group: 'App.VisualDesigner.Snippet.Group.Record',
description: 'App.VisualDesigner.Snippet.IterateRows.Description',
label: 'App.SnippetIterateRows.IterateRowsLabel',
group: 'App.SnippetGroup.Record',
description: 'App.SnippetIterateRows.IterateRowsDescription',
code: `refs.${sql}.getRows().forEach((row, index) => {\n \${1:console.log(index, row)}\n})`,
},
{
label: 'App.VisualDesigner.Snippet.SaveIfChanged.Label',
group: 'App.VisualDesigner.Snippet.Group.Record',
description: 'App.VisualDesigner.Snippet.SaveIfChanged.Description',
label: 'App.SnippetSaveIfChanged.SaveIfChangedLabel',
group: 'App.SnippetGroup.Record',
description: 'App.SnippetSaveIfChanged.SaveIfChangedDescription',
code: `if (refs.${sql}.hasChanges()) await refs.${sql}.save()`,
},
{
label: 'App.VisualDesigner.Snippet.InspectEvent.Label',
group: 'App.VisualDesigner.Snippet.Group.Flow',
description: 'App.VisualDesigner.Snippet.InspectEvent.Description',
label: 'App.SnippetInspectEvent.InspectEventLabel',
group: 'App.SnippetGroup.Flow',
description: 'App.SnippetInspectEvent.InspectEventDescription',
code: `console.log('\${1:event}', JSON.parse(JSON.stringify(event ?? null)))`,
},
]
@ -212,22 +212,22 @@ export const createDesignerScriptDialect = (
conditionKinds: [
{
value: 'record',
label: t('::App.VisualDesigner.ConditionKind.RecordColumn'),
label: t('::App.VisualDesignerConditionKind.RecordColumn'),
optionSource: RECORD_SOURCE,
},
{
value: 'ref',
label: t('::App.VisualDesigner.ConditionKind.ComponentValue'),
label: t('::App.VisualDesignerConditionKind.ComponentValue'),
optionSource: REF_SOURCE,
},
{
value: 'event',
label: t('::App.VisualDesigner.ConditionKind.EventData'),
label: t('::App.VisualDesignerConditionKind.EventData'),
optionSource: EVENT_SOURCE,
},
{
value: 'expression',
label: t('::App.VisualDesigner.ConditionKind.FreeExpression'),
label: t('::App.VisualDesignerConditionKind.FreeExpression'),
placeholder: `refs.${context.sqlRef}.getMode()`,
},
],
@ -266,7 +266,7 @@ export const createDesignerScriptDialect = (
if (!recipe) return ''
const action = recipe.describe(asDesignerRule(rule), t)
if (recipe.conditionIsArgument) return action
const always = t('::App.VisualDesigner.Describe.Always')
const always = t('::App.Platform.Always')
const conditions = [rule.condition, ...(rule.conditions ?? [])]
.map((condition) =>
describeDesignerCondition(condition as unknown as DesignerRuleCondition, t),
@ -274,8 +274,8 @@ export const createDesignerScriptDialect = (
.filter((text) => text !== always)
const joiner =
rule.join === 'or'
? ` ${t('::App.VisualDesigner.Word.Or')} `
: ` ${t('::App.VisualDesigner.Word.And')} `
? ` ${t('::App.Platform.Or')} `
: ` ${t('::App.Platform.And')} `
const prefix = conditions.length ? conditions.join(joiner) : always
return `${prefix}${action}`
},

View file

@ -253,15 +253,15 @@ export type TranslateFn = (key: string, params?: Record<string, string | number>
const conditionSourceLabel = (condition: DesignerRuleCondition, t: TranslateFn) => {
switch (condition.kind) {
case 'ref':
return t('::App.VisualDesigner.Describe.RefValue', {
ref: label(condition.source, t('::App.VisualDesigner.Word.Component')),
return t('::App.VisualDesignerDescribe.RefValue', {
ref: label(condition.source, t('::App.VisualDesignerWord.Component')),
})
case 'event':
return `event.${label(condition.source, t('::App.VisualDesigner.Word.Field'))}`
return `event.${label(condition.source, t('::App.Platform.Field'))}`
case 'expression':
return label(condition.source, t('::App.VisualDesigner.Word.Expression'))
return label(condition.source, t('::App.Platform.Expression'))
default:
return label(condition.source, t('::App.VisualDesigner.Word.Column'))
return label(condition.source, t('::App.Listform.ListformField.Column'))
}
}
@ -269,28 +269,28 @@ export const describeDesignerCondition = (
condition: DesignerRuleCondition,
t: TranslateFn,
): string => {
if (condition.operator === 'always') return t('::App.VisualDesigner.Describe.Always')
if (condition.operator === 'always') return t('::App.Platform.Always')
const source = conditionSourceLabel(condition, t)
const value = label(condition.value, t('::App.VisualDesigner.Word.Value'))
const value = label(condition.value, t('::App.Listform.ListformField.Value'))
switch (condition.operator) {
case 'empty':
return t('::App.VisualDesigner.Describe.Empty', { source })
return t('::App.Platform.Empty2', { source })
case 'notEmpty':
return t('::App.VisualDesigner.Describe.NotEmpty', { source })
return t('::App.Platform.NotEmpty', { source })
case 'isTrue':
return t('::App.VisualDesigner.Describe.IsTrue', { source })
return t('::App.Platform.IsTrue', { source })
case 'isFalse':
return t('::App.VisualDesigner.Describe.IsFalse', { source })
return t('::App.Platform.IsFalse', { source })
case 'contains':
return t('::App.VisualDesigner.Describe.Contains', { source, value })
return t('::App.Platform.Contains', { source, value })
case 'greaterThan':
return t('::App.VisualDesigner.Describe.GreaterThan', { source, value })
return t('::App.Platform.GreaterThan', { source, value })
case 'lessThan':
return t('::App.VisualDesigner.Describe.LessThan', { source, value })
return t('::App.Platform.LessThan', { source, value })
case 'notEquals':
return t('::App.VisualDesigner.Describe.NotEquals', { source, value })
return t('::App.Platform.NotEquals', { source, value })
default:
return t('::App.VisualDesigner.Describe.Equals', { source, value })
return t('::App.Platform.Equals', { source, value })
}
}
@ -347,9 +347,9 @@ export const designerRecipes: DesignerRecipe[] = [
build: ({ params }, context) =>
`refs.${context.sqlRef}.setField(${q(params.target)}, ${valueExpression(params.value, params.mode)})`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.SetField', {
target: label(params.target, t('::App.VisualDesigner.Word.Column')),
value: label(params.value, t('::App.VisualDesigner.Word.Value')),
t('::App.VisualDesignerDescribe.SetField', {
target: label(params.target, t('::App.Listform.ListformField.Column')),
value: label(params.value, t('::App.Listform.ListformField.Value')),
}),
},
{
@ -381,10 +381,10 @@ export const designerRecipes: DesignerRecipe[] = [
)} * ${numberOfRecordField(context, params.right)} * ${factor}) / ${factor})`
},
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.Multiply', {
left: label(params.left, t('::App.VisualDesigner.Word.Column')),
right: label(params.right, t('::App.VisualDesigner.Word.Column')),
target: label(params.target, t('::App.VisualDesigner.Word.Target')),
t('::App.VisualDesignerDescribe.Multiply', {
left: label(params.left, t('::App.Listform.ListformField.Column')),
right: label(params.right, t('::App.Listform.ListformField.Column')),
target: label(params.target, t('::App.Listform.ListformField.Target')),
}),
},
{
@ -412,9 +412,9 @@ export const designerRecipes: DesignerRecipe[] = [
return `refs.${context.sqlRef}.setField(${q(params.target)}, Math.round((${total || '0'}) * ${factor}) / ${factor})`
},
describe: ({ params, fields }, t) =>
t('::App.VisualDesigner.Describe.Sum', {
sources: (fields ?? []).join(' + ') || t('::App.VisualDesigner.Word.Columns'),
target: label(params.target, t('::App.VisualDesigner.Word.Target')),
t('::App.VisualDesignerDescribe.Sum', {
sources: (fields ?? []).join(' + ') || t('::App.Platform.Columns'),
target: label(params.target, t('::App.Listform.ListformField.Target')),
}),
},
{
@ -438,9 +438,9 @@ export const designerRecipes: DesignerRecipe[] = [
build: ({ params }, context) =>
`refs.${context.sqlRef}.setField(${q(params.target)}, ${params.expression || 'null'})`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.Formula', {
expression: label(params.expression, t('::App.VisualDesigner.Word.Expression')),
target: label(params.target, t('::App.VisualDesigner.Word.Target')),
t('::App.VisualDesignerDescribe.Formula', {
expression: label(params.expression, t('::App.Platform.Expression')),
target: label(params.target, t('::App.Listform.ListformField.Target')),
}),
},
{
@ -462,9 +462,9 @@ export const designerRecipes: DesignerRecipe[] = [
build: ({ params }, context) =>
`refs.${context.sqlRef}.setField(${q(params.target)}, ${eventPathExpression(params.source)})`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.EventToField', {
source: label(params.source, t('::App.VisualDesigner.Word.Field')),
target: label(params.target, t('::App.VisualDesigner.Word.Target')),
t('::App.VisualDesignerDescribe.EventToField', {
source: label(params.source, t('::App.Platform.Field')),
target: label(params.target, t('::App.Listform.ListformField.Target')),
}),
},
{
@ -480,8 +480,8 @@ export const designerRecipes: DesignerRecipe[] = [
build: ({ fields }, context) =>
`refs.${context.sqlRef}.clearFields(${(fields ?? []).map(q).join(', ')})`,
describe: ({ fields }, t) =>
t('::App.VisualDesigner.Describe.ClearFields', {
sources: (fields ?? []).join(', ') || t('::App.VisualDesigner.Word.Columns'),
t('::App.Platform.Clear2', {
sources: (fields ?? []).join(', ') || t('::App.Platform.Columns'),
}),
},
{
@ -503,10 +503,10 @@ export const designerRecipes: DesignerRecipe[] = [
params.end,
)}) - new Date(${recordFieldExpression(context, params.start)})) / 86400000) + 1)`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.DayDiff', {
start: label(params.start, t('::App.VisualDesigner.Word.Start')),
end: label(params.end, t('::App.VisualDesigner.Word.End')),
target: label(params.target, t('::App.VisualDesigner.Word.Target')),
t('::App.VisualDesignerDescribe.DayDiff', {
start: label(params.start, t('::App.Platform.Start')),
end: label(params.end, t('::App.Platform.End')),
target: label(params.target, t('::App.Listform.ListformField.Target')),
}),
},
{
@ -518,7 +518,7 @@ export const designerRecipes: DesignerRecipe[] = [
example: 'await refs.sqlDataSource1.save()',
params: [],
build: (_rule, context) => `await refs.${context.sqlRef}.save()`,
describe: (_rule, t) => t('::App.VisualDesigner.Describe.Save'),
describe: (_rule, t) => t('::App.VisualDesignerDescribe.Save'),
},
{
id: 'remove',
@ -529,7 +529,7 @@ export const designerRecipes: DesignerRecipe[] = [
example: 'await refs.sqlDataSource1.remove()',
params: [],
build: (_rule, context) => `await refs.${context.sqlRef}.remove()`,
describe: (_rule, t) => t('::App.VisualDesigner.Describe.Delete'),
describe: (_rule, t) => t('::App.VisualDesignerDescribe.Delete'),
},
{
id: 'reload',
@ -540,7 +540,7 @@ export const designerRecipes: DesignerRecipe[] = [
example: 'await refs.sqlDataSource1.reload()',
params: [],
build: (_rule, context) => `await refs.${context.sqlRef}.reload()`,
describe: (_rule, t) => t('::App.VisualDesigner.Describe.Reload'),
describe: (_rule, t) => t('::App.VisualDesignerDescribe.Reload'),
},
{
id: 'newRecord',
@ -551,7 +551,7 @@ export const designerRecipes: DesignerRecipe[] = [
example: 'refs.sqlDataSource1.newRecord()',
params: [],
build: (_rule, context) => `refs.${context.sqlRef}.newRecord()`,
describe: (_rule, t) => t('::App.VisualDesigner.Describe.NewRecord'),
describe: (_rule, t) => t('::App.VisualDesignerDescribe.NewRecord'),
},
{
id: 'goToRow',
@ -593,8 +593,8 @@ export const designerRecipes: DesignerRecipe[] = [
: `refs.${context.sqlRef}.${calls[params.target] || 'nextRow()'}`
},
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.GoToRow', {
target: label(params.target, t('::App.VisualDesigner.Word.Next')),
t('::App.VisualDesignerDescribe.GoToRow', {
target: label(params.target, t('::App.Platform.Next2')),
}),
},
{
@ -620,10 +620,10 @@ export const designerRecipes: DesignerRecipe[] = [
params.column,
)}))`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.SelectColumnToField', {
t('::App.VisualDesignerDescribe.SelectColumnToField', {
ref: label(params.ref, 'select'),
column: label(params.column, t('::App.VisualDesigner.Word.Column')),
target: label(params.target, t('::App.VisualDesigner.Word.Target')),
column: label(params.column, t('::App.Listform.ListformField.Column')),
target: label(params.target, t('::App.Listform.ListformField.Target')),
}),
},
{
@ -645,10 +645,10 @@ export const designerRecipes: DesignerRecipe[] = [
build: ({ params }) =>
`refs.${params.target}.setValue(refs.${params.ref}.getColumn(${q(params.column)}))`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.SelectColumnToComponent', {
t('::App.VisualDesignerDescribe.SelectColumnToComponent', {
ref: label(params.ref, 'select'),
column: label(params.column, t('::App.VisualDesigner.Word.Column')),
target: label(params.target, t('::App.VisualDesigner.Word.Component')),
column: label(params.column, t('::App.Listform.ListformField.Column')),
target: label(params.target, t('::App.VisualDesignerWord.Component')),
}),
},
{
@ -665,9 +665,9 @@ export const designerRecipes: DesignerRecipe[] = [
build: ({ params }) =>
`refs.${params.ref}.setValue(${valueExpression(params.value, params.mode)})`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.SetComponentValue', {
ref: label(params.ref, t('::App.VisualDesigner.Word.Component')),
value: label(params.value, t('::App.VisualDesigner.Word.Value')),
t('::App.VisualDesignerDescribe.SetComponentValue', {
ref: label(params.ref, t('::App.VisualDesignerWord.Component')),
value: label(params.value, t('::App.Listform.ListformField.Value')),
}),
},
{
@ -697,13 +697,13 @@ export const designerRecipes: DesignerRecipe[] = [
return `refs.${rule.params.ref}.setVisible(${flag})`
},
describe: ({ params, condition }, t) =>
t('::App.VisualDesigner.Describe.Visibility', {
t('::App.VisualDesignerDescribe.Visibility', {
condition: describeDesignerCondition(condition, t),
ref: label(params.ref, t('::App.VisualDesigner.Word.Component')),
ref: label(params.ref, t('::App.VisualDesignerWord.Component')),
mode: t(
params.invert === 'true'
? '::App.VisualDesigner.Word.Hidden'
: '::App.VisualDesigner.Word.Visible',
? '::App.VisualDesignerWord.Hidden'
: '::App.VisualDesignerWord.Visible',
),
}),
},
@ -733,13 +733,13 @@ export const designerRecipes: DesignerRecipe[] = [
return `refs.${rule.params.ref}.setEnabled(${flag})`
},
describe: ({ params, condition }, t) =>
t('::App.VisualDesigner.Describe.Enabled', {
t('::App.VisualDesignerDescribe.Enabled', {
condition: describeDesignerCondition(condition, t),
ref: label(params.ref, t('::App.VisualDesigner.Word.Component')),
ref: label(params.ref, t('::App.VisualDesignerWord.Component')),
mode: t(
params.invert === 'true'
? '::App.VisualDesigner.Word.Passive'
: '::App.VisualDesigner.Word.Active',
? '::App.Platform.Passive'
: '::App.Listform.ListformField.IsActive',
),
}),
},
@ -769,13 +769,13 @@ export const designerRecipes: DesignerRecipe[] = [
return `refs.${rule.params.ref}.setReadOnly(${flag})`
},
describe: ({ params, condition }, t) =>
t('::App.VisualDesigner.Describe.ReadOnly', {
t('::App.VisualDesignerDescribe.Enabled', {
condition: describeDesignerCondition(condition, t),
ref: label(params.ref, t('::App.VisualDesigner.Word.Component')),
ref: label(params.ref, t('::App.VisualDesignerWord.Component')),
mode: t(
params.invert === 'true'
? '::App.VisualDesigner.Word.Editable'
: '::App.VisualDesigner.Word.ReadOnly',
? '::App.Platform.Editable'
: '::App.Platform.ReadOnly',
),
}),
},
@ -815,8 +815,8 @@ export const designerRecipes: DesignerRecipe[] = [
build: ({ params }) =>
`refs.${params.ref}.setProp(${q(params.property)}, ${valueExpression(params.value, params.mode)})`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.SetProp', {
ref: label(params.ref, t('::App.VisualDesigner.Word.Component')),
t('::App.VisualDesignerDescribe.SetProp', {
ref: label(params.ref, t('::App.VisualDesignerWord.Component')),
property: label(params.property, 'prop'),
}),
},
@ -851,8 +851,8 @@ export const designerRecipes: DesignerRecipe[] = [
? `notify(${q(params.message)}, ${q(params.type)})`
: `notify(${q(params.message)})`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.Notify', {
message: label(params.message, t('::App.VisualDesigner.Word.Message')),
t('::App.VisualDesignerDescribe.Notify', {
message: label(params.message, t('::App.Listform.ListformField.Message')),
}),
},
{
@ -883,8 +883,8 @@ export const designerRecipes: DesignerRecipe[] = [
build: ({ params }) =>
`if (!window.confirm(${q(params.message)})) return${params.cancel === 'false' ? ' false' : ''}`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.Ask', {
message: label(params.message, t('::App.VisualDesigner.Word.Message')),
t('::App.VisualDesignerDescribe.Ask', {
message: label(params.message, t('::App.Listform.ListformField.Message')),
}),
},
{
@ -916,8 +916,8 @@ export const designerRecipes: DesignerRecipe[] = [
? `window.location.assign(${q(params.url)})`
: `window.open(${q(params.url)}, "_blank")`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.OpenUrl', {
url: label(params.url, t('::App.VisualDesigner.Word.Address')),
t('::App.Platform.OpenUrl2', {
url: label(params.url, t('::App.Listform.ListformField.Address')),
}),
},
{
@ -954,9 +954,9 @@ export const designerRecipes: DesignerRecipe[] = [
return `refs.${context.sqlRef}.setField(${q(params.target)}, ${value})`
},
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.ApiToField', {
t('::App.VisualDesignerDescribe.ApiToField', {
url: label(params.url, 'api'),
target: label(params.target, t('::App.VisualDesigner.Word.Target')),
target: label(params.target, t('::App.Listform.ListformField.Target')),
}),
},
{
@ -1004,9 +1004,9 @@ export const designerRecipes: DesignerRecipe[] = [
return `await api.${method}(${q(params.url)}, ${body})`
},
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.ApiCall', {
t('::App.VisualDesignerDescribe.ApiCall', {
method: (params.method || 'post').toUpperCase(),
url: label(params.url, t('::App.VisualDesigner.Word.Address')),
url: label(params.url, t('::App.Listform.ListformField.Address')),
}),
},
{
@ -1019,7 +1019,7 @@ export const designerRecipes: DesignerRecipe[] = [
params: [],
build: () => 'return false',
describe: ({ condition }, t) =>
t('::App.VisualDesigner.Describe.Cancel', {
t('::App.VisualDesignerDescribe.Cancel', {
condition: describeDesignerCondition(condition, t),
}),
},
@ -1032,7 +1032,7 @@ export const designerRecipes: DesignerRecipe[] = [
params: [],
build: () => 'return',
describe: ({ condition }, t) =>
t('::App.VisualDesigner.Describe.Stop', {
t('::App.VisualDesignerDescribe.Stop', {
condition: describeDesignerCondition(condition, t),
}),
},
@ -1060,7 +1060,7 @@ export const designerRecipes: DesignerRecipe[] = [
build: ({ params }) =>
`console.log(${q(params.label || 'event')}, ${eventPathExpression(params.path)})`,
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.Log', {
t('::App.VisualDesignerDescribe.Log', {
label: label(params.label, 'event'),
}),
},
@ -1080,8 +1080,8 @@ export const designerRecipes: DesignerRecipe[] = [
],
build: ({ params }) => (params.code || '').trim().replace(/;$/, ''),
describe: ({ params }, t) =>
t('::App.VisualDesigner.Describe.Custom', {
code: label(params.code, t('::App.VisualDesigner.Word.Code')),
t('::App.Platform.Custom', {
code: label(params.code, t('::App.Platform.Code')),
}),
},
]

View file

@ -444,25 +444,25 @@ export const SQL_DATA_SOURCE_SLOTS: readonly SqlDataSourceSlot[] = [
property: 'selectEndpoint',
method: 'GET',
label: 'Select (GET)',
description: 'App.VisualDesigner.Event.X.Description',
description: 'App.EventX.XDescription',
},
{
property: 'insertEndpoint',
method: 'POST',
label: 'Insert (POST)',
description: 'App.VisualDesigner.Event.X.Description2',
description: 'App.EventX.XDescription2',
},
{
property: 'updateEndpoint',
method: 'PUT',
label: 'Update (PUT)',
description: 'App.VisualDesigner.Event.X.Description3',
description: 'App.EventX.XDescription3',
},
{
property: 'deleteEndpoint',
method: 'DELETE',
label: 'Delete (DELETE)',
description: 'App.VisualDesigner.Event.X.Description4',
description: 'App.EventX.XDescription4',
},
] as const
@ -489,101 +489,101 @@ export interface SqlDataSourceEvent {
export const SQL_DATA_SOURCE_EVENTS: readonly SqlDataSourceEvent[] = [
{
name: 'onLoad',
label: 'App.VisualDesigner.Event.OnLoad.Label',
description: 'App.VisualDesigner.Event.OnLoad.Description',
label: 'App.EventOnLoad.OnLoadLabel',
description: 'App.EventOnLoad.OnLoadDescription',
payload: [
{ key: 'rows', description: 'App.VisualDesigner.Event.Rows.Description' },
{ key: 'count', description: 'App.VisualDesigner.Event.Count.Description' },
{ key: 'record', description: 'App.VisualDesigner.Event.Record.Description' },
{ key: 'index', description: 'App.VisualDesigner.Event.Index.Description' },
{ key: 'rows', description: 'App.EventRows.RowsDescription' },
{ key: 'count', description: 'App.EventCount.CountDescription' },
{ key: 'record', description: 'App.EventRecord.RecordDescription' },
{ key: 'index', description: 'App.EventIndex.IndexDescription' },
],
},
{
name: 'onRecordChange',
label: 'App.VisualDesigner.Event.OnRecordChange.Label',
description: 'App.VisualDesigner.Event.OnRecordChange.Description',
label: 'App.EventOnRecordChange.OnRecordChangeLabel',
description: 'App.EventOnRecordChange.OnRecordChangeDescription',
payload: [
{ key: 'record', description: 'App.VisualDesigner.Event.Record.Description2' },
{ key: 'index', description: 'App.VisualDesigner.Event.Index.Description2' },
{ key: 'rows', description: 'App.VisualDesigner.Event.Rows.Description2' },
{ key: 'count', description: 'App.VisualDesigner.Event.Count.Description' },
{ key: 'record', description: 'App.EventRecord.RecordDescription2' },
{ key: 'index', description: 'App.EventIndex.IndexDescription2' },
{ key: 'rows', description: 'App.EventRows.RowsDescription2' },
{ key: 'count', description: 'App.EventCount.CountDescription' },
],
},
{
name: 'onFieldChange',
label: 'App.VisualDesigner.Event.OnFieldChange.Label',
description: 'App.VisualDesigner.Event.OnFieldChange.Description',
label: 'App.EventOnFieldChange.OnFieldChangeLabel',
description: 'App.EventOnFieldChange.OnFieldChangeDescription',
payload: [
{ key: 'field', description: 'App.VisualDesigner.Event.Field.Description' },
{ key: 'value', description: 'App.VisualDesigner.Event.Value.Description' },
{ key: 'previous', description: 'App.VisualDesigner.Event.Previous.Description' },
{ key: 'record', description: 'App.VisualDesigner.Event.Record.Description3' },
{ key: 'field', description: 'App.EventField.FieldDescription' },
{ key: 'value', description: 'App.EventValue.ValueDescription' },
{ key: 'previous', description: 'App.EventPrevious.PreviousDescription' },
{ key: 'record', description: 'App.EventRecord.RecordDescription3' },
],
},
{
name: 'onNewRecord',
label: 'App.VisualDesigner.Event.OnNewRecord.Label',
description: 'App.VisualDesigner.Event.OnNewRecord.Description',
payload: [{ key: 'record', description: 'App.VisualDesigner.Event.Record.Description4' }],
label: 'App.VisualDesignerCanvas.NewRecord',
description: 'App.EventOnNewRecord.OnNewRecordDescription',
payload: [{ key: 'record', description: 'App.EventRecord.RecordDescription4' }],
},
{
name: 'onModeChange',
label: 'App.VisualDesigner.Event.OnModeChange.Label',
description: 'App.VisualDesigner.Event.OnModeChange.Description',
label: 'App.EventOnModeChange.OnModeChangeLabel',
description: 'App.EventOnModeChange.OnModeChangeDescription',
payload: [
{ key: 'mode', description: '"new" veya "edit"' },
{ key: 'record', description: 'App.VisualDesigner.Event.Record.Description5' },
{ key: 'record', description: 'App.EventRecord.RecordDescription5' },
],
},
{
name: 'onBeforeSave',
label: 'App.VisualDesigner.Event.OnBeforeSave.Label',
description: 'App.VisualDesigner.Event.OnBeforeSave.Description',
label: 'App.EventOnBeforeSave.OnBeforeSaveLabel',
description: 'App.EventOnBeforeSave.OnBeforeSaveDescription',
cancelable: true,
payload: [
{ key: 'record', description: 'App.VisualDesigner.Event.Record.Description6' },
{ key: 'original', description: 'App.VisualDesigner.Event.Original.Description' },
{ key: 'payload', description: 'App.VisualDesigner.Event.Payload.Description' },
{ key: 'record', description: 'App.EventRecord.RecordDescription6' },
{ key: 'original', description: 'App.EventOriginal.OriginalDescription' },
{ key: 'payload', description: 'App.EventPayload.PayloadDescription' },
{ key: 'mode', description: '"new" veya "edit"' },
{ key: 'isNew', description: 'App.VisualDesigner.Event.IsNew.Description' },
{ key: 'isNew', description: 'App.EventIsNew.IsNewDescription' },
],
},
{
name: 'onAfterSave',
label: 'App.VisualDesigner.Event.OnAfterSave.Label',
description: 'App.VisualDesigner.Event.OnAfterSave.Description',
label: 'App.EventOnAfterSave.OnAfterSaveLabel',
description: 'App.EventOnAfterSave.OnAfterSaveDescription',
payload: [
{ key: 'record', description: 'App.VisualDesigner.Event.Record.Description7' },
{ key: 'response', description: 'App.VisualDesigner.Event.Response.Description' },
{ key: 'mode', description: 'App.VisualDesigner.Event.Mode.Description' },
{ key: 'isNew', description: 'App.VisualDesigner.Event.IsNew.Description2' },
{ key: 'record', description: 'App.EventRecord.RecordDescription7' },
{ key: 'response', description: 'App.EventResponse.ResponseDescription' },
{ key: 'mode', description: 'App.EventMode.ModeDescription' },
{ key: 'isNew', description: 'App.EventIsNew.IsNewDescription2' },
],
},
{
name: 'onBeforeDelete',
label: 'App.VisualDesigner.Event.OnBeforeDelete.Label',
description: 'App.VisualDesigner.Event.OnBeforeDelete.Description',
label: 'App.EventOnBeforeDelete.OnBeforeDeleteLabel',
description: 'App.EventOnBeforeDelete.OnBeforeDeleteDescription',
cancelable: true,
payload: [
{ key: 'record', description: 'App.VisualDesigner.Event.Record.Description8' },
{ key: 'key', description: 'App.VisualDesigner.Event.Key.Description' },
{ key: 'record', description: 'App.EventRecord.RecordDescription8' },
{ key: 'key', description: 'App.EventKey.KeyDescription' },
],
},
{
name: 'onAfterDelete',
label: 'App.VisualDesigner.Event.OnAfterDelete.Label',
description: 'App.VisualDesigner.Event.OnAfterDelete.Description',
payload: [{ key: 'record', description: 'App.VisualDesigner.Event.Record.Description9' }],
label: 'App.EventOnAfterDelete.OnAfterDeleteLabel',
description: 'App.EventOnAfterDelete.OnAfterDeleteDescription',
payload: [{ key: 'record', description: 'App.EventRecord.RecordDescription9' }],
},
{
name: 'onError',
label: 'App.VisualDesigner.Event.OnError.Label',
description: 'App.VisualDesigner.Event.OnError.Description',
label: 'App.EventOnError.OnErrorLabel',
description: 'App.EventOnError.OnErrorDescription',
payload: [
{ key: 'message', description: 'App.VisualDesigner.Event.Message.Description' },
{ key: 'message', description: 'App.EventMessage.MessageDescription' },
{ key: 'action', description: '"reload" | "save" | "delete"' },
{ key: 'error', description: 'App.VisualDesigner.Event.Error.Description' },
{ key: 'record', description: 'App.VisualDesigner.Event.Record.Description10' },
{ key: 'error', description: 'App.EventError.ErrorDescription' },
{ key: 'record', description: 'App.EventRecord.RecordDescription10' },
],
},
] as const
@ -613,7 +613,7 @@ export const getSqlDataSourceKeyField = (node: DesignerNode) =>
*/
export const SQL_DATA_SOURCE_KEY_SOURCES = [
{ value: 'query', label: 'URL query string (?id=…)' },
{ value: 'route', label: 'App.VisualDesigner.Event.OnError.Label2' },
{ value: 'route', label: 'App.EventOnError.OnErrorLabel2' },
] as const
export type SqlDataSourceKeySource = (typeof SQL_DATA_SOURCE_KEY_SOURCES)[number]['value']

View file

@ -74,8 +74,8 @@ export const ROUTES_ENUM = {
videoroom: {
dashboard: '/admin/videoroom/dashboard',
roomList: '/admin/videoroom/list',
roomDetail: '/admin/videoroom/room/:id',
list: '/admin/videoroom/list',
detail: '/admin/videoroom/room/:id',
planning: '/admin/videoroom/planning/:id',
},

View file

@ -38,11 +38,11 @@ export abstract class UiEvalService {
}
static ApiGenerateBackgroundWorkers = () => {
UiEvalService.runWithToast(() => generateBackgroundWorkers(), '::App.BackgroundWorkers.Message')
UiEvalService.runWithToast(() => generateBackgroundWorkers(), '::App.BackgroundWorkers.BackgroundWorkersMessage')
}
static ApiClearRedisCache = () => {
UiEvalService.runWithToast(() => clearRedisCache(), '::App.ClearRedisCache.Message')
UiEvalService.runWithToast(() => clearRedisCache(), '::App.ClearRedisCache.ClearRedisCacheMessage')
}
static ApiKickUser = (userId: string, gridRef?: any) => {
@ -51,7 +51,7 @@ export abstract class UiEvalService {
if (gridRef?.current) {
gridRef.current.instance().refresh()
}
}, '::App.KickUser.Message')
}, '::App.KickUser.KickUserMessage')
}
/**
@ -61,7 +61,7 @@ export abstract class UiEvalService {
static ApiDbMigrate = () => {
toast.push(
<Notification type="info" duration={3000}>
{UiEvalService.translate('::App.DbMigrate.StartMessage')}
{UiEvalService.translate('::App.Platform.StartMessage')}
</Notification>,
{ placement: 'bottom-end' },
)

View file

@ -67,7 +67,7 @@ export class OrderService {
} catch (error) {
console.error('Order creation error:', error)
let errorMessage = 'Public.payment.createOrderError'
let errorMessage = 'App.PublicPayment.CreateOrderError'
if (axios.isAxiosError(error)) {
if (error.response) {

View file

@ -109,7 +109,7 @@ export class SignalRService {
this.isConnected = true
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.Reconnected')}
title={this.translate('::App.VideoRoomSignal.Reconnected')}
type="success"
/>,
{
@ -127,7 +127,7 @@ export class SignalRService {
if (this.isKicked) {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.Reconnecting')}
title={this.translate('::App.VideoRoomSignal.Reconnecting')}
type="warning"
/>,
{ placement: 'bottom-end' },
@ -150,7 +150,7 @@ export class SignalRService {
this.connection.on('Error', (message: string) => {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.Error', { message })}
title={this.translate('::App.VideoRoomSignal.Error', { message })}
type="danger"
/>,
{
@ -162,7 +162,7 @@ export class SignalRService {
this.connection.on('Warning', (message: string) => {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.Warning', { message })}
title={this.translate('::App.VideoRoomSignal.Warning', { message })}
type="warning"
/>,
{
@ -181,7 +181,7 @@ export class SignalRService {
if (this.isKicked) {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.KickedNoReconnect')}
title={this.translate('::App.VideoRoomSignal.KickedNoReconnect')}
type="danger"
/>,
)
@ -194,7 +194,7 @@ export class SignalRService {
this.isKicked = true
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.Kicked', { message })}
title={this.translate('::App.VideoRoomSignal.Kicked', { message })}
type="danger"
/>,
{
@ -221,7 +221,7 @@ export class SignalRService {
}
this.currentSessionId = undefined
window.location.href = ROUTES_ENUM.protected.admin.videoroom.roomList
window.location.href = ROUTES_ENUM.protected.admin.videoroom.list
})
}
@ -230,7 +230,7 @@ export class SignalRService {
const startPromise = this.connection.start()
const timeout = new Promise((_, reject) =>
setTimeout(
() => reject(new Error(this.translate('::App.Videoroom.Signal.Timeout'))),
() => reject(new Error(this.translate('::App.VideoRoomSignal.Timeout'))),
10000,
),
)
@ -238,7 +238,7 @@ export class SignalRService {
await Promise.race([startPromise, timeout])
this.isConnected = true
toast.push(
<Notification title={this.translate('::App.Videoroom.Signal.Connected')} type="success" />,
<Notification title={this.translate('::App.VideoRoomSignal.Connected')} type="success" />,
{
placement: 'bottom-end',
},
@ -246,7 +246,7 @@ export class SignalRService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.ServerUnreachable')}
title={this.translate('::App.VideoRoomSignal.ServerUnreachable')}
type="danger"
/>,
{ placement: 'bottom-end' },
@ -265,7 +265,7 @@ export class SignalRService {
if (!this.isConnected) {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.NoConnection')}
title={this.translate('::App.VideoRoomSignal.NoConnection')}
type="warning"
/>,
{
@ -280,7 +280,7 @@ export class SignalRService {
await this.connection.invoke('JoinClass', sessionId, userId, userName, isTeacher, isActive)
} catch {
toast.push(
<Notification title={this.translate('::App.Videoroom.Signal.JoinFailed')} type="danger" />,
<Notification title={this.translate('::App.VideoRoomSignal.JoinFailed')} type="danger" />,
{
placement: 'bottom-end',
},
@ -302,7 +302,7 @@ export class SignalRService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.LeaveFailed')}
title={this.translate('::App.VideoRoomSignal.LeaveFailed')}
type="warning"
/>,
{
@ -349,7 +349,7 @@ export class SignalRService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.PublicMessageFailed')}
title={this.translate('::App.Platform.PublicMessageFailed')}
type="danger"
/>,
{
@ -402,7 +402,7 @@ export class SignalRService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.PrivateMessageFailed')}
title={this.translate('::App.Platform.PrivateMessageFailed')}
type="danger"
/>,
{
@ -447,7 +447,7 @@ export class SignalRService {
)
} catch {
toast.push(
<Notification title={this.translate('::App.Videoroom.AnnouncementFailed')} type="danger" />,
<Notification title={this.translate('::App.Platform.AnnouncementFailed')} type="danger" />,
{
placement: 'bottom-end',
},
@ -472,7 +472,7 @@ export class SignalRService {
await this.connection.invoke('MuteParticipant', sessionId, userId, isMuted, isTeacher)
} catch {
toast.push(
<Notification title={this.translate('::App.Videoroom.MuteFailed')} type="warning" />,
<Notification title={this.translate('::App.Platform.MuteFailed')} type="warning" />,
{
placement: 'bottom-end',
},
@ -493,7 +493,7 @@ export class SignalRService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.RaiseHandFailed')}
title={this.translate('::App.VideoRoomSignal.RaiseHandFailed')}
type="danger"
/>,
{
@ -515,7 +515,7 @@ export class SignalRService {
await this.connection.invoke('KickParticipant', sessionId, participantId)
} catch {
toast.push(
<Notification title={this.translate('::App.Videoroom.KickFailed')} type="danger" />,
<Notification title={this.translate('::App.Platform.KickFailed')} type="danger" />,
{
placement: 'bottom-end',
},
@ -536,7 +536,7 @@ export class SignalRService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.HandRaiseApproveFailed')}
title={this.translate('::App.VideoRoomSignal.HandRaiseApproveFailed')}
type="warning"
/>,
{
@ -559,7 +559,7 @@ export class SignalRService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.LowerHandFailed')}
title={this.translate('::App.VideoRoomSignal.LowerHandFailed')}
type="warning"
/>,
{
@ -645,7 +645,7 @@ export class SignalRService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Signal.DisconnectError')}
title={this.translate('::App.VideoRoomSignal.DisconnectError')}
type="warning"
/>,
{

View file

@ -58,7 +58,7 @@ export class WebRTCService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Rtc.MediaAccessFailed')}
title={this.translate('::App.VideoRoomRtc.MediaAccessFailed')}
type="danger"
/>,
{ placement: 'bottom-end' },
@ -101,7 +101,7 @@ export class WebRTCService {
if (retries < this.maxRetries) {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Rtc.RetryingConnection', {
title={this.translate('::App.VideoRoomRtc.RetryingConnection', {
current: retries + 1,
total: this.maxRetries,
})}
@ -114,7 +114,7 @@ export class WebRTCService {
} else {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Rtc.ConnectionFailed', {
title={this.translate('::App.VideoRoomRtc.ConnectionFailed', {
total: this.maxRetries,
})}
type="danger"
@ -133,7 +133,7 @@ export class WebRTCService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Rtc.IceCandidateFailed', { userId })}
title={this.translate('::App.VideoRoomRtc.IceCandidateFailed', { userId })}
type="warning"
/>,
{ placement: 'bottom-end' },
@ -165,7 +165,7 @@ export class WebRTCService {
return offer
} catch {
toast.push(
<Notification title={this.translate('::App.Videoroom.Rtc.OfferFailed')} type="danger" />,
<Notification title={this.translate('::App.VideoRoomRtc.OfferFailed')} type="danger" />,
{
placement: 'bottom-end',
},
@ -188,7 +188,7 @@ export class WebRTCService {
return answer
} catch {
toast.push(
<Notification title={this.translate('::App.Videoroom.Rtc.AnswerFailed')} type="danger" />,
<Notification title={this.translate('::App.VideoRoomRtc.AnswerFailed')} type="danger" />,
{
placement: 'bottom-end',
},
@ -219,7 +219,7 @@ export class WebRTCService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Rtc.IceCandidateFailed', { userId })}
title={this.translate('::App.VideoRoomRtc.IceCandidateFailed', { userId })}
type="warning"
/>,
{ placement: 'bottom-end' },
@ -260,7 +260,7 @@ export class WebRTCService {
}
} catch {
toast.push(
<Notification title={this.translate('::App.Videoroom.Rtc.CameraFailed')} type="danger" />,
<Notification title={this.translate('::App.VideoRoomRtc.CameraFailed')} type="danger" />,
{
placement: 'bottom-end',
},
@ -293,7 +293,7 @@ export class WebRTCService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Rtc.MicrophoneFailed')}
title={this.translate('::App.VideoRoomRtc.MicrophoneFailed')}
type="danger"
/>,
{
@ -318,7 +318,7 @@ export class WebRTCService {
} else {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Rtc.ReconnectFailed')}
title={this.translate('::App.VideoRoomRtc.ReconnectFailed')}
type="warning"
/>,
{
@ -329,7 +329,7 @@ export class WebRTCService {
} catch {
toast.push(
<Notification
title={this.translate('::App.Videoroom.Rtc.IceRestartFailed')}
title={this.translate('::App.VideoRoomRtc.IceRestartFailed')}
type="danger"
/>,
{

View file

@ -1,11 +1,11 @@
import { FiBell, FiCheck, FiGitBranch, FiPlay, FiSlash } from 'react-icons/fi'
export const kindOptions = [
{ value: 'Start', label: 'ListForms.Workflow.Kind.Start' },
{ value: 'Compare', label: 'ListForms.Workflow.Kind.Compare' },
{ value: 'Approval', label: 'ListForms.Workflow.Kind.Approval' },
{ value: 'Inform', label: 'ListForms.Workflow.Kind.Inform' },
{ value: 'End', label: 'ListForms.Workflow.Kind.End' },
{ value: 'Start', label: 'App.VideoRoom.Start' },
{ value: 'Compare', label: 'App.ScriptBuilder.Comparison' },
{ value: 'Approval', label: 'App.WorkflowKind.Approval' },
{ value: 'Inform', label: 'App.WorkflowKind.Inform' },
{ value: 'End', label: 'App.WorkflowKind.End' },
]
export const operatorOptions = ['>', '>=', '<', '<=', '=', '!='].map((value) => ({

View file

@ -244,12 +244,12 @@ function sideToward(from: WorkflowCriteriaDto, to: WorkflowCriteriaDto) {
/** Çıkış etiketleri lokalizasyon anahtarı olarak taşınır; ekranda `translate` ile çözülür. */
export const OUTCOME_KEYS = {
nextOnStart: 'ListForms.Workflow.Outcome.Next',
nextOnTrue: 'ListForms.Workflow.Outcome.True',
nextOnFalse: 'ListForms.Workflow.Outcome.False',
nextOnApprove: 'ListForms.Workflow.Outcome.Approve',
nextOnReject: 'ListForms.Workflow.Outcome.Reject',
compare: 'ListForms.Workflow.Outcome.CompareState',
nextOnStart: 'App.Platform.Next2',
nextOnTrue: 'App.WorkflowOutcome.True',
nextOnFalse: 'App.WorkflowOutcome.False',
nextOnApprove: 'App.ListFormWorkflow.Approve',
nextOnReject: 'App.ListFormWorkflow.Reject',
compare: 'App.WorkflowOutcome.CompareState',
} as const
export function getNodeOutcomes(item: WorkflowCriteriaDto): WorkflowOutcome[] {
@ -476,12 +476,12 @@ export function normalizeCriteria(item: WorkflowCriteriaForm): SaveCriteriaInput
export function defaultTitle(kind: string) {
return (
{
Start: 'ListForms.Workflow.Kind.Start',
Compare: 'ListForms.Workflow.Kind.Compare',
Approval: 'ListForms.Workflow.Kind.Approval',
Inform: 'ListForms.Workflow.Kind.Inform',
End: 'ListForms.Workflow.Kind.End',
}[kind] ?? 'ListForms.Workflow.Kind.Step'
Start: 'App.VideoRoom.Start',
Compare: 'App.ScriptBuilder.Comparison',
Approval: 'App.WorkflowKind.Approval',
Inform: 'App.WorkflowKind.Inform',
End: 'App.WorkflowKind.End',
}[kind] ?? 'App.WorkflowKind.Step'
)
}
@ -581,7 +581,7 @@ export function compareOutcomeRuleText(
`${condition.compareColumn} ${condition.compareOperator} ${formatCompactValue(condition.compareValue)}`,
)
.join(' ve ')
: 'ListForms.Workflow.NoRule'
: 'App.ListFormWorkflow.NoRule'
}
export function formatCompactValue(value: number | string | null | undefined) {

View file

@ -21,11 +21,11 @@ const AccessDenied = () => {
<DoubleSidedImage
src="/img/others/img-2.png"
darkModeSrc="/img/others/img-2-dark.png"
alt={translate('::AccessDenied')}
alt={translate('::App.Platform.AccessDenied')}
/>
<div className="mt-6 text-center">
<h3 className="mb-2">{translate('::AccessDenied')}</h3>
<p className="text-base">{translate('::AccessDeniedMessage')}</p>
<h3 className="mb-2">{translate('::App.Platform.AccessDenied')}</h3>
<p className="text-base">{translate('::App.Platform.AccessDeniedMessage')}</p>
</div>
<Button
size="sm"

View file

@ -20,7 +20,7 @@ const NotFoundPage = () => {
</div>
</div>
<p className="flex items-center justify-center text-xl mb-6 text-gray-600">
{translate('::Public.notFound.message')}
{translate('::App.Platform.NotFoundMessage')}
</p>
<div className="flex items-center justify-center font-inter">
<Button
@ -30,7 +30,7 @@ const NotFoundPage = () => {
}
className="bg-blue-500 rounded-xl shadow hover:bg-blue-600 transition"
>
{translate('::Public.notFound.button')}
{translate('::App.Platform.Button')}
</Button>
</div>
</div>

View file

@ -758,12 +758,12 @@ const FileManager = () => {
const sortOptions = useMemo(
() => [
{ value: 'name-asc', label: translate('::FileManager.SortByNameAsc') },
{ value: 'name-desc', label: translate('::FileManager.SortByNameDesc') },
{ value: 'size-asc', label: translate('::FileManager.SortBySizeAsc') },
{ value: 'size-desc', label: translate('::FileManager.SortBySizeDesc') },
{ value: 'modified-desc', label: translate('::FileManager.SortByModifiedDesc') },
{ value: 'modified-asc', label: translate('::FileManager.SortByModifiedAsc') },
{ value: 'name-asc', label: translate('::App.FileManager.SortByNameAsc') },
{ value: 'name-desc', label: translate('::App.FileManager.SortByNameDesc') },
{ value: 'size-asc', label: translate('::App.FileManager.SortBySizeAsc') },
{ value: 'size-desc', label: translate('::App.FileManager.SortBySizeDesc') },
{ value: 'modified-desc', label: translate('::App.FileManager.SortByModifiedDesc') },
{ value: 'modified-asc', label: translate('::App.FileManager.SortByModifiedAsc') },
],
[translate],
)
@ -822,8 +822,8 @@ const FileManager = () => {
className="flex-shrink-0"
onClick={() => setUploadModalOpen(true)}
>
<span className="hidden sm:inline">{translate('::FileManager.UploadFiles')}</span>
<span className="sm:hidden">{translate('::FileManager.Upload')}</span>
<span className="hidden sm:inline">{translate('::App.FileManager.UploadFiles')}</span>
<span className="sm:hidden">{translate('::App.Platform.Upload')}</span>
</Button>
<Button
variant="default"
@ -832,8 +832,8 @@ const FileManager = () => {
className="flex-shrink-0"
onClick={() => setCreateFolderModalOpen(true)}
>
<span className="hidden sm:inline">{translate('::FileManager.CreateFolder')}</span>
<span className="sm:hidden">{translate('::FileManager.Create')}</span>
<span className="hidden sm:inline">{translate('::App.FileManager.CreateFolder')}</span>
<span className="sm:hidden">{translate('::App.Platform.Create')}</span>
</Button>
{/* Clipboard Operations */}
@ -843,7 +843,7 @@ const FileManager = () => {
disabled={selectedItems.length === 0}
size="sm"
className="text-gray-600 hover:text-blue-600 disabled:opacity-50 flex-shrink-0"
title={translate('::FileManager.CopySelectedItems')}
title={translate('::App.FileManager.CopySelectedItems')}
onClick={copySelectedItems}
/>
<Button
@ -852,7 +852,7 @@ const FileManager = () => {
disabled={selectedItems.length === 0}
size="sm"
className="text-gray-600 hover:text-orange-600 disabled:opacity-50 flex-shrink-0"
title={translate('::FileManager.CutSelectedItems')}
title={translate('::App.FileManager.CutSelectedItems')}
onClick={cutSelectedItems}
/>
<Button
@ -861,7 +861,7 @@ const FileManager = () => {
disabled={!hasClipboardData}
size="sm"
className="text-gray-600 hover:text-green-600 disabled:opacity-50 flex-shrink-0"
title={translate('::FileManager.PasteSelectedItems')}
title={translate('::App.FileManager.PasteSelectedItems')}
onClick={pasteItems}
/>
<Button
@ -870,7 +870,7 @@ const FileManager = () => {
size="sm"
disabled={!singleSelectedItem}
className="text-gray-600 hover:text-blue-600 flex-shrink-0"
title={translate('::FileManager.RenameSelectedItem')}
title={translate('::App.FileManager.RenameSelectedItem')}
onClick={handleRenameSelected}
/>
@ -880,7 +880,7 @@ const FileManager = () => {
size="sm"
disabled={singleSelectedItem?.type !== 'file'}
className="text-gray-600 hover:text-green-600 flex-shrink-0"
title={translate('::FileManager.DownloadSelectedFile')}
title={translate('::App.FileManager.DownloadSelectedFile')}
onClick={handleDownloadSelected}
/>
@ -890,10 +890,10 @@ const FileManager = () => {
size="sm"
disabled={selectedItems.length === 0}
className="text-gray-600 hover:text-red-600 flex-shrink-0"
title={translate('::FileManager.DeleteSelectedItems')}
title={translate('::App.FileManager.DeleteSelectedItems')}
onClick={deleteSelectedItems}
>
<span>{translate('::Delete')}</span>{' '}
<span>{translate('::App.Platform.Delete')}</span>{' '}
{selectedItems.length > 0 && `(${selectedItems.length})`}
</Button>
@ -911,13 +911,13 @@ const FileManager = () => {
>
<span className="hidden lg:inline">
{allSelected
? translate('::FileManager.DeselectAll')
: translate('::FileManager.SelectAll')}
? translate('::App.FileManager.DeselectAll')
: translate('::App.Platform.SelectAll')}
</span>
<span className="lg:hidden">
{allSelected
? translate('::FileManager.Deselect')
: translate('::FileManager.Select')}
? translate('::App.FileManager.Deselect')
: translate('::App.FileManager.Select')}
</span>
</Button>
)}
@ -928,7 +928,7 @@ const FileManager = () => {
<div className="flex items-center w-full sm:w-auto">
<Input
size="sm"
placeholder={translate('::FileManager.SearchFiles')}
placeholder={translate('::App.Platform.Search')}
value={filters.searchTerm}
prefix={<FaSearch className="text-gray-400" />}
className="w-full sm:w-36 md:w-48"

View file

@ -105,27 +105,27 @@ const formatDate = (date?: string | Date): string => {
}
const getFileTypeLabel = (item: FileItemType, translate: (key: string) => string): string => {
if (item.type === 'folder') return translate('::FileManager.Folder')
if (item.type === 'folder') return translate('::App.FileManager.Folder')
const extension = item.extension?.toLowerCase()
const mimeType = item.mimeType?.toLowerCase()
if (mimeType?.startsWith('image/')) return translate('::FileManager.Picture') // 'Resim'
if (mimeType?.startsWith('video/')) return translate('::FileManager.Video') // 'Video'
if (mimeType?.startsWith('audio/')) return translate('::FileManager.Sound') // 'Ses'
if (mimeType?.includes('pdf')) return translate('::FileManager.PDF') // 'PDF'
if (mimeType?.includes('word')) return translate('::FileManager.Word') // 'Word'
if (mimeType?.startsWith('image/')) return translate('::App.FileManager.Picture') // 'Resim'
if (mimeType?.startsWith('video/')) return translate('::App.Platform.Video') // 'Video'
if (mimeType?.startsWith('audio/')) return translate('::App.FileManager.Sound') // 'Ses'
if (mimeType?.includes('pdf')) return translate('::App.FileManager.PDF') // 'PDF'
if (mimeType?.includes('word')) return translate('::App.FileManager.Word') // 'Word'
if (mimeType?.includes('excel') || mimeType?.includes('spreadsheet'))
return translate('::FileManager.Excel') // 'Excel'
return translate('::App.FileManager.Excel') // 'Excel'
if (mimeType?.includes('powerpoint') || mimeType?.includes('presentation'))
return translate('::FileManager.PowerPoint') // 'PowerPoint'
return translate('::App.FileManager.PowerPoint') // 'PowerPoint'
if (['zip', 'rar', '7z', 'tar', 'gz'].includes(extension || ''))
return translate('::FileManager.Archive') // 'Arşiv'
if (['txt', 'md'].includes(extension || '')) return translate('::FileManager.Text') // 'Metin'
return translate('::App.FileManager.Archive') // 'Arşiv'
if (['txt', 'md'].includes(extension || '')) return translate('::App.Listform.ListformField.Text') // 'Metin'
if (['xml', 'css', 'js', 'ts', 'html'].includes(extension || ''))
return translate('::FileManager.Code') // 'Kod'
return translate('::App.Platform.Code') // 'Kod'
return extension?.toUpperCase() || translate('::FileManager.File')
return extension?.toUpperCase() || translate('::App.FileManager.File')
}
// Defined at module level: nesting it inside FileItem would remount the <img>
@ -259,7 +259,7 @@ const FileItem = forwardRef<HTMLDivElement, FileItemProps>((props, ref) => {
() => {
toast.push(
<Notification type="success" title={translate('::App.Platform.Success')}>
{translate('::FileManager.UrlCopied')}
{translate('::App.FileManager.UrlCopied')}
</Notification>,
{ placement: 'bottom-end' },
)
@ -267,7 +267,7 @@ const FileItem = forwardRef<HTMLDivElement, FileItemProps>((props, ref) => {
() => {
toast.push(
<Notification type="danger" title={translate('::App.Platform.Error')}>
{translate('::FileManager.UrlCopyFailed')}
{translate('::App.FileManager.UrlCopyFailed')}
</Notification>,
{ placement: 'bottom-end' },
)
@ -315,7 +315,7 @@ const FileItem = forwardRef<HTMLDivElement, FileItemProps>((props, ref) => {
? [
{
key: 'delete',
label: translate('::Delete'),
label: translate('::App.Platform.Delete'),
icon: 'HiTrash',
dangerous: true,
onClick: () => onDelete(item),
@ -446,7 +446,7 @@ const FileItem = forwardRef<HTMLDivElement, FileItemProps>((props, ref) => {
</span>
) : item.type === 'folder' && typeof item.childCount === 'number' ? (
<span className="text-sm text-gray-500 dark:text-gray-400">
{translate('::FileManager.ItemCount', { count: item.childCount })}
{translate('::App.FileManager.ItemCount', { count: item.childCount })}
</span>
) : (
<span className="text-sm text-gray-500 dark:text-gray-400">-</span>
@ -545,7 +545,7 @@ const FileItem = forwardRef<HTMLDivElement, FileItemProps>((props, ref) => {
<p className="text-xs text-gray-500 dark:text-gray-400">
{typeof item.childCount === 'number'
? `${item.childCount} ${translate('::App.Listform.ListformField.Item')}`
: translate('::FileManager.Counting')}
: translate('::App.FileManager.Counting')}
</p>
)}
</div>

View file

@ -48,7 +48,7 @@ export const CreateFolderModal = forwardRef<HTMLDivElement, CreateFolderModalPro
<div ref={ref}>
<form className="py-6" onSubmit={handleSubmit}>
<FormItem
label={translate('::FileManager.FolderName')}
label={translate('::App.FileManager.FolderName')}
invalid={!!error}
errorMessage={error}
>
@ -63,7 +63,7 @@ export const CreateFolderModal = forwardRef<HTMLDivElement, CreateFolderModalPro
<div className="flex justify-end space-x-2 pt-4 border-t">
<Button size="sm" variant="default" disabled={loading} onClick={handleClose}>
{translate('::Cancel')}
{translate('::App.Platform.Cancel')}
</Button>
<Button
size="sm"
@ -72,7 +72,7 @@ export const CreateFolderModal = forwardRef<HTMLDivElement, CreateFolderModalPro
disabled={!folderName.trim()}
onClick={handleSubmit}
>
{translate('::FileManager.CreateFolder')}
{translate('::App.FileManager.CreateFolder')}
</Button>
</div>
</div>
@ -140,20 +140,20 @@ export const RenameItemModal = forwardRef<HTMLDivElement, RenameItemModalProps>(
<div ref={ref} className="max-w-md">
<div className="flex items-center justify-between pb-4 border-b">
<h3 className="text-lg font-semibold">
{translate(`::FileManager.${item.type === 'folder' ? 'RenameFolder' : 'RenameFile'}`)}
{translate(`::App.FileManager.${item.type === 'folder' ? 'RenameFolder' : 'RenameFile'}`)}
</h3>
</div>
<form className="py-6" onSubmit={handleSubmit}>
<FormItem
label={translate(`::FileManager.${item.type === 'folder' ? 'FolderName' : 'FileName'}`)}
label={translate(`::App.FileManager.${item.type === 'folder' ? 'FolderName' : 'FileName'}`)}
invalid={!!error}
errorMessage={error}
>
<Input
autoFocus
value={newName}
placeholder={`Enter ${translate(`::FileManager.${item.type === 'folder' ? 'FolderName' : 'FileName'}`)}`}
placeholder={`Enter ${translate(`::App.FileManager.${item.type === 'folder' ? 'FolderName' : 'FileName'}`)}`}
onChange={(e) => setNewName(e.target.value)}
/>
</FormItem>
@ -161,7 +161,7 @@ export const RenameItemModal = forwardRef<HTMLDivElement, RenameItemModalProps>(
<div className="flex justify-end space-x-2 pt-4 border-t">
<Button size="sm" variant="default" disabled={loading} onClick={handleClose}>
{translate('::Cancel')}
{translate('::App.Platform.Cancel')}
</Button>
<Button
size="sm"
@ -211,13 +211,13 @@ export const DeleteConfirmModal = forwardRef<HTMLDivElement, DeleteConfirmModalP
<div ref={ref}>
<div className="flex items-center justify-between pb-4 border-b">
<h3 className="text-lg font-semibold text-red-600">
{translate('::FileManager.DeleteConfirmationTitle')}
{translate('::App.FileManager.DeleteConfirmationTitle')}
</h3>
</div>
<div className="py-6">
<p className="text-gray-900 dark:text-gray-100 mb-4">
{translate('::FileManager.DeleteConfirmationMessage')}
{translate('::App.FileManager.DeleteConfirmationMessage')}
</p>
<div className="bg-gray-50 dark:bg-gray-700 rounded-lg p-2">
@ -244,10 +244,10 @@ export const DeleteConfirmModal = forwardRef<HTMLDivElement, DeleteConfirmModalP
<div className="flex justify-end space-x-2 pt-4 border-t">
<Button size="sm" variant="default" disabled={loading} onClick={onClose}>
{translate('::Cancel')}
{translate('::App.Platform.Cancel')}
</Button>
<Button size="sm" variant="solid" loading={loading} onClick={handleDelete}>
{translate('::Delete')}
{translate('::App.Platform.Delete')}
</Button>
</div>
</div>

View file

@ -766,7 +766,7 @@ function OrgChartTree({
return (
<div className="flex flex-col items-center justify-center py-24 text-slate-400">
<FaSitemap className="w-12 h-12 mb-4 opacity-30" />
<p className="text-sm">{translate('::App.NoDataFound')}</p>
<p className="text-sm">{translate('::App.Platform.NoDataFound')}</p>
</div>
)
}
@ -901,7 +901,7 @@ const OrgChart = () => {
}`}
onClick={() => setMode('department')}
>
<span className="hidden sm:inline">{translate('::App.Hr.Department')}</span>
<span className="hidden sm:inline">{translate('::App.Definitions.Department')}</span>
</Button>
<Button
variant="plain"
@ -928,7 +928,7 @@ const OrgChart = () => {
onChange={(e) => setShowUsers(e.target.checked)}
/>
<span className="hidden sm:inline">
{translate('::App.Definitions.OrgChart.ShowUsers')}
{translate('::App.DefinitionsOrgChart.ShowUsers')}
</span>
</label>
</div>
@ -969,7 +969,7 @@ const OrgChart = () => {
shape="none"
icon={<FaFileImage className="h-3.5 w-3.5 flex-shrink-0" />}
className="!inline-flex !h-auto !items-center !justify-center gap-1.5 !rounded-lg bg-slate-100 !p-1.5 text-xs font-medium text-slate-600 transition-colors hover:!bg-slate-200 disabled:opacity-50 dark:bg-gray-800 dark:text-gray-300 dark:hover:!bg-gray-700 sm:!p-2 sm:text-sm"
title={translate('::App.Definitions.OrgChart.ExportJpg')}
title={translate('::App.DefinitionsOrgChart.ExportJpg')}
onClick={handleExportJpg}
>
<span className="hidden sm:inline">

View file

@ -80,7 +80,7 @@ function ChartTabAnimation(props: FormEditProps) {
</FormItem>
<div className="mt-4">
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</div>
</FormContainer>

View file

@ -664,7 +664,7 @@ function ChartTabAnnotations(props: FormEditProps) {
</Tabs>
<div className="mt-4">
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</div>
</FormContainer>

View file

@ -544,7 +544,7 @@ function ChartTabAxis(props: FormEditProps) {
</Tabs>
<div className="mt-4">
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</div>
</FormContainer>

View file

@ -717,7 +717,7 @@ function ChartTabCommonSettings(props: FormEditProps) {
</Tabs>
<div className="mt-4">
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</div>
</FormContainer>

View file

@ -337,7 +337,7 @@ function ChartTabCrosshair(props: FormEditProps) {
</div>
<div className="mt-4">
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</div>
</FormContainer>

View file

@ -66,7 +66,7 @@ function ChartTabExport(props: FormEditProps) {
<div className="mt-4">
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</div>
</FormContainer>

View file

@ -213,7 +213,7 @@ function ChartTabLegend(props: FormEditProps) {
</div>
<div className="mt-4">
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</div>
</FormContainer>

View file

@ -157,7 +157,7 @@ function ChartTabPanes(props: FormEditProps) {
/>
<div className="mt-4">
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</div>
</FormContainer>

View file

@ -528,7 +528,7 @@ function ChartTabSeries(props: FormEditProps & { listFormCode: string }) {
</Tabs>
<div className="mt-4">
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</div>
</FormContainer>

View file

@ -177,7 +177,7 @@ const ChartTabZoomAndPan = (props: FormEditProps) => {
</div>
<div className="mt-4">
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</div>
</FormContainer>

View file

@ -74,10 +74,10 @@ function FormCustomization({
}}
/>
</Th>
<Th>{translate('::ListForms.ListFormEdit.CustomizationType')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CustomizationName')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CustomizationRole')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CustomizationUser')}</Th>
<Th>{translate('::App.ListFormEdit.CustomizationType')}</Th>
<Th>{translate('::App.ListFormEdit.CustomizationName')}</Th>
<Th>{translate('::App.ListFormEdit.CustomizationRole')}</Th>
<Th>{translate('::App.ListFormEdit.CustomizationUser')}</Th>
</Tr>
</THead>
<TBody>
@ -143,8 +143,8 @@ function FormCustomization({
validate={(values) => {
if (values.userId && values.roleId) {
return {
userId: translate('::ListForms.RoleOrUserOnly'),
roleId: translate('::ListForms.RoleOrUserOnly'),
userId: translate('::App.ListForm.RoleOrUserOnly'),
roleId: translate('::App.ListForm.RoleOrUserOnly'),
}
}
@ -166,8 +166,8 @@ function FormCustomization({
toast.push(
<Notification type="success">
{input.id
? translate('::ListForms.KayitGuncellendi')
: translate('::ListForms.KayitEklendi')}
? translate('::App.ListForm.KayitGuncellendi')
: translate('::App.ListForm.KayitEklendi')}
</Notification>,
{
placement: 'bottom-end',
@ -192,7 +192,7 @@ function FormCustomization({
<Form>
<FormContainer size="sm">
<FormItem
label={translate('::ListForms.ListFormEdit.CustomizationType')}
label={translate('::App.ListFormEdit.CustomizationType')}
invalid={errors.customizationType && touched.customizationType}
errorMessage={errors.customizationType}
>
@ -200,7 +200,7 @@ function FormCustomization({
type="text"
autoComplete="off"
name="customizationType"
placeholder={translate('::ListForms.ListFormEdit.CustomizationType')}
placeholder={translate('::App.ListFormEdit.CustomizationType')}
>
{({ field, form }: FieldProps<ListFormCustomizationTypeEnum>) => (
<Select
@ -218,7 +218,7 @@ function FormCustomization({
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.CustomizationName')}
label={translate('::App.ListFormEdit.CustomizationName')}
invalid={errors.filterName && touched.filterName}
errorMessage={errors.filterName}
>
@ -226,13 +226,13 @@ function FormCustomization({
type="text"
autoComplete="off"
name="filterName"
placeholder={translate('::ListForms.ListFormEdit.CustomizationName')}
placeholder={translate('::App.ListFormEdit.CustomizationName')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.CustomizationRole')}
label={translate('::App.ListFormEdit.CustomizationRole')}
invalid={errors.roleId && touched.roleId}
errorMessage={errors.roleId}
>
@ -240,7 +240,7 @@ function FormCustomization({
type="text"
autoComplete="off"
name="roleId"
placeholder={translate('::ListForms.ListFormEdit.CustomizationRole')}
placeholder={translate('::App.ListFormEdit.CustomizationRole')}
>
{({ field, form }: FieldProps<IdentityRoleDto>) => (
<Select
@ -256,7 +256,7 @@ function FormCustomization({
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.CustomizationUser')}
label={translate('::App.ListFormEdit.CustomizationUser')}
invalid={errors.userId && touched.userId}
errorMessage={errors.userId}
>
@ -264,7 +264,7 @@ function FormCustomization({
type="text"
autoComplete="off"
name="userId"
placeholder={translate('::ListForms.ListFormEdit.CustomizationUser')}
placeholder={translate('::App.ListFormEdit.CustomizationUser')}
>
{({ field, form }: FieldProps<IdentityUserDto>) => (
<Select
@ -280,7 +280,7 @@ function FormCustomization({
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.CustomizationData')}
label={translate('::App.ListFormEdit.CustomizationData')}
invalid={errors.customizationData && touched.customizationData}
errorMessage={errors.customizationData}
>
@ -295,7 +295,7 @@ function FormCustomization({
</FormItem>
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>
@ -312,7 +312,7 @@ function FormCustomization({
>
<h5 className="mb-4">Delete</h5>
<p>{translate('::DeleteConfirmation')}</p>
<p>{translate('::App.Platform.DeleteConfirmation')}</p>
<div className="text-right mt-6">
<Button
@ -333,7 +333,7 @@ function FormCustomization({
await deleteListFormCustomization(deleteRowId)
toast.push(
<Notification type="success" duration={2000}>
{translate('::ListForms.KayitSilindi')}
{translate('::App.Platform.RecordDeleted')}
</Notification>,
{
placement: 'bottom-end',

View file

@ -208,7 +208,7 @@ const FormEdit = () => {
await getListFormValues(listFormCode)
toast.push(
<Notification type="success" duration={2000}>
{translate('::ListForms.FormBilgileriKaydedildi')}
{translate('::App.Platform.FormBilgileriKaydedildi')}
</Notification>,
{ placement: 'bottom-end' },
)
@ -240,7 +240,7 @@ const FormEdit = () => {
{listFormValues.isTenant && (
<Badge
className="font-semibold dark:bg-red-500 dark:text-white"
content={translate('::ListForms.ListFormEdit.MultiTenantWarning')}
content={translate('::App.ListFormEdit.MultiTenantWarning')}
innerClass="p-1 bg-red-50 text-red-500"
></Badge>
)}
@ -248,129 +248,129 @@ const FormEdit = () => {
<Tabs defaultValue="details" variant="underline">
<TabList className="flex-wrap border-b mb-2 bg-slate-50 dark:bg-slate-800">
{visibleTabs.includes('details') && (
<TabNav value="details">{translate('::ListForms.ListFormEdit.TabDetails')}</TabNav>
<TabNav value="details">{translate('::App.Platform.Detail')}</TabNav>
)}
{visibleTabs.includes('database') && (
<TabNav value="database">{translate('::ListForms.ListFormEdit.TabDatabase')}</TabNav>
<TabNav value="database">{translate('::App.BlogCategories.Database')}</TabNav>
)}
{visibleTabs.includes('permissions') && (
<TabNav value="permissions">{translate('::Abp.Identity.Permissions')}</TabNav>
)}
{visibleTabs.includes('commands') && (
<TabNav value="commands">{translate('::ListForms.ListFormEdit.TabCommands')}</TabNav>
<TabNav value="commands">{translate('::App.ListFormEdit.TabCommands')}</TabNav>
)}
{visibleTabs.includes('columns') && (
<TabNav value="columns">{translate('::ListForms.ListFormEdit.TabColumns')}</TabNav>
<TabNav value="columns">{translate('::App.Platform.Columns')}</TabNav>
)}
{visibleTabs.includes('edit') && (
<TabNav value="edit">{translate('::ListForms.ListFormEdit.Editing')}</TabNav>
<TabNav value="edit">{translate('::App.Platform.Editing')}</TabNav>
)}
{visibleTabs.includes('sortingForm') && (
<TabNav value="sortingForm">{translate('::ListForms.ListFormEdit.TabSorting')}</TabNav>
<TabNav value="sortingForm">{translate('::App.ListFormField.Sorting')}</TabNav>
)}
{visibleTabs.includes('filterRow') && (
<TabNav value="filterRow">{translate('::ListForms.ListFormEdit.TabFiltering')}</TabNav>
<TabNav value="filterRow">{translate('::App.ListFormEdit.TabFiltering')}</TabNav>
)}
{visibleTabs.includes('rowForm') && (
<TabNav value="rowForm">{translate('::ListForms.ListFormEdit.TabRow')}</TabNav>
<TabNav value="rowForm">{translate('::App.Platform.Row')}</TabNav>
)}
{visibleTabs.includes('search') && (
<TabNav value="search">{translate('::ListForms.ListFormEdit.TabSearch')}</TabNav>
<TabNav value="search">{translate('::App.Platform.Search3')}</TabNav>
)}
{visibleTabs.includes('group') && (
<TabNav value="group">{translate('::ListForms.ListFormEdit.TabGrouping')}</TabNav>
<TabNav value="group">{translate('::App.ListFormEdit.TabGrouping')}</TabNav>
)}
{visibleTabs.includes('select') && (
<TabNav value="select">{translate('::ListForms.ListFormEdit.TabSelection')}</TabNav>
<TabNav value="select">{translate('::App.ListFormEdit.TabSelection')}</TabNav>
)}
{visibleTabs.includes('pager') && (
<TabNav value="pager">{translate('::ListForms.ListFormEdit.TabPaging')}</TabNav>
<TabNav value="pager">{translate('::App.ListFormEdit.TabPaging')}</TabNav>
)}
{visibleTabs.includes('state') && (
<TabNav value="state">{translate('::ListForms.ListFormEdit.TabState')}</TabNav>
<TabNav value="state">{translate('::App.ListFormEdit.TabState')}</TabNav>
)}
{visibleTabs.includes('extrafilter') && (
<TabNav value="extrafilter">
{translate('::ListForms.ListFormEdit.ExtraFilters')}
{translate('::App.ListFormEdit.ExtraFilters')}
</TabNav>
)}
{visibleTabs.includes('editForm') && (
<TabNav value="editForm">{translate('::ListForms.ListFormEdit.EditingForm')}</TabNav>
<TabNav value="editForm">{translate('::App.StaticLookup.Form')}</TabNav>
)}
{visibleTabs.includes('fields') && (
<TabNav value="fields">{translate('::ListForms.ListFormEdit.TabFields')}</TabNav>
<TabNav value="fields">{translate('::App.ListFormWizard.ListFormFields')}</TabNav>
)}
{visibleTabs.includes('customization') && (
<TabNav value="customization">
{translate('::ListForms.ListFormEdit.TabCustomization')}
{translate('::App.ListFormEdit.TabCustomization')}
</TabNav>
)}
{visibleTabs.includes('pivots') && (
<TabNav value="pivots">{translate('::ListForms.ListFormEdit.TabPivot')}</TabNav>
<TabNav value="pivots">{translate('::App.Platform.TabPivot')}</TabNav>
)}
{visibleTabs.includes('tree') && (
<TabNav value="tree">{translate('::ListForms.ListFormEdit.TabTree')}</TabNav>
<TabNav value="tree">{translate('::App.Platform.TabTree')}</TabNav>
)}
{visibleTabs.includes('gantt') && (
<TabNav value="gantt">{translate('::ListForms.ListFormEdit.TabGantt')}</TabNav>
<TabNav value="gantt">{translate('::App.Platform.TabGantt')}</TabNav>
)}
{visibleTabs.includes('scheduler') && (
<TabNav value="scheduler">{translate('::ListForms.ListFormEdit.TabScheduler')}</TabNav>
<TabNav value="scheduler">{translate('::App.Platform.TabScheduler')}</TabNav>
)}
{visibleTabs.includes('todo') && <TabNav value="todo">Todo</TabNav>}
{visibleTabs.includes('subForms') && (
<TabNav value="subForms">{translate('::ListForms.ListFormEdit.SubForms')}</TabNav>
<TabNav value="subForms">{translate('::App.ListFormEdit.SubForms')}</TabNav>
)}
{visibleTabs.includes('widget') && (
<TabNav value="widget">{translate('::ListForms.ListFormEdit.TabWidgets')}</TabNav>
<TabNav value="widget">{translate('::App.ListFormEdit.TabWidgets')}</TabNav>
)}
{visibleTabs.includes('workflow') && (
<TabNav value="workflow">{translate('::ListForms.ListFormEdit.TabWorkflow')}</TabNav>
<TabNav value="workflow">{translate('::App.ListFormEdit.TabWorkflow')}</TabNav>
)}
{/* Chart Tabs */}
{visibleTabs.includes('commonSettings') && (
<TabNav value="commonSettings">
{translate('::ListForms.ListFormEdit.TabChartCommon')}
{translate('::App.ListFormEdit.TabChartCommon')}
</TabNav>
)}
{visibleTabs.includes('axis') && (
<TabNav value="axis">{translate('::ListForms.ListFormEdit.TabChartAxis')}</TabNav>
<TabNav value="axis">{translate('::App.ListFormEdit.TabChartAxis')}</TabNav>
)}
{visibleTabs.includes('panes') && (
<TabNav value="panes">{translate('::ListForms.ListFormEdit.TabChartPanes')}</TabNav>
<TabNav value="panes">{translate('::App.ListFormEdit.TabChartPanes')}</TabNav>
)}
{visibleTabs.includes('series') && (
<TabNav value="series">{translate('::ListForms.ListFormEdit.TabChartSeries')}</TabNav>
<TabNav value="series">{translate('::App.Platform.TabChartSeries')}</TabNav>
)}
{visibleTabs.includes('animationsOptions') && (
<TabNav value="animationsOptions">
{translate('::ListForms.ListFormEdit.TabChartAnimation')}
{translate('::App.ListFormEdit.TabChartAnimation')}
</TabNav>
)}
{visibleTabs.includes('annotations') && (
<TabNav value="annotations">
{translate('::ListForms.ListFormEdit.TabChartAnnotations')}
{translate('::App.ListFormEdit.TabChartAnnotations')}
</TabNav>
)}
{visibleTabs.includes('zoomAndPanSettings') && (
<TabNav value="zoomAndPanSettings">
{translate('::ListForms.ListFormEdit.TabChartZoomAndPan')}
{translate('::App.ListFormEdit.TabChartZoomAndPan')}
</TabNav>
)}
{visibleTabs.includes('legendSettings') && (
<TabNav value="legendSettings">
{translate('::ListForms.ListFormEdit.TabChartLegend')}
{translate('::App.ListFormEdit.TabChartLegend')}
</TabNav>
)}
{visibleTabs.includes('crosshairOptions') && (
<TabNav value="crosshairOptions">
{translate('::ListForms.ListFormEdit.TabChartCrosshair')}
{translate('::App.ListFormEdit.TabChartCrosshair')}
</TabNav>
)}
{visibleTabs.includes('exportSettings') && (
<TabNav value="exportSettings">
{translate('::ListForms.ListFormEdit.PermissionsExport')}
{translate('::App.Platform.Export')}
</TabNav>
)}
</TabList>

View file

@ -40,7 +40,7 @@ function FormTabColumns(props: FormEditProps) {
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
<div className="my-2">
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionShowColumnHeaders')}
label={translate('::App.ListFormEdit.SelectionShowColumnHeaders')}
invalid={
errors.columnOptionDto?.showColumnHeaders &&
touched.columnOptionDto?.showColumnHeaders
@ -49,12 +49,12 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="columnOptionDto.showColumnHeaders"
placeholder={translate('::ListForms.ListFormEdit.SelectionShowColumnHeaders')}
placeholder={translate('::App.ListFormEdit.SelectionShowColumnHeaders')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionShowBorders')}
label={translate('::App.ListFormEdit.SelectionShowBorders')}
invalid={
errors.columnOptionDto?.showBorders && touched.columnOptionDto?.showBorders
}
@ -62,12 +62,12 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="columnOptionDto.showBorders"
placeholder={translate('::ListForms.ListFormEdit.SelectionShowBorders')}
placeholder={translate('::App.ListFormEdit.SelectionShowBorders')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionShowRowLines')}
label={translate('::App.ListFormEdit.SelectionShowRowLines')}
invalid={
errors.columnOptionDto?.showRowLines && touched.columnOptionDto?.showRowLines
}
@ -75,12 +75,12 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="columnOptionDto.showRowLines"
placeholder={translate('::ListForms.ListFormEdit.SelectionShowRowLines')}
placeholder={translate('::App.ListFormEdit.SelectionShowRowLines')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionShowColumnLines')}
label={translate('::App.ListFormEdit.SelectionShowColumnLines')}
invalid={
errors.columnOptionDto?.showColumnLines &&
touched.columnOptionDto?.showColumnLines
@ -89,12 +89,12 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="columnOptionDto.showColumnLines"
placeholder={translate('::ListForms.ListFormEdit.SelectionShowColumnLines')}
placeholder={translate('::App.ListFormEdit.SelectionShowColumnLines')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionRowAlternationEnabled')}
label={translate('::App.ListFormEdit.SelectionRowAlternationEnabled')}
invalid={
errors.columnOptionDto?.rowAlternationEnabled &&
touched.columnOptionDto?.rowAlternationEnabled
@ -104,13 +104,13 @@ function FormTabColumns(props: FormEditProps) {
<Field
name="columnOptionDto.rowAlternationEnabled"
placeholder={translate(
'::ListForms.ListFormEdit.SelectionRowAlternationEnabled',
'::App.ListFormEdit.SelectionRowAlternationEnabled',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionAllowColumnReordering')}
label={translate('::App.ListFormEdit.SelectionAllowColumnReordering')}
invalid={
errors.columnOptionDto?.allowColumnReordering &&
touched.columnOptionDto?.allowColumnReordering
@ -120,13 +120,13 @@ function FormTabColumns(props: FormEditProps) {
<Field
name="columnOptionDto.allowColumnReordering"
placeholder={translate(
'::ListForms.ListFormEdit.SelectionAllowColumnReordering',
'::App.ListFormEdit.SelectionAllowColumnReordering',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionColumnAutoWidth')}
label={translate('::App.ListFormEdit.SelectionColumnAutoWidth')}
invalid={
errors.columnOptionDto?.columnAutoWidth &&
touched.columnOptionDto?.columnAutoWidth
@ -135,12 +135,12 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="columnOptionDto.columnAutoWidth"
placeholder={translate('::ListForms.ListFormEdit.SelectionColumnAutoWidth')}
placeholder={translate('::App.ListFormEdit.SelectionColumnAutoWidth')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionColumnFixingEnabled')}
label={translate('::App.ListFormEdit.SelectionColumnFixingEnabled')}
invalid={
errors.columnOptionDto?.columnFixingEnabled &&
touched.columnOptionDto?.columnFixingEnabled
@ -150,7 +150,7 @@ function FormTabColumns(props: FormEditProps) {
<Field
name="columnOptionDto.columnFixingEnabled"
placeholder={translate(
'::ListForms.ListFormEdit.SelectionColumnFixingEnabled',
'::App.ListFormEdit.SelectionColumnFixingEnabled',
)}
component={Checkbox}
/>
@ -158,7 +158,7 @@ function FormTabColumns(props: FormEditProps) {
</div>
<div className="my-2">
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionRtlEnabled')}
label={translate('::App.ListFormEdit.SelectionRtlEnabled')}
invalid={
errors.columnOptionDto?.rtlEnabled && touched.columnOptionDto?.rtlEnabled
}
@ -166,12 +166,12 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="columnOptionDto.rtlEnabled"
placeholder={translate('::ListForms.ListFormEdit.SelectionRtlEnabled')}
placeholder={translate('::App.ListFormEdit.SelectionRtlEnabled')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionColumnChooserEnabled')}
label={translate('::App.ListFormEdit.SelectionColumnChooserEnabled')}
invalid={
errors.columnOptionDto?.columnChooserEnabled &&
touched.columnOptionDto?.columnChooserEnabled
@ -181,13 +181,13 @@ function FormTabColumns(props: FormEditProps) {
<Field
name="columnOptionDto.columnChooserEnabled"
placeholder={translate(
'::ListForms.ListFormEdit.SelectionColumnChooserEnabled',
'::App.ListFormEdit.SelectionColumnChooserEnabled',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionColumnChooserMode')}
label={translate('::App.ListFormEdit.SelectionColumnChooserMode')}
invalid={
errors.columnOptionDto?.columnChooserMode &&
touched.columnOptionDto?.columnChooserMode
@ -198,7 +198,7 @@ function FormTabColumns(props: FormEditProps) {
type="text"
autoComplete="off"
name="columnOptionDto.columnChooserMode"
placeholder={translate('::ListForms.ListFormEdit.SelectionColumnChooserMode')}
placeholder={translate('::App.ListFormEdit.SelectionColumnChooserMode')}
>
{({ field, form }: FieldProps<ColumnChooserMode>) => (
<Select
@ -215,7 +215,7 @@ function FormTabColumns(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionAllowColumnResizing')}
label={translate('::App.ListFormEdit.SelectionAllowColumnResizing')}
invalid={
errors.columnOptionDto?.allowColumnResizing &&
touched.columnOptionDto?.allowColumnResizing
@ -225,13 +225,13 @@ function FormTabColumns(props: FormEditProps) {
<Field
name="columnOptionDto.allowColumnResizing"
placeholder={translate(
'::ListForms.ListFormEdit.SelectionAllowColumnResizing',
'::App.ListFormEdit.SelectionAllowColumnResizing',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionColumnResizingMode')}
label={translate('::App.ListFormEdit.SelectionColumnResizingMode')}
invalid={
errors.columnOptionDto?.columnResizingMode &&
touched.columnOptionDto?.columnResizingMode
@ -243,7 +243,7 @@ function FormTabColumns(props: FormEditProps) {
autoComplete="off"
name="columnOptionDto.columnResizingMode"
placeholder={translate(
'::ListForms.ListFormEdit.SelectionColumnResizingMode',
'::App.ListFormEdit.SelectionColumnResizingMode',
)}
>
{({ field, form }: FieldProps<ColumnResizeMode>) => (
@ -261,7 +261,7 @@ function FormTabColumns(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionHoverStateEnabled')}
label={translate('::App.ListFormEdit.SelectionHoverStateEnabled')}
invalid={
errors.columnOptionDto?.hoverStateEnabled &&
touched.columnOptionDto?.hoverStateEnabled
@ -270,12 +270,12 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="columnOptionDto.hoverStateEnabled"
placeholder={translate('::ListForms.ListFormEdit.SelectionHoverStateEnabled')}
placeholder={translate('::App.ListFormEdit.SelectionHoverStateEnabled')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionColumnHidingEnabled')}
label={translate('::App.ListFormEdit.SelectionColumnHidingEnabled')}
invalid={
errors.columnOptionDto?.columnHidingEnabled &&
touched.columnOptionDto?.columnHidingEnabled
@ -285,13 +285,13 @@ function FormTabColumns(props: FormEditProps) {
<Field
name="columnOptionDto.columnHidingEnabled"
placeholder={translate(
'::ListForms.ListFormEdit.SelectionColumnHidingEnabled',
'::App.ListFormEdit.SelectionColumnHidingEnabled',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionFocusedRowEnabled')}
label={translate('::App.ListFormEdit.SelectionFocusedRowEnabled')}
invalid={
errors.columnOptionDto?.focusedRowEnabled &&
touched.columnOptionDto?.focusedRowEnabled
@ -300,7 +300,7 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="columnOptionDto.focusedRowEnabled"
placeholder={translate('::ListForms.ListFormEdit.SelectionFocusedRowEnabled')}
placeholder={translate('::App.ListFormEdit.SelectionFocusedRowEnabled')}
component={Checkbox}
/>
</FormItem>
@ -308,7 +308,7 @@ function FormTabColumns(props: FormEditProps) {
</div>
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit" className="my-2">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -29,8 +29,8 @@ function FormTabCommands() {
<Card
className="my-2"
bodyClass="p-0"
header={translate('::ListForms.ListFormEdit.CommandColumns')}
headerExtra={translate('::ListForms.ListFormEdit.CommandColumnsDescription')}
header={translate('::App.ListFormEdit.CommandColumns')}
headerExtra={translate('::App.ListFormEdit.CommandColumnsDescription')}
>
<Table compact>
<THead>
@ -55,15 +55,15 @@ function FormTabCommands() {
}}
/>
</Th>
<Th>{translate('::ListForms.ListFormEdit.CommandPosition')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CommandText')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CommandHint')}</Th>
<Th>{translate('::App.Listform.ListformField.Position')}</Th>
<Th>{translate('::App.Listform.ListformField.Text')}</Th>
<Th>{translate('::App.ListFormEdit.CommandHint')}</Th>
<Th>{translate('::App.Listform.ListformField.Icon')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CommandAuthorizationType')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CommandUrlTarget')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CommandUrl')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CommandVisible')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CommandVisibleExpression')}</Th>
<Th>{translate('::App.ListFormEdit.CommandAuthorizationType')}</Th>
<Th>{translate('::App.ListFormEdit.CommandUrlTarget')}</Th>
<Th>{translate('::App.Sender.Rocket.Url')}</Th>
<Th>{translate('::App.ListFormEdit.CommandVisible')}</Th>
<Th>{translate('::App.ListFormEdit.CommandVisibleExpression')}</Th>
</Tr>
</THead>
<TBody>

View file

@ -24,19 +24,19 @@ function FormTabDatabase(props: FormEditProps) {
<Tabs defaultValue="tabDataSource">
<TabList className="flex-wrap">
<TabNav value="tabDataSource">
{translate('::ListForms.ListFormEdit.DatabaseDataSource')}
{translate('::App.Platform.DataSource')}
</TabNav>
<TabNav value="tabSelect">
{translate('::ListForms.ListFormEdit.DatabaseSelectOperations')}
{translate('::App.ListFormEdit.DatabaseSelectOperations')}
</TabNav>
<TabNav value="tabInsert">
{translate('::ListForms.ListFormEdit.DatabaseInsertOperations')}
{translate('::App.ListFormEdit.DatabaseInsertOperations')}
</TabNav>
<TabNav value="tabUpdate">
{translate('::ListForms.ListFormEdit.DatabaseUpdateOperations')}
{translate('::App.ListFormEdit.DatabaseUpdateOperations')}
</TabNav>
<TabNav value="tabDelete">
{translate('::ListForms.ListFormEdit.DatabaseDeleteOperations')}
{translate('::App.ListFormEdit.DatabaseDeleteOperations')}
</TabNav>
</TabList>
<TabContent value="tabDataSource">

View file

@ -144,29 +144,29 @@ function FormTabDatabaseDataSource(props: FormEditProps) {
<FormContainer size="sm">
<Card className="mt-2 mb-2">
<FormItem
label={translate('::ListForms.ListFormEdit.IsTenant')}
label={translate('::App.ListFormEdit.IsTenant')}
invalid={errors.editingOptionDto?.isTenant && touched.editingOptionDto?.isTenant}
errorMessage={errors.editingOptionDto?.isTenant}
>
<Field
name="isTenant"
placeholder={translate('::ListForms.ListFormEdit.IsTenant')}
placeholder={translate('::App.ListFormEdit.IsTenant')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.IsBranch')}
label={translate('::App.ListFormEdit.IsBranch')}
invalid={errors.editingOptionDto?.isBranch && touched.editingOptionDto?.isBranch}
errorMessage={errors.editingOptionDto?.isBranch}
>
<Field
name="isBranch"
placeholder={translate('::ListForms.ListFormEdit.IsBranch')}
placeholder={translate('::App.ListFormEdit.IsBranch')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.IsOrganizationUnit')}
label={translate('::App.ListFormEdit.IsOrganizationUnit')}
invalid={
errors.editingOptionDto?.isOrganizationUnit &&
touched.editingOptionDto?.isOrganizationUnit
@ -175,7 +175,7 @@ function FormTabDatabaseDataSource(props: FormEditProps) {
>
<Field
name="isOrganizationUnit"
placeholder={translate('::ListForms.ListFormEdit.IsOrganizationUnit')}
placeholder={translate('::App.ListFormEdit.IsOrganizationUnit')}
component={Checkbox}
/>
</FormItem>
@ -215,7 +215,7 @@ function FormTabDatabaseDataSource(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseDataSourceSelectCommand')}
label={translate('::App.ListFormEdit.DatabaseDataSourceSelectCommand')}
invalid={errors.selectCommand && touched.selectCommand}
errorMessage={errors.selectCommand}
extra={
@ -284,9 +284,9 @@ function FormTabDatabaseDataSource(props: FormEditProps) {
options={grouped}
placeholder={
isLoadingDbObjects
? translate('::Loading')
? translate('::App.Platform.Loading')
: translate(
'::ListForms.ListFormEdit.DatabaseDataSourceSelectCommand',
'::App.ListFormEdit.DatabaseDataSourceSelectCommand',
)
}
value={field.value ? { label: field.value, value: field.value } : null}
@ -354,9 +354,9 @@ function FormTabDatabaseDataSource(props: FormEditProps) {
</span>
) : selectCommandColumns.length === 0 && !isLoadingColumns ? (
<span className="text-xs ml-2 text-gray-400">
{translate('::ListForms.ListFormEdit.ColumnsLoadAfterSelect', {
{translate('::App.ListFormEdit.ColumnsLoadAfterSelect', {
command: translate(
'::ListForms.ListFormEdit.DatabaseDataSourceSelectCommand',
'::App.ListFormEdit.DatabaseDataSourceSelectCommand',
),
})}
</span>
@ -373,7 +373,7 @@ function FormTabDatabaseDataSource(props: FormEditProps) {
isLoading={isLoadingColumns}
placeholder={
isLoadingColumns
? translate('::Loading')
? translate('::App.Platform.Loading')
: translate('::App.Listform.ListformField.KeyFieldName')
}
options={selectCommandColumns.map((c) => ({
@ -406,7 +406,7 @@ function FormTabDatabaseDataSource(props: FormEditProps) {
</Card>
<Button block size="sm" variant="solid" loading={isSubmitting}>
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -54,7 +54,7 @@ function FormTabDatabaseDelete({
<FormContainer size="sm">
<Card className="my-2">
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseDeleteServiceAddress')}
label={translate('::App.ListFormEdit.DatabaseDeleteServiceAddress')}
invalid={errors.deleteServiceAddress && touched.deleteServiceAddress}
errorMessage={errors.deleteServiceAddress}
>
@ -62,14 +62,14 @@ function FormTabDatabaseDelete({
type="text"
autoComplete="off"
name="deleteServiceAddress"
placeholder={translate('::ListForms.ListFormEdit.DatabaseDeleteServiceAddress')}
placeholder={translate('::App.ListFormEdit.DatabaseDeleteServiceAddress')}
component={Input}
/>
</FormItem>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseDeleteCommand')}
label={translate('::App.ListFormEdit.DatabaseDeleteCommand')}
invalid={errors.deleteCommand && touched.deleteCommand}
errorMessage={errors.deleteCommand}
>
@ -77,14 +77,14 @@ function FormTabDatabaseDelete({
type="text"
autoComplete="off"
name="deleteCommand"
placeholder={translate('::ListForms.ListFormEdit.DatabaseDeleteCommand')}
placeholder={translate('::App.ListFormEdit.DatabaseDeleteCommand')}
component={Input}
textArea={true}
rows={4}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseDeleteBeforeCommand')}
label={translate('::App.ListFormEdit.DatabaseDeleteBeforeCommand')}
invalid={errors.deleteBeforeCommand && touched.deleteBeforeCommand}
errorMessage={errors.deleteBeforeCommand}
>
@ -93,7 +93,7 @@ function FormTabDatabaseDelete({
autoComplete="off"
name="deleteBeforeCommand"
placeholder={translate(
'::ListForms.ListFormEdit.DatabaseDeleteBeforeCommand',
'::App.ListFormEdit.DatabaseDeleteBeforeCommand',
)}
component={Input}
textArea={true}
@ -101,7 +101,7 @@ function FormTabDatabaseDelete({
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseDeleteAfterCommand')}
label={translate('::App.ListFormEdit.DatabaseDeleteAfterCommand')}
invalid={errors.deleteAfterCommand && touched.deleteAfterCommand}
errorMessage={errors.deleteAfterCommand}
>
@ -109,7 +109,7 @@ function FormTabDatabaseDelete({
type="text"
autoComplete="off"
name="deleteAfterCommand"
placeholder={translate('::ListForms.ListFormEdit.DatabaseDeleteAfterCommand')}
placeholder={translate('::App.ListFormEdit.DatabaseDeleteAfterCommand')}
component={Input}
textArea={true}
rows={4}
@ -118,15 +118,15 @@ function FormTabDatabaseDelete({
</div>
<Button block size="sm" variant="solid" loading={isSubmitting}>
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</Card>
<Card
className="my-2"
bodyClass="p-0"
header={translate('::ListForms.ListFormEdit.DatabaseDeleteFieldsDefaultValues')}
headerExtra={translate('::ListForms.ListFormEdit.DatabaseDefaultValuesDescription')}
header={translate('::App.ListFormEdit.DatabaseDeleteFieldsDefaultValues')}
headerExtra={translate('::App.ListFormEdit.DatabaseDefaultValuesDescription')}
>
<Table compact>
<THead>
@ -152,11 +152,11 @@ function FormTabDatabaseDelete({
}}
/>
</Th>
<Th>{translate('::ListForms.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::ListForms.ListFormEdit.FieldDbType')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CustomValueType')}</Th>
<Th>{translate('::App.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::App.ListFormEdit.FieldDbType')}</Th>
<Th>{translate('::App.Listform.ListformField.ValueType')}</Th>
<Th>{translate('::App.Listform.ListformField.Value')}</Th>
<Th>{translate('::ListForms.ListFormEdit.SqlQuery')}</Th>
<Th>{translate('::App.ListFormEdit.SqlQuery')}</Th>
</Tr>
</THead>
<TBody>
@ -220,7 +220,7 @@ function FormTabDatabaseDelete({
<Card
className="my-2"
header={translate('::ListForms.ListFormEdit.DatabasePreviewTSQL')}
header={translate('::App.ListFormEdit.DatabasePreviewTSQL')}
>
<span>{sqlQuery}</span>
<Button
@ -233,7 +233,7 @@ function FormTabDatabaseDelete({
setSqlQuery(resp.data)
}}
>
{translate('::Preview')}
{translate('::App.Listform.ListformField.Preview')}
</Button>
</Card>
</FormContainer>

View file

@ -54,7 +54,7 @@ function FormTabDatabaseInsert({
<FormContainer size="sm">
<Card className="my-2">
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseInsertServiceAddress')}
label={translate('::App.ListFormEdit.DatabaseInsertServiceAddress')}
invalid={errors.insertServiceAddress && touched.insertServiceAddress}
errorMessage={errors.insertServiceAddress}
>
@ -62,13 +62,13 @@ function FormTabDatabaseInsert({
type="text"
autoComplete="off"
name="insertServiceAddress"
placeholder={translate('::ListForms.ListFormEdit.DatabaseInsertServiceAddress')}
placeholder={translate('::App.ListFormEdit.DatabaseInsertServiceAddress')}
component={Input}
/>
</FormItem>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseInsertCommand')}
label={translate('::App.ListFormEdit.DatabaseInsertCommand')}
invalid={errors.insertCommand && touched.insertCommand}
errorMessage={errors.insertCommand}
>
@ -76,14 +76,14 @@ function FormTabDatabaseInsert({
type="text"
autoComplete="off"
name="insertCommand"
placeholder={translate('::ListForms.ListFormEdit.DatabaseInsertCommand')}
placeholder={translate('::App.ListFormEdit.DatabaseInsertCommand')}
component={Input}
textArea={true}
rows={4}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseInsertBeforeCommand')}
label={translate('::App.ListFormEdit.DatabaseInsertBeforeCommand')}
invalid={errors.insertBeforeCommand && touched.insertBeforeCommand}
errorMessage={errors.insertBeforeCommand}
>
@ -92,7 +92,7 @@ function FormTabDatabaseInsert({
autoComplete="off"
name="insertBeforeCommand"
placeholder={translate(
'::ListForms.ListFormEdit.DatabaseInsertBeforeCommand',
'::App.ListFormEdit.DatabaseInsertBeforeCommand',
)}
component={Input}
textArea={true}
@ -100,7 +100,7 @@ function FormTabDatabaseInsert({
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseInsertAfterCommand')}
label={translate('::App.ListFormEdit.DatabaseInsertAfterCommand')}
invalid={errors.insertAfterCommand && touched.insertAfterCommand}
errorMessage={errors.insertAfterCommand}
>
@ -108,7 +108,7 @@ function FormTabDatabaseInsert({
type="text"
autoComplete="off"
name="insertAfterCommand"
placeholder={translate('::ListForms.ListFormEdit.DatabaseInsertAfterCommand')}
placeholder={translate('::App.ListFormEdit.DatabaseInsertAfterCommand')}
component={Input}
textArea={true}
rows={4}
@ -116,15 +116,15 @@ function FormTabDatabaseInsert({
</FormItem>
</div>
<Button block size="sm" variant="solid" loading={isSubmitting}>
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</Card>
<Card
className="my-2"
bodyClass="p-0"
header={translate('::ListForms.ListFormEdit.DatabaseInsertFieldsDefaultValues')}
headerExtra={translate('::ListForms.ListFormEdit.DatabaseDefaultValuesDescription')}
header={translate('::App.ListFormEdit.DatabaseInsertFieldsDefaultValues')}
headerExtra={translate('::App.ListFormEdit.DatabaseDefaultValuesDescription')}
>
<Table compact>
<THead>
@ -150,11 +150,11 @@ function FormTabDatabaseInsert({
}}
/>
</Th>
<Th>{translate('::ListForms.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::ListForms.ListFormEdit.FieldDbType')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CustomValueType')}</Th>
<Th>{translate('::App.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::App.ListFormEdit.FieldDbType')}</Th>
<Th>{translate('::App.Listform.ListformField.ValueType')}</Th>
<Th>{translate('::App.Listform.ListformField.Value')}</Th>
<Th>{translate('::ListForms.ListFormEdit.SqlQuery')}</Th>
<Th>{translate('::App.ListFormEdit.SqlQuery')}</Th>
</Tr>
</THead>
<TBody>
@ -219,10 +219,10 @@ function FormTabDatabaseInsert({
className="my-2"
bodyClass="p-0"
header={translate(
'::ListForms.ListFormEdit.DatabaseFormDefaultFieldsDefaultValues',
'::App.ListFormEdit.DatabaseFormDefaultFieldsDefaultValues',
)}
headerExtra={translate(
'::ListForms.ListFormEdit.DatabaseFormDefaultFieldsDefaultValuesDescription',
'::App.ListFormEdit.DatabaseFormDefaultFieldsDefaultValuesDescription',
)}
>
<Table compact>
@ -249,11 +249,11 @@ function FormTabDatabaseInsert({
}}
/>
</Th>
<Th>{translate('::ListForms.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::ListForms.ListFormEdit.FieldDbType')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CustomValueType')}</Th>
<Th>{translate('::App.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::App.ListFormEdit.FieldDbType')}</Th>
<Th>{translate('::App.Listform.ListformField.ValueType')}</Th>
<Th>{translate('::App.Listform.ListformField.Value')}</Th>
<Th>{translate('::ListForms.ListFormEdit.SqlQuery')}</Th>
<Th>{translate('::App.ListFormEdit.SqlQuery')}</Th>
</Tr>
</THead>
<TBody>
@ -315,7 +315,7 @@ function FormTabDatabaseInsert({
<Card
className="my-2"
header={translate('::ListForms.ListFormEdit.DatabasePreviewTSQL')}
header={translate('::App.ListFormEdit.DatabasePreviewTSQL')}
>
<span>{sqlQuery}</span>
<Button
@ -328,7 +328,7 @@ function FormTabDatabaseInsert({
setSqlQuery(resp.data)
}}
>
{translate('::Preview')}
{translate('::App.Listform.ListformField.Preview')}
</Button>
</Card>
</FormContainer>

View file

@ -54,7 +54,7 @@ function FormTabDatabaseSelect({
<FormContainer size="sm">
<Card className="my-2">
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseSelectDefaultFilter')}
label={translate('::App.ListFormEdit.DatabaseSelectDefaultFilter')}
invalid={errors.defaultFilter && touched.defaultFilter}
errorMessage={errors.defaultFilter}
>
@ -62,12 +62,12 @@ function FormTabDatabaseSelect({
type="text"
autoComplete="off"
name="defaultFilter"
placeholder={translate('::ListForms.ListFormEdit.DatabaseSelectDefaultFilter')}
placeholder={translate('::App.ListFormEdit.DatabaseSelectDefaultFilter')}
component={Input}
/>
</FormItem>
<Button block size="sm" variant="solid" loading={isSubmitting}>
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</Card>
@ -75,10 +75,10 @@ function FormTabDatabaseSelect({
className="my-2"
bodyClass="p-0"
header={translate(
'::ListForms.ListFormEdit.DatabaseSelectSelectFieldsDefaultValues',
'::App.ListFormEdit.DatabaseSelectSelectFieldsDefaultValues',
)}
headerExtra={translate(
'::ListForms.ListFormEdit.DatabaseSelectSelectFieldsDefaultValuesDescription',
'::App.ListFormEdit.DatabaseSelectSelectFieldsDefaultValuesDescription',
)}
>
<Table compact>
@ -105,11 +105,11 @@ function FormTabDatabaseSelect({
}}
/>
</Th>
<Th>{translate('::ListForms.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::ListForms.ListFormEdit.FieldDbType')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CustomValueType')}</Th>
<Th>{translate('::App.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::App.ListFormEdit.FieldDbType')}</Th>
<Th>{translate('::App.Listform.ListformField.ValueType')}</Th>
<Th>{translate('::App.Listform.ListformField.Value')}</Th>
<Th>{translate('::ListForms.ListFormEdit.SqlQuery')}</Th>
<Th>{translate('::App.ListFormEdit.SqlQuery')}</Th>
</Tr>
</THead>
<TBody>
@ -173,7 +173,7 @@ function FormTabDatabaseSelect({
<Card
className="my-2"
header={translate('::ListForms.ListFormEdit.DatabasePreviewTSQL')}
header={translate('::App.ListFormEdit.DatabasePreviewTSQL')}
>
<span>{sqlQuery}</span>
<Button
@ -186,7 +186,7 @@ function FormTabDatabaseSelect({
setSqlQuery(resp.data)
}}
>
{translate('::Preview')}
{translate('::App.Listform.ListformField.Preview')}
</Button>
</Card>
</FormContainer>

View file

@ -54,7 +54,7 @@ function FormTabDatabaseUpdate({
<FormContainer size="sm">
<Card className="my-2">
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseUpdateServiceAddress')}
label={translate('::App.ListFormEdit.DatabaseUpdateServiceAddress')}
invalid={errors.updateServiceAddress && touched.updateServiceAddress}
errorMessage={errors.updateServiceAddress}
>
@ -62,13 +62,13 @@ function FormTabDatabaseUpdate({
type="text"
autoComplete="off"
name="updateServiceAddress"
placeholder={translate('::ListForms.ListFormEdit.DatabaseUpdateServiceAddress')}
placeholder={translate('::App.ListFormEdit.DatabaseUpdateServiceAddress')}
component={Input}
/>
</FormItem>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseUpdateCommand')}
label={translate('::App.ListFormEdit.DatabaseUpdateCommand')}
invalid={errors.updateCommand && touched.updateCommand}
errorMessage={errors.updateCommand}
>
@ -76,14 +76,14 @@ function FormTabDatabaseUpdate({
type="text"
autoComplete="off"
name="updateCommand"
placeholder={translate('::ListForms.ListFormEdit.DatabaseUpdateCommand')}
placeholder={translate('::App.ListFormEdit.DatabaseUpdateCommand')}
component={Input}
textArea={true}
rows={4}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseUpdateBeforeCommand')}
label={translate('::App.ListFormEdit.DatabaseUpdateBeforeCommand')}
invalid={errors.updateBeforeCommand && touched.updateBeforeCommand}
errorMessage={errors.updateBeforeCommand}
>
@ -92,7 +92,7 @@ function FormTabDatabaseUpdate({
autoComplete="off"
name="updateBeforeCommand"
placeholder={translate(
'::ListForms.ListFormEdit.DatabaseUpdateBeforeCommand',
'::App.ListFormEdit.DatabaseUpdateBeforeCommand',
)}
component={Input}
textArea={true}
@ -100,7 +100,7 @@ function FormTabDatabaseUpdate({
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DatabaseUpdateAfterCommand')}
label={translate('::App.ListFormEdit.DatabaseUpdateAfterCommand')}
invalid={errors.updateAfterCommand && touched.updateAfterCommand}
errorMessage={errors.updateAfterCommand}
>
@ -108,7 +108,7 @@ function FormTabDatabaseUpdate({
type="text"
autoComplete="off"
name="updateAfterCommand"
placeholder={translate('::ListForms.ListFormEdit.DatabaseUpdateAfterCommand')}
placeholder={translate('::App.ListFormEdit.DatabaseUpdateAfterCommand')}
component={Input}
textArea={true}
rows={4}
@ -116,16 +116,16 @@ function FormTabDatabaseUpdate({
</FormItem>
</div>
<Button block size="sm" variant="solid" loading={isSubmitting}>
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</Card>
<Card
className="my-2"
bodyClass="p-0"
header={translate('::ListForms.ListFormEdit.DatabaseUpdateFieldsDefaultValues')}
header={translate('::App.ListFormEdit.DatabaseUpdateFieldsDefaultValues')}
headerExtra={translate(
'::ListForms.ListFormEdit.DatabaseUpdateFieldsDefaultValuesDescription',
'::App.ListFormEdit.DatabaseUpdateFieldsDefaultValuesDescription',
)}
>
<Table compact>
@ -152,11 +152,11 @@ function FormTabDatabaseUpdate({
}}
/>
</Th>
<Th>{translate('::ListForms.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::ListForms.ListFormEdit.FieldDbType')}</Th>
<Th>{translate('::ListForms.ListFormEdit.CustomValueType')}</Th>
<Th>{translate('::App.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::App.ListFormEdit.FieldDbType')}</Th>
<Th>{translate('::App.Listform.ListformField.ValueType')}</Th>
<Th>{translate('::App.Listform.ListformField.Value')}</Th>
<Th>{translate('::ListForms.ListFormEdit.SqlQuery')}</Th>
<Th>{translate('::App.ListFormEdit.SqlQuery')}</Th>
</Tr>
</THead>
<TBody>
@ -220,7 +220,7 @@ function FormTabDatabaseUpdate({
<Card
className="my-2"
header={translate('::ListForms.ListFormEdit.DatabasePreviewTSQL')}
header={translate('::App.ListFormEdit.DatabasePreviewTSQL')}
>
<span>{sqlQuery}</span>
<Button
@ -233,7 +233,7 @@ function FormTabDatabaseUpdate({
setSqlQuery(resp.data)
}}
>
{translate('::Preview')}
{translate('::App.Listform.ListformField.Preview')}
</Button>
</Card>
</FormContainer>

View file

@ -103,7 +103,7 @@ function FormTabDetails(
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.ListFormType')}
label={translate('::App.ListFormEdit.ListFormType')}
invalid={errors.listFormType && touched.listFormType}
errorMessage={errors.listFormType}
>
@ -111,7 +111,7 @@ function FormTabDetails(
type="text"
autoComplete="off"
name="listFormType"
placeholder={translate('::ListForms.ListFormEdit.ListFormType')}
placeholder={translate('::App.ListFormEdit.ListFormType')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -132,7 +132,7 @@ function FormTabDetails(
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsTitle')}
label={translate('::App.Listform.ListformField.Title')}
invalid={errors.title && touched.title}
errorMessage={errors.title}
>
@ -140,13 +140,13 @@ function FormTabDetails(
type="text"
autoComplete="off"
name="title"
placeholder={translate('::ListForms.ListFormEdit.DetailsTitle')}
placeholder={translate('::App.Listform.ListformField.Title')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsName')}
label={translate('::App.ListFormEdit.DetailsName')}
invalid={errors.name && touched.name}
errorMessage={errors.name}
>
@ -154,13 +154,13 @@ function FormTabDetails(
type="text"
autoComplete="off"
name="name"
placeholder={translate('::ListForms.ListFormEdit.DetailsName')}
placeholder={translate('::App.ListFormEdit.DetailsName')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsDescription')}
label={translate('::App.Listform.ListformField.Description')}
invalid={errors.description && touched.description}
errorMessage={errors.description}
>
@ -168,19 +168,19 @@ function FormTabDetails(
type="text"
autoComplete="off"
name="description"
placeholder={translate('::ListForms.ListFormEdit.DetailsDescription')}
placeholder={translate('::App.Listform.ListformField.Description')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.ShowNote')}
label={translate('::App.ListFormEdit.ShowNote')}
invalid={errors.showNote && touched.showNote}
errorMessage={errors.showNote}
>
<Field
name="showNote"
placeholder={translate('::ListForms.ListFormEdit.ShowNote')}
placeholder={translate('::App.ListFormEdit.ShowNote')}
component={Checkbox}
/>
</FormItem>
@ -188,7 +188,7 @@ function FormTabDetails(
<Card className="my-2" header="Layout & Popup">
<div className="flex gap-2">
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsWidth')}
label={translate('::App.ListFormEdit.DetailsWidth')}
invalid={errors.width && touched.width}
errorMessage={errors.width}
>
@ -197,12 +197,12 @@ function FormTabDetails(
type="number"
autoComplete="off"
name="width"
placeholder={translate('::ListForms.ListFormEdit.DetailsWidth')}
placeholder={translate('::App.ListFormEdit.DetailsWidth')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsHeight')}
label={translate('::App.ListFormEdit.DetailsHeight')}
invalid={errors.width && touched.width}
errorMessage={errors.width}
>
@ -211,37 +211,37 @@ function FormTabDetails(
type="number"
autoComplete="off"
name="height"
placeholder={translate('::ListForms.ListFormEdit.DetailsHeight')}
placeholder={translate('::App.ListFormEdit.DetailsHeight')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsFullHeight')}
label={translate('::App.ListFormEdit.DetailsFullHeight')}
invalid={errors.fullHeight && touched.fullHeight}
errorMessage={errors.fullHeight}
>
<Field
name="fullHeight"
placeholder={translate('::ListForms.ListFormEdit.DetailsFullHeight')}
placeholder={translate('::App.ListFormEdit.DetailsFullHeight')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.IsSub')}
label={translate('::App.ListFormEdit.IsSub')}
invalid={errors.isSubForm && touched.isSubForm}
errorMessage={errors.isSubForm}
>
<Field
name="isSubForm"
placeholder={translate('::ListForms.ListFormEdit.IsSub')}
placeholder={translate('::App.ListFormEdit.IsSub')}
component={Checkbox}
/>
</FormItem>
</div>
<FormItem
label={translate('::ListForms.ListFormEdit.SubFormsListFormType')}
label={translate('::App.ListFormEdit.SubFormsListFormType')}
invalid={errors.subFormsListFormType && touched.subFormsListFormType}
errorMessage={errors.subFormsListFormType}
>
@ -249,7 +249,7 @@ function FormTabDetails(
type="text"
autoComplete="off"
name="subFormsListFormType"
placeholder={translate('::ListForms.ListFormEdit.SubFormsListFormType')}
placeholder={translate('::App.ListFormEdit.SubFormsListFormType')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -271,7 +271,7 @@ function FormTabDetails(
{values.listFormType === 'List' && (
<>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsLayoutDto.DefaultLayout')}
label={translate('::App.ListFormEditDetailsLayoutDto.DefaultLayout')}
invalid={errors.layoutDto?.defaultLayout && touched.layoutDto?.defaultLayout}
errorMessage={errors.layoutDto?.defaultLayout}
>
@ -280,7 +280,7 @@ function FormTabDetails(
autoComplete="off"
name="layoutDto.defaultLayout"
placeholder={translate(
'::ListForms.ListFormEdit.DetailsLayoutDto.DefaultLayout',
'::App.ListFormEditDetailsLayoutDto.DefaultLayout',
)}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
@ -300,7 +300,7 @@ function FormTabDetails(
<div className="flex flex-wrap gap-2">
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsLayoutDto.GridLayout')}
label={translate('::App.ListFormEditDetailsLayoutDto.GridLayout')}
invalid={errors.layoutDto?.grid && touched.layoutDto?.grid}
errorMessage={errors.layoutDto?.grid}
>
@ -309,14 +309,14 @@ function FormTabDetails(
autoComplete="off"
name="layoutDto.grid"
placeholder={translate(
'::ListForms.ListFormEdit.DetailsLayoutDto.GridLayout',
'::App.ListFormEditDetailsLayoutDto.GridLayout',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsLayoutDto.CardLayout')}
label={translate('::App.ListFormEditDetailsLayoutDto.CardLayout')}
invalid={errors.layoutDto?.card && touched.layoutDto?.card}
errorMessage={errors.layoutDto?.card}
>
@ -325,14 +325,14 @@ function FormTabDetails(
autoComplete="off"
name="layoutDto.card"
placeholder={translate(
'::ListForms.ListFormEdit.DetailsLayoutDto.CardLayout',
'::App.ListFormEditDetailsLayoutDto.CardLayout',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsLayoutDto.PivotLayout')}
label={translate('::App.ListFormEditDetailsLayoutDto.PivotLayout')}
invalid={errors.layoutDto?.pivot && touched.layoutDto?.pivot}
errorMessage={errors.layoutDto?.pivot}
>
@ -341,14 +341,14 @@ function FormTabDetails(
autoComplete="off"
name="layoutDto.pivot"
placeholder={translate(
'::ListForms.ListFormEdit.DetailsLayoutDto.PivotLayout',
'::App.ListFormEditDetailsLayoutDto.PivotLayout',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsLayoutDto.ChartLayout')}
label={translate('::App.ListFormEditDetailsLayoutDto.ChartLayout')}
invalid={errors.layoutDto?.chart && touched.layoutDto?.chart}
errorMessage={errors.layoutDto?.chart}
>
@ -357,14 +357,14 @@ function FormTabDetails(
autoComplete="off"
name="layoutDto.chart"
placeholder={translate(
'::ListForms.ListFormEdit.DetailsLayoutDto.ChartLayout',
'::App.ListFormEditDetailsLayoutDto.ChartLayout',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsLayoutDto.TreeLayout')}
label={translate('::App.ListFormEditDetailsLayoutDto.TreeLayout')}
invalid={errors.layoutDto?.tree && touched.layoutDto?.tree}
errorMessage={errors.layoutDto?.tree}
>
@ -373,14 +373,14 @@ function FormTabDetails(
autoComplete="off"
name="layoutDto.tree"
placeholder={translate(
'::ListForms.ListFormEdit.DetailsLayoutDto.TreeLayout',
'::App.ListFormEditDetailsLayoutDto.TreeLayout',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsLayoutDto.GanttLayout')}
label={translate('::App.ListFormEditDetailsLayoutDto.GanttLayout')}
invalid={errors.layoutDto?.gantt && touched.layoutDto?.gantt}
errorMessage={errors.layoutDto?.gantt}
>
@ -389,7 +389,7 @@ function FormTabDetails(
autoComplete="off"
name="layoutDto.gantt"
placeholder={translate(
'::ListForms.ListFormEdit.DetailsLayoutDto.GanttLayout',
'::App.ListFormEditDetailsLayoutDto.GanttLayout',
)}
component={Checkbox}
/>
@ -397,7 +397,7 @@ function FormTabDetails(
<FormItem
label={translate(
'::ListForms.ListFormEdit.DetailsLayoutDto.SchedulerLayout',
'::App.ListFormEditDetailsLayoutDto.SchedulerLayout',
)}
invalid={errors.layoutDto?.scheduler && touched.layoutDto?.scheduler}
errorMessage={errors.layoutDto?.scheduler}
@ -407,14 +407,14 @@ function FormTabDetails(
autoComplete="off"
name="layoutDto.scheduler"
placeholder={translate(
'::ListForms.ListFormEdit.DetailsLayoutDto.SchedulerLayout',
'::App.ListFormEditDetailsLayoutDto.SchedulerLayout',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsLayoutDto.TodoLayout')}
label={translate('::App.ListFormEditDetailsLayoutDto.TodoLayout')}
invalid={errors.layoutDto?.todo && touched.layoutDto?.todo}
errorMessage={errors.layoutDto?.todo}
>
@ -470,7 +470,7 @@ function FormTabDetails(
</div>
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -46,7 +46,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
<div>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingAllowAdding')}
label={translate('::App.ListFormSchedulerOptions.AllowAdding')}
invalid={
errors.editingOptionDto?.allowAdding &&
touched.editingOptionDto?.allowAdding
@ -55,12 +55,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
>
<Field
name="editingOptionDto.allowAdding"
placeholder={translate('::ListForms.ListFormEdit.EditingAllowAdding')}
placeholder={translate('::App.ListFormSchedulerOptions.AllowAdding')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingAddPageUrl')}
label={translate('::App.ListFormEdit.EditingAddPageUrl')}
invalid={
errors.editingOptionDto?.addPageUrl &&
touched.editingOptionDto?.addPageUrl
@ -71,12 +71,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
type="text"
autoComplete="off"
name="editingOptionDto.addPageUrl"
placeholder={translate('::ListForms.ListFormEdit.EditingAddPageUrl')}
placeholder={translate('::App.ListFormEdit.EditingAddPageUrl')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowUpdating')}
label={translate('::App.ListFormEdit.AllowUpdating')}
invalid={
errors.editingOptionDto?.allowUpdating &&
touched.editingOptionDto?.allowUpdating
@ -85,13 +85,13 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
>
<Field
name="editingOptionDto.allowUpdating"
placeholder={translate('::ListForms.ListFormEdit.AllowUpdating')}
placeholder={translate('::App.ListFormEdit.AllowUpdating')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate(
'::ListForms.ListFormEdit.SendOnlyChangedFormValuesUpdate',
'::App.ListFormEdit.SendOnlyChangedFormValuesUpdate',
)}
invalid={
errors.editingOptionDto?.sendOnlyChangedFormValuesUpdate &&
@ -102,13 +102,13 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
<Field
name="editingOptionDto.sendOnlyChangedFormValuesUpdate"
placeholder={translate(
'::ListForms.ListFormEdit.SendOnlyChangedFormValuesUpdate',
'::App.ListFormEdit.SendOnlyChangedFormValuesUpdate',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingAllowDetail')}
label={translate('::App.ListFormEdit.EditingAllowDetail')}
invalid={
errors.editingOptionDto?.allowDetail &&
touched.editingOptionDto?.allowDetail
@ -117,12 +117,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
>
<Field
name="editingOptionDto.allowDetail"
placeholder={translate('::ListForms.ListFormEdit.EditingAllowDetail')}
placeholder={translate('::App.ListFormEdit.EditingAllowDetail')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingAllowDuplicate')}
label={translate('::App.ListFormEdit.EditingAllowDuplicate')}
invalid={
errors.editingOptionDto?.allowDuplicate &&
touched.editingOptionDto?.allowDuplicate
@ -131,12 +131,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
>
<Field
name="editingOptionDto.allowDuplicate"
placeholder={translate('::ListForms.ListFormEdit.EditingAllowDuplicate')}
placeholder={translate('::App.ListFormEdit.EditingAllowDuplicate')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingAllowDeleting')}
label={translate('::App.ListFormEdit.EditingAllowDeleting')}
invalid={
errors.editingOptionDto?.allowDeleting &&
touched.editingOptionDto?.allowDeleting
@ -145,12 +145,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
>
<Field
name="editingOptionDto.allowDeleting"
placeholder={translate('::ListForms.ListFormEdit.EditingAllowDeleting')}
placeholder={translate('::App.ListFormEdit.EditingAllowDeleting')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingAllowDeleteAll')}
label={translate('::App.ListFormEdit.EditingAllowDeleteAll')}
invalid={
errors.editingOptionDto?.allowAllDeleting &&
touched.editingOptionDto?.allowAllDeleting
@ -159,7 +159,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
>
<Field
name="editingOptionDto.allowAllDeleting"
placeholder={translate('::ListForms.ListFormEdit.EditingAllowDeleteAll')}
placeholder={translate('::App.ListFormEdit.EditingAllowDeleteAll')}
component={Checkbox}
/>
</FormItem>
@ -167,7 +167,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
<div>
<div className="grid grid-cols-1 md:grid-cols-3 gap-3">
<FormItem
label={translate('::ListForms.ListFormEdit.EditingConfirmDelete')}
label={translate('::App.ListFormEdit.EditingConfirmDelete')}
invalid={
errors.editingOptionDto?.confirmDelete &&
touched.editingOptionDto?.confirmDelete
@ -176,12 +176,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
>
<Field
name="editingOptionDto.confirmDelete"
placeholder={translate('::ListForms.ListFormEdit.EditingConfirmDelete')}
placeholder={translate('::App.ListFormEdit.EditingConfirmDelete')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingUseIcons')}
label={translate('::App.ListFormEdit.EditingUseIcons')}
invalid={
errors.editingOptionDto?.useIcons && touched.editingOptionDto?.useIcons
}
@ -189,12 +189,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
>
<Field
name="editingOptionDto.useIcons"
placeholder={translate('::ListForms.ListFormEdit.EditingUseIcons')}
placeholder={translate('::App.ListFormEdit.EditingUseIcons')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingSelectTextOnEditStart')}
label={translate('::App.ListFormEdit.EditingSelectTextOnEditStart')}
invalid={
errors.editingOptionDto?.selectTextOnEditStart &&
touched.editingOptionDto?.selectTextOnEditStart
@ -204,14 +204,14 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
<Field
name="editingOptionDto.selectTextOnEditStart"
placeholder={translate(
'::ListForms.ListFormEdit.EditingSelectTextOnEditStart',
'::App.ListFormEdit.EditingSelectTextOnEditStart',
)}
component={Checkbox}
/>
</FormItem>
</div>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingMode')}
label={translate('::App.ListFormEdit.EditingMode')}
invalid={errors.editingOptionDto?.mode && touched.editingOptionDto?.mode}
errorMessage={errors.editingOptionDto?.mode}
>
@ -219,7 +219,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
type="text"
autoComplete="off"
name="editingOptionDto.mode"
placeholder={translate('::SidePanel.Mode')}
placeholder={translate('::App.Platform.Mode')}
>
{({ field, form }: FieldProps<GridsEditMode>) => (
<Select
@ -236,7 +236,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingRefreshMode')}
label={translate('::App.ListFormEdit.EditingRefreshMode')}
invalid={
errors.editingOptionDto?.refreshMode &&
touched.editingOptionDto?.refreshMode
@ -247,7 +247,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
type="text"
autoComplete="off"
name="editingOptionDto.refreshMode"
placeholder={translate('::ListForms.ListFormEdit.EditingRefreshMode')}
placeholder={translate('::App.ListFormEdit.EditingRefreshMode')}
>
{({ field, form }: FieldProps<GridsEditRefreshMode>) => (
<Select
@ -264,7 +264,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingNewRowPosition')}
label={translate('::App.ListFormEdit.EditingNewRowPosition')}
invalid={
errors.editingOptionDto?.newRowPosition &&
touched.editingOptionDto?.newRowPosition
@ -275,7 +275,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
type="text"
autoComplete="off"
name="editingOptionDto.newRowPosition"
placeholder={translate('::ListForms.ListFormEdit.EditingNewRowPosition')}
placeholder={translate('::App.ListFormEdit.EditingNewRowPosition')}
>
{({ field, form }: FieldProps<NewRowPosition>) => (
<Select
@ -292,7 +292,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingStartEditAction')}
label={translate('::App.ListFormEdit.EditingStartEditAction')}
invalid={
errors.editingOptionDto?.startEditAction &&
touched.editingOptionDto?.startEditAction
@ -303,7 +303,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
type="text"
autoComplete="off"
name="editingOptionDto.startEditAction"
placeholder={translate('::ListForms.ListFormEdit.EditingStartEditAction')}
placeholder={translate('::App.ListFormEdit.EditingStartEditAction')}
>
{({ field, form }: FieldProps<StartEditAction>) => (
<Select
@ -321,7 +321,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingEditColumnName')}
label={translate('::App.ListFormEdit.EditingEditColumnName')}
invalid={
errors.editingOptionDto?.editColumnName &&
touched.editingOptionDto?.editColumnName
@ -332,7 +332,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
type="text"
autoComplete="off"
name="editingOptionDto.editColumnName"
placeholder={translate('::ListForms.ListFormEdit.EditingEditColumnName')}
placeholder={translate('::App.ListFormEdit.EditingEditColumnName')}
component={Input}
/>
</FormItem>
@ -343,7 +343,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
{values.editingOptionDto.mode === 'popup' && (
<>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingShowTitle')}
label={translate('::App.ListFormEdit.EditingShowTitle')}
invalid={
errors.editingOptionDto?.popup?.showTitle &&
touched.editingOptionDto?.popup?.showTitle
@ -352,12 +352,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
>
<Field
name="editingOptionDto.popup.showTitle"
placeholder={translate('::ListForms.ListFormEdit.EditingShowTitle')}
placeholder={translate('::App.ListFormEdit.EditingShowTitle')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsTitle')}
label={translate('::App.Listform.ListformField.Title')}
invalid={
errors.editingOptionDto?.popup?.title &&
touched.editingOptionDto?.popup?.title
@ -368,12 +368,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
type="text"
autoComplete="off"
name="editingOptionDto.popup.title"
placeholder={translate('::ListForms.ListFormEdit.DetailsTitle')}
placeholder={translate('::App.Listform.ListformField.Title')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsWidth')}
label={translate('::App.ListFormEdit.DetailsWidth')}
invalid={
errors.editingOptionDto?.popup?.width &&
touched.editingOptionDto?.popup?.width
@ -385,12 +385,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
type="number"
autoComplete="off"
name="editingOptionDto.popup.width"
placeholder={translate('::ListForms.ListFormEdit.DetailsWidth')}
placeholder={translate('::App.ListFormEdit.DetailsWidth')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsHeight')}
label={translate('::App.ListFormEdit.DetailsHeight')}
invalid={
errors.editingOptionDto?.popup?.height &&
touched.editingOptionDto?.popup?.height
@ -402,12 +402,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
type="number"
autoComplete="off"
name="editingOptionDto.popup.height"
placeholder={translate('::ListForms.ListFormEdit.DetailsHeight')}
placeholder={translate('::App.ListFormEdit.DetailsHeight')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingFullScreen')}
label={translate('::App.Platform.Fullscreen')}
invalid={
errors.editingOptionDto?.popup?.fullScreen &&
touched.editingOptionDto?.popup?.fullScreen
@ -416,12 +416,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
>
<Field
name="editingOptionDto.popup.fullScreen"
placeholder={translate('::ListForms.ListFormEdit.EditingFullScreen')}
placeholder={translate('::App.Platform.Fullscreen')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.ResizeEnabled')}
label={translate('::App.ListFormEdit.ResizeEnabled')}
invalid={
errors.editingOptionDto?.popup?.resizeEnabled &&
touched.editingOptionDto?.popup?.resizeEnabled
@ -430,12 +430,12 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
>
<Field
name="editingOptionDto.popup.resizeEnabled"
placeholder={translate('::ListForms.ListFormEdit.ResizeEnabled')}
placeholder={translate('::App.ListFormEdit.ResizeEnabled')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EditingHideOnOutsideClick')}
label={translate('::App.ListFormEdit.EditingHideOnOutsideClick')}
invalid={
errors.editingOptionDto?.popup?.hideOnOutsideClick &&
touched.editingOptionDto?.popup?.hideOnOutsideClick
@ -445,7 +445,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
<Field
name="editingOptionDto.popup.hideOnOutsideClick"
placeholder={translate(
'::ListForms.ListFormEdit.EditingHideOnOutsideClick',
'::App.ListFormEdit.EditingHideOnOutsideClick',
)}
component={Checkbox}
/>
@ -455,7 +455,7 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
</Card>
</div>
<Button block size="sm" variant="solid" loading={isSubmitting}>
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -28,8 +28,8 @@ function FormTabEditForm(props: { listFormCode: string }) {
<Card
className="my-2"
bodyClass="p-0"
header={translate('::ListForms.ListFormEdit.EditingFormFormFields')}
headerExtra={translate('::ListForms.ListFormEdit.EditingFormFormFieldsDescription')}
header={translate('::App.ListFormEdit.EditingFormFormFields')}
headerExtra={translate('::App.ListFormEdit.EditingFormFormFieldsDescription')}
>
<Table compact>
<THead>
@ -55,10 +55,10 @@ function FormTabEditForm(props: { listFormCode: string }) {
/>
</Th>
<Th>{translate('::App.Listform.ListformField.Order')}</Th>
<Th>{translate('::ListForms.ListFormEdit.EditingFormItemType')}</Th>
<Th>{translate('::ListForms.ListFormEdit.DetailsTitle')}</Th>
<Th>{translate('::ListForms.ListFormEdit.EditingFormColumnCount')}</Th>
<Th>{translate('::ListForms.ListFormEdit.EditingFormColumnSpan')}</Th>
<Th>{translate('::App.ListFormEdit.EditingFormItemType')}</Th>
<Th>{translate('::App.Listform.ListformField.Title')}</Th>
<Th>{translate('::App.ListFormEdit.EditingFormColumnCount')}</Th>
<Th>{translate('::App.ListFormEdit.EditingFormColumnSpan')}</Th>
</Tr>
</THead>
<TBody>

View file

@ -28,8 +28,8 @@ function FormTabExtraFilters(props: { listFormCode: string }) {
<Card
className="my-2"
bodyClass="p-0"
header={translate('::ListForms.ListFormEdit.ExtraFilters')}
headerExtra={translate('::ListForms.ListFormEdit.ExtraFiltersDescription')}
header={translate('::App.ListFormEdit.ExtraFilters')}
headerExtra={translate('::App.ListFormEdit.ExtraFiltersDescription')}
>
<Table compact>
<THead>
@ -54,12 +54,12 @@ function FormTabExtraFilters(props: { listFormCode: string }) {
}}
/>
</Th>
<Th>{translate('::ListForms.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::ListForms.ListFormEdit.DetailsTitle')}</Th>
<Th>{translate('::ListForms.ListFormEdit.ExtraOperator')}</Th>
<Th>{translate('::ListForms.ListFormEdit.ExtraDefaultValue')}</Th>
<Th>{translate('::ListForms.ListFormEdit.ExtraControlType')}</Th>
<Th>{translate('::ListForms.ListFormEdit.SqlQuery')}</Th>
<Th>{translate('::App.ListFormFieldEdit.FieldName')}</Th>
<Th>{translate('::App.Listform.ListformField.Title')}</Th>
<Th>{translate('::App.Listform.ListformField.Operator')}</Th>
<Th>{translate('::App.Listform.ListformField.DefaultValue')}</Th>
<Th>{translate('::App.ListFormEdit.ExtraControlType')}</Th>
<Th>{translate('::App.ListFormEdit.SqlQuery')}</Th>
</Tr>
</THead>
<TBody>

View file

@ -47,31 +47,31 @@ function FormTabFilters(props: FormEditProps) {
<Tabs defaultValue="tabRowFilter">
<TabList className="flex-wrap my-3">
<TabNav value="tabRowFilter">
{translate('::ListForms.ListFormEdit.FilteringSortingFilterRow')}
{translate('::App.ListFormEdit.FilteringSortingFilterRow')}
</TabNav>
<TabNav value="tabHeaderFilter">
{translate('::ListForms.ListFormEdit.FilteringSortingHeaderFilter')}
{translate('::App.ListFormEdit.FilteringSortingHeaderFilter')}
</TabNav>
<TabNav value="tabFilterPanel">
{translate('::ListForms.ListFormEdit.FilteringSortingFilterPanel')}
{translate('::App.ListFormEdit.FilteringSortingFilterPanel')}
</TabNav>
</TabList>
<TabContent value="tabRowFilter">
<FormItem
label={translate('::ListForms.ListFormEdit.FilteringSortingFilterRowVisible')}
label={translate('::App.ListFormEdit.FilteringSortingFilterRowVisible')}
invalid={errors.filterRowDto?.visible && touched.filterRowDto?.visible}
errorMessage={errors.filterRowDto?.visible}
>
<Field
name="filterRowDto.visible"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingFilterRowVisible',
'::App.ListFormEdit.FilteringSortingFilterRowVisible',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.FilteringSortingApplyFilter')}
label={translate('::App.ListFormEdit.FilteringSortingApplyFilter')}
invalid={errors.filterRowDto?.applyFilter && touched.filterRowDto?.applyFilter}
errorMessage={errors.filterRowDto?.applyFilter}
>
@ -80,7 +80,7 @@ function FormTabFilters(props: FormEditProps) {
autoComplete="off"
name="filterRowDto.applyFilter"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingApplyFilter',
'::App.ListFormEdit.FilteringSortingApplyFilter',
)}
>
{({ field, form }: FieldProps<ApplyFilterMode>) => (
@ -99,7 +99,7 @@ function FormTabFilters(props: FormEditProps) {
</FormItem>
<FormItem
label={translate(
'::ListForms.ListFormEdit.FilteringSortingAllowUserUIFilterSave',
'::App.ListFormEdit.FilteringSortingAllowUserUIFilterSave',
)}
invalid={
errors.filterRowDto?.allowUserUiFilterSave &&
@ -110,7 +110,7 @@ function FormTabFilters(props: FormEditProps) {
<Field
name="filterRowDto.allowUserUiFilterSave"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingAllowUserUIFilterSave',
'::App.ListFormEdit.FilteringSortingAllowUserUIFilterSave',
)}
component={Checkbox}
/>
@ -119,7 +119,7 @@ function FormTabFilters(props: FormEditProps) {
<TabContent value="tabHeaderFilter">
<FormItem
label={translate(
'::ListForms.ListFormEdit.FilteringSortingHeaderFilterVisible',
'::App.ListFormEdit.FilteringSortingHeaderFilterVisible',
)}
invalid={errors.headerFilterDto?.visible && touched.headerFilterDto?.visible}
errorMessage={errors.headerFilterDto?.visible}
@ -127,13 +127,13 @@ function FormTabFilters(props: FormEditProps) {
<Field
name="headerFilterDto.visible"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingHeaderFilterVisible',
'::App.ListFormEdit.FilteringSortingHeaderFilterVisible',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormFieldEdit.HeaderingAllowSearch')}
label={translate('::App.ListFormFieldEdit.HeaderingAllowSearch')}
invalid={
errors.headerFilterDto?.allowSearch && touched.headerFilterDto?.allowSearch
}
@ -141,12 +141,12 @@ function FormTabFilters(props: FormEditProps) {
>
<Field
name="headerFilterDto.allowSearch"
placeholder={translate('::ListForms.ListFormFieldEdit.HeaderingAllowSearch')}
placeholder={translate('::App.ListFormFieldEdit.HeaderingAllowSearch')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsWidth')}
label={translate('::App.ListFormEdit.DetailsWidth')}
invalid={errors.headerFilterDto?.width && touched.headerFilterDto?.width}
errorMessage={errors.headerFilterDto?.width}
>
@ -155,12 +155,12 @@ function FormTabFilters(props: FormEditProps) {
type="number"
autoComplete="off"
name="headerFilterDto.width"
placeholder={translate('::ListForms.ListFormEdit.DetailsWidth')}
placeholder={translate('::App.ListFormEdit.DetailsWidth')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.DetailsHeight')}
label={translate('::App.ListFormEdit.DetailsHeight')}
invalid={errors.headerFilterDto?.height && touched.headerFilterDto?.height}
errorMessage={errors.headerFilterDto?.height}
>
@ -169,13 +169,13 @@ function FormTabFilters(props: FormEditProps) {
type="number"
autoComplete="off"
name="headerFilterDto.height"
placeholder={translate('::ListForms.ListFormEdit.DetailsHeight')}
placeholder={translate('::App.ListFormEdit.DetailsHeight')}
component={Input}
/>
</FormItem>
<FormItem
label={translate(
'::ListForms.ListFormEdit.FilteringSortingHeaderFilterSearchTimeout',
'::App.ListFormEdit.FilteringSortingHeaderFilterSearchTimeout',
)}
invalid={
errors.headerFilterDto?.searchTimeout &&
@ -189,7 +189,7 @@ function FormTabFilters(props: FormEditProps) {
autoComplete="off"
name="headerFilterDto.searchTimeout"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingHeaderFilterSearchTimeout',
'::App.ListFormEdit.FilteringSortingHeaderFilterSearchTimeout',
)}
component={Input}
/>
@ -197,21 +197,21 @@ function FormTabFilters(props: FormEditProps) {
</TabContent>
<TabContent value="tabFilterPanel">
<FormItem
label={translate('::ListForms.ListFormEdit.FilteringSortingFilterPanelVisible')}
label={translate('::App.ListFormEdit.FilteringSortingFilterPanelVisible')}
invalid={errors.filterPanelDto?.visible && touched.filterPanelDto?.visible}
errorMessage={errors.filterPanelDto?.visible}
>
<Field
name="filterPanelDto.visible"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingFilterPanelVisible',
'::App.ListFormEdit.FilteringSortingFilterPanelVisible',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate(
'::ListForms.ListFormEdit.FilteringSortingFilterPanelFilterEnabled',
'::App.ListFormEdit.FilteringSortingFilterPanelFilterEnabled',
)}
invalid={
errors.filterPanelDto?.filterEnabled && touched.filterPanelDto?.filterEnabled
@ -221,14 +221,14 @@ function FormTabFilters(props: FormEditProps) {
<Field
name="filterPanelDto.filterEnabled"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingFilterPanelFilterEnabled',
'::App.ListFormEdit.FilteringSortingFilterPanelFilterEnabled',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate(
'::ListForms.ListFormEdit.FilteringSortingTexts.FilterEnabledHint',
'::App.ListFormEditFilteringSortingTexts.FilterEnabledHint',
)}
invalid={
errors.filterPanelDto?.texts?.filterEnabledHint &&
@ -241,26 +241,26 @@ function FormTabFilters(props: FormEditProps) {
autoComplete="off"
name="filterPanelDto.texts.filterEnabledHint"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingTexts.FilterEnabledHint',
'::App.ListFormEditFilteringSortingTexts.FilterEnabledHint',
)}
component={Input}
/>
</FormItem>
<FormItem
label={translate(
'::ListForms.ListFormEdit.FilteringSortingFilterPanelCustomizeText',
'::App.ListFormEdit.FilteringSortingFilterPanelCustomizeText',
)}
>
<Field
name="filterPanelDto.customizeText"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingFilterPanelCustomizeText',
'::App.ListFormEdit.FilteringSortingFilterPanelCustomizeText',
)}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.FilteringSortingTexts.ClearFilter')}
label={translate('::App.ListFormEditFilteringSortingTexts.ClearFilter')}
invalid={
errors.filterPanelDto?.texts?.clearFilter &&
touched.filterPanelDto?.texts?.clearFilter
@ -272,13 +272,13 @@ function FormTabFilters(props: FormEditProps) {
autoComplete="off"
name="filterPanelDto.texts.clearFilter"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingTexts.ClearFilter',
'::App.ListFormEditFilteringSortingTexts.ClearFilter',
)}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.FilteringSortingTexts.CreateFilter')}
label={translate('::App.ListFormEditFilteringSortingTexts.CreateFilter')}
invalid={
errors.filterPanelDto?.texts?.createFilter &&
touched.filterPanelDto?.texts?.createFilter
@ -290,7 +290,7 @@ function FormTabFilters(props: FormEditProps) {
autoComplete="off"
name="filterPanelDto.texts.createFilter"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingTexts.CreateFilter',
'::App.ListFormEditFilteringSortingTexts.CreateFilter',
)}
component={Input}
/>
@ -299,7 +299,7 @@ function FormTabFilters(props: FormEditProps) {
</Tabs>
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -86,7 +86,7 @@ function FormTabGantt(props: FormEditProps) {
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
<Card
className="mt-4"
header={translate('::ListForms.SchedulerOptions.BasicSettings')}
header={translate('::App.ListFormSchedulerOptions.BasicSettings')}
>
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
<div>
@ -116,7 +116,7 @@ function FormTabGantt(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.ParentIdExpr')}
label={translate('::App.ListFormEdit.ParentIdExpr')}
invalid={
errors.ganttOptionDto?.parentIdExpr && touched.ganttOptionDto?.parentIdExpr
}
@ -125,7 +125,7 @@ function FormTabGantt(props: FormEditProps) {
<Field
type="text"
name="ganttOptionDto.parentIdExpr"
placeholder={translate('::ListForms.ListFormEdit.ParentIdExpr')}
placeholder={translate('::App.ListFormEdit.ParentIdExpr')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -143,7 +143,7 @@ function FormTabGantt(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.HasItemsExpr')}
label={translate('::App.ListFormEdit.HasItemsExpr')}
invalid={
errors.ganttOptionDto?.hasItemsExpr && touched.ganttOptionDto?.hasItemsExpr
}
@ -153,13 +153,13 @@ function FormTabGantt(props: FormEditProps) {
type="text"
autoComplete="off"
name="ganttOptionDto.hasItemsExpr"
placeholder={translate('::ListForms.ListFormEdit.HasItemsExpr')}
placeholder={translate('::App.ListFormEdit.HasItemsExpr')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.RootValue')}
label={translate('::App.ListFormEdit.RootValue')}
invalid={
!!(errors.ganttOptionDto?.rootValue && touched.ganttOptionDto?.rootValue)
}
@ -169,13 +169,13 @@ function FormTabGantt(props: FormEditProps) {
type="text"
autoComplete="off"
name="ganttOptionDto.rootValue"
placeholder={translate('::ListForms.ListFormEdit.RootValue')}
placeholder={translate('::App.ListFormEdit.RootValue')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AutoExpandAll')}
label={translate('::App.ListFormEdit.AutoExpandAll')}
invalid={
errors.ganttOptionDto?.autoExpandAll &&
touched.ganttOptionDto?.autoExpandAll
@ -184,13 +184,13 @@ function FormTabGantt(props: FormEditProps) {
>
<Field
name="ganttOptionDto.autoExpandAll"
placeholder={translate('::ListForms.ListFormEdit.AutoExpandAll')}
placeholder={translate('::App.ListFormEdit.AutoExpandAll')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.RecursiveSelection')}
label={translate('::App.ListFormEdit.RecursiveSelection')}
invalid={
errors.ganttOptionDto?.recursiveSelection &&
touched.ganttOptionDto?.recursiveSelection
@ -199,14 +199,14 @@ function FormTabGantt(props: FormEditProps) {
>
<Field
name="ganttOptionDto.recursiveSelection"
placeholder={translate('::ListForms.ListFormEdit.RecursiveSelection')}
placeholder={translate('::App.ListFormEdit.RecursiveSelection')}
component={Checkbox}
/>
</FormItem>
</div>
<div>
<FormItem
label={translate('::ListForms.ListFormEdit.ScaleType')}
label={translate('::App.ListFormEdit.ScaleType')}
invalid={
errors.ganttOptionDto?.scaleType && touched.ganttOptionDto?.scaleType
}
@ -215,7 +215,7 @@ function FormTabGantt(props: FormEditProps) {
<Field
type="text"
name="ganttOptionDto.scaleType"
placeholder={translate('::ListForms.ListFormEdit.ScaleType')}
placeholder={translate('::App.ListFormEdit.ScaleType')}
>
{({ field, form }: FieldProps<GanttScaleType>) => (
<Select
@ -233,7 +233,7 @@ function FormTabGantt(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.TitleExpr')}
label={translate('::App.ListFormEdit.TitleExpr')}
invalid={
errors.ganttOptionDto?.titleExpr && touched.ganttOptionDto?.titleExpr
}
@ -242,7 +242,7 @@ function FormTabGantt(props: FormEditProps) {
<Field
type="text"
name="ganttOptionDto.titleExpr"
placeholder={translate('::ListForms.ListFormEdit.TitleExpr')}
placeholder={translate('::App.ListFormEdit.TitleExpr')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -260,7 +260,7 @@ function FormTabGantt(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.StartExpr')}
label={translate('::App.ListFormEdit.StartExpr')}
invalid={
errors.ganttOptionDto?.startExpr && touched.ganttOptionDto?.startExpr
}
@ -269,7 +269,7 @@ function FormTabGantt(props: FormEditProps) {
<Field
type="text"
name="ganttOptionDto.startExpr"
placeholder={translate('::ListForms.ListFormEdit.StartExpr')}
placeholder={translate('::App.ListFormEdit.StartExpr')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -287,14 +287,14 @@ function FormTabGantt(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.EndExpr')}
label={translate('::App.ListFormEdit.EndExpr')}
invalid={errors.ganttOptionDto?.endExpr && touched.ganttOptionDto?.endExpr}
errorMessage={errors.ganttOptionDto?.endExpr}
>
<Field
type="text"
name="ganttOptionDto.endExpr"
placeholder={translate('::ListForms.ListFormEdit.EndExpr')}
placeholder={translate('::App.ListFormEdit.EndExpr')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -312,7 +312,7 @@ function FormTabGantt(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.ProgressExpr')}
label={translate('::App.ListFormEdit.ProgressExpr')}
invalid={
errors.ganttOptionDto?.progressExpr && touched.ganttOptionDto?.progressExpr
}
@ -321,7 +321,7 @@ function FormTabGantt(props: FormEditProps) {
<Field
type="text"
name="ganttOptionDto.progressExpr"
placeholder={translate('::ListForms.ListFormEdit.ProgressExpr')}
placeholder={translate('::App.ListFormEdit.ProgressExpr')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -343,12 +343,12 @@ function FormTabGantt(props: FormEditProps) {
<Card
className="mt-4"
header={translate('::ListForms.SchedulerOptions.InteractionSettings')}
header={translate('::App.ListFormSchedulerOptions.InteractionSettings')}
>
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
<div>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowEditing')}
label={translate('::App.ListFormEdit.AllowEditing')}
invalid={
errors.ganttOptionDto?.allowEditing && touched.ganttOptionDto?.allowEditing
}
@ -356,13 +356,13 @@ function FormTabGantt(props: FormEditProps) {
>
<Field
name="ganttOptionDto.allowEditing"
placeholder={translate('::ListForms.ListFormEdit.AllowEditing')}
placeholder={translate('::App.ListFormEdit.AllowEditing')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowTaskUpdating')}
label={translate('::App.ListFormEdit.AllowTaskUpdating')}
invalid={
errors.ganttOptionDto?.allowTaskUpdating &&
touched.ganttOptionDto?.allowTaskUpdating
@ -371,13 +371,13 @@ function FormTabGantt(props: FormEditProps) {
>
<Field
name="ganttOptionDto.allowTaskUpdating"
placeholder={translate('::ListForms.ListFormEdit.AllowTaskUpdating')}
placeholder={translate('::App.ListFormEdit.AllowTaskUpdating')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowDependencyAdding')}
label={translate('::App.ListFormEdit.AllowDependencyAdding')}
invalid={
errors.ganttOptionDto?.allowDependencyAdding &&
touched.ganttOptionDto?.allowDependencyAdding
@ -386,13 +386,13 @@ function FormTabGantt(props: FormEditProps) {
>
<Field
name="ganttOptionDto.allowDependencyAdding"
placeholder={translate('::ListForms.ListFormEdit.AllowDependencyAdding')}
placeholder={translate('::App.ListFormEdit.AllowDependencyAdding')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowResourceAdding')}
label={translate('::App.ListFormEdit.AllowResourceAdding')}
invalid={
errors.ganttOptionDto?.allowResourceAdding &&
touched.ganttOptionDto?.allowResourceAdding
@ -401,13 +401,13 @@ function FormTabGantt(props: FormEditProps) {
>
<Field
name="ganttOptionDto.allowResourceAdding"
placeholder={translate('::ListForms.ListFormEdit.AllowResourceAdding')}
placeholder={translate('::App.ListFormEdit.AllowResourceAdding')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowResourceDeleting')}
label={translate('::App.ListFormEdit.AllowResourceDeleting')}
invalid={
errors.ganttOptionDto?.allowResourceDeleting &&
touched.ganttOptionDto?.allowResourceDeleting
@ -416,14 +416,14 @@ function FormTabGantt(props: FormEditProps) {
>
<Field
name="ganttOptionDto.allowResourceDeleting"
placeholder={translate('::ListForms.ListFormEdit.AllowResourceDeleting')}
placeholder={translate('::App.ListFormEdit.AllowResourceDeleting')}
component={Checkbox}
/>
</FormItem>
</div>
<div>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowTaskAdding')}
label={translate('::App.ListFormEdit.AllowTaskAdding')}
invalid={
errors.ganttOptionDto?.allowTaskAdding &&
touched.ganttOptionDto?.allowTaskAdding
@ -432,13 +432,13 @@ function FormTabGantt(props: FormEditProps) {
>
<Field
name="ganttOptionDto.allowTaskAdding"
placeholder={translate('::ListForms.ListFormEdit.AllowTaskAdding')}
placeholder={translate('::App.ListFormEdit.AllowTaskAdding')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowTaskDeleting')}
label={translate('::App.ListFormEdit.AllowTaskDeleting')}
invalid={
errors.ganttOptionDto?.allowTaskDeleting &&
touched.ganttOptionDto?.allowTaskDeleting
@ -447,13 +447,13 @@ function FormTabGantt(props: FormEditProps) {
>
<Field
name="ganttOptionDto.allowTaskDeleting"
placeholder={translate('::ListForms.ListFormEdit.AllowTaskDeleting')}
placeholder={translate('::App.ListFormEdit.AllowTaskDeleting')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowDependencyDeleting')}
label={translate('::App.ListFormEdit.AllowDependencyDeleting')}
invalid={
errors.ganttOptionDto?.allowDependencyDeleting &&
touched.ganttOptionDto?.allowDependencyDeleting
@ -462,13 +462,13 @@ function FormTabGantt(props: FormEditProps) {
>
<Field
name="ganttOptionDto.allowDependencyDeleting"
placeholder={translate('::ListForms.ListFormEdit.AllowDependencyDeleting')}
placeholder={translate('::App.ListFormEdit.AllowDependencyDeleting')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowResourceUpdating')}
label={translate('::App.ListFormEdit.AllowResourceUpdating')}
invalid={
errors.ganttOptionDto?.allowResourceUpdating &&
touched.ganttOptionDto?.allowResourceUpdating
@ -477,13 +477,13 @@ function FormTabGantt(props: FormEditProps) {
>
<Field
name="ganttOptionDto.allowResourceUpdating"
placeholder={translate('::ListForms.ListFormEdit.AllowResourceUpdating')}
placeholder={translate('::App.ListFormEdit.AllowResourceUpdating')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowTaskResourceUpdating')}
label={translate('::App.ListFormEdit.AllowTaskResourceUpdating')}
invalid={
errors.ganttOptionDto?.allowTaskResourceUpdating &&
touched.ganttOptionDto?.allowTaskResourceUpdating
@ -493,7 +493,7 @@ function FormTabGantt(props: FormEditProps) {
<Field
name="ganttOptionDto.allowTaskResourceUpdating"
placeholder={translate(
'::ListForms.ListFormEdit.AllowTaskResourceUpdating',
'::App.ListFormEdit.AllowTaskResourceUpdating',
)}
component={Checkbox}
/>
@ -511,7 +511,7 @@ function FormTabGantt(props: FormEditProps) {
type="submit"
className="my-2"
>
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -30,18 +30,18 @@ function FormTabGroup(props: FormEditProps) {
<Form>
<FormContainer size="sm">
<FormItem
label={translate('::ListForms.ListFormFieldEdit.OptionsVisible')}
label={translate('::App.ListFormEdit.CommandVisible')}
invalid={errors.groupPanelDto?.visible && touched.groupPanelDto?.visible}
errorMessage={errors.groupPanelDto?.visible}
>
<Field
name="groupPanelDto.visible"
placeholder={translate('::ListForms.ListFormFieldEdit.OptionsVisible')}
placeholder={translate('::App.ListFormEdit.CommandVisible')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AutoExpandAll')}
label={translate('::App.ListFormEdit.AutoExpandAll')}
invalid={
errors.groupPanelDto?.autoExpandAll && touched.groupPanelDto?.autoExpandAll
}
@ -49,13 +49,13 @@ function FormTabGroup(props: FormEditProps) {
>
<Field
name="groupPanelDto.autoExpandAll"
placeholder={translate('::ListForms.ListFormEdit.AutoExpandAll')}
placeholder={translate('::App.ListFormEdit.AutoExpandAll')}
component={Checkbox}
/>
</FormItem>
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -39,7 +39,7 @@ function FormTabPager(props: FormEditProps) {
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
<div className="my-2">
<FormItem
label={translate('::ListForms.ListFormEdit.PageSize')}
label={translate('::App.ListFormEdit.PageSize')}
invalid={errors.pageSize && touched.pageSize}
errorMessage={errors.pageSize}
>
@ -48,23 +48,23 @@ function FormTabPager(props: FormEditProps) {
className="w-20"
autoComplete="off"
name="pageSize"
placeholder={translate('::ListForms.ListFormEdit.PageSize')}
placeholder={translate('::App.ListFormEdit.PageSize')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormFieldEdit.OptionsVisible')}
label={translate('::App.ListFormEdit.CommandVisible')}
invalid={errors.pagerOptionDto?.visible && touched.pagerOptionDto?.visible}
errorMessage={errors.pagerOptionDto?.visible}
>
<Field
name="pagerOptionDto.visible"
placeholder={translate('::ListForms.ListFormFieldEdit.OptionsVisible')}
placeholder={translate('::App.ListFormEdit.CommandVisible')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.PagingShowPageSizeSelector')}
label={translate('::App.ListFormEdit.PagingShowPageSizeSelector')}
invalid={
errors.pagerOptionDto?.showPageSizeSelector &&
touched.pagerOptionDto?.showPageSizeSelector
@ -73,23 +73,23 @@ function FormTabPager(props: FormEditProps) {
>
<Field
name="pagerOptionDto.showPageSizeSelector"
placeholder={translate('::ListForms.ListFormEdit.PagingShowPageSizeSelector')}
placeholder={translate('::App.ListFormEdit.PagingShowPageSizeSelector')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.PagingShowInfo')}
label={translate('::App.ListFormEdit.PagingShowInfo')}
invalid={errors.pagerOptionDto?.showInfo && touched.pagerOptionDto?.showInfo}
errorMessage={errors.pagerOptionDto?.showInfo}
>
<Field
name="pagerOptionDto.showInfo"
placeholder={translate('::ListForms.ListFormEdit.PagingShowInfo')}
placeholder={translate('::App.ListFormEdit.PagingShowInfo')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.PagingShowNavigationButtons')}
label={translate('::App.ListFormEdit.PagingShowNavigationButtons')}
invalid={
errors.pagerOptionDto?.showNavigationButtons &&
touched.pagerOptionDto?.showNavigationButtons
@ -99,13 +99,13 @@ function FormTabPager(props: FormEditProps) {
<Field
name="pagerOptionDto.showNavigationButtons"
placeholder={translate(
'::ListForms.ListFormEdit.PagingShowNavigationButtons',
'::App.ListFormEdit.PagingShowNavigationButtons',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.PagingAllowedPageSizes')}
label={translate('::App.ListFormEdit.PagingAllowedPageSizes')}
invalid={
errors.pagerOptionDto?.allowedPageSizes &&
touched.pagerOptionDto?.allowedPageSizes
@ -116,14 +116,14 @@ function FormTabPager(props: FormEditProps) {
type="text"
autoComplete="off"
name="pagerOptionDto.allowedPageSizes"
placeholder={translate('::ListForms.ListFormEdit.PagingAllowedPageSizes')}
placeholder={translate('::App.ListFormEdit.PagingAllowedPageSizes')}
component={Input}
/>
</FormItem>
</div>
<div className="my-2">
<FormItem
label={translate('::ListForms.ListFormEdit.PagingInfoText')}
label={translate('::App.ListFormEdit.PagingInfoText')}
invalid={errors.pagerOptionDto?.infoText && touched.pagerOptionDto?.infoText}
errorMessage={errors.pagerOptionDto?.infoText}
>
@ -131,12 +131,12 @@ function FormTabPager(props: FormEditProps) {
type="text"
autoComplete="off"
name="pagerOptionDto.infoText"
placeholder={translate('::ListForms.ListFormEdit.PagingInfoText')}
placeholder={translate('::App.ListFormEdit.PagingInfoText')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.PagingDisplayMode')}
label={translate('::App.ListFormEdit.PagingDisplayMode')}
invalid={
errors.pagerOptionDto?.displayMode && touched.pagerOptionDto?.displayMode
}
@ -146,7 +146,7 @@ function FormTabPager(props: FormEditProps) {
type="text"
autoComplete="off"
name="pagerOptionDto.displayMode"
placeholder={translate('::ListForms.ListFormEdit.PagingDisplayMode')}
placeholder={translate('::App.ListFormEdit.PagingDisplayMode')}
>
{({ field, form }: FieldProps<PagerDisplayMode>) => (
<Select
@ -163,7 +163,7 @@ function FormTabPager(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.PagingScrollingMode')}
label={translate('::App.ListFormEdit.PagingScrollingMode')}
invalid={
errors.pagerOptionDto?.scrollingMode && touched.pagerOptionDto?.scrollingMode
}
@ -173,7 +173,7 @@ function FormTabPager(props: FormEditProps) {
type="text"
autoComplete="off"
name="pagerOptionDto.scrollingMode"
placeholder={translate('::ListForms.ListFormEdit.PagingScrollingMode')}
placeholder={translate('::App.ListFormEdit.PagingScrollingMode')}
>
{({ field, form }: FieldProps<ScrollMode | 'virtual'>) => (
<Select
@ -190,7 +190,7 @@ function FormTabPager(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.PagingLoadPanelEnabled')}
label={translate('::App.ListFormEdit.PagingLoadPanelEnabled')}
invalid={
errors.pagerOptionDto?.loadPanelEnabled &&
touched.pagerOptionDto?.loadPanelEnabled
@ -201,7 +201,7 @@ function FormTabPager(props: FormEditProps) {
type="text"
autoComplete="off"
name="pagerOptionDto.loadPanelEnabled"
placeholder={translate('::ListForms.ListFormEdit.PagingLoadPanelEnabled')}
placeholder={translate('::App.ListFormEdit.PagingLoadPanelEnabled')}
>
{({ field, form }: FieldProps<boolean | 'auto'>) => (
<Select
@ -218,7 +218,7 @@ function FormTabPager(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.PagingLoadPanelText')}
label={translate('::App.ListFormEdit.PagingLoadPanelText')}
invalid={
errors.pagerOptionDto?.loadPanelText && touched.pagerOptionDto?.loadPanelText
}
@ -228,7 +228,7 @@ function FormTabPager(props: FormEditProps) {
type="text"
autoComplete="off"
name="pagerOptionDto.loadPanelText"
placeholder={translate('::ListForms.ListFormEdit.PagingLoadPanelText')}
placeholder={translate('::App.ListFormEdit.PagingLoadPanelText')}
component={Input}
/>
</FormItem>
@ -236,7 +236,7 @@ function FormTabPager(props: FormEditProps) {
</div>
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -64,7 +64,7 @@ function FormTabPermissions(props: FormEditProps) {
<Form>
<FormContainer size="sm">
<FormItem
label={translate('::Create')}
label={translate('::App.Platform.Create')}
invalid={errors.permissionDto?.c && touched.permissionDto?.c}
errorMessage={errors.permissionDto?.c}
>
@ -72,7 +72,7 @@ function FormTabPermissions(props: FormEditProps) {
type="text"
autoComplete="off"
name="permissionDto.c"
placeholder={translate('::Create')}
placeholder={translate('::App.Platform.Create')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -89,7 +89,7 @@ function FormTabPermissions(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::Read')}
label={translate('::App.Platform.Read')}
invalid={errors.permissionDto?.r && touched.permissionDto?.r}
errorMessage={errors.permissionDto?.r}
>
@ -97,7 +97,7 @@ function FormTabPermissions(props: FormEditProps) {
type="text"
autoComplete="off"
name="permissionDto.r"
placeholder={translate('::Read')}
placeholder={translate('::App.Platform.Read')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -114,7 +114,7 @@ function FormTabPermissions(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::Update')}
label={translate('::App.Platform.Update')}
invalid={errors.permissionDto?.u && touched.permissionDto?.u}
errorMessage={errors.permissionDto?.u}
>
@ -122,7 +122,7 @@ function FormTabPermissions(props: FormEditProps) {
type="text"
autoComplete="off"
name="permissionDto.u"
placeholder={translate('::Update')}
placeholder={translate('::App.Platform.Update')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -139,7 +139,7 @@ function FormTabPermissions(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::Delete')}
label={translate('::App.Platform.Delete')}
invalid={errors.permissionDto?.d && touched.permissionDto?.d}
errorMessage={errors.permissionDto?.d}
>
@ -147,7 +147,7 @@ function FormTabPermissions(props: FormEditProps) {
type="text"
autoComplete="off"
name="permissionDto.d"
placeholder={translate('::Delete')}
placeholder={translate('::App.Platform.Delete')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -164,7 +164,7 @@ function FormTabPermissions(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.PermissionsExport')}
label={translate('::App.Platform.Export')}
invalid={errors.permissionDto?.e && touched.permissionDto?.e}
errorMessage={errors.permissionDto?.e}
>
@ -172,7 +172,7 @@ function FormTabPermissions(props: FormEditProps) {
type="text"
autoComplete="off"
name="permissionDto.e"
placeholder={translate('::ListForms.ListFormEdit.PermissionsExport')}
placeholder={translate('::App.Platform.Export')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -189,7 +189,7 @@ function FormTabPermissions(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::App.Listforms.ImportManager.Tab.Import')}
label={translate('::App.Platform.Import')}
invalid={errors.permissionDto?.i && touched.permissionDto?.i}
errorMessage={errors.permissionDto?.i}
>
@ -197,7 +197,7 @@ function FormTabPermissions(props: FormEditProps) {
type="text"
autoComplete="off"
name="permissionDto.i"
placeholder={translate('::App.Listforms.ImportManager.Tab.Import')}
placeholder={translate('::App.Platform.Import')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -216,7 +216,7 @@ function FormTabPermissions(props: FormEditProps) {
{listFormValues.showNote && (
<FormItem
label={translate('::ListForms.ListFormEdit.PermissionsNote')}
label={translate('::App.Platform.Note')}
invalid={errors.permissionDto?.n && touched.permissionDto?.n}
errorMessage={errors.permissionDto?.n}
>
@ -224,7 +224,7 @@ function FormTabPermissions(props: FormEditProps) {
type="text"
autoComplete="off"
name="permissionDto.n"
placeholder={translate('::ListForms.ListFormEdit.PermissionsNote')}
placeholder={translate('::App.Platform.Note')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -243,7 +243,7 @@ function FormTabPermissions(props: FormEditProps) {
)}
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -34,7 +34,7 @@ function FormTabColumns(props: FormEditProps) {
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
<div>
<FormItem
label={translate('::ListForms.ListFormEdit.ShowFieldPanel')}
label={translate('::App.ListFormEdit.ShowFieldPanel')}
invalid={
errors.pivotOptionDto?.showFieldPanel &&
touched.pivotOptionDto?.showFieldPanel
@ -43,12 +43,12 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="pivotOptionDto.showFieldPanel"
placeholder={translate('::ListForms.ListFormEdit.ShowFieldPanel')}
placeholder={translate('::App.ListFormEdit.ShowFieldPanel')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.AllowFieldDragging')}
label={translate('::App.ListFormEdit.AllowFieldDragging')}
invalid={
errors.pivotOptionDto?.allowFieldDragging &&
touched.pivotOptionDto?.allowFieldDragging
@ -57,12 +57,12 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="pivotOptionDto.allowFieldDragging"
placeholder={translate('::ListForms.ListFormEdit.AllowFieldDragging')}
placeholder={translate('::App.ListFormEdit.AllowFieldDragging')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionColumnChooserEnabled')}
label={translate('::App.ListFormEdit.SelectionColumnChooserEnabled')}
invalid={
errors.pivotOptionDto?.columnChooserEnabled &&
touched.pivotOptionDto?.columnChooserEnabled
@ -72,13 +72,13 @@ function FormTabColumns(props: FormEditProps) {
<Field
name="pivotOptionDto.columnChooserEnabled"
placeholder={translate(
'::ListForms.ListFormEdit.SelectionColumnChooserEnabled',
'::App.ListFormEdit.SelectionColumnChooserEnabled',
)}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.ShowColumnFields')}
label={translate('::App.ListFormEdit.ShowColumnFields')}
invalid={
errors.pivotOptionDto?.showRowFields && touched.pivotOptionDto?.showRowFields
}
@ -86,12 +86,12 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="pivotOptionDto.showColumnFields"
placeholder={translate('::ListForms.ListFormEdit.ShowColumnFields')}
placeholder={translate('::App.ListFormEdit.ShowColumnFields')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.ShowRowFields')}
label={translate('::App.ListFormEdit.ShowRowFields')}
invalid={
errors.pivotOptionDto?.showRowFields && touched.pivotOptionDto?.showRowFields
}
@ -99,14 +99,14 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="pivotOptionDto.showRowFields"
placeholder={translate('::ListForms.ListFormEdit.ShowRowFields')}
placeholder={translate('::App.ListFormEdit.ShowRowFields')}
component={Checkbox}
/>
</FormItem>
</div>
<div>
<FormItem
label={translate('::ListForms.ListFormEdit.ShowDataFields')}
label={translate('::App.ListFormEdit.ShowDataFields')}
invalid={
errors.pivotOptionDto?.showDataFields &&
touched.pivotOptionDto?.showDataFields
@ -115,12 +115,12 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="pivotOptionDto.showDataFields"
placeholder={translate('::ListForms.ListFormEdit.ShowDataFields')}
placeholder={translate('::App.ListFormEdit.ShowDataFields')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.ShowFilterFields')}
label={translate('::App.ListFormEdit.ShowFilterFields')}
invalid={
errors.pivotOptionDto?.showFilterFields &&
touched.pivotOptionDto?.showFilterFields
@ -129,23 +129,23 @@ function FormTabColumns(props: FormEditProps) {
>
<Field
name="pivotOptionDto.showFilterFields"
placeholder={translate('::ListForms.ListFormEdit.ShowFilterFields')}
placeholder={translate('::App.ListFormEdit.ShowFilterFields')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.ShowChart')}
label={translate('::App.Platform.ShowChart')}
invalid={errors.pivotOptionDto?.showChart && touched.pivotOptionDto?.showChart}
errorMessage={errors.pivotOptionDto?.showChart}
>
<Field
name="pivotOptionDto.showChart"
placeholder={translate('::ListForms.ListFormEdit.ShowChart')}
placeholder={translate('::App.Platform.ShowChart')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.ChartHeight')}
label={translate('::App.ListFormEdit.ChartHeight')}
invalid={
errors.pivotOptionDto?.chartHeight && touched.pivotOptionDto?.chartHeight
}
@ -156,7 +156,7 @@ function FormTabColumns(props: FormEditProps) {
type="number"
autoComplete="off"
name="editingOptionDto.chartHeight"
placeholder={translate('::ListForms.ListFormEdit.ChartHeight')}
placeholder={translate('::App.ListFormEdit.ChartHeight')}
component={Input}
/>
</FormItem>
@ -187,7 +187,7 @@ function FormTabColumns(props: FormEditProps) {
</div>
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit" className="my-2">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -35,26 +35,26 @@ function FormTabRow(props: FormEditProps) {
<Form>
<FormContainer size="sm">
<FormItem
label={translate('::ListForms.ListFormEdit.FilteringSortingRowHeight')}
label={translate('::App.ListFormEdit.FilteringSortingRowHeight')}
invalid={errors.rowDto?.rowHeight && touched.rowDto?.rowHeight}
errorMessage={errors.rowDto?.rowHeight}
>
<Field
name="rowDto.rowHeight"
placeholder={translate('::ListForms.ListFormEdit.FilteringSortingRowHeight')}
placeholder={translate('::App.ListFormEdit.FilteringSortingRowHeight')}
component={Input}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.FilteringSortingRowWhiteSpace')}
label={translate('::App.ListFormEdit.FilteringSortingRowWhiteSpace')}
invalid={errors.rowDto?.whiteSpace && touched.rowDto?.whiteSpace}
errorMessage={errors.rowDto?.whiteSpace}
>
<Field
type="text"
name="rowDto.whiteSpace"
placeholder={translate('::ListForms.ListFormEdit.FilteringSortingRowWhiteSpace')}
placeholder={translate('::App.ListFormEdit.FilteringSortingRowWhiteSpace')}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -72,7 +72,7 @@ function FormTabRow(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.FilteringSortingRowOverflowWrap')}
label={translate('::App.ListFormEdit.FilteringSortingRowOverflowWrap')}
invalid={errors.rowDto?.overflowWrap && touched.rowDto?.overflowWrap}
errorMessage={errors.rowDto?.overflowWrap}
>
@ -80,7 +80,7 @@ function FormTabRow(props: FormEditProps) {
type="text"
name="rowDto.overflowWrap"
placeholder={translate(
'::ListForms.ListFormEdit.FilteringSortingRowOverflowWrap',
'::App.ListFormEdit.FilteringSortingRowOverflowWrap',
)}
>
{({ field, form }: FieldProps<SelectBoxOption>) => (
@ -99,7 +99,7 @@ function FormTabRow(props: FormEditProps) {
</FormItem>
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -99,10 +99,10 @@ function FormTabScheduler(props: FormEditProps) {
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-3">
<Card
className="mt-4"
header={translate('::ListForms.SchedulerOptions.BasicSettings')}
header={translate('::App.ListFormSchedulerOptions.BasicSettings')}
>
<FormItem
label={translate('::ListForms.SchedulerOptions.TextExpr')}
label={translate('::App.ListFormSchedulerOptions.TextExpr')}
invalid={
errors.schedulerOptionDto?.textExpr && touched.schedulerOptionDto?.textExpr
}
@ -143,7 +143,7 @@ function FormTabScheduler(props: FormEditProps) {
</Field>
</FormItem>
<FormItem label={translate('::ListForms.ListFormFieldEdit.TodoDescriptionExpr')}>
<FormItem label={translate('::App.ListFormFieldEdit.TodoDescriptionExpr')}>
<Field type="text" name="schedulerOptionDto.descriptionExpr">
{({ field, form }: FieldProps<SelectBoxOption>) => (
<Select
@ -163,7 +163,7 @@ function FormTabScheduler(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.SchedulerOptions.StartDateExpr')}
label={translate('::App.ListFormSchedulerOptions.StartDateExpr')}
invalid={
errors.schedulerOptionDto?.startDateExpr &&
touched.schedulerOptionDto?.startDateExpr
@ -187,7 +187,7 @@ function FormTabScheduler(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.SchedulerOptions.EndDateExpr')}
label={translate('::App.ListFormSchedulerOptions.EndDateExpr')}
invalid={
errors.schedulerOptionDto?.endDateExpr &&
touched.schedulerOptionDto?.endDateExpr
@ -211,7 +211,7 @@ function FormTabScheduler(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.SchedulerOptions.AllDayExpr')}
label={translate('::App.ListFormSchedulerOptions.AllDayExpr')}
invalid={
errors.schedulerOptionDto?.allDayExpr && touched.schedulerOptionDto?.allDayExpr
}
@ -236,9 +236,9 @@ function FormTabScheduler(props: FormEditProps) {
<Card
className="mt-4"
header={translate('::ListForms.SchedulerOptions.ViewSettings')}
header={translate('::App.ListFormSchedulerOptions.ViewSettings')}
>
<FormItem label={translate('::ListForms.SchedulerOptions.DefaultView')}>
<FormItem label={translate('::App.ListFormSchedulerOptions.DefaultView')}>
<Field name="schedulerOptionDto.defaultView">
{({ field, form }: FieldProps) => (
<Select
@ -254,7 +254,7 @@ function FormTabScheduler(props: FormEditProps) {
</Field>
</FormItem>
<FormItem label={translate('::ListForms.SchedulerOptions.FirstDayOfWeek')}>
<FormItem label={translate('::App.ListFormSchedulerOptions.FirstDayOfWeek')}>
<Field name="schedulerOptionDto.firstDayOfWeek">
{({ field, form }: FieldProps) => (
<Select
@ -271,7 +271,7 @@ function FormTabScheduler(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.SchedulerOptions.StartDayHour')}
label={translate('::App.ListFormSchedulerOptions.StartDayHour')}
invalid={
errors.schedulerOptionDto?.startDayHour &&
touched.schedulerOptionDto?.startDayHour
@ -290,7 +290,7 @@ function FormTabScheduler(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.SchedulerOptions.EndDayHour')}
label={translate('::App.ListFormSchedulerOptions.EndDayHour')}
invalid={
errors.schedulerOptionDto?.endDayHour && touched.schedulerOptionDto?.endDayHour
}
@ -308,7 +308,7 @@ function FormTabScheduler(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.SchedulerOptions.CellDuration')}
label={translate('::App.ListFormSchedulerOptions.CellDuration')}
invalid={
errors.schedulerOptionDto?.cellDuration &&
touched.schedulerOptionDto?.cellDuration
@ -329,10 +329,10 @@ function FormTabScheduler(props: FormEditProps) {
<Card
className="mt-4"
header={translate('::ListForms.SchedulerOptions.RecurrenceSettings')}
header={translate('::App.ListFormSchedulerOptions.RecurrenceSettings')}
>
<FormItem
label={translate('::ListForms.SchedulerOptions.RecurrenceRuleExpr')}
label={translate('::App.ListFormSchedulerOptions.RecurrenceRuleExpr')}
invalid={
errors.schedulerOptionDto?.recurrenceRuleExpr &&
touched.schedulerOptionDto?.recurrenceRuleExpr
@ -357,7 +357,7 @@ function FormTabScheduler(props: FormEditProps) {
</FormItem>
<FormItem
label={translate('::ListForms.SchedulerOptions.RecurrenceExceptionExpr')}
label={translate('::App.ListFormSchedulerOptions.RecurrenceExceptionExpr')}
invalid={
errors.schedulerOptionDto?.recurrenceExceptionExpr &&
touched.schedulerOptionDto?.recurrenceExceptionExpr
@ -384,33 +384,33 @@ function FormTabScheduler(props: FormEditProps) {
<Card
className="mt-4"
header={translate('::ListForms.SchedulerOptions.InteractionSettings')}
header={translate('::App.ListFormSchedulerOptions.InteractionSettings')}
>
<FormItem label={translate('::ListForms.SchedulerOptions.ShowAllDayPanel')}>
<FormItem label={translate('::App.ListFormSchedulerOptions.ShowAllDayPanel')}>
<Field name="schedulerOptionDto.showAllDayPanel" component={Checkbox} />
</FormItem>
<FormItem label={translate('::ListForms.SchedulerOptions.CrossScrollingEnabled')}>
<FormItem label={translate('::App.ListFormSchedulerOptions.CrossScrollingEnabled')}>
<Field name="schedulerOptionDto.crossScrollingEnabled" component={Checkbox} />
</FormItem>
<FormItem label={translate('::ListForms.SchedulerOptions.AllowResizing')}>
<FormItem label={translate('::App.ListFormSchedulerOptions.AllowResizing')}>
<Field name="schedulerOptionDto.allowResizing" component={Checkbox} />
</FormItem>
<FormItem label={translate('::ListForms.SchedulerOptions.AllowDragging')}>
<FormItem label={translate('::App.ListFormSchedulerOptions.AllowDragging')}>
<Field name="schedulerOptionDto.allowDragging" component={Checkbox} />
</FormItem>
<FormItem label={translate('::ListForms.SchedulerOptions.AllowAdding')}>
<FormItem label={translate('::App.ListFormSchedulerOptions.AllowAdding')}>
<Field name="schedulerOptionDto.allowAdding" component={Checkbox} />
</FormItem>
<FormItem label={translate('::ListForms.ListFormEdit.AllowEditing')}>
<FormItem label={translate('::App.ListFormEdit.AllowEditing')}>
<Field name="schedulerOptionDto.allowEditing" component={Checkbox} />
</FormItem>
<FormItem label={translate('::ListForms.SchedulerOptions.AllowDeleting')}>
<FormItem label={translate('::App.ListFormSchedulerOptions.AllowDeleting')}>
<Field name="schedulerOptionDto.allowDeleting" component={Checkbox} />
</FormItem>
</Card>
@ -423,7 +423,7 @@ function FormTabScheduler(props: FormEditProps) {
type="submit"
className="my-2"
>
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>{' '}
</FormContainer>
</Form>

View file

@ -30,18 +30,18 @@ function FormTabSearch(props: FormEditProps) {
<Form>
<FormContainer size="sm">
<FormItem
label={translate('::ListForms.ListFormFieldEdit.OptionsVisible')}
label={translate('::App.ListFormEdit.CommandVisible')}
invalid={errors.searchPanelDto?.visible && touched.searchPanelDto?.visible}
errorMessage={errors.searchPanelDto?.visible}
>
<Field
name="searchPanelDto.visible"
placeholder={translate('::ListForms.ListFormFieldEdit.OptionsVisible')}
placeholder={translate('::App.ListFormEdit.CommandVisible')}
component={Checkbox}
/>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SearchPanelWidth')}
label={translate('::App.ListFormEdit.SearchPanelWidth')}
invalid={errors.searchPanelDto?.width && touched.searchPanelDto?.width}
errorMessage={errors.searchPanelDto?.width}
>
@ -50,13 +50,13 @@ function FormTabSearch(props: FormEditProps) {
type="number"
autoComplete="off"
name="searchPanelDto.width"
placeholder={translate('::ListForms.ListFormEdit.SearchPanelWidth')}
placeholder={translate('::App.ListFormEdit.SearchPanelWidth')}
component={Input}
/>
</FormItem>
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -37,7 +37,7 @@ function FormTabSelect(props: FormEditProps) {
<Form>
<FormContainer size="sm">
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionMode')}
label={translate('::App.ListFormEdit.SelectionMode')}
invalid={errors.selectionDto?.mode && touched.selectionDto?.mode}
errorMessage={errors.selectionDto?.mode}
>
@ -45,7 +45,7 @@ function FormTabSelect(props: FormEditProps) {
type="text"
autoComplete="off"
name="selectionDto.mode"
placeholder={translate('::ListForms.ListFormEdit.SelectionMode')}
placeholder={translate('::App.ListFormEdit.SelectionMode')}
>
{({ field, form }: FieldProps<SingleMultipleOrNone>) => (
<Select
@ -62,7 +62,7 @@ function FormTabSelect(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionSelectAllMode')}
label={translate('::App.ListFormEdit.SelectionSelectAllMode')}
invalid={errors.selectionDto?.selectAllMode && touched.selectionDto?.selectAllMode}
errorMessage={errors.selectionDto?.selectAllMode}
>
@ -70,7 +70,7 @@ function FormTabSelect(props: FormEditProps) {
type="text"
autoComplete="off"
name="selectionDto.selectAllMode"
placeholder={translate('::ListForms.ListFormEdit.SelectionSelectAllMode')}
placeholder={translate('::App.ListFormEdit.SelectionSelectAllMode')}
>
{({ field, form }: FieldProps<SelectAllMode>) => (
<Select
@ -87,7 +87,7 @@ function FormTabSelect(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionShowCheckBoxMode')}
label={translate('::App.ListFormEdit.SelectionShowCheckBoxMode')}
invalid={
errors.selectionDto?.showCheckBoxesMode &&
touched.selectionDto?.showCheckBoxesMode
@ -98,7 +98,7 @@ function FormTabSelect(props: FormEditProps) {
type="text"
autoComplete="off"
name="selectionDto.showCheckBoxesMode"
placeholder={translate('::ListForms.ListFormEdit.SelectionShowCheckBoxMode')}
placeholder={translate('::App.ListFormEdit.SelectionShowCheckBoxMode')}
>
{({ field, form }: FieldProps<SelectionColumnDisplayMode>) => (
<Select
@ -115,7 +115,7 @@ function FormTabSelect(props: FormEditProps) {
</Field>
</FormItem>
<FormItem
label={translate('::ListForms.ListFormEdit.SelectionAllowSelectAll')}
label={translate('::App.ListFormEdit.SelectionAllowSelectAll')}
invalid={
errors.selectionDto?.allowSelectAll && touched.selectionDto?.allowSelectAll
}
@ -123,13 +123,13 @@ function FormTabSelect(props: FormEditProps) {
>
<Field
name="selectionDto.allowSelectAll"
placeholder={translate('::ListForms.ListFormEdit.SelectionAllowSelectAll')}
placeholder={translate('::App.ListFormEdit.SelectionAllowSelectAll')}
component={Checkbox}
/>
</FormItem>
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

View file

@ -39,7 +39,7 @@ function FormTabSorting(props: FormEditProps) {
<Form>
<FormContainer size="sm">
<FormItem
label={translate('::ListForms.ListFormEdit.FilteringSortingSortMode')}
label={translate('::App.Listform.ListformField.SortMode')}
invalid={errors.sortMode && touched.sortMode}
errorMessage={errors.sortMode}
>
@ -47,7 +47,7 @@ function FormTabSorting(props: FormEditProps) {
type="text"
autoComplete="off"
name="sortMode"
placeholder={translate('::ListForms.ListFormEdit.FilteringSortingSortMode')}
placeholder={translate('::App.Listform.ListformField.SortMode')}
>
{({ field, form }: FieldProps<GridOptionsSortModeEnum>) => (
<Select
@ -63,7 +63,7 @@ function FormTabSorting(props: FormEditProps) {
</FormItem>
<Button block size="sm" variant="solid" loading={isSubmitting} type="submit">
{isSubmitting ? translate('::Saving') : translate('::Save')}
{isSubmitting ? translate('::App.Platform.Saving') : translate('::App.Platform.Save')}
</Button>
</FormContainer>
</Form>

Some files were not shown because too many files have changed in this diff Show more