From 0f4c5dd57f5811fa889088405cbe2bd45f79bf34 Mon Sep 17 00:00:00 2001 From: Enis Necipoglu Date: Fri, 23 Feb 2024 11:01:06 +0300 Subject: [PATCH 1/4] Fix code-block in Tenant-Management.md --- docs/en/Modules/Tenant-Management.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/Modules/Tenant-Management.md b/docs/en/Modules/Tenant-Management.md index 0d43c5e31e..6245db82c8 100644 --- a/docs/en/Modules/Tenant-Management.md +++ b/docs/en/Modules/Tenant-Management.md @@ -56,7 +56,7 @@ This module defines the following ETOs (Event Transfer Objects) to allow you to **Example: Get notified when a new tenant has been created** -``` +```cs public class MyHandler : IDistributedEventHandler>, ITransientDependency @@ -131,4 +131,4 @@ ABP Framework allows to use *database per tenant* approach that allows a tenant ## See Also * [Multi-Tenancy](../Multi-Tenancy.md) -* [ABP Commercial SaaS Module](https://docs.abp.io/en/commercial/latest/modules/saas) \ No newline at end of file +* [ABP Commercial SaaS Module](https://docs.abp.io/en/commercial/latest/modules/saas) From 61181850c9e0fe43bb064d23746d4d0194509ad9 Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Fri, 23 Feb 2024 16:53:21 +0300 Subject: [PATCH 2/4] Update config.yml --- .github/ISSUE_TEMPLATE/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 8da2082360..2261ab7bab 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -2,7 +2,7 @@ blank_issues_enabled: true contact_links: - name: Issue with ABP Commercial url: https://support.abp.io/QA/Questions - about: Please open issues relating to ABP Commercial in support.abp.io. + about: Please open ABP Commercial related issues at https://support.abp.io. - name: Ask a question (community support) url: https://stackoverflow.com/questions/tagged/abp about: Ask a question that will be answered by the ABP community From f2591e9c5bb7435622f625b474962831cf8daf27 Mon Sep 17 00:00:00 2001 From: Rafael Gonzales Date: Sat, 24 Feb 2024 08:12:15 -0500 Subject: [PATCH 3/4] Avoid classes if input is hidden --- .../Form/AbpInputTagHelperService.cs | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs index 37343b72ed..e9cbd0a997 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs @@ -54,19 +54,22 @@ public class AbpInputTagHelperService : AbpTagHelperService output.TagMode = TagMode.StartTagAndEndTag; output.TagName = "div"; LeaveOnlyGroupAttributes(context, output); - if (TagHelper.FloatingLabel && !isCheckBox) + if (!IsOutputHidden(output)) { - output.Attributes.AddClass("form-floating"); - } - if (TagHelper.AddMarginBottomClass) - { - output.Attributes.AddClass(isCheckBox ? "mb-2" : "mb-3"); - } - if (isCheckBox) - { - output.Attributes.AddClass("custom-checkbox"); - output.Attributes.AddClass("custom-control"); - output.Attributes.AddClass("form-check"); + if (TagHelper.FloatingLabel && !isCheckBox) + { + output.Attributes.AddClass("form-floating"); + } + if (TagHelper.AddMarginBottomClass) + { + output.Attributes.AddClass(isCheckBox ? "mb-2" : "mb-3"); + } + if (isCheckBox) + { + output.Attributes.AddClass("custom-checkbox"); + output.Attributes.AddClass("custom-control"); + output.Attributes.AddClass("form-check"); + } } output.Content.AppendHtml(innerHtml); } @@ -263,7 +266,7 @@ public class AbpInputTagHelperService : AbpTagHelperService } protected virtual async Task GetLabelAsHtmlAsync(TagHelperContext context, TagHelperOutput output, TagHelperOutput inputTag, bool isCheckbox) - { + { if (IsOutputHidden(inputTag) || TagHelper.SuppressLabel) { return string.Empty; From 6c9e70990b5cc50722f8d71fb04ca479d1e5bd8b Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 26 Feb 2024 10:49:28 +0800 Subject: [PATCH 4/4] Pass `JsonSerializerOptions` when serializing the `enum`. --- .../AbpStringToEnumConverter.cs | 8 +++++++- .../Volo/Abp/Json/AbpStringToEnum_Tests.cs | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpStringToEnumConverter.cs b/framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpStringToEnumConverter.cs index 9b20a4aa09..ac6208f47b 100644 --- a/framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpStringToEnumConverter.cs +++ b/framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpStringToEnumConverter.cs @@ -11,6 +11,8 @@ public class AbpStringToEnumConverter : JsonConverter private JsonSerializerOptions? _readJsonSerializerOptions; + private JsonSerializerOptions? _writeJsonSerializerOptions; + public AbpStringToEnumConverter() : this(namingPolicy: null, allowIntegerValues: true) { @@ -39,7 +41,11 @@ public class AbpStringToEnumConverter : JsonConverter public override void Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options) { - JsonSerializer.Serialize(writer, value); + _writeJsonSerializerOptions ??= JsonSerializerOptionsHelper.Create(options, x => + x == this || + x.GetType() == typeof(AbpStringToEnumFactory)); + + JsonSerializer.Serialize(writer, value, _writeJsonSerializerOptions); } public override T ReadAsPropertyName(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) diff --git a/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs b/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs index 8d00afd109..3996ddafe5 100644 --- a/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs +++ b/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Text.Json; +using System.Text.Json.Serialization; using Shouldly; using Volo.Abp.Json.SystemTextJson.JsonConverters; using Xunit; @@ -53,10 +54,26 @@ public class AbpStringToEnum_Tests var testClassJson = JsonSerializer.Serialize(new TestClass() { Day = DayOfWeek.Monday - }); + }, options); testClassJson.ShouldBe("{\"Day\":1}"); + options = new JsonSerializerOptions() + { + Converters = + { + new AbpStringToEnumFactory(), + new JsonStringEnumConverter() + } + }; + + testClassJson = JsonSerializer.Serialize(new TestClass() + { + Day = DayOfWeek.Monday + }, options); + + testClassJson.ShouldBe("{\"Day\":\"Monday\"}"); + testClassJson = JsonSerializer.Serialize(new Dictionary { {DayOfWeek.Monday, "Mo"}