From e6cff0df3f7b9e179a5ccae8cbb45a3c68f953d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 23 Apr 2018 13:57:14 +0300 Subject: [PATCH] Introduced ITagHelperService. --- .../TagHelpers/Card/AbpCardBodyTagHelper.cs | 12 +++---- .../Card/AbpCardBodyTagHelperService.cs | 13 ++++++++ .../TagHelpers/Card/AbpCardHeaderTagHelper.cs | 11 +++---- .../Card/AbpCardHeaderTagHelperService.cs | 13 ++++++++ .../TagHelpers/Card/AbpCardTagHelper.cs | 11 +++---- .../Card/AbpCardTagHelperService.cs | 13 ++++++++ .../TagHelpers/ITagHelperService.cs | 15 +++++++++ .../TagHelpers/TagHelper.cs | 21 ++++++++++++ .../TagHelpers/TagHelperService.cs | 24 ++++++++++++++ .../Pages/Components/Cards.cshtml | 32 +++++++++++++++++-- .../wwwroot/css/demo.css | 16 ++++++---- .../wwwroot/css/demo.min.css | 2 +- .../wwwroot/css/demo.scss | 6 +++- 13 files changed, 157 insertions(+), 32 deletions(-) create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelperService.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardHeaderTagHelperService.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardTagHelperService.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/ITagHelperService.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/TagHelper.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/TagHelperService.cs 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 index d5ed691924..fbbc2ee0f9 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelper.cs @@ -1,13 +1,11 @@ -using Microsoft.AspNetCore.Razor.TagHelpers; - -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card { - public class AbpCardBodyTagHelper : TagHelper + public class AbpCardBodyTagHelper : TagHelper { - public override void Process(TagHelperContext context, TagHelperOutput output) + public AbpCardBodyTagHelper(AbpCardBodyTagHelperService tagHelperService) + : base(tagHelperService) { - 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/AbpCardBodyTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelperService.cs new file mode 100644 index 0000000000..bb3711f720 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelperService.cs @@ -0,0 +1,13 @@ +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card +{ + public class AbpCardBodyTagHelperService : TagHelperService + { + public override void Process(TagHelperContext context, TagHelperOutput output) + { + 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 index b146dc1ec3..46fb75748a 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardHeaderTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardHeaderTagHelper.cs @@ -1,13 +1,10 @@ -using Microsoft.AspNetCore.Razor.TagHelpers; - -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card { - public class AbpCardHeaderTagHelper : TagHelper + public class AbpCardHeaderTagHelper : TagHelper { - public override void Process(TagHelperContext context, TagHelperOutput output) + public AbpCardHeaderTagHelper(AbpCardHeaderTagHelperService tagHelperService) + : base(tagHelperService) { - 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/AbpCardHeaderTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardHeaderTagHelperService.cs new file mode 100644 index 0000000000..d0c9faccd3 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardHeaderTagHelperService.cs @@ -0,0 +1,13 @@ +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card +{ + public class AbpCardHeaderTagHelperService : TagHelperService + { + public override void Process(TagHelperContext context, TagHelperOutput output) + { + 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 index df2ddf209c..0a8d223fea 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardTagHelper.cs @@ -1,13 +1,10 @@ -using Microsoft.AspNetCore.Razor.TagHelpers; - -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card { - public class AbpCardTagHelper : TagHelper + public class AbpCardTagHelper : TagHelper { - public override void Process(TagHelperContext context, TagHelperOutput output) + public AbpCardTagHelper(AbpCardTagHelperService tagHelperService) + : base(tagHelperService) { - output.TagName = "div"; - output.Attributes.AddClass("card"); } } } diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardTagHelperService.cs new file mode 100644 index 0000000000..64ff7c9cdb --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardTagHelperService.cs @@ -0,0 +1,13 @@ +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card +{ + public class AbpCardTagHelperService : TagHelperService + { + public override void Process(TagHelperContext context, TagHelperOutput output) + { + output.TagName = "div"; + output.Attributes.AddClass("card"); + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/ITagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/ITagHelperService.cs new file mode 100644 index 0000000000..b1d5a7fbc2 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/ITagHelperService.cs @@ -0,0 +1,15 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers +{ + public interface ITagHelperService : ITransientDependency + { + int Order { get; } + + void Init(TagHelperContext context); + + Task ProcessAsync(TagHelperContext context, TagHelperOutput output); + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/TagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/TagHelper.cs new file mode 100644 index 0000000000..aee690dcef --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/TagHelper.cs @@ -0,0 +1,21 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers +{ + public abstract class TagHelper : TagHelper + where TService : ITagHelperService + { + private readonly TService _tagHelperService; + + protected TagHelper(TService tagHelperService) + { + _tagHelperService = tagHelperService; + } + + public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + { + return _tagHelperService.ProcessAsync(context, output); + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/TagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/TagHelperService.cs new file mode 100644 index 0000000000..a1f249121b --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/TagHelperService.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers +{ + public class TagHelperService : ITagHelperService + { + public virtual int Order { get; } + + public virtual void Init(TagHelperContext context) + { + } + + public virtual void Process(TagHelperContext context, TagHelperOutput output) + { + } + + public virtual Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + { + Process(context, output); + return Task.CompletedTask; + } + } +} \ No newline at end of file diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Cards.cshtml b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Cards.cshtml index 1e9027e87d..e72365a394 100644 --- a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Cards.cshtml +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Cards.cshtml @@ -6,12 +6,40 @@

Cards

-

Example - 1

+@* +
+
+
+
+

+        
+
+*@ + +

Based on Bootstrap card.

+ +

# Example

-
+ + Card header + Card body + +
+
+
<abp-card>
+    <abp-card-header>Card header</abp-card-header>
+    <abp-card-body>Card body</abp-card-body>
+</abp-card>
+
+
+ +

# Example

+
+
+
Card image cap
Card title
diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.css b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.css index c27f90cea4..c207771001 100644 --- a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.css +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.css @@ -1,8 +1,10 @@ -.demo-with-code .demo-area { - margin-bottom: 2em; } - -.demo-with-code .code-area { - border: 1px solid #ddd; - padding: 10px; - font-size: 0.9em; } +.demo-with-code { + padding-bottom: 10px; + margin-bottom: 10px; } + .demo-with-code .demo-area { + margin-bottom: 1em; } + .demo-with-code .code-area { + border: 1px solid #ddd; + padding: 10px; + font-size: 0.9em; } diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.min.css b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.min.css index 10d854a024..6721b78939 100644 --- a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.min.css +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.min.css @@ -1 +1 @@ -.demo-with-code .demo-area{margin-bottom:2em;}.demo-with-code .code-area{border:1px solid #ddd;padding:10px;font-size:.9em;} \ No newline at end of file +.demo-with-code{padding-bottom:10px;margin-bottom:10px;}.demo-with-code .demo-area{margin-bottom:1em;}.demo-with-code .code-area{border:1px solid #ddd;padding:10px;font-size:.9em;} \ No newline at end of file diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.scss b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.scss index 95bd900024..b37214bf94 100644 --- a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.scss +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/css/demo.scss @@ -1,6 +1,10 @@ .demo-with-code { + + padding-bottom: 10px; + margin-bottom: 10px; + .demo-area { - margin-bottom: 2em; + margin-bottom: 1em; } .code-area {