Browse Source

added `busy-text-is-html` attribute

pull/5331/head
Maik Stegemann 6 years ago
parent
commit
3cd00f58f6
  1. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs
  2. 16
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperService.cs
  3. 9
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/jquery-extensions.js
  4. 3
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Buttons.cshtml

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs

@ -19,6 +19,8 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button
public FontIconType IconType { get; set; } = FontIconType.FontAwesome; public FontIconType IconType { get; set; } = FontIconType.FontAwesome;
public bool BusyTextIsHtml { get; set; }
public AbpButtonTagHelper(AbpButtonTagHelperService service) public AbpButtonTagHelper(AbpButtonTagHelperService service)
: base(service) : base(service)
{ {

16
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperService.cs

@ -1,13 +1,14 @@
using System; using Localization.Resources.AbpUi;
using Localization.Resources.AbpUi;
using Microsoft.AspNetCore.Razor.TagHelpers; using Microsoft.AspNetCore.Razor.TagHelpers;
using Microsoft.Extensions.Localization; using Microsoft.Extensions.Localization;
using System;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button
{ {
public class AbpButtonTagHelperService : AbpButtonTagHelperServiceBase<AbpButtonTagHelper> public class AbpButtonTagHelperService : AbpButtonTagHelperServiceBase<AbpButtonTagHelper>
{ {
protected const string DataBusyTextAttributeName = "data-busy-text"; protected const string DataBusyTextAttributeName = "data-busy-text";
protected const string DataBusyTextIsHtmlAttributeName = "data-busy-text-is-html";
protected IStringLocalizer<AbpUiResource> L { get; } protected IStringLocalizer<AbpUiResource> L { get; }
@ -22,6 +23,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button
output.TagName = "button"; output.TagName = "button";
AddType(context, output); AddType(context, output);
AddBusyText(context, output); AddBusyText(context, output);
AddBusyTextIsHtml(context, output);
} }
protected virtual void AddType(TagHelperContext context, TagHelperOutput output) protected virtual void AddType(TagHelperContext context, TagHelperOutput output)
@ -44,5 +46,15 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button
output.Attributes.SetAttribute(DataBusyTextAttributeName, busyText); output.Attributes.SetAttribute(DataBusyTextAttributeName, busyText);
} }
protected virtual void AddBusyTextIsHtml(TagHelperContext context, TagHelperOutput output)
{
if (!TagHelper.BusyTextIsHtml)
{
return;
}
output.Attributes.SetAttribute(DataBusyTextIsHtmlAttributeName, TagHelper.BusyTextIsHtml.ToString().ToLower());
}
} }
} }

9
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/jquery-extensions.js

@ -35,7 +35,12 @@
//change text //change text
if ($buttonInnerSpan.length && $button.attr('data-busy-text')) { if ($buttonInnerSpan.length && $button.attr('data-busy-text')) {
$button.data('buttonOriginalText', $buttonInnerSpan.html()); $button.data('buttonOriginalText', $buttonInnerSpan.html());
$buttonInnerSpan.text($button.attr('data-busy-text'));
if ($button.data('busy-text-is-html')) {
$buttonInnerSpan.html($button.attr('data-busy-text'));
} else {
$buttonInnerSpan.text($button.attr('data-busy-text'));
}
} }
$button.addClass('button-busy'); $button.addClass('button-busy');
@ -55,7 +60,7 @@
//restore text //restore text
if ($buttonInnerSpan.length && $button.data('buttonOriginalText')) { if ($buttonInnerSpan.length && $button.data('buttonOriginalText')) {
$buttonInnerSpan.text($button.data('buttonOriginalText')); $buttonInnerSpan.html($button.data('buttonOriginalText'));
} }
$button.removeClass('button-busy'); $button.removeClass('button-busy');

3
framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Buttons.cshtml

@ -295,6 +295,9 @@
<li> <li>
<b>busy-text</b>: Sets "data-busy-text" attribute. Default value is localization of "ProcessingWithThreeDot" string. <b>busy-text</b>: Sets "data-busy-text" attribute. Default value is localization of "ProcessingWithThreeDot" string.
</li> </li>
<li>
<b>busy-text-is-html</b>: Sets "data-busy-is-html" attribute. Default value is "false".
</li>
</ul> </ul>
</div> </div>
</div> </div>
Loading…
Cancel
Save