diff --git a/README.md b/README.md index 1366239..26ad808 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ A simple backend management api for ASP.NET Core Web APIs - [x] Code cleanup - [x] Relations in database - [x] Generated Admin pages -- [ ] Pretty Login page for administration +- [x] Pretty Login page for administration - [ ] Clean documentation # Usage diff --git a/src/HopFrame.Web/Pages/Administration/AdminDashboard.razor b/src/HopFrame.Web/Pages/Administration/AdminDashboard.razor index 9484d82..71d3482 100644 --- a/src/HopFrame.Web/Pages/Administration/AdminDashboard.razor +++ b/src/HopFrame.Web/Pages/Administration/AdminDashboard.razor @@ -17,7 +17,7 @@ @foreach (var adminPage in Pages.LoadRegisteredAdminPages()) { - + @adminPage.Title @adminPage.Permissions.View diff --git a/src/HopFrame.Web/Pages/Administration/AdminLogin.razor b/src/HopFrame.Web/Pages/Administration/AdminLogin.razor index c346c23..1d9a61e 100644 --- a/src/HopFrame.Web/Pages/Administration/AdminLogin.razor +++ b/src/HopFrame.Web/Pages/Administration/AdminLogin.razor @@ -12,9 +12,10 @@ Login @inject IAuthService Auth @@ -44,7 +47,7 @@ private const string DefaultRedirect = "/administration"; - private bool _hasError = false; + private bool _hasError; protected override async Task OnInitializedAsync() { UserLogin ??= new(); @@ -62,6 +65,6 @@ return; } - Navigator.NavigateTo(string.IsNullOrEmpty(RedirectAfter) ? DefaultRedirect : RedirectAfter, true); + Navigator.NavigateTo(string.IsNullOrEmpty(RedirectAfter) ? DefaultRedirect : "/administration/" + RedirectAfter, true); } } \ No newline at end of file diff --git a/src/HopFrame.Web/Pages/Administration/AdminLogin.razor.css b/src/HopFrame.Web/Pages/Administration/AdminLogin.razor.css index 26ceacc..ef25346 100644 --- a/src/HopFrame.Web/Pages/Administration/AdminLogin.razor.css +++ b/src/HopFrame.Web/Pages/Administration/AdminLogin.razor.css @@ -2,14 +2,33 @@ display: flex; justify-content: center; align-items: center; + background-color: #2c3034; + height: 100vh; } -.field-wrapper { - margin-top: 25vh; - min-width: 500px; - - padding: 30px; - border: 2px solid #ced4da; - border-radius: 10px; - position: relative; +#login-card { + min-width: 700px; + min-height: 500px; + background-color: #212529; + border-radius: 20px; + color: white; + padding: 20px; + display: flex; + flex-direction: column; +} + +#login-card span { + display: block; + text-align: center; +} + +#login-title { + font-size: 35px; + line-height: 1.5; +} + +#login-subtitle { + font-size: 24px; + color: gray; + margin-bottom: 30px; } diff --git a/src/HopFrame.Web/Pages/Administration/AdminPageList.razor b/src/HopFrame.Web/Pages/Administration/AdminPageList.razor index c794eaf..cba8f4f 100644 --- a/src/HopFrame.Web/Pages/Administration/AdminPageList.razor +++ b/src/HopFrame.Web/Pages/Administration/AdminPageList.razor @@ -18,7 +18,7 @@ @using HopFrame.Web.Components @_pageData.Title - + @@ -243,4 +243,8 @@ }); } } + + private string GenerateRedirectString() { + return "/administration/login?redirect=" + _pageData?.Url; + } } \ No newline at end of file diff --git a/src/HopFrame.Web/Pages/Administration/Layout/AdminLayout.razor b/src/HopFrame.Web/Pages/Administration/Layout/AdminLayout.razor index 0e92e3e..10aeefb 100644 --- a/src/HopFrame.Web/Pages/Administration/Layout/AdminLayout.razor +++ b/src/HopFrame.Web/Pages/Administration/Layout/AdminLayout.razor @@ -1,9 +1,6 @@ -@using HopFrame.Web.Components -@using BlazorStrap.V5 +@using BlazorStrap.V5 @inherits LayoutComponentBase - -
diff --git a/src/HopFrame.Web/Pages/Administration/Layout/AdminMenu.razor b/src/HopFrame.Web/Pages/Administration/Layout/AdminMenu.razor index ae96859..aae2c7f 100644 --- a/src/HopFrame.Web/Pages/Administration/Layout/AdminMenu.razor +++ b/src/HopFrame.Web/Pages/Administration/Layout/AdminMenu.razor @@ -66,6 +66,13 @@ } private void Logout() { - Navigator.NavigateTo("administration/login", true); + var redirectString = ""; + + if (!Navigator.Uri.EndsWith("administration") && !Navigator.Uri.EndsWith("administration/")) { + var parts = Navigator.Uri.Split("administration/"); + redirectString = "?redirect=" + parts.Last(); + } + + Navigator.NavigateTo("administration/login" + redirectString, true); } }