allow developers to use custom icon libraries (Open Iconic is the default)

This commit is contained in:
Shaun Walker 2020-12-22 08:37:33 -05:00
parent 05b0b74578
commit df382ce7a3
13 changed files with 41 additions and 20 deletions

View File

@ -1,4 +1,4 @@
@namespace Oqtane.Modules.Admin.Dashboard @namespace Oqtane.Modules.Admin.Dashboard
@inherits ModuleBase @inherits ModuleBase
@inject IPageService PageService @inject IPageService PageService
@inject IUserService UserService @inject IUserService UserService
@ -11,7 +11,7 @@
string url = NavigateUrl(p.Path); string url = NavigateUrl(p.Path);
<div class="col-md-2 mx-auto text-center"> <div class="col-md-2 mx-auto text-center">
<NavLink class="nav-link" href="@url" Match="NavLinkMatch.All"> <NavLink class="nav-link" href="@url" Match="NavLinkMatch.All">
<h2><span class="oi oi-@p.Icon" aria-hidden="true"></span></h2>@p.Name <h2><span class="@p.Icon" aria-hidden="true"></span></h2>@p.Name
</NavLink> </NavLink>
</div> </div>
} }

View File

@ -157,7 +157,7 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<Label For="Icon" HelpText="Optionally provide an icon for this page which will be displayed in the site navigation" ResourceKey="Icon">Icon: </Label> <Label For="Icon" HelpText="Optionally provide an icon class name for this page which will be displayed in the site navigation" ResourceKey="Icon">Icon: </Label>
</td> </td>
<td> <td>
<input id="Icon" class="form-control" @bind="@_icon" /> <input id="Icon" class="form-control" @bind="@_icon" />

View File

@ -168,7 +168,7 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<Label For="Icon" HelpText="Optionally provide an icon for this page which will be displayed in the site navigation" ResourceKey="Icon">Icon: </Label> <Label For="Icon" HelpText="Optionally provide an icon class name for this page which will be displayed in the site navigation" ResourceKey="Icon">Icon: </Label>
</td> </td>
<td> <td>
<input id="Icon" class="form-control" @bind="@_icon" /> <input id="Icon" class="form-control" @bind="@_icon" />

View File

@ -94,7 +94,11 @@
if (!string.IsNullOrEmpty(IconName)) if (!string.IsNullOrEmpty(IconName))
{ {
_iconSpan = $"<span class=\"oi oi-{IconName}\"></span>&nbsp;"; if (!IconName.Contains(" "))
{
IconName = "oi oi-" + IconName;
}
_iconSpan = $"<span class=\"{IconName}\"></span>&nbsp;";
} }
Text = Localize(nameof(Text), Text); Text = Localize(nameof(Text), Text);

View File

@ -91,7 +91,11 @@
if (!string.IsNullOrEmpty(IconName)) if (!string.IsNullOrEmpty(IconName))
{ {
_iconSpan = $"<span class=\"oi oi-{IconName}\"></span>{(IconOnly ? "" : "&nbsp")}"; if (!IconName.Contains(" "))
{
IconName = "oi oi-" + IconName;
}
_iconSpan = $"<span class=\"{IconName}\"></span>{(IconOnly ? "" : "&nbsp")}";
} }

View File

@ -1,4 +1,4 @@
@namespace Oqtane.Themes.Controls @namespace Oqtane.Themes.Controls
@inherits MenuBase @inherits MenuBase
@if (MenuPages.Any()) @if (MenuPages.Any())
@ -19,7 +19,7 @@
<a class="nav-link" href="@GetUrl(p)" target="@GetTarget(p)" > <a class="nav-link" href="@GetUrl(p)" target="@GetTarget(p)" >
@if (p.Icon != string.Empty) @if (p.Icon != string.Empty)
{ {
<span class="oi oi-@p.Icon" aria-hidden="true"></span> <span class="@p.Icon" aria-hidden="true"></span>
} }
@p.Name<span class="sr-only">(current)</span> @p.Name<span class="sr-only">(current)</span>
</a> </a>
@ -31,7 +31,7 @@
<a class="nav-link" href="@GetUrl(p)" target="@GetTarget(p)" > <a class="nav-link" href="@GetUrl(p)" target="@GetTarget(p)" >
@if (p.Icon != string.Empty) @if (p.Icon != string.Empty)
{ {
<span class="oi oi-@p.Icon" aria-hidden="true"></span> <span class="@p.Icon" aria-hidden="true"></span>
} }
@p.Name @p.Name
</a> </a>

View File

@ -1,4 +1,4 @@
@namespace Oqtane.Themes.Controls @namespace Oqtane.Themes.Controls
@inherits MenuBase @inherits MenuBase
@if (MenuPages.Any()) @if (MenuPages.Any())
@ -22,7 +22,7 @@
} }
@if (p.Icon != string.Empty) @if (p.Icon != string.Empty)
{ {
<span class="oi oi-@p.Icon" aria-hidden="true"></span> <span class="@p.Icon" aria-hidden="true"></span>
} }
@p.Name @p.Name
</a> </a>

View File

@ -1,4 +1,4 @@
@namespace Oqtane.Themes.Controls @namespace Oqtane.Themes.Controls
@inherits ModuleActionsBase @inherits ModuleActionsBase
@attribute [OqtaneIgnore] @attribute [OqtaneIgnore]
@ -22,7 +22,7 @@
} }
else else
{ {
<span class="oi oi-@action.Icon" aria-hidden="true"></span> <span class="@action.Icon" aria-hidden="true"></span>
} }
&nbsp; &nbsp;
@action.Name @action.Name

