AdminPanel/Netina.AdminPanel.PWA/Components/Originals/SideBarUi.razor

136 lines
5.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

@inject NavigationManager NavigationManager
@inject IRestWrapper RestWrapper
@inject IUserUtility UserUtility
@inject ISnackbar Snackbar
<MudStack class="bg-[--mud-palette-background] h-screen w-full pt-4">
<MudNavMenu Rounded="true" Margin="Margin.Dense" Color="Color.Warning" Class="pa-2" Bordered="true">
<MudNavLink Href="home" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.Dashboard">داشبورد</MudNavLink>
@if (isShop)
{
<MudNavLink Href="orders" Icon="@Icons.Material.Outlined.ShoppingBag">فروش</MudNavLink>
}
@if (isShop)
{
<MudNavGroup Title="محصولاتــ" Expanded="false"
Icon="@Icons.Material.Outlined.CenterFocusStrong">
<MudNavLink Href="products"
Icon="@Icons.Material.Outlined.CenterFocusStrong">محصولاتــ فروشگاه</MudNavLink>
<MudNavLink Href="product/categories"
Icon="@Icons.Material.Outlined.AllInbox">دسته بندی محصولاتـــ</MudNavLink>
<MudNavLink Href="product/brands"
Icon="@Icons.Custom.Brands.Facebook">برند محصولاتــــ</MudNavLink>
<MudNavLink Href="product/shipping"
Icon="@Icons.Material.Outlined.AirportShuttle">روش های ارسال</MudNavLink>
</MudNavGroup>
}
<MudNavGroup Title="وبلاگــــ" Expanded="false"
Icon="@Icons.Material.Outlined.Web">
<MudNavLink Href="blogs"
Icon="@Icons.Material.Outlined.WebStories">بلاگـــ ها</MudNavLink>
<MudNavLink Href="blog/categories"
Icon="@Icons.Material.Outlined.WebAsset">دسته بندی های بلاگـــ</MudNavLink>
</MudNavGroup>
<MudNavGroup Title="مدیریت برگه ها" Expanded="false"
Icon="@Icons.Material.Outlined.Pages">
<MudNavLink Href="management/pages" Icon="@Icons.Material.Filled.Pageview">برگه ها</MudNavLink>
<MudNavLink Href="management/faqs" Icon="@Icons.Material.Filled.ManageAccounts">سوالات متداول</MudNavLink>
</MudNavGroup>
@if (isShop)
{
<MudNavGroup Title="حسابداری" Expanded="false"
Icon="@Icons.Material.Outlined.BusinessCenter">
<MudNavLink Href="discounts"
Icon="@Icons.Material.Outlined.LocalOffer">تخفیفـــ ها</MudNavLink>
<MudNavLink Href="payments"
Icon="@Icons.Material.Outlined.AccountBalance">پرداختـــ ها</MudNavLink>
</MudNavGroup>
}
@if (isShop)
{
<MudNavGroup Title="باشگاه مشتریانـــ" Expanded="false"
Icon="@Icons.Material.Outlined.AccountBalance">
<MudNavLink Href="customers"
Icon="@Icons.Material.Outlined.PeopleAlt">مشترکین</MudNavLink>
<MudNavLink Href="newsletler"
Icon="@Icons.Material.Outlined.Newspaper">خبرنامه</MudNavLink>
</MudNavGroup>
}
@if (isShop)
{
<MudNavGroup Title="فروشگاه من" Expanded="false" Icon="@Icons.Material.Outlined.Settings">
<MudNavLink Href="management/shop" Icon="@Icons.Material.Filled.Shop2">فروشگاه</MudNavLink>
<MudNavLink Href="management/marketer" Icon="@Icons.Material.Filled.Person4">بازاریاب ها</MudNavLink>
<MudNavLink Href="personalization/nav" Icon="@Icons.Material.Filled.MenuOpen">فهرست ها</MudNavLink>
</MudNavGroup>
}
else
{
<MudNavGroup Title="وب سایتــ من" Expanded="false" Icon="@Icons.Material.Outlined.Settings">
<MudNavLink Href="management/shop" Icon="@Icons.Material.Filled.Shop2">وب سایتــ</MudNavLink>
</MudNavGroup>
}
<MudNavGroup Title="تنظیماتـــ" Expanded="false" Icon="@Icons.Material.Outlined.Settings">
<MudNavLink Href="setting/users" Icon="@Icons.Material.Filled.ManageAccounts">نقش ها و کاربران</MudNavLink>
</MudNavGroup>
</MudNavMenu>
<p class="bottom-0 mx-auto align-bottom">Version : @version</p>
</MudStack>
@code
{
private bool isShop = true;
private List<string> _permissions;
protected override async Task OnInitializedAsync()
{
try
{
try
{
_permissions = await UserUtility.GetPermissionsAsync() ?? new List<string>();
var token = await UserUtility.GetBearerTokenAsync();
if (token == null)
{
await UserUtility.LogoutAsync();
NavigationManager.NavigateTo("login", true, true);
return;
}
var rest = await RestWrapper.SettingRestApi.GetSettingAsync<NetinaSetting>(nameof(NetinaSetting), token);
if (rest.WebSiteType == 0)
isShop = true;
else
isShop = false;
}
catch (Exception e)
{
Snackbar.Add("در دریافت اطلاعات مشکلی رخ داده است", Severity.Error);
}
await base.OnInitializedAsync();
}
catch (ApiException e)
{
var exe = await e.GetContentAsAsync<ApiResult>();
if (e.StatusCode == HttpStatusCode.Unauthorized)
{
await UserUtility.LogoutAsync();
NavigationManager.NavigateTo("login", true, true);
}
}
}
string? version = typeof(Program)?.Assembly.GetName()?.Version?.ToString();
}