Browse Source

tooltip tag helper improvements

pull/670/head
Yunus Emre Kalkan 8 years ago
parent
commit
e4a81c6fa2
  1. 34
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tooltip/AbpTooltipTagHelperService.cs

34
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tooltip/AbpTooltipTagHelperService.cs

@ -1,4 +1,6 @@
using Microsoft.AspNetCore.Razor.TagHelpers; using System;
using System.Linq;
using Microsoft.AspNetCore.Razor.TagHelpers;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tooltip namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tooltip
{ {
@ -6,19 +8,40 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tooltip
{ {
public override void Process(TagHelperContext context, TagHelperOutput output) public override void Process(TagHelperContext context, TagHelperOutput output)
{ {
if (IsButtonDisabled(context, output))
{
SetParentElementWithTooltip(context, output);
return;
}
SetDataToggle(context, output); SetDataToggle(context, output);
SetDataPlacement(context, output); SetDataPlacement(context, output);
SetTooltipTitle(context, output); SetTooltipTitle(context, output);
} }
protected virtual void SetParentElementWithTooltip(TagHelperContext context, TagHelperOutput output)
{
var directory = GetDirectory() != TooltipDirectory.Default ? GetDirectory() : TooltipDirectory.Top;
output.Attributes.Add("data-placement", directory.ToString().ToLowerInvariant());
output.PreElement.SetHtmlContent(
"<span class=\"d-inline-block\" tabindex=\"0\" data-toggle=\"tooltip\" " +
"data-placement=\"" + directory.ToString().ToLowerInvariant() +
"\" title=\"" + GetTitle() + "\">" + Environment.NewLine);
output.PostElement.SetHtmlContent(Environment.NewLine + "</span>");
output.Attributes.Add("style", "pointer-events: none;");
}
protected virtual void SetDataToggle(TagHelperContext context, TagHelperOutput output) protected virtual void SetDataToggle(TagHelperContext context, TagHelperOutput output)
{ {
output.Attributes.Add("data-toggle","tooltip"); output.Attributes.Add("data-toggle", "tooltip");
} }
protected virtual void SetDataPlacement(TagHelperContext context, TagHelperOutput output) protected virtual void SetDataPlacement(TagHelperContext context, TagHelperOutput output)
{ {
var directory = GetDirectory() != TooltipDirectory.Default ? GetDirectory() : TooltipDirectory.Bottom; var directory = GetDirectory() != TooltipDirectory.Default ? GetDirectory() : TooltipDirectory.Top;
output.Attributes.Add("data-placement", directory.ToString().ToLowerInvariant()); output.Attributes.Add("data-placement", directory.ToString().ToLowerInvariant());
} }
@ -65,5 +88,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tooltip
return TooltipDirectory.Default; return TooltipDirectory.Default;
} }
protected virtual bool IsButtonDisabled(TagHelperContext context, TagHelperOutput output)
{
return output.Attributes.Any(a => a.Name == "disabled");
}
} }
} }
Loading…
Cancel
Save