View File

@ -39,7 +39,7 @@ namespace Oqtane.SiteTemplates
Name = "Home", Name = "Home",
Parent = "", Parent = "",
Path = "", Path = "",
Icon = "home", Icon = "oi oi-home",
IsNavigation = true, IsNavigation = true,
IsPersonalizable = false, IsPersonalizable = false,
PagePermissions = new List<Permission> { PagePermissions = new List<Permission> {
@ -85,7 +85,7 @@ namespace Oqtane.SiteTemplates
Name = "Private", Name = "Private",
Parent = "", Parent = "",
Path = "private", Path = "private",
Icon = "lock-locked", Icon = "oi oi-lock-locked",
IsNavigation = true, IsNavigation = true,
IsPersonalizable = false, IsPersonalizable = false,
PagePermissions = new List<Permission> { PagePermissions = new List<Permission> {
@ -109,7 +109,7 @@ namespace Oqtane.SiteTemplates
Name = "My Page", Name = "My Page",
Parent = "", Parent = "",
Path = "mypage", Path = "mypage",
Icon = "target", Icon = "oi oi-target",
IsNavigation = true, IsNavigation = true,
IsPersonalizable = true, IsPersonalizable = true,
PagePermissions = new List<Permission> { PagePermissions = new List<Permission> {

View File

@ -1,4 +1,4 @@
using Oqtane.Models; using Oqtane.Models;
using Oqtane.Infrastructure; using Oqtane.Infrastructure;
using System.Collections.Generic; using System.Collections.Generic;
using Oqtane.Extensions; using Oqtane.Extensions;
@ -27,7 +27,7 @@ namespace Oqtane.SiteTemplates
Name = "Home", Name = "Home",
Parent = "", Parent = "",
Path = "", Path = "",
Icon = "home", Icon = "oi oi-home",
IsNavigation = true, IsNavigation = true,
IsPersonalizable = false, IsPersonalizable = false,
PagePermissions = new List<Permission> { PagePermissions = new List<Permission> {

View File

@ -26,6 +26,7 @@
<EmbeddedResource Include="Scripts\Master.00.00.00.00.sql" /> <EmbeddedResource Include="Scripts\Master.00.00.00.00.sql" />
<EmbeddedResource Include="Scripts\Master.00.09.00.00.sql" /> <EmbeddedResource Include="Scripts\Master.00.09.00.00.sql" />
<EmbeddedResource Include="Scripts\Master.01.00.01.00.sql" /> <EmbeddedResource Include="Scripts\Master.01.00.01.00.sql" />
<EmbeddedResource Include="Scripts\Tenant.02.00.01.01.sql" />
<EmbeddedResource Include="Scripts\Tenant.00.00.00.00.sql" /> <EmbeddedResource Include="Scripts\Tenant.00.00.00.00.sql" />
<EmbeddedResource Include="Scripts\Tenant.00.09.00.00.sql" /> <EmbeddedResource Include="Scripts\Tenant.00.09.00.00.sql" />
<EmbeddedResource Include="Scripts\Tenant.00.09.01.00.sql" /> <EmbeddedResource Include="Scripts\Tenant.00.09.01.00.sql" />
@ -60,6 +61,9 @@
<UpgradeFiles Include="$(ProjectDir)bin\Release\net5.0\Oqtane.Upgrade.runtimeconfig.json" /> <UpgradeFiles Include="$(ProjectDir)bin\Release\net5.0\Oqtane.Upgrade.runtimeconfig.json" />
<TemplateFiles Include="$(ProjectDir)wwwroot\Modules\Templates\**\*.*" /> <TemplateFiles Include="$(ProjectDir)wwwroot\Modules\Templates\**\*.*" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Remove="Scripts\Tenant.02.00.01.01.sql" />
</ItemGroup>
<Target Name="AddPayloadsFolder" AfterTargets="Publish"> <Target Name="AddPayloadsFolder" AfterTargets="Publish">
<Copy SourceFiles="@(UpgradeFiles)" DestinationFiles="@(UpgradeFiles->'$(PublishDir)%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" /> <Copy SourceFiles="@(UpgradeFiles)" DestinationFiles="@(UpgradeFiles->'$(PublishDir)%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
<Copy SourceFiles="@(TemplateFiles)" DestinationFiles="@(TemplateFiles->'$(PublishDir)wwwroot\Modules\Templates\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" /> <Copy SourceFiles="@(TemplateFiles)" DestinationFiles="@(TemplateFiles->'$(PublishDir)wwwroot\Modules\Templates\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />

View File

@ -0,0 +1,9 @@
/*
Version 2.0.1 Tenant migration script
*/
UPDATE [dbo].[Page] SET Icon = IIF(Icon <> '', 'oi oi-' + Icon, '');
GO

View File

@ -1,9 +1,9 @@
namespace Oqtane.Shared namespace Oqtane.Shared
{ {
//Open Iconic icons set //Open Iconic icons set
public static class Icons public static class Icons
{ {
private const string Prefix = ""; //oi- private const string Prefix = "oi oi-";
public const string AccountLogin = Prefix + "account-login"; public const string AccountLogin = Prefix + "account-login";
public const string AccountLogout = Prefix + "account-logout"; public const string AccountLogout = Prefix + "account-logout";
public const string ActionRedo = Prefix + "action-redo"; public const string ActionRedo = Prefix + "action-redo";