tooltip tag helper improvements

pull/670/head
Yunus Emre Kalkan 7 years ago
parent 06ecd14b7a
commit e4a81c6fa2

@ -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
{
@ -6,19 +8,40 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tooltip
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
if (IsButtonDisabled(context, output))
{
SetParentElementWithTooltip(context, output);
return;
}
SetDataToggle(context, output);
SetDataPlacement(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)
{
output.Attributes.Add("data-toggle","tooltip");
output.Attributes.Add("data-toggle", "tooltip");
}
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());
}
@ -65,5 +88,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tooltip
return TooltipDirectory.Default;
}
protected virtual bool IsButtonDisabled(TagHelperContext context, TagHelperOutput output)
{
return output.Attributes.Any(a => a.Name == "disabled");
}
}
}
Loading…
Cancel
Save