From 5637b2489f7b0e0b76d26fd8de4307aa17c452c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 8 Dec 2017 15:11:14 +0300 Subject: [PATCH] Improvements for identity module. --- .../Localization/Resource/en.json | 3 +- .../Localization/Resource/tr.json | 3 +- .../TagHelpers/AbpCardTagHelper.cs | 34 -------- .../AbpTagHelperAttributeListExtensions.cs | 34 ++++++++ .../TagHelpers/Card/AbpCardBodyTagHelper.cs | 14 ++++ .../TagHelpers/Card/AbpCardHeaderTagHelper.cs | 14 ++++ .../TagHelpers/Card/AbpCardTagHelper.cs | 14 ++++ .../{ => Modal}/AbpModalBodyTagHelper.cs | 4 +- .../{ => Modal}/AbpModalFooterTagHelper.cs | 6 +- .../{ => Modal}/AbpModalHeaderTagHelper.cs | 4 +- .../{ => Modal}/AbpModalTagHelper.cs | 2 +- .../Pages/Identity/Users/CreateModal.cshtml | 13 +-- .../Pages/Identity/Users/EditModal.cshtml.cs | 1 + .../modules/identity/helpers/ModalManager.js | 82 ++++++++++++++----- .../identity/helpers/ResourceLoader.js | 2 + .../modules/identity/helpers/jquery.js | 67 ++++++++++++++- .../modules/identity/views/users/index.js | 7 +- 17 files changed, 223 insertions(+), 81 deletions(-) delete mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpCardTagHelper.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperAttributeListExtensions.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelper.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardHeaderTagHelper.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardTagHelper.cs rename src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/{ => Modal}/AbpModalBodyTagHelper.cs (62%) rename src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/{ => Modal}/AbpModalFooterTagHelper.cs (78%) rename src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/{ => Modal}/AbpModalHeaderTagHelper.cs (84%) rename src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/{ => Modal}/AbpModalTagHelper.cs (94%) diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Localization/Resource/en.json b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Localization/Resource/en.json index 61072f672c..d921873fa7 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Localization/Resource/en.json +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Localization/Resource/en.json @@ -2,6 +2,7 @@ "culture": "en", "texts": { "Close": "Close", - "Save": "Save" + "Save": "Save", + "SavingWithThreeDot": "Saving..." } } \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Localization/Resource/tr.json b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Localization/Resource/tr.json index cb7c60111c..6f05d798df 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Localization/Resource/tr.json +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Localization/Resource/tr.json @@ -2,6 +2,7 @@ "culture": "tr", "texts": { "Close": "Kapat", - "Save": "Kaydet" + "Save": "Kaydet", + "SavingWithThreeDot": "Kaydediliyor..." } } \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpCardTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpCardTagHelper.cs deleted file mode 100644 index 1ca11effc6..0000000000 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpCardTagHelper.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Microsoft.AspNetCore.Razor.TagHelpers; - -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers -{ - public class AbpCardTagHelper : TagHelper - { - public override void Process(TagHelperContext context, TagHelperOutput output) - { - //TODO: Remove abp-modal HTML element which is unnecessary! - output.TagName = "div"; - output.Attributes.Add("class", "card"); //TODO: Append class if any exists - } - } - - public class AbpCardHeaderTagHelper : TagHelper - { - public override void Process(TagHelperContext context, TagHelperOutput output) - { - //TODO: Remove abp-modal HTML element which is unnecessary! - output.TagName = "div"; - output.Attributes.Add("class", "card-header"); //TODO: Append class if any exists - } - } - - public class AbpCardBodyTagHelper : TagHelper - { - public override void Process(TagHelperContext context, TagHelperOutput output) - { - //TODO: Remove abp-modal HTML element which is unnecessary! - output.TagName = "div"; - output.Attributes.Add("class", "card-body"); //TODO: Append class if any exists - } - } -} diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperAttributeListExtensions.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperAttributeListExtensions.cs new file mode 100644 index 0000000000..c3de6c317b --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperAttributeListExtensions.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers +{ + public static class AbpTagHelperAttributeListExtensions + { + public static void AddClass(this TagHelperAttributeList attributes, string className) + { + var classAttribute = attributes["class"]; + if (classAttribute == null) + { + attributes.Add("class", className); + } + else + { + //TODO: Check if it's already added before! + attributes.SetAttribute("class", classAttribute.Value + " " + className); + } + } + + public static void RemoveClass(this TagHelperAttributeList attributes, string className) + { + var classAttribute = attributes["class"]; + if (classAttribute == null) + { + return; + } + + //Can be optimized? + attributes.SetAttribute("class", classAttribute.Value.ToString().Split(' ').RemoveAll(c => c == className).JoinAsString(" ")); + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelper.cs new file mode 100644 index 0000000000..4b7e1d9793 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelper.cs @@ -0,0 +1,14 @@ +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers +{ + public class AbpCardBodyTagHelper : TagHelper + { + public override void Process(TagHelperContext context, TagHelperOutput output) + { + //TODO: Remove abp-modal HTML element which is unnecessary! + output.TagName = "div"; + output.Attributes.AddClass("card-body"); + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardHeaderTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardHeaderTagHelper.cs new file mode 100644 index 0000000000..4637809a0c --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardHeaderTagHelper.cs @@ -0,0 +1,14 @@ +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers +{ + public class AbpCardHeaderTagHelper : TagHelper + { + public override void Process(TagHelperContext context, TagHelperOutput output) + { + //TODO: Remove abp-modal HTML element which is unnecessary! + output.TagName = "div"; + output.Attributes.AddClass("card-header"); + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardTagHelper.cs new file mode 100644 index 0000000000..41122375f6 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardTagHelper.cs @@ -0,0 +1,14 @@ +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers +{ + public class AbpCardTagHelper : TagHelper + { + public override void Process(TagHelperContext context, TagHelperOutput output) + { + //TODO: Remove abp-modal HTML element which is unnecessary! + output.TagName = "div"; + output.Attributes.AddClass("card"); + } + } +} diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalBodyTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalBodyTagHelper.cs similarity index 62% rename from src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalBodyTagHelper.cs rename to src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalBodyTagHelper.cs index a11f2fbefc..36b2d793e1 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalBodyTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalBodyTagHelper.cs @@ -1,13 +1,13 @@ using Microsoft.AspNetCore.Razor.TagHelpers; -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal { public class AbpModalBodyTagHelper : TagHelper { public override void Process(TagHelperContext context, TagHelperOutput output) { output.TagName = "div"; - output.Attributes.Add("class", "modal-body"); //TODO: Append class if any exists + output.Attributes.AddClass("modal-body"); } } } \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalFooterTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalFooterTagHelper.cs similarity index 78% rename from src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalFooterTagHelper.cs rename to src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalFooterTagHelper.cs index 62d5a534ad..0e563c28e1 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalFooterTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalFooterTagHelper.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Razor.TagHelpers; using Microsoft.Extensions.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Localization.Resource; -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal { public class AbpModalFooterTagHelper : TagHelper { @@ -17,7 +17,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers public override void Process(TagHelperContext context, TagHelperOutput output) { output.TagName = "div"; - output.Attributes.Add("class", "modal-footer"); //TODO: Append class if any exists + output.Attributes.AddClass("modal-footer"); output.Content.SetHtmlContent(CreateContent()); } @@ -26,7 +26,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers var sb = new StringBuilder(); sb.AppendLine(""); - sb.AppendLine(""); + sb.AppendLine(""); return sb.ToString(); } diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalHeaderTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalHeaderTagHelper.cs similarity index 84% rename from src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalHeaderTagHelper.cs rename to src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalHeaderTagHelper.cs index 703fcb58fc..d50de979fe 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalHeaderTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalHeaderTagHelper.cs @@ -1,7 +1,7 @@ using System.Text; using Microsoft.AspNetCore.Razor.TagHelpers; -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal { public class AbpModalHeaderTagHelper : TagHelper { @@ -10,7 +10,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers public override void Process(TagHelperContext context, TagHelperOutput output) { output.TagName = "div"; - output.Attributes.Add("class", "modal-header"); //TODO: Append class if any exists + output.Attributes.AddClass("modal-header"); output.Content.SetHtmlContent(CreateContent()); } diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalTagHelper.cs similarity index 94% rename from src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalTagHelper.cs rename to src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalTagHelper.cs index 36dccf2656..b559975660 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpModalTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalTagHelper.cs @@ -1,7 +1,7 @@ using System.Text; using Microsoft.AspNetCore.Razor.TagHelpers; -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal { public class AbpModalTagHelper : TagHelper { diff --git a/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml b/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml index ff2834130f..bf7433df46 100644 --- a/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml +++ b/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml @@ -14,6 +14,7 @@
+