diff --git a/Netina.AdminPanel.PWA/Dialogs/PageActionDialogBox.razor b/Netina.AdminPanel.PWA/Dialogs/PageActionDialogBox.razor index eb7a10a..195bb02 100644 --- a/Netina.AdminPanel.PWA/Dialogs/PageActionDialogBox.razor +++ b/Netina.AdminPanel.PWA/Dialogs/PageActionDialogBox.razor @@ -9,26 +9,95 @@ - اطلاعات کلی اطلاعات کلی روش ارسال را به دقت وارد کنید + - + - + + + + + + + + + + + + + + + + + + + @foreach (var state in Enum.GetValues(typeof(BasePageSectionType)).Cast()) + { + + } + + + + + + + + + + + + + + + + + + + + + + حذف + + + + + + + diff --git a/Netina.AdminPanel.PWA/Dialogs/PageActionDialogBox.razor.cs b/Netina.AdminPanel.PWA/Dialogs/PageActionDialogBox.razor.cs index 6583183..d21c3be 100644 --- a/Netina.AdminPanel.PWA/Dialogs/PageActionDialogBox.razor.cs +++ b/Netina.AdminPanel.PWA/Dialogs/PageActionDialogBox.razor.cs @@ -1,4 +1,7 @@ -using Netina.Domain.Entities.Warehouses; +using Microsoft.AspNetCore.Components; +using MudBlazor; +using Netina.AdminPanel.PWA.Services.RestServices; +using Netina.Domain.Entities.Warehouses; namespace Netina.AdminPanel.PWA.Dialogs; @@ -39,6 +42,34 @@ public class PageActionDialogBoxViewModel : BaseViewModel IsEditing = true; PageId = page.Id; } + public override async Task InitializeAsync() + { + try + { + IsProcessing = true; + var token = await _userUtility.GetBearerTokenAsync(); + if (token == null) + throw new Exception("Token is null"); + var pages = await _restWrapper.PageRestApi.ReadById(PageId,token); + PageDto = pages; + } + catch (ApiException e) + { + var exe = await e.GetContentAsAsync(); + _snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error); + } + catch (Exception ex) + { + _snackbar.Add(ex.Message, Severity.Error); + } + finally + { + IsProcessing = false; + } + + await base.InitializeAsync(); + } + public bool IsEditing = false; public Guid PageId { get; set; } diff --git a/Netina.AdminPanel.PWA/Pages/PagesManagementPage.razor b/Netina.AdminPanel.PWA/Pages/PagesManagementPage.razor index f041df0..2b52bf6 100644 --- a/Netina.AdminPanel.PWA/Pages/PagesManagementPage.razor +++ b/Netina.AdminPanel.PWA/Pages/PagesManagementPage.razor @@ -46,6 +46,10 @@ @navMenuItem.Title + + diff --git a/Netina.AdminPanel.PWA/Pages/PagesManagementPage.razor.cs b/Netina.AdminPanel.PWA/Pages/PagesManagementPage.razor.cs index 61af99d..f9c1d25 100644 --- a/Netina.AdminPanel.PWA/Pages/PagesManagementPage.razor.cs +++ b/Netina.AdminPanel.PWA/Pages/PagesManagementPage.razor.cs @@ -2,27 +2,16 @@ namespace Netina.AdminPanel.PWA.Pages; -public class PagesManagementPageViewModel : BaseViewModel> +public class PagesManagementPageViewModel( + NavigationManager navigationManager, + ISnackbar snackbar, + IUserUtility userUtility, + IRestWrapper restWrapper, + IDialogService dialogService) + : BaseViewModel>(userUtility) { - private readonly NavigationManager _navigationManager; - private readonly ISnackbar _snackbar; - private readonly IUserUtility _userUtility; - private readonly IDialogService _dialogService; - private readonly IRestWrapper _restWrapper; - - public PagesManagementPageViewModel( - NavigationManager navigationManager, - ISnackbar snackbar, - IUserUtility userUtility, - IRestWrapper restWrapper, - IDialogService dialogService) : base(userUtility) - { - _navigationManager = navigationManager; - _snackbar = snackbar; - _userUtility = userUtility; - _restWrapper = restWrapper; - _dialogService = dialogService; - } + private readonly IUserUtility _userUtility = userUtility; + private readonly IDialogService _dialogService = dialogService; public override async Task InitializeAsync() { @@ -32,7 +21,7 @@ public class PagesManagementPageViewModel : BaseViewModelPageDto.Add(p)); } @@ -42,13 +31,13 @@ public class PagesManagementPageViewModel : BaseViewModel(); + parameters.Add(x => x.Page, page); + var dialogResult = await dialogService.ShowAsync($"ویرایش صفحه {page.Title}", parameters, maxWidth); + var result = await dialogResult.Result; + if (!result.Canceled && result.Data is bool and true) + { + await InitializeAsync(); + } + } + public async Task RemovePageAsync(Guid pageId) { try @@ -109,8 +111,8 @@ public class PagesManagementPageViewModel : BaseViewModel ReadByType([Query] string type, [Header("Authorization")] string authorization); [Get("/{id}")] - Task ReadById(Guid id, [Header("Authorization")] string authorization); + Task ReadById(Guid id, [Header("Authorization")] string authorization); [Post("")] Task CreatePage([Body] PageActionRequestDto request, [Header("Authorization")] string authorization); diff --git a/Netina.AdminPanel.PWA/wwwroot/css/app.min.css b/Netina.AdminPanel.PWA/wwwroot/css/app.min.css index 383923a..885a1b1 100644 --- a/Netina.AdminPanel.PWA/wwwroot/css/app.min.css +++ b/Netina.AdminPanel.PWA/wwwroot/css/app.min.css @@ -105,7 +105,7 @@ --tw-contain-paint: ; --tw-contain-style: ; }/* -! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com +! tailwindcss v3.4.13 | MIT License | https://tailwindcss.com *//* 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) @@ -496,7 +496,7 @@ video { } /* Make elements with the HTML hidden attribute stay hidden by default */ -[hidden]:where(:not([hidden="until-found"])) { +[hidden] { display: none; } @@ -1546,47 +1546,47 @@ input:checked + .toggle-bg { } .border-blue-400 { --tw-border-opacity: 1; - border-color: rgb(118 169 250 / var(--tw-border-opacity, 1)); + border-color: rgb(118 169 250 / var(--tw-border-opacity)); } .border-blue-500 { --tw-border-opacity: 1; - border-color: rgb(63 131 248 / var(--tw-border-opacity, 1)); + border-color: rgb(63 131 248 / var(--tw-border-opacity)); } .border-blue-600 { --tw-border-opacity: 1; - border-color: rgb(28 100 242 / var(--tw-border-opacity, 1)); + border-color: rgb(28 100 242 / var(--tw-border-opacity)); } .border-blue-700 { --tw-border-opacity: 1; - border-color: rgb(26 86 219 / var(--tw-border-opacity, 1)); + border-color: rgb(26 86 219 / var(--tw-border-opacity)); } .border-gray-100 { --tw-border-opacity: 1; - border-color: rgb(243 244 246 / var(--tw-border-opacity, 1)); + border-color: rgb(243 244 246 / var(--tw-border-opacity)); } .border-gray-200 { --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); + border-color: rgb(229 231 235 / var(--tw-border-opacity)); } .border-gray-300 { --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); + border-color: rgb(209 213 219 / var(--tw-border-opacity)); } .border-indigo-500 { --tw-border-opacity: 1; - border-color: rgb(104 117 245 / var(--tw-border-opacity, 1)); + border-color: rgb(104 117 245 / var(--tw-border-opacity)); } .border-violet-400 { --tw-border-opacity: 1; - border-color: rgb(167 139 250 / var(--tw-border-opacity, 1)); + border-color: rgb(167 139 250 / var(--tw-border-opacity)); } .bg-\[\#000000\] { --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); + background-color: rgb(0 0 0 / var(--tw-bg-opacity)); } .bg-\[\#EEEEEE\] { --tw-bg-opacity: 1; - background-color: rgb(238 238 238 / var(--tw-bg-opacity, 1)); + background-color: rgb(238 238 238 / var(--tw-bg-opacity)); } .bg-\[--mud-palette-background-grey\] { background-color: var(--mud-palette-background-grey); @@ -1596,41 +1596,41 @@ input:checked + .toggle-bg { } .bg-amber-500 { --tw-bg-opacity: 1; - background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1)); + background-color: rgb(245 158 11 / var(--tw-bg-opacity)); } .bg-blue-500 { --tw-bg-opacity: 1; - background-color: rgb(63 131 248 / var(--tw-bg-opacity, 1)); + background-color: rgb(63 131 248 / var(--tw-bg-opacity)); } .bg-blue-700 { --tw-bg-opacity: 1; - background-color: rgb(26 86 219 / var(--tw-bg-opacity, 1)); + background-color: rgb(26 86 219 / var(--tw-bg-opacity)); } .bg-gray-100 { --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); } .bg-gray-200 { --tw-bg-opacity: 1; - background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)); + background-color: rgb(229 231 235 / var(--tw-bg-opacity)); } .bg-gray-800 { --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); } .bg-gray-900\/50 { background-color: rgb(17 24 39 / 0.5); } .bg-pink-500 { --tw-bg-opacity: 1; - background-color: rgb(231 70 148 / var(--tw-bg-opacity, 1)); + background-color: rgb(231 70 148 / var(--tw-bg-opacity)); } .bg-transparent { background-color: transparent; } .bg-white { --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); } .bg-white\/50 { background-color: rgb(255 255 255 / 0.5); @@ -1774,51 +1774,51 @@ input:checked + .toggle-bg { } .\!text-black { --tw-text-opacity: 1 !important; - color: rgb(0 0 0 / var(--tw-text-opacity, 1)) !important; + color: rgb(0 0 0 / var(--tw-text-opacity)) !important; } .text-amber-600 { --tw-text-opacity: 1; - color: rgb(217 119 6 / var(--tw-text-opacity, 1)); + color: rgb(217 119 6 / var(--tw-text-opacity)); } .text-blue-600 { --tw-text-opacity: 1; - color: rgb(28 100 242 / var(--tw-text-opacity, 1)); + color: rgb(28 100 242 / var(--tw-text-opacity)); } .text-gray-500 { --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); + color: rgb(107 114 128 / var(--tw-text-opacity)); } .text-gray-600 { --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)); + color: rgb(75 85 99 / var(--tw-text-opacity)); } .text-gray-800 { --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity, 1)); + color: rgb(31 41 55 / var(--tw-text-opacity)); } .text-gray-900 { --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); + color: rgb(17 24 39 / var(--tw-text-opacity)); } .text-lime-600 { --tw-text-opacity: 1; - color: rgb(101 163 13 / var(--tw-text-opacity, 1)); + color: rgb(101 163 13 / var(--tw-text-opacity)); } .text-purple-600 { --tw-text-opacity: 1; - color: rgb(126 58 242 / var(--tw-text-opacity, 1)); + color: rgb(126 58 242 / var(--tw-text-opacity)); } .text-rose-600 { --tw-text-opacity: 1; - color: rgb(225 29 72 / var(--tw-text-opacity, 1)); + color: rgb(225 29 72 / var(--tw-text-opacity)); } .text-violet-500 { --tw-text-opacity: 1; - color: rgb(139 92 246 / var(--tw-text-opacity, 1)); + color: rgb(139 92 246 / var(--tw-text-opacity)); } .text-white { --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); + color: rgb(255 255 255 / var(--tw-text-opacity)); } .opacity-0 { opacity: 0; @@ -2087,42 +2087,42 @@ code { .hover\:border-gray-300:hover { --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); + border-color: rgb(209 213 219 / var(--tw-border-opacity)); } .hover\:bg-blue-800:hover { --tw-bg-opacity: 1; - background-color: rgb(30 66 159 / var(--tw-bg-opacity, 1)); + background-color: rgb(30 66 159 / var(--tw-bg-opacity)); } .hover\:bg-gray-100:hover { --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); } .hover\:bg-white:hover { --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); } .hover\:text-blue-600:hover { --tw-text-opacity: 1; - color: rgb(28 100 242 / var(--tw-text-opacity, 1)); + color: rgb(28 100 242 / var(--tw-text-opacity)); } .hover\:text-gray-600:hover { --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)); + color: rgb(75 85 99 / var(--tw-text-opacity)); } .hover\:text-gray-900:hover { --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); + color: rgb(17 24 39 / var(--tw-text-opacity)); } .focus\:border-teal-500:focus { --tw-border-opacity: 1; - border-color: rgb(6 148 162 / var(--tw-border-opacity, 1)); + border-color: rgb(6 148 162 / var(--tw-border-opacity)); } .focus\:outline-none:focus { @@ -2144,32 +2144,32 @@ code { .focus\:ring-blue-300:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity, 1)); + --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity)); } .focus\:ring-gray-200:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity, 1)); + --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity)); } .focus\:ring-teal-500:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(6 148 162 / var(--tw-ring-opacity, 1)); + --tw-ring-color: rgb(6 148 162 / var(--tw-ring-opacity)); } .dark\:border-blue-500:is(.dark *) { --tw-border-opacity: 1; - border-color: rgb(63 131 248 / var(--tw-border-opacity, 1)); + border-color: rgb(63 131 248 / var(--tw-border-opacity)); } .dark\:border-gray-600:is(.dark *) { --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)); + border-color: rgb(75 85 99 / var(--tw-border-opacity)); } .dark\:border-gray-700:is(.dark *) { --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)); + border-color: rgb(55 65 81 / var(--tw-border-opacity)); } .dark\:border-transparent:is(.dark *) { @@ -2178,22 +2178,22 @@ code { .dark\:bg-blue-600:is(.dark *) { --tw-bg-opacity: 1; - background-color: rgb(28 100 242 / var(--tw-bg-opacity, 1)); + background-color: rgb(28 100 242 / var(--tw-bg-opacity)); } .dark\:bg-gray-600:is(.dark *) { --tw-bg-opacity: 1; - background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1)); + background-color: rgb(75 85 99 / var(--tw-bg-opacity)); } .dark\:bg-gray-700:is(.dark *) { --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)); + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); } .dark\:bg-gray-800:is(.dark *) { --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); } .dark\:bg-gray-800\/50:is(.dark *) { @@ -2206,47 +2206,47 @@ code { .dark\:text-blue-500:is(.dark *) { --tw-text-opacity: 1; - color: rgb(63 131 248 / var(--tw-text-opacity, 1)); + color: rgb(63 131 248 / var(--tw-text-opacity)); } .dark\:text-gray-400:is(.dark *) { --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); + color: rgb(156 163 175 / var(--tw-text-opacity)); } .dark\:text-white:is(.dark *) { --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); + color: rgb(255 255 255 / var(--tw-text-opacity)); } .dark\:hover\:bg-blue-700:hover:is(.dark *) { --tw-bg-opacity: 1; - background-color: rgb(26 86 219 / var(--tw-bg-opacity, 1)); + background-color: rgb(26 86 219 / var(--tw-bg-opacity)); } .dark\:hover\:bg-gray-600:hover:is(.dark *) { --tw-bg-opacity: 1; - background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1)); + background-color: rgb(75 85 99 / var(--tw-bg-opacity)); } .dark\:hover\:bg-gray-800:hover:is(.dark *) { --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); } .dark\:hover\:text-blue-500:hover:is(.dark *) { --tw-text-opacity: 1; - color: rgb(63 131 248 / var(--tw-text-opacity, 1)); + color: rgb(63 131 248 / var(--tw-text-opacity)); } .dark\:hover\:text-gray-300:hover:is(.dark *) { --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)); + color: rgb(209 213 219 / var(--tw-text-opacity)); } .dark\:hover\:text-white:hover:is(.dark *) { --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); + color: rgb(255 255 255 / var(--tw-text-opacity)); } @media (min-width: 640px) {