Files
hcs/Hcs.WebApp/Components/Layout/MainLayout.razor

102 lines
4.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@inherits LayoutComponentBase
@implements IDisposable
@inject NavigationManager NavigationManager
@inject NotificationService NotificationService
@inject IWebHostEnvironment WebHostEnvironment
<RadzenDialog />
<RadzenLayout>
<RadzenHeader>
<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" Gap="0">
<RadzenSidebarToggle Click="@(() => sidebarExpanded = !sidebarExpanded)" />
@if (WebHostEnvironment.IsDevelopment())
{
<RadzenLabel Text="Система автоматической интеграции с ГИС ЖКХ" />
<RadzenLabel Text="(СРЕДА РАЗРАБОТКИ)" Style="color: red;" class="rz-ml-1" />
}
else
{
<RadzenLabel Text="Система автоматической интеграции с ГИС ЖКХ" />
}
</RadzenStack>
</RadzenHeader>
<RadzenSidebar FullHeight="true" @bind-Expanded="@sidebarExpanded">
<RadzenStack Style="height: 100%" JustifyContent="JustifyContent.SpaceBetween">
<RadzenPanelMenu>
<RadzenPanelMenuItem Path="/" Text="Главная" Icon="home" />
<AuthorizeView Roles="@($"{AppRole.ADMINISTRATOR_TYPE},{AppRole.OPERATOR_TYPE}")">
<Authorized>
<RadzenPanelMenuItem Path="/campaigns" Text="Кампании" Icon="graph_2" />
<RadzenPanelMenuItem Path="/operations" Text="Операции" Icon="construction" />
<RadzenPanelMenuItem Text="Объекты" Icon="business_center">
<RadzenPanelMenuItem Path="/objects/houses" Text="Жилищный фонд" />
</RadzenPanelMenuItem>
<RadzenPanelMenuItem Text="Справочники" Icon="book_2">
<RadzenPanelMenuItem Path="/registry/common" Text="Общие" />
<RadzenPanelMenuItem Path="/registry/private" Text="Частные" />
</RadzenPanelMenuItem>
</Authorized>
</AuthorizeView>
<AuthorizeView Roles="@AppRole.ADMINISTRATOR_TYPE">
<Authorized>
<RadzenPanelMenuItem Text="Тестирование" Icon="simulation">
<RadzenPanelMenuItem Path="/test/export" Text="Экспорт" />
</RadzenPanelMenuItem>
<RadzenPanelMenuItem Text="Администрирование" Icon="admin_panel_settings">
<RadzenPanelMenuItem Path="/management/users" Text="Пользователи" />
</RadzenPanelMenuItem>
</Authorized>
</AuthorizeView>
</RadzenPanelMenu>
<RadzenPanelMenu>
<AuthorizeView>
<Authorized>
<RadzenPanelMenuItem Path="/account/manage" Text="@context.User.Identity?.Name" />
<RadzenPanelMenuItem Path="/identity/logout" Text="Выйти" Icon="logout" />
</Authorized>
<NotAuthorized>
<RadzenPanelMenuItem Path="/account/login" Text="Вход" Icon="login" />
</NotAuthorized>
</AuthorizeView>
</RadzenPanelMenu>
</RadzenStack>
</RadzenSidebar>
<RadzenBody>
<RadzenNotification Style="position: absolute;top: 0; right: 0;" />
@Body
<div id="blazor-error-ui">
Произошла непредвиденная ошибка
<a href="" class="reload">Перезагрузить</a>
<a class="dismiss">🗙</a>
</div>
</RadzenBody>
</RadzenLayout>
@code {
bool sidebarExpanded = true;
string? currentUrl;
protected override void OnInitialized()
{
currentUrl = NavigationManager.ToBaseRelativePath(NavigationManager.Uri);
NavigationManager.LocationChanged += OnLocationChanged;
}
public void Dispose()
{
NavigationManager.LocationChanged -= OnLocationChanged;
}
private void OnLocationChanged(object? sender, LocationChangedEventArgs e)
{
currentUrl = NavigationManager.ToBaseRelativePath(e.Location);
NotificationService.Messages.Clear();
StateHasChanged();
}
}