From 410492b749dd6e1fed5a1fe69e8fcf636ae5ab89 Mon Sep 17 00:00:00 2001 From: masoodkhoshgard Date: Wed, 12 Apr 2023 15:43:18 +0430 Subject: [PATCH] =?UTF-8?q?Does=20Tag-Helper=20support=20Bootstrap=20Float?= =?UTF-8?q?ing=20Labels=EF=BC=9F=20#12900?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TagHelpers/Form/AbpInputTagHelper.cs | 4 ++++ .../TagHelpers/Form/AbpInputTagHelperService.cs | 6 +++++- .../TagHelpers/Form/AbpSelectTagHelper.cs | 4 ++++ .../TagHelpers/Form/AbpSelectTagHelperService.cs | 4 ++++ .../Mvc/UI/MultiTenancy/Localization/en.json | 2 +- .../Shared/Demos/FormElementsDemo/Default.cshtml | 8 ++++++++ .../Volo/Abp/ExceptionHandling/Localization/en.json | 2 +- .../Volo/Abp/Features/Localization/fa.json | 8 +++----- .../Volo/Abp/Ldap/Localization/fa.json | 4 ++-- .../Volo.Abp.UI/Localization/Resources/AbpUi/fa.json | 6 ++++-- .../Volo/Abp/Validation/Localization/en.json | 2 +- .../Volo/Abp/Validation/Localization/fa.json | 10 ++++++---- .../Localization/TestResources/Base/Validation/fa.json | 7 ++++++- .../Volo/Abp/Localization/TestResources/Source/fa.json | 7 ++++++- 14 files changed, 55 insertions(+), 19 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs index 92f3769264..8c58e3c285 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs @@ -46,6 +46,10 @@ public class AbpInputTagHelper : AbpTagHelper output.TagMode = TagMode.StartTagAndEndTag; output.TagName = "div"; LeaveOnlyGroupAttributes(context, output); + if (TagHelper.FloatingLabel && !isCheckBox) + { + output.Attributes.AddClass("form-floating"); + } output.Attributes.AddClass(isCheckBox ? "mb-2" : "mb-3"); if (isCheckBox) { @@ -294,7 +298,7 @@ public class AbpInputTagHelperService : AbpTagHelperService { return ""; } - + var isHaveRequiredAttribute = context.AllAttributes.Any(a => a.Name == "required"); return TagHelper.AspFor.ModelExplorer.GetAttribute() != null || isHaveRequiredAttribute ? " * " : ""; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelper.cs index e6bac77fa3..fd4c42fcff 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelper.cs @@ -44,6 +44,10 @@ public class AbpSelectTagHelper : AbpTagHelper { output.TagName = "div"; LeaveOnlyGroupAttributes(context, output); + if (TagHelper.FloatingLabel) + { + output.Attributes.AddClass("form-floating"); + } output.Attributes.AddClass("mb-3"); output.TagMode = TagMode.StartTagAndEndTag; output.Content.SetHtmlContent(innerHtml); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/en.json b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/en.json index 5f41bee5d9..0631bca982 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/en.json +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/en.json @@ -10,4 +10,4 @@ "SwitchTenant": "Switch tenant", "NotSelected": "Not selected" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/FormElementsDemo/Default.cshtml b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/FormElementsDemo/Default.cshtml index 54146c8953..af826cd58d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/FormElementsDemo/Default.cshtml +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/FormElementsDemo/Default.cshtml @@ -100,6 +100,14 @@ public class FormElementsDemoModel + + + + + + + + diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en.json index 5b50d19b3a..b04e0bc129 100644 --- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en.json +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en.json @@ -23,4 +23,4 @@ "403MessageDetail": "You are not authorized to perform this operation!", "404MessageDetail": "Sorry, there's nothing at this address." } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/fa.json b/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/fa.json index af7a5ff5a0..67dc6b9f21 100644 --- a/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/fa.json +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/fa.json @@ -1,10 +1,8 @@ { "culture": "fa", "texts": { - "Features": "ویژگی ها", - "NoFeatureFoundMessage": "هیچ ویژگی ای در دسترس نمی باشد.", - "Permission:FeatureManagement": "مدیریت ویژگی ها", - "Permission:FeatureManagement.ManageHostFeatures": "مدیریت ویژگی های میزبان", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} مقدار ویژگی صحیح نمی باشد!" + "Volo.Feature:010001": "ویژگی فعال نیست: {FeatureName}", + "Volo.Feature:010002": "ویژگی های مورد نیاز فعال نیستند. همه این ویژگی ها باید فعال باشند: {FeatureNames}", + "Volo.Feature:010003": "ویژگی های مورد نیاز فعال نیستند. حداقل یکی از این ویژگی ها باید فعال باشد: {FeatureNames}" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/fa.json b/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/fa.json index 3e536b1e1f..115b74a44f 100644 --- a/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/fa.json +++ b/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/fa.json @@ -11,7 +11,7 @@ "Description:Abp.Ldap.Domain": "دامنه", "DisplayName:Abp.Ldap.UserName": "نام کاربری", "Description:Abp.Ldap.UserName": "نام کاربری", - "DisplayName:Abp.Ldap.Password": "رمز عبور", - "Description:Abp.Ldap.Password": "رمز عبور" + "DisplayName:Abp.Ldap.Password": "گذرواژه", + "Description:Abp.Ldap.Password": "گذرواژه" } } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json index 4fd179573b..3a542572eb 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json @@ -40,7 +40,7 @@ "Selected": "انتخاب شده", "PagerShowMenuEntries": "نمایش _MENU_ مورد", "DatatableActionDropdownDefaultText": "عملیات", - "ChangePassword": "تغییر رمز", + "ChangePassword": "تغییر گذرواژه", "PersonalInfo": "پروفایل من", "AreYouSureYouWantToCancelEditingWarningMessage": "شما تغییرات ذخیره نشده ای دارید.", "GoHomePage": "برو به صفحه اصلی", @@ -49,6 +49,8 @@ "ItemWillBeDeletedMessageWithFormat": "{0} حذف خواهد شد!", "ItemWillBeDeletedMessage": "این مورد حذف خواهد شد!", "ManageYourAccount": "حساب خود را مدیریت کنید", - "OthersGroup": "دیگر" + "OthersGroup": "دیگر", + "Today": "امروز", + "Apply": "اعمال کردن" } } diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/en.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/en.json index 8a866ef936..9b29e4a078 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/en.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/en.json @@ -36,4 +36,4 @@ "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "This field is not a valid fully-qualified http, https, or ftp URL.", "ThisFieldIsInvalid.": "This field is invalid." } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fa.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fa.json index 39ec042dcb..64fbbaa2b5 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fa.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fa.json @@ -26,11 +26,13 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf {0}": "این قسمت باید یک رشته یا نوع آرایه با حداکثر طول '{0}' باشد.", "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf {0}": "این فیلد باید یک رشته یا نوع آرایه با حداقل طول '{0}' باشد.", "ThisFieldIsNotAValidPhoneNumber.": "این قسمت شماره تلفن معتبری نیست.", - "ThisFieldMustBeBetween {0} And {1}": "این قسمت باید بین {0} و {1} باشد.", - "ThisFieldMustMatchTheRegularExpression {0}": "این قسمت باید با عبارت معمولی '{0}' مطابقت داشته باشد.", + "ThisFieldMustBeBetween{0}And{1}": "این قسمت باید بین {0} و {1} باشد.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "این فیلد باید بزرگتر یا مساوی با {0} باشد.", + "ThisFieldMustBeLessOrEqual{0}": "این فیلد باید کمتر یا مساوی با {0} باشد.", + "ThisFieldMustMatchTheRegularExpression{0}": "این قسمت باید با عبارت معمولی '{0}' مطابقت داشته باشد.", "ThisFieldIsRequired.": "این فیلد الزامی است.", - "ThisFieldMustBeAStringWithAMaximumLengthOf {0}": "این فیلد باید یک رشته با حداکثر طول {0} باشد.", - "ThisFieldMustBeAStringWithAMinimumLengthOf {1} AndAMaximumLengthOf {0}": "این فیلد باید رشته ای با حداقل طول {1} و حداکثر طول {0} باشد.", + "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "این فیلد باید یک رشته با حداکثر طول {0} باشد.", + "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf {0}": "این فیلد باید رشته ای با حداقل طول {1} و حداکثر طول {0} باشد.", "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "این قسمت آدرس http , https , یا ftp کاملاً واجد شرایط نیست.", "ThisFieldIsInvalid.": "این قسمت نامعتبر است." } diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/fa.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/fa.json index e469dd85d5..682c2d49d9 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/fa.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/fa.json @@ -2,6 +2,11 @@ "culture": "fa", "texts": { "ThisFieldIsRequired": "این فیلد الزامی است", - "MaxLenghtErrorMessage": "این فیلد میتواند نهایتا '{0}' کاراکتر باشد" + "MaxLenghtErrorMessage": "این فیلد میتواند نهایتا '{0}' کاراکتر باشد", + "Enum:BookType.Undefined": "از منبع اعتبار سنجی تعریف نشده است", + "Enum:BookType.0": "با مقدار 0 از منبع اعتبار سنجی تعریف نشده است", + "BookType.Adventure": "مخاطره از منبع اعتبارسنجی رخ داده است", + "BookType.1": "مخاطره با ارزش 1 از منبع اعتبارسنجی رخ داده است", + "Biography": "بیوگرافی از منبع اعتبارسنجی رخ داده است" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/fa.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/fa.json index 4761d95a34..a5b4f866a8 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/fa.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/fa.json @@ -6,6 +6,11 @@ "CarPlural": "اتومبیل ها", "MaxLenghtErrorMessage": "طول این فیلد میتواند نهایتا '{0}' کاراکتر باشد", "Universe": "کائنات", - "FortyTwo": "چهل و دو" + "FortyTwo": "چهل و دو", + "Enum:BookType.Undefined": "تعریف نشده است", + "Enum:BookType.0": "با مقدار 0 تعریف نشده است", + "BookType.Adventure": "مخاطره رخ داده است", + "BookType.1": "مخاطره با ارزش 1 رخ داده است", + "Biography": "بیوگرافی رخ داده است" } } \ No newline at end of file