Browse Source

refactored

pull/279/head
Halil İbrahim Kalkan 9 years ago
parent
commit
8f7f988680
  1. 4
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperService.cs
  2. 21
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs
  3. 6
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs
  4. 0
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/FormGroupItem.cs
  5. 1
      test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/DynamicForms.cshtml

4
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperService.cs

@ -15,7 +15,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers
public abstract class AbpTagHelperService<TTagHelper> : IAbpTagHelperService<TTagHelper> public abstract class AbpTagHelperService<TTagHelper> : IAbpTagHelperService<TTagHelper>
where TTagHelper : TagHelper where TTagHelper : TagHelper
{ {
protected const string FormGroupContentsKey = "FormGroupContents"; protected const string FormGroupContents = "FormGroupContents";
public TTagHelper TagHelper { get; set; } public TTagHelper TagHelper { get; set; }
@ -81,7 +81,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers
protected virtual List<FormGroupItem> GetFormGroupContentsList(TagHelperContext context) protected virtual List<FormGroupItem> GetFormGroupContentsList(TagHelperContext context)
{ {
return context.Items[FormGroupContentsKey] as List<FormGroupItem>; return context.Items[FormGroupContents] as List<FormGroupItem>;
} }
protected virtual string GetIdAttributeAsString(TagHelperOutput inputTag) protected virtual string GetIdAttributeAsString(TagHelperOutput inputTag)

21
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs

@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Text;
using System.Text.Encodings.Web; using System.Text.Encodings.Web;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.AspNetCore.Mvc.Rendering;
@ -27,11 +28,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{ {
var list = InitilizeFormGroupContentsContext(context);
NormalizeTagMode(context, output); NormalizeTagMode(context, output);
SetFormAttributes(output); SetFormAttributes(output);
var list = InitilizeFormGroupContentsContext(context);
await output.GetChildContentAsync(); await output.GetChildContentAsync();
@ -50,19 +51,23 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
output.Attributes.AddIfNotContains("method", "post"); output.Attributes.AddIfNotContains("method", "post");
} }
protected virtual void SetContent(TagHelperOutput output, List<FormGroupItem> list) protected virtual void SetContent(TagHelperOutput output, List<FormGroupItem> items)
{ {
foreach (var itemConfig in list.OrderBy(o => o.Order)) var postContentBuilder = new StringBuilder(output.PostContent.GetContent());
foreach (var item in items.OrderBy(o => o.Order))
{ {
output.PostContent.SetHtmlContent(output.PostContent.GetContent() + itemConfig.HtmlContent); postContentBuilder.AppendLine(item.HtmlContent);
} }
output.PostContent.SetHtmlContent(postContentBuilder.ToString());
} }
protected virtual List<FormGroupItem> InitilizeFormGroupContentsContext(TagHelperContext context) protected virtual List<FormGroupItem> InitilizeFormGroupContentsContext(TagHelperContext context)
{ {
var list = new List<FormGroupItem>(); var items = new List<FormGroupItem>();
context.Items.Add(FormGroupContentsKey, list); context.Items[FormGroupContents] = items;
return list; return items;
} }
protected virtual void ProcessFields(TagHelperContext context, TagHelperOutput output) protected virtual void ProcessFields(TagHelperContext context, TagHelperOutput output)

6
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs

@ -16,13 +16,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
{ {
private readonly IHtmlGenerator _generator; private readonly IHtmlGenerator _generator;
private readonly HtmlEncoder _encoder; private readonly HtmlEncoder _encoder;
private readonly IStringLocalizer<AbpUiResource> _localizer;
public AbpInputTagHelperService(IHtmlGenerator generator, HtmlEncoder encoder, IStringLocalizer<AbpUiResource> localizer) public AbpInputTagHelperService(IHtmlGenerator generator, HtmlEncoder encoder)
{ {
_generator = generator; _generator = generator;
_encoder = encoder; _encoder = encoder;
_localizer = localizer;
} }
public override void Process(TagHelperContext context, TagHelperOutput output) public override void Process(TagHelperContext context, TagHelperOutput output)
@ -102,7 +100,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
var checkboxClass = isCheckbox ? "class=\"form-check-label\" " : ""; var checkboxClass = isCheckbox ? "class=\"form-check-label\" " : "";
return "<label " + checkboxClass + GetIdAttributeAsString(inputTag) + ">" return "<label " + checkboxClass + GetIdAttributeAsString(inputTag) + ">"
+ _localizer[GetLabelValue()] + + GetLabelValue() +
"</label>"; "</label>";
} }

0
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/FormGroupContent.cs → src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/FormGroupItem.cs

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

@ -14,6 +14,7 @@
<div class="demo-area"> <div class="demo-area">
<form abp-dynamic-form="@Model.PersonInput" asp-antiforgery="true"> <form abp-dynamic-form="@Model.PersonInput" asp-antiforgery="true">
<abp-button type="submit" button-type="Primary" text="Submit" /> <abp-button type="submit" button-type="Primary" text="Submit" />
@*<abp-input asp-for="PersonInput.Name"></abp-input>*@
</form> </form>
<hr /> <hr />
<h5>Posted Values:</h5> <h5>Posted Values:</h5>

Loading…
Cancel
Save