Browse Source

Tooltip tag helper

pull/279/head
yekalkan 9 years ago
parent
commit
6723a9a420
  1. 35
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tooltip/AbpTooltipTagHelper.cs
  2. 73
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tooltip/AbpTooltipTagHelperService.cs
  3. 11
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tooltip/TooltipDirectory.cs
  4. 1090
      test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Logs/logs.txt
  5. 53
      test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Tooltips.cshtml
  6. 17
      test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Tooltips.cshtml.cs
  7. 1
      test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Index.cshtml

35
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tooltip/AbpTooltipTagHelper.cs

@ -0,0 +1,35 @@
using Microsoft.AspNetCore.Razor.TagHelpers;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tooltip
{
[HtmlTargetElement("button", Attributes = "abp-tooltip")]
[HtmlTargetElement("button", Attributes = "abp-tooltip-right")]
[HtmlTargetElement("button", Attributes = "abp-tooltip-left")]
[HtmlTargetElement("button", Attributes = "abp-tooltip-top")]
[HtmlTargetElement("button", Attributes = "abp-tooltip-bottom")]
[HtmlTargetElement("abp-button", Attributes = "abp-tooltip")]
[HtmlTargetElement("abp-button", Attributes = "abp-tooltip-right")]
[HtmlTargetElement("abp-button", Attributes = "abp-tooltip-left")]
[HtmlTargetElement("abp-button", Attributes = "abp-tooltip-top")]
[HtmlTargetElement("abp-button", Attributes = "abp-tooltip-bottom")]
public class AbpTooltipTagHelper : AbpTagHelper<AbpTooltipTagHelper, AbpTooltipTagHelperService>
{
public string AbpTooltip { get; set; }
public string AbpTooltipRight { get; set; }
public string AbpTooltipLeft { get; set; }
public string AbpTooltipTop { get; set; }
public string AbpTooltipBottom { get; set; }
public string Title { get; set; }
public AbpTooltipTagHelper(AbpTooltipTagHelperService tagHelperService)
: base(tagHelperService)
{
}
}
}

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

@ -0,0 +1,73 @@
using Microsoft.AspNetCore.Razor.TagHelpers;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tooltip
{
public class AbpTooltipTagHelperService : AbpTagHelperService<AbpTooltipTagHelper>
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
SetDataToggle(context, output);
SetDataPlacement(context, output);
SetTooltipTitle(context, output);
}
protected virtual void SetDataToggle(TagHelperContext context, TagHelperOutput output)
{
output.Attributes.Add("data-toggle","tooltip");
}
protected virtual void SetDataPlacement(TagHelperContext context, TagHelperOutput output)
{
output.Attributes.Add("data-placement", GetDirectory().ToString().ToLowerInvariant());
}
protected virtual void SetTooltipTitle(TagHelperContext context, TagHelperOutput output)
{
output.Attributes.Add("title", GetTitle());
}
protected virtual TooltipDirectory GetDirectory()
{
if (!string.IsNullOrWhiteSpace(TagHelper.AbpTooltipTop))
{
return TooltipDirectory.Top;
}
if (!string.IsNullOrWhiteSpace(TagHelper.AbpTooltipBottom))
{
return TooltipDirectory.Bottom;
}
if (!string.IsNullOrWhiteSpace(TagHelper.AbpTooltipRight))
{
return TooltipDirectory.Right;
}
if (!string.IsNullOrWhiteSpace(TagHelper.AbpTooltipLeft))
{
return TooltipDirectory.Left;
}
return TooltipDirectory.Bottom;
}
protected virtual string GetTitle()
{
if (!string.IsNullOrWhiteSpace(TagHelper.AbpTooltipTop))
{
return TagHelper.AbpTooltipTop;
}
if (!string.IsNullOrWhiteSpace(TagHelper.AbpTooltipRight))
{
return TagHelper.AbpTooltipRight;
}
if (!string.IsNullOrWhiteSpace(TagHelper.AbpTooltipBottom))
{
return TagHelper.AbpTooltipBottom;
}
if (!string.IsNullOrWhiteSpace(TagHelper.AbpTooltipLeft))
{
return TagHelper.AbpTooltipLeft;
}
return TagHelper.AbpTooltip;
}
}
}

11
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tooltip/TooltipDirectory.cs

@ -0,0 +1,11 @@
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tooltip
{
public enum TooltipDirectory
{
Default,
Right,
Left,
Bottom,
Top
}
}

1090
test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Logs/logs.txt

File diff suppressed because it is too large

53
test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Tooltips.cshtml

@ -0,0 +1,53 @@
@page
@model Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components.TooltipsModel
@{
ViewData["Title"] = "Badges";
}
<h2>Tooltips</h2>
<p>Based on <a href="https://getbootstrap.com/docs/4.1/components/tooltips/" target="_blank"> Bootstrap Tooltips</a>.</p>
<h4># Tooltips Examples</h4>
<div class="demo-with-code">
<div class="demo-area">
<abp-button button-type="Dark" abp-tooltip="Tooltip Default">
Tooltip Default
</abp-button>
<abp-button button-type="Primary" abp-tooltip-top="Tooltip on top">
Tooltip on top
</abp-button>
<abp-button button-type="Warning" abp-tooltip-right="Tooltip on right">
Tooltip on right
</abp-button>
<abp-button button-type="Danger" abp-tooltip-bottom="Tooltip on bottom">
Tooltip on bottom
</abp-button>
<abp-button button-type="Success" abp-tooltip-left="Tooltip on left">
Tooltip on left
</abp-button>
</div>
<div class="code-area">
<pre>
&lt;abp-button button-type=&quot;Dark&quot; abp-tooltip=&quot;Tooltip Default&quot;&gt;
Tooltip Default
&lt;/abp-button&gt;
&lt;abp-button button-type=&quot;Primary&quot; abp-tooltip-top=&quot;Tooltip on top&quot;&gt;
Tooltip on top
&lt;/abp-button&gt;
&lt;abp-button button-type=&quot;Warning&quot; abp-tooltip-right=&quot;Tooltip on right&quot;&gt;
Tooltip on right
&lt;/abp-button&gt;
&lt;abp-button button-type=&quot;Danger&quot; abp-tooltip-bottom=&quot;Tooltip on bottom&quot;&gt;
Tooltip on bottom
&lt;/abp-button&gt;
&lt;abp-button button-type=&quot;Success&quot; abp-tooltip-left=&quot;Tooltip on left&quot;&gt;
Tooltip on left
&lt;/abp-button&gt;
</pre>
</div>
</div>

17
test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Tooltips.cshtml.cs

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components
{
public class TooltipsModel : PageModel
{
public void OnGet()
{
}
}
}

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

@ -17,5 +17,6 @@
<li><a asp-page="Components/badges">Badges</a></li>
<li><a asp-page="Components/Modals">Modals</a></li>
<li><a asp-page="Components/collapse">Collapse</a></li>
<li><a asp-page="Components/tooltips">Tooltips</a></li>
</ul>

Loading…
Cancel
Save