Browse Source

Merge pull request #18711 from abpframework/taghelpers

Make AbpDynamicFormTagHelperService methods virtual
pull/18724/head
liangshiwei 3 years ago
committed by GitHub
parent
commit
3643525092
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 46
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs

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

@ -22,11 +22,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form;
public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicFormTagHelper> public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicFormTagHelper>
{ {
private readonly HtmlEncoder _htmlEncoder; protected HtmlEncoder HtmlEncoder { get; }
private readonly IHtmlGenerator _htmlGenerator; protected IHtmlGenerator HtmlGenerator { get; }
private readonly IServiceProvider _serviceProvider; protected IServiceProvider _serviceProvider { get; }
private readonly IStringLocalizer<AbpUiResource> _localizer; protected IStringLocalizer<AbpUiResource> Localizer { get; }
private List<ModelExpression> _models = new(); protected List<ModelExpression> Models = new();
public AbpDynamicFormTagHelperService( public AbpDynamicFormTagHelperService(
HtmlEncoder htmlEncoder, HtmlEncoder htmlEncoder,
@ -34,15 +34,15 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
IServiceProvider serviceProvider, IServiceProvider serviceProvider,
IStringLocalizer<AbpUiResource> localizer) IStringLocalizer<AbpUiResource> localizer)
{ {
_htmlEncoder = htmlEncoder; HtmlEncoder = htmlEncoder;
_htmlGenerator = htmlGenerator; HtmlGenerator = htmlGenerator;
_serviceProvider = serviceProvider; _serviceProvider = serviceProvider;
_localizer = localizer; Localizer = localizer;
} }
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{ {
_models = GetModels(context, output); Models = GetModels(context, output);
var list = InitilizeFormGroupContentsContext(context, output); var list = InitilizeFormGroupContentsContext(context, output);
NormalizeTagMode(context, output); NormalizeTagMode(context, output);
@ -64,7 +64,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
protected virtual async Task ConvertToMvcForm(TagHelperContext context, TagHelperOutput output) protected virtual async Task ConvertToMvcForm(TagHelperContext context, TagHelperOutput output)
{ {
var formTagHelper = new FormTagHelper(_htmlGenerator) var formTagHelper = new FormTagHelper(HtmlGenerator)
{ {
Action = TagHelper.Action, Action = TagHelper.Action,
Controller = TagHelper.Controller, Controller = TagHelper.Controller,
@ -159,7 +159,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
protected virtual async Task ProcessFieldsAsync(TagHelperContext context, TagHelperOutput output) protected virtual async Task ProcessFieldsAsync(TagHelperContext context, TagHelperOutput output)
{ {
foreach (var model in _models) foreach (var model in Models)
{ {
if (IsSelectGroup(context, model)) if (IsSelectGroup(context, model))
{ {
@ -176,21 +176,21 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
} }
} }
private async Task ProcessDateGroupAsync(TagHelperContext context, TagHelperOutput output, ModelExpression model) protected virtual async Task ProcessDateGroupAsync(TagHelperContext context, TagHelperOutput output, ModelExpression model)
{ {
var abpDateTagHelper = GetDateGroupTagHelper(context, output, model); var abpDateTagHelper = GetDateGroupTagHelper(context, output, model);
await abpDateTagHelper.RenderAsync(new TagHelperAttributeList(), context, _htmlEncoder, "div", TagMode.StartTagAndEndTag); await abpDateTagHelper.RenderAsync(new TagHelperAttributeList(), context, HtmlEncoder, "div", TagMode.StartTagAndEndTag);
} }
private AbpTagHelper GetDateGroupTagHelper(TagHelperContext context, TagHelperOutput output, ModelExpression model) protected virtual AbpTagHelper GetDateGroupTagHelper(TagHelperContext context, TagHelperOutput output, ModelExpression model)
{ {
return IsDateRangeGroup(model.ModelExplorer) return IsDateRangeGroup(model.ModelExplorer)
? GetAbpDateRangeInputTagHelper(context, output, model) ? GetAbpDateRangeInputTagHelper(context, output, model)
: GetAbpDateInputTagHelper(model); : GetAbpDateInputTagHelper(model);
} }
private AbpTagHelper GetAbpDateInputTagHelper(ModelExpression model) protected virtual AbpTagHelper GetAbpDateInputTagHelper(ModelExpression model)
{ {
var abpDateInputTagHelper = _serviceProvider.GetRequiredService<AbpDatePickerTagHelper>(); var abpDateInputTagHelper = _serviceProvider.GetRequiredService<AbpDatePickerTagHelper>();
abpDateInputTagHelper.AspFor = model; abpDateInputTagHelper.AspFor = model;
@ -199,7 +199,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
return abpDateInputTagHelper; return abpDateInputTagHelper;
} }
private AbpTagHelper GetAbpDateRangeInputTagHelper(TagHelperContext context, TagHelperOutput output, ModelExpression model) protected virtual AbpTagHelper GetAbpDateRangeInputTagHelper(TagHelperContext context, TagHelperOutput output, ModelExpression model)
{ {
var modelAttribute = model.ModelExplorer.GetAttribute<DateRangePickerAttribute>()!; var modelAttribute = model.ModelExplorer.GetAttribute<DateRangePickerAttribute>()!;
@ -223,13 +223,13 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
return abpDateRangeInputTagHelper; return abpDateRangeInputTagHelper;
} }
private bool TryToGetOtherDateModel(ModelExpression model, string pickerId, out ModelExplorer? otherModel) protected virtual bool TryToGetOtherDateModel(ModelExpression model, string pickerId, out ModelExplorer? otherModel)
{ {
otherModel = _models.Select(x => x.ModelExplorer).SingleOrDefault(x => x != model.ModelExplorer && x.GetAttribute<DateRangePickerAttribute>()?.PickerId == pickerId); otherModel = Models.Select(x => x.ModelExplorer).SingleOrDefault(x => x != model.ModelExplorer && x.GetAttribute<DateRangePickerAttribute>()?.PickerId == pickerId);
return otherModel != null; return otherModel != null;
} }
private static bool IsDateRangeGroup(ModelExplorer modelModelExplorer) protected virtual bool IsDateRangeGroup(ModelExplorer modelModelExplorer)
{ {
return modelModelExplorer.GetAttribute<DateRangePickerAttribute>() != null; return modelModelExplorer.GetAttribute<DateRangePickerAttribute>() != null;
} }
@ -245,7 +245,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
{ {
var abpSelectTagHelper = GetSelectGroupTagHelper(context, output, model); var abpSelectTagHelper = GetSelectGroupTagHelper(context, output, model);
await abpSelectTagHelper.RenderAsync(new TagHelperAttributeList(), context, _htmlEncoder, "div", TagMode.StartTagAndEndTag); await abpSelectTagHelper.RenderAsync(new TagHelperAttributeList(), context, HtmlEncoder, "div", TagMode.StartTagAndEndTag);
} }
protected virtual AbpTagHelper GetSelectGroupTagHelper(TagHelperContext context, TagHelperOutput output, ModelExpression model) protected virtual AbpTagHelper GetSelectGroupTagHelper(TagHelperContext context, TagHelperOutput output, ModelExpression model)
@ -280,10 +280,10 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
{ {
var abpButtonTagHelper = _serviceProvider.GetRequiredService<AbpButtonTagHelper>(); var abpButtonTagHelper = _serviceProvider.GetRequiredService<AbpButtonTagHelper>();
var attributes = new TagHelperAttributeList { new TagHelperAttribute("type", "submit") }; var attributes = new TagHelperAttributeList { new TagHelperAttribute("type", "submit") };
abpButtonTagHelper.Text = _localizer["Submit"]; abpButtonTagHelper.Text = Localizer["Submit"];
abpButtonTagHelper.ButtonType = AbpButtonType.Primary; abpButtonTagHelper.ButtonType = AbpButtonType.Primary;
return await abpButtonTagHelper.RenderAsync(attributes, context, _htmlEncoder, "button", TagMode.StartTagAndEndTag); return await abpButtonTagHelper.RenderAsync(attributes, context, HtmlEncoder, "button", TagMode.StartTagAndEndTag);
} }
protected virtual async Task ProcessInputGroupAsync(TagHelperContext context, TagHelperOutput output, ModelExpression model) protected virtual async Task ProcessInputGroupAsync(TagHelperContext context, TagHelperOutput output, ModelExpression model)
@ -293,7 +293,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
abpInputTagHelper.ViewContext = TagHelper.ViewContext; abpInputTagHelper.ViewContext = TagHelper.ViewContext;
abpInputTagHelper.DisplayRequiredSymbol = TagHelper.RequiredSymbols ?? true; abpInputTagHelper.DisplayRequiredSymbol = TagHelper.RequiredSymbols ?? true;
await abpInputTagHelper.RenderAsync(new TagHelperAttributeList(), context, _htmlEncoder, "div", TagMode.StartTagAndEndTag); await abpInputTagHelper.RenderAsync(new TagHelperAttributeList(), context, HtmlEncoder, "div", TagMode.StartTagAndEndTag);
} }
protected virtual List<ModelExpression> GetModels(TagHelperContext context, TagHelperOutput output) protected virtual List<ModelExpression> GetModels(TagHelperContext context, TagHelperOutput output)

Loading…
Cancel
Save