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) {