From c804c0ab36ed708824b023d7d5705a67f5b2d3f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkay=20=C4=B0lknur?= Date: Fri, 16 Oct 2020 15:35:49 +0300 Subject: [PATCH 1/7] page header initial implementation. --- .../Components/WebAssembly/BreadcrumbItem.cs | 18 ++++++++++ .../Components/PageHeader.razor | 35 +++++++++++++++++++ .../Components/PageHeader.razor.cs | 34 ++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/BreadcrumbItem.cs create mode 100644 framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor create mode 100644 framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/BreadcrumbItem.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/BreadcrumbItem.cs new file mode 100644 index 0000000000..03943f47d7 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/BreadcrumbItem.cs @@ -0,0 +1,18 @@ +namespace Volo.Abp.AspNetCore.Components.WebAssembly +{ + public class BreadcrumbItem + { + public string Text { get; set; } + + public string Icon { get; set; } + + public string Url { get; set; } + + public BreadcrumbItem(string text, string url = null, string icon = null) + { + Text = text; + Url = url; + Icon = icon; + } + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor new file mode 100644 index 0000000000..a584038bfd --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor @@ -0,0 +1,35 @@ + + +

@Title

+
+ @if (BreadcrumbItems.Any()) + { + + + @if (BreadcrumbShowHome) + { + + + + } + @foreach (var item in BreadcrumbItems) + { + + + @if (!string.IsNullOrEmpty(item.Icon)) + { + + } + @item.Text + + + } + + + } + +
+ @ChildContent +
+
+
\ No newline at end of file diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor.cs new file mode 100644 index 0000000000..c3b75712ef --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; +using Microsoft.AspNetCore.Components; +using Volo.Abp.AspNetCore.Components.WebAssembly; + +namespace Volo.Abp.BlazoriseUI.Components +{ + public partial class PageHeader : ComponentBase + { + [Parameter] + public string Title { get; set; } + + [Parameter] + public bool BreadcrumbShowHome { get; set; } = true; + + [Parameter] + public bool BreadcrumbShowCurrent { get; set; } = true; + + [Parameter] + public RenderFragment ChildContent { get; set; } + + protected List BreadcrumbItems { get; set; } + + public PageHeader() + { + BreadcrumbItems = new List(); + } + + public void AddBreadcrumbItem(string text, string url = null, string icon = null) + { + BreadcrumbItems.Add(new BreadcrumbItem(text, url, icon)); + StateHasChanged(); + } + } +} From 2feb304d570f6a5a04156d0364a46238b33b933c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkay=20=C4=B0lknur?= Date: Mon, 19 Oct 2020 14:24:33 +0300 Subject: [PATCH 2/7] use blazorise padding instead of setting class. --- framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor index a584038bfd..5931ff1c95 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor @@ -4,7 +4,7 @@ @if (BreadcrumbItems.Any()) { - + @if (BreadcrumbShowHome) { From 3260b0ba37b3aa2d4bc3bd4436c6d572344708d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkay=20=C4=B0lknur?= Date: Mon, 19 Oct 2020 14:26:16 +0300 Subject: [PATCH 3/7] add breadcrumbItems parameter and Icon changes. --- .../BreadcrumbItem.cs | 8 +++++--- .../Volo.Abp.BlazoriseUI/Components/PageHeader.razor | 8 +++++--- .../Components/PageHeader.razor.cs | 11 +++-------- 3 files changed, 13 insertions(+), 14 deletions(-) rename framework/src/{Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly => Volo.Abp.BlazoriseUI}/BreadcrumbItem.cs (55%) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/BreadcrumbItem.cs b/framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs similarity index 55% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/BreadcrumbItem.cs rename to framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs index 03943f47d7..2f918d6c55 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/BreadcrumbItem.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs @@ -1,14 +1,16 @@ -namespace Volo.Abp.AspNetCore.Components.WebAssembly +using Blazorise; + +namespace Volo.Abp.BlazoriseUI { public class BreadcrumbItem { public string Text { get; set; } - public string Icon { get; set; } + public IconName? Icon { get; set; } public string Url { get; set; } - public BreadcrumbItem(string text, string url = null, string icon = null) + public BreadcrumbItem(string text, string url = null, IconName? icon = null) { Text = text; Url = url; diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor index 5931ff1c95..d4870e6f59 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor @@ -9,16 +9,18 @@ @if (BreadcrumbShowHome) { - + + + } @foreach (var item in BreadcrumbItems) { - @if (!string.IsNullOrEmpty(item.Icon)) + @if (item.Icon != null) { - + } @item.Text diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor.cs index c3b75712ef..90e4b0f0c7 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; +using Blazorise; using Microsoft.AspNetCore.Components; -using Volo.Abp.AspNetCore.Components.WebAssembly; namespace Volo.Abp.BlazoriseUI.Components { @@ -18,17 +18,12 @@ namespace Volo.Abp.BlazoriseUI.Components [Parameter] public RenderFragment ChildContent { get; set; } - protected List BreadcrumbItems { get; set; } + [Parameter] + public List BreadcrumbItems { get; set; } public PageHeader() { BreadcrumbItems = new List(); } - - public void AddBreadcrumbItem(string text, string url = null, string icon = null) - { - BreadcrumbItems.Add(new BreadcrumbItem(text, url, icon)); - StateHasChanged(); - } } } From 9a0e1b086a9c149cc144b31581269c4b8045dd26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkay=20=C4=B0lknur?= Date: Mon, 19 Oct 2020 21:14:46 +0300 Subject: [PATCH 4/7] breadcrumbitems list added. --- framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs index 8723209c53..ffbb62ba04 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs @@ -184,6 +184,7 @@ namespace Volo.Abp.BlazoriseUI protected TUpdateViewModel EditingEntity; protected Modal CreateModal; protected Modal EditModal; + protected List BreadcrumbItems = new List(2); protected string CreatePolicyName { get; set; } protected string UpdatePolicyName { get; set; } @@ -239,6 +240,7 @@ namespace Volo.Abp.BlazoriseUI protected override async Task OnInitializedAsync() { + await SetBreadcrumbItemsAsync(); await SetPermissionsAsync(); await GetEntitiesAsync(); } @@ -438,5 +440,10 @@ namespace Volo.Abp.BlazoriseUI await AuthorizationService.CheckAsync(policyName); } + + protected virtual ValueTask SetBreadcrumbItemsAsync() + { + return ValueTask.CompletedTask; + } } } From a208f7809ea8e34ebeff1182e1f2d8cdc80d79e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkay=20=C4=B0lknur?= Date: Mon, 19 Oct 2020 21:17:05 +0300 Subject: [PATCH 5/7] convert icon property to object so that developer can spesify custom name. --- framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs b/framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs index 2f918d6c55..36417e122a 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs @@ -6,11 +6,11 @@ namespace Volo.Abp.BlazoriseUI { public string Text { get; set; } - public IconName? Icon { get; set; } + public object Icon { get; set; } public string Url { get; set; } - public BreadcrumbItem(string text, string url = null, IconName? icon = null) + public BreadcrumbItem(string text, string url = null, object icon = null) { Text = text; Url = url; From 6fe4b138e6e0f768a16768aa3ed564e80dbf6ace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkay=20=C4=B0lknur?= Date: Mon, 19 Oct 2020 21:17:23 +0300 Subject: [PATCH 6/7] page header conversion. --- .../SettingManagement/SettingManagement.razor | 27 ++++--------------- .../SettingManagement.razor.cs | 15 ++++++++--- .../_Imports.razor | 1 + 3 files changed, 17 insertions(+), 26 deletions(-) diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor index 8f5285ff98..ce854161ef 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor @@ -1,26 +1,9 @@ @page "/setting-management" -@using Microsoft.Extensions.Localization -@using Volo.Abp.SettingManagement.Localization -@inject IStringLocalizer L @inherits SettingManagementBase - @* ************************* PAGE HEADER ************************* *@ -
-
-

@L["Settings"]

-
-
- -
-
-
- -
-
-
+ + + @@ -39,7 +22,7 @@

@group.DisplayName

- + @{ SettingItemRenders.Add(builder => { @@ -47,7 +30,7 @@ builder.CloseComponent(); }); } - + @SettingItemRenders.Last()
} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs index 3d41afd05f..3c4775fd02 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs @@ -3,7 +3,10 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; using Microsoft.Extensions.Options; +using Volo.Abp.BlazoriseUI; +using Volo.Abp.SettingManagement.Localization; namespace Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement { @@ -11,18 +14,21 @@ namespace Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement { [Inject] protected IServiceProvider ServiceProvider { get; set; } - + protected SettingComponentCreationContext SettingComponentCreationContext { get; set; } [Inject] protected IOptions _options { get; set; } + [Inject] + protected IStringLocalizer L { get; set; } protected SettingManagementComponentOptions Options => _options.Value; - + protected List SettingItemRenders { get; set; } = new List(); protected string SelectedGroup; - + protected List BreadcrumbItems = new List(); + protected override async Task OnInitializedAsync() { SettingComponentCreationContext = new SettingComponentCreationContext(ServiceProvider); @@ -31,10 +37,11 @@ namespace Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement { await contributor.ConfigureAsync(SettingComponentCreationContext); } - + SettingItemRenders.Clear(); SelectedGroup = GetNormalizedString(SettingComponentCreationContext.Groups.First().Id); + BreadcrumbItems.Add(new BreadcrumbItem(L["Settings"])); } protected string GetNormalizedString(string value) diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/_Imports.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/_Imports.razor index 4685ac9893..de520acc22 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/_Imports.razor +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/_Imports.razor @@ -1,5 +1,6 @@ @using Microsoft.AspNetCore.Components.Web @using Volo.Abp.AspNetCore.Components.WebAssembly @using Volo.Abp.BlazoriseUI +@using Volo.Abp.BlazoriseUI.Components @using Blazorise @using Blazorise.DataGrid \ No newline at end of file From 80298ba15c012685d6d44897e3379b34f786602d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkay=20=C4=B0lknur?= Date: Mon, 19 Oct 2020 22:17:54 +0300 Subject: [PATCH 7/7] fix page header for multiple toolbar buttons. --- .../src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor index d4870e6f59..4a569cfe95 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor @@ -30,8 +30,8 @@
} -
+ @ChildContent -
+
\ No newline at end of file