Browse Source

Merge branch 'master' of https://github.com/volosoft/abp

pull/301/head
Alper Ebicoglu 8 years ago
parent
commit
b3013c3cb9
  1. 16
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpBorderTagHelper.cs
  2. 91
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpBorderTagHelperService.cs
  3. 106
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpBorderType.cs
  4. 16
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpRoundedTagHelper.cs
  5. 20
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpRoundedTagHelperService.cs
  6. 12
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpRoundedType.cs
  7. 42
      src/Volo.Abp.Core/Volo/Abp/Options/AbpOptionsFactory.cs
  8. 48
      test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Borders.cshtml
  9. 17
      test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Borders.cshtml.cs
  10. 6
      test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/DynamicForms.cshtml

16
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpBorderTagHelper.cs

@ -0,0 +1,16 @@
using Microsoft.AspNetCore.Razor.TagHelpers;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Border
{
[HtmlTargetElement(Attributes = "abp-border")]
public class AbpBorderTagHelper : AbpTagHelper<AbpBorderTagHelper, AbpBorderTagHelperService>
{
public AbpBorderType AbpBorder { get; set; } = AbpBorderType.Default;
public AbpBorderTagHelper(AbpBorderTagHelperService tagHelperService)
: base(tagHelperService)
{
}
}
}

91
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpBorderTagHelperService.cs

@ -0,0 +1,91 @@
using Microsoft.AspNetCore.Razor.TagHelpers;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Border
{
public class AbpBorderTagHelperService : AbpTagHelperService<AbpBorderTagHelper>
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
var borderAttributeAsString = TagHelper.AbpBorder.ToString().ToLowerInvariant();
var borderClass = "border" + GetBorderDirection(context, output, borderAttributeAsString) + GetExtensionIfBorderIsSubtractive(context, output, borderAttributeAsString);
output.Attributes.AddClass(borderClass);
SetBorderType(context, output, borderAttributeAsString);
}
protected virtual string GetBorderDirection(TagHelperContext context, TagHelperOutput output, string borderAttributeAsString)
{
if (borderAttributeAsString.Contains("top"))
{
return "-top";
}
if (borderAttributeAsString.Contains("right"))
{
return "-right";
}
if (borderAttributeAsString.Contains("left"))
{
return "-left";
}
if (borderAttributeAsString.Contains("bottom"))
{
return "-bottom";
}
return "";
}
protected virtual string GetExtensionIfBorderIsSubtractive(TagHelperContext context, TagHelperOutput output, string borderAttributeAsString)
{
if (borderAttributeAsString.Contains("_0"))
{
return "-0";
}
return "";
}
protected virtual void SetBorderType(TagHelperContext context, TagHelperOutput output, string borderAttributeAsString)
{
if (borderAttributeAsString.Contains("primary"))
{
output.Attributes.AddClass("border-primary");
}
if (borderAttributeAsString.Contains("secondary"))
{
output.Attributes.AddClass("border-secondary");
}
if (borderAttributeAsString.Contains("success"))
{
output.Attributes.AddClass("border-success");
}
if (borderAttributeAsString.Contains("danger"))
{
output.Attributes.AddClass("border-danger");
}
if (borderAttributeAsString.Contains("warning"))
{
output.Attributes.AddClass("border-warning");
}
if (borderAttributeAsString.Contains("info"))
{
output.Attributes.AddClass("border-info");
}
if (borderAttributeAsString.Contains("light"))
{
output.Attributes.AddClass("border-light");
}
if (borderAttributeAsString.Contains("dark"))
{
output.Attributes.AddClass("border-dark");
}
if (borderAttributeAsString.Contains("white"))
{
output.Attributes.AddClass("border-white");
}
}
}
}

106
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpBorderType.cs

