From 6fdbbeb8cee032e6a8581f448d5f57147ad041a8 Mon Sep 17 00:00:00 2001 From: Jayson Furr Date: Sat, 23 Jan 2021 18:24:07 -0600 Subject: [PATCH 1/3] Fixes to horizontal menu logic. Now supports two levels of menu items. --- .../Themes/Controls/MenuHorizontal.razor | 31 +------ .../Themes/Controls/MenuItemsBase.cs | 27 +++++++ .../Themes/Controls/MenuItemsHorizontal.razor | 80 +++++++++++++++++++ .../Controls/MenuItemsHorizontal.razor.cs | 6 ++ 4 files changed, 115 insertions(+), 29 deletions(-) create mode 100644 Oqtane.Client/Themes/Controls/MenuItemsBase.cs create mode 100644 Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor create mode 100644 Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor.cs diff --git a/Oqtane.Client/Themes/Controls/MenuHorizontal.razor b/Oqtane.Client/Themes/Controls/MenuHorizontal.razor index 575a513b..c4c45f16 100644 --- a/Oqtane.Client/Themes/Controls/MenuHorizontal.razor +++ b/Oqtane.Client/Themes/Controls/MenuHorizontal.razor @@ -1,4 +1,5 @@ @namespace Oqtane.Themes.Controls + @inherits MenuBase @if (MenuPages.Any()) @@ -10,35 +11,7 @@
} diff --git a/Oqtane.Client/Themes/Controls/MenuItemsBase.cs b/Oqtane.Client/Themes/Controls/MenuItemsBase.cs new file mode 100644 index 00000000..bfdd3cd4 --- /dev/null +++ b/Oqtane.Client/Themes/Controls/MenuItemsBase.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using System.Linq; + +using Microsoft.AspNetCore.Components; + +using Oqtane.Models; +using Oqtane.UI; + +namespace Oqtane.Themes.Controls +{ + public abstract class MenuItemsBase : MenuBase + { + [Parameter()] + public Page ParentPage { get; set; } + + [Parameter()] + public IEnumerable Pages { get; set; } + + protected IEnumerable GetChildPages() + { + return Pages + .Where(e => e.ParentId == ParentPage?.PageId) + .OrderBy(e => e.Order) + .AsEnumerable(); + } + } +} diff --git a/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor b/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor new file mode 100644 index 00000000..3a54c855 --- /dev/null +++ b/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor @@ -0,0 +1,80 @@ +@namespace Oqtane.Themes.Controls + +@inherits MenuItemsBase + +@if (ParentPage != null) +{ + +} +else +{ + +} \ No newline at end of file diff --git a/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor.cs b/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor.cs new file mode 100644 index 00000000..30226bfb --- /dev/null +++ b/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor.cs @@ -0,0 +1,6 @@ +namespace Oqtane.Themes.Controls +{ + public partial class MenuItemsHorizontal : MenuItemsBase + { + } +} From f60a4af6d2d2a0a1396d1652909c38dbfa00099b Mon Sep 17 00:00:00 2001 From: Jayson Furr Date: Sat, 23 Jan 2021 21:14:44 -0600 Subject: [PATCH 2/3] Fixes to horizontal menu logic. Now supports multiple levels of menu items. Added FontIcon component to reduce duplicate code. --- Oqtane.Client/Themes/Controls/FontIcon.razor | 4 ++ .../Themes/Controls/FontIcon.razor.cs | 10 +++ .../Themes/Controls/MenuItemsHorizontal.razor | 20 +++--- .../Themes/Controls/MenuItemsVertical.razor | 62 +++++++++++++++++++ .../Controls/MenuItemsVertical.razor.cs | 6 ++ .../Themes/Controls/MenuVertical.razor | 20 +----- 6 files changed, 92 insertions(+), 30 deletions(-) create mode 100644 Oqtane.Client/Themes/Controls/FontIcon.razor create mode 100644 Oqtane.Client/Themes/Controls/FontIcon.razor.cs create mode 100644 Oqtane.Client/Themes/Controls/MenuItemsVertical.razor create mode 100644 Oqtane.Client/Themes/Controls/MenuItemsVertical.razor.cs diff --git a/Oqtane.Client/Themes/Controls/FontIcon.razor b/Oqtane.Client/Themes/Controls/FontIcon.razor new file mode 100644 index 00000000..04cd682a --- /dev/null +++ b/Oqtane.Client/Themes/Controls/FontIcon.razor @@ -0,0 +1,4 @@ +@if (!string.IsNullOrWhiteSpace(Value)) +{ + +} \ No newline at end of file diff --git a/Oqtane.Client/Themes/Controls/FontIcon.razor.cs b/Oqtane.Client/Themes/Controls/FontIcon.razor.cs new file mode 100644 index 00000000..07ecda89 --- /dev/null +++ b/Oqtane.Client/Themes/Controls/FontIcon.razor.cs @@ -0,0 +1,10 @@ +using Microsoft.AspNetCore.Components; + +namespace Oqtane.Themes.Controls +{ + public partial class FontIcon : ComponentBase + { + [Parameter()] + public string Value { get; set; } + } +} diff --git a/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor b/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor index 3a54c855..1ba03d4f 100644 --- a/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor +++ b/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor @@ -10,12 +10,14 @@ if (childPage.PageId == PageState.Page.PageId) { - @childPage.Name(current) + + @childPage.Name (current) } else { + @childPage.Name } @@ -33,11 +35,8 @@ else { } @@ -45,10 +44,7 @@ else { @@ -60,7 +56,8 @@ else { @@ -69,6 +66,7 @@ else { + } + else + { + + } + if (Pages.Any(e => e.ParentId == childPage.PageId)) + { + + } + } +} +else +{ + +} \ No newline at end of file diff --git a/Oqtane.Client/Themes/Controls/MenuItemsVertical.razor.cs b/Oqtane.Client/Themes/Controls/MenuItemsVertical.razor.cs new file mode 100644 index 00000000..85ba00b8 --- /dev/null +++ b/Oqtane.Client/Themes/Controls/MenuItemsVertical.razor.cs @@ -0,0 +1,6 @@ +namespace Oqtane.Themes.Controls +{ + public partial class MenuItemsVertical : MenuItemsBase + { + } +} diff --git a/Oqtane.Client/Themes/Controls/MenuVertical.razor b/Oqtane.Client/Themes/Controls/MenuVertical.razor index 79b20589..a552ea11 100644 --- a/Oqtane.Client/Themes/Controls/MenuVertical.razor +++ b/Oqtane.Client/Themes/Controls/MenuVertical.razor @@ -10,25 +10,7 @@ } From 5a02ce612481a1bc33fdc9e48ee35e02990fbe5a Mon Sep 17 00:00:00 2001 From: Jayson Furr Date: Sat, 23 Jan 2021 21:14:44 -0600 Subject: [PATCH 3/3] Fixes to vertical menu logic. Now supports multiple levels of menu items. Added FontIcon component to reduce duplicate code. --- Oqtane.Client/Themes/Controls/FontIcon.razor | 4 ++ .../Themes/Controls/FontIcon.razor.cs | 10 +++ .../Themes/Controls/MenuItemsHorizontal.razor | 20 +++--- .../Themes/Controls/MenuItemsVertical.razor | 62 +++++++++++++++++++ .../Controls/MenuItemsVertical.razor.cs | 6 ++ .../Themes/Controls/MenuVertical.razor | 20 +----- 6 files changed, 92 insertions(+), 30 deletions(-) create mode 100644 Oqtane.Client/Themes/Controls/FontIcon.razor create mode 100644 Oqtane.Client/Themes/Controls/FontIcon.razor.cs create mode 100644 Oqtane.Client/Themes/Controls/MenuItemsVertical.razor create mode 100644 Oqtane.Client/Themes/Controls/MenuItemsVertical.razor.cs diff --git a/Oqtane.Client/Themes/Controls/FontIcon.razor b/Oqtane.Client/Themes/Controls/FontIcon.razor new file mode 100644 index 00000000..04cd682a --- /dev/null +++ b/Oqtane.Client/Themes/Controls/FontIcon.razor @@ -0,0 +1,4 @@ +@if (!string.IsNullOrWhiteSpace(Value)) +{ + +} \ No newline at end of file diff --git a/Oqtane.Client/Themes/Controls/FontIcon.razor.cs b/Oqtane.Client/Themes/Controls/FontIcon.razor.cs new file mode 100644 index 00000000..07ecda89 --- /dev/null +++ b/Oqtane.Client/Themes/Controls/FontIcon.razor.cs @@ -0,0 +1,10 @@ +using Microsoft.AspNetCore.Components; + +namespace Oqtane.Themes.Controls +{ + public partial class FontIcon : ComponentBase + { + [Parameter()] + public string Value { get; set; } + } +} diff --git a/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor b/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor index 3a54c855..1ba03d4f 100644 --- a/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor +++ b/Oqtane.Client/Themes/Controls/MenuItemsHorizontal.razor @@ -10,12 +10,14 @@ if (childPage.PageId == PageState.Page.PageId) { - @childPage.Name(current) + + @childPage.Name (current) } else { + @childPage.Name } @@ -33,11 +35,8 @@ else { } @@ -45,10 +44,7 @@ else { @@ -60,7 +56,8 @@ else { @@ -69,6 +66,7 @@ else { + } + else + { + + } + if (Pages.Any(e => e.ParentId == childPage.PageId)) + { + + } + } +} +else +{ + +} \ No newline at end of file diff --git a/Oqtane.Client/Themes/Controls/MenuItemsVertical.razor.cs b/Oqtane.Client/Themes/Controls/MenuItemsVertical.razor.cs new file mode 100644 index 00000000..85ba00b8 --- /dev/null +++ b/Oqtane.Client/Themes/Controls/MenuItemsVertical.razor.cs @@ -0,0 +1,6 @@ +namespace Oqtane.Themes.Controls +{ + public partial class MenuItemsVertical : MenuItemsBase + { + } +} diff --git a/Oqtane.Client/Themes/Controls/MenuVertical.razor b/Oqtane.Client/Themes/Controls/MenuVertical.razor index 79b20589..a552ea11 100644 --- a/Oqtane.Client/Themes/Controls/MenuVertical.razor +++ b/Oqtane.Client/Themes/Controls/MenuVertical.razor @@ -10,25 +10,7 @@ }