@ -0,0 +1,106 @@
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Border
{
public enum AbpBorderType
{
Default,
_0,
Primary,
Secondary,
Success,
Danger,
Warning,
Info,
Light,
Dark,
White,
Primary_0,
Secondary_0,
Success_0,
Danger_0,
Warning_0,
Info_0,
Light_0,
Dark_0,
White_0,
Top,
Top_0,
Top_Primary,
Top_Secondary,
Top_Success,
Top_Danger,
Top_Warning,
Top_Info,
Top_Light,
Top_Dark,
Top_White,
Top_Primary_0,
Top_Secondary_0,
Top_Success_0,
Top_Danger_0,
Top_Warning_0,
Top_Info_0,
Top_Light_0,
Top_Dark_0,
Top_White_0,
Right,
Right_0,
Right_Primary,
Right_Secondary,
Right_Success,
Right_Danger,
Right_Warning,
Right_Info,
Right_Light,
Right_Dark,
Right_White,
Right_Primary_0,
Right_Secondary_0,
Right_Success_0,
Right_Danger_0,
Right_Warning_0,
Right_Info_0,
Right_Light_0,
Right_Dark_0,
Right_White_0,
Left,
Left_0,
Left_Primary,
Left_Secondary,
Left_Success,
Left_Danger,
Left_Warning,
Left_Info,
Left_Light,
Left_Dark,
Left_White,
Left_Primary_0,
Left_Secondary_0,
Left_Success_0,
Left_Danger_0,
Left_Warning_0,
Left_Info_0,
Left_Light_0,
Left_Dark_0,
Left_White_0,
Bottom,
Bottom_0,
Bottom_Primary,
Bottom_Secondary,
Bottom_Success,
Bottom_Danger,
Bottom_Warning,
Bottom_Info,
Bottom_Light,
Bottom_Dark,
Bottom_White,
Bottom_Primary_0,
Bottom_Secondary_0,
Bottom_Success_0,
Bottom_Danger_0,
Bottom_Warning_0,
Bottom_Info_0,
Bottom_Light_0,
Bottom_Dark_0,
Bottom_White_0,
}
}

16
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpRoundedTagHelper.cs

@ -0,0 +1,16 @@
using Microsoft.AspNetCore.Razor.TagHelpers;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Border
{
[HtmlTargetElement(Attributes = "abp-rounded")]
public class AbpRoundedTagHelper : AbpTagHelper<AbpRoundedTagHelper, AbpRoundedTagHelperService>
{
public AbpRoundedType AbpRounded { get; set; } = AbpRoundedType.Default;
public AbpRoundedTagHelper(AbpRoundedTagHelperService tagHelperService)
: base(tagHelperService)
{
}
}
}

20
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpRoundedTagHelperService.cs

@ -0,0 +1,20 @@
using Microsoft.AspNetCore.Razor.TagHelpers;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Border
{
public class AbpRoundedTagHelperService : AbpTagHelperService<AbpRoundedTagHelper>
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
var roundedClass = "rounded";
if (TagHelper.AbpRounded != AbpRoundedType.Default)
{
roundedClass += "-" + TagHelper.AbpRounded.ToString().ToLowerInvariant().Replace("_","");
}
output.Attributes.AddClass(roundedClass);
}
}
}

12
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Border/AbpRoundedType.cs

@ -0,0 +1,12 @@
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Border
{
public enum AbpRoundedType
{
Default,
_0,
Top,
Right,
Left,
Bottom
}
}

42
src/Volo.Abp.Core/Volo/Abp/Options/AbpOptionsFactory.cs

@ -0,0 +1,42 @@
using System.Collections.Generic;
using Microsoft.Extensions.Options;
namespace Volo.Abp.Options
{
//TODO: Derive from OptionsFactory when this is released: https://github.com/aspnet/Options/pull/258 (or completely remove this!)
public class AbpOptionsFactory<TOptions> : IOptionsFactory<TOptions> where TOptions : class, new()
{
private readonly IEnumerable<IConfigureOptions<TOptions>> _setups;
private readonly IEnumerable<IPostConfigureOptions<TOptions>> _postConfigures;
public AbpOptionsFactory(IEnumerable<IConfigureOptions<TOptions>> setups, IEnumerable<IPostConfigureOptions<TOptions>> postConfigures)
{
_setups = setups;
_postConfigures = postConfigures;
}
public virtual TOptions Create(string name)
{
var options = new TOptions();
foreach (var setup in _setups)
{
if (setup is IConfigureNamedOptions<TOptions> namedSetup)
{
namedSetup.Configure(name, options);
}
else if (name == Microsoft.Extensions.Options.Options.DefaultName)
{
setup.Configure(options);
}
}
foreach (var post in _postConfigures)
{
post.PostConfigure(name, options);
}
return options;
}
}
}

48
test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Borders.cshtml

@ -0,0 +1,48 @@
@page
@model Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components.BordersModel
@{
ViewData["Title"] = "Borders";
}
<h2>Borders</h2>
<p>Based on <a href="https://getbootstrap.com/docs/4.1/components/border/" target="_blank"> Bootstrap Border</a>.</p>
<h4># Borders Examples</h4>
<div class="demo-with-code">
<div class="demo-area">
<span abp-border></span>
<span abp-border="top"></span>
<span abp-border="Right"></span>
<span abp-border="Left"></span>
<span abp-border="Bottom"></span>
<span abp-border="top_0"></span>
<span abp-border="Right_0"></span>
<span abp-border="Left_0"></span>
<span abp-border="Bottom_0"></span>
<span abp-border="Top_Primary"></span>
<span abp-border="Warning_0"></span>
<span abp-border="Bottom_Primary_0"></span>
<span abp-border="Left_Danger"></span>
</div>
<div class="code-area">
<pre>
&lt;span abp-border&gt;&lt;/span&gt;
&lt;span abp-border=&quot;top&quot;&gt;&lt;/span&gt;
&lt;span abp-border=&quot;Right&quot;&gt;&lt;/span&gt;
&lt;span abp-border=&quot;Left&quot;&gt;&lt;/span&gt;
&lt;span abp-border=&quot;Bottom&quot;&gt;&lt;/span&gt;
&lt;span abp-border=&quot;top_0&quot;&gt;&lt;/span&gt;
&lt;span abp-border=&quot;Right_0&quot;&gt;&lt;/span&gt;
&lt;span abp-border=&quot;Left_0&quot;&gt;&lt;/span&gt;
&lt;span abp-border=&quot;Bottom_0&quot;&gt;&lt;/span&gt;
&lt;span abp-border=&quot;Top_Primary&quot;&gt;&lt;/span&gt;
&lt;span abp-border=&quot;Warning_0&quot;&gt;&lt;/span&gt;
&lt;span abp-border=&quot;Bottom_Primary_0&quot;&gt;&lt;/span&gt;
&lt;span abp-border=&quot;Left_Danger&quot;&gt;&lt;/span&gt;
</pre>
</div>
</div>

17
test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Borders.cshtml.cs

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components
{
public class BordersModel : PageModel
{
public void OnGet()
{
}
}
}

6
test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/DynamicForms.cshtml

@ -37,7 +37,8 @@
<div class="demo-with-code"> <div class="demo-with-code">
<div class="demo-area"> <div class="demo-area">
<abp-dynamic-form abp-model="@Model.PersonInput"> <abp-dynamic-form abp-model="@Model.PersonInput">
<abp-input asp-for="@Model.PersonInput.Phone.Number" /> <abp-input asp-for="@Model.PersonInput.Name" label="Overrided name" />
<abp-input asp-for="@Model.PersonInput.Phone.Number" label="Overrided number" />
<abp-button button-type="Primary" type="submit" text="submit" /> <abp-button button-type="Primary" type="submit" text="submit" />
</abp-dynamic-form> </abp-dynamic-form>
<hr /> <hr />
@ -55,7 +56,8 @@
<div class="code-area"> <div class="code-area">
<pre> <pre>
&lt;abp-dynamic-form abp-model=&quot;Model.PersonInput&quot;&gt; &lt;abp-dynamic-form abp-model=&quot;Model.PersonInput&quot;&gt;
&lt;abp-input asp-for=&quot;Model.PersonInput.Phone.Number&quot; /&gt; &lt;abp-input asp-for=&quot;Model.PersonInput.Name&quot; label=&quot;Overrided name&quot; /&gt;
&lt;abp-input asp-for=&quot;Model.PersonInput.Phone.Number&quot; label=&quot;Overrided number&quot; /&gt;
&lt;abp-button button-type=&quot;Primary&quot; type=&quot;submit&quot; text=&quot;submit&quot; /&gt; &lt;abp-button button-type=&quot;Primary&quot; type=&quot;submit&quot; text=&quot;submit&quot; /&gt;
&lt;/abp-dynamic-form&gt; &lt;/abp-dynamic-form&gt;
</pre> </pre>

Loading…
Cancel
Save