< Summary

Information
Class: Chronicis.Client.Pages.Admin.Utilities
Assembly: Chronicis.Client
File(s): /home/runner/work/chronicis/chronicis/src/Chronicis.Client/Pages/Admin/Utilities.razor
Line coverage
100%
Covered lines: 2
Uncovered lines: 0
Coverable lines: 2
Total lines: 71
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
BuildRenderTree(...)100%44100%

File(s)

/home/runner/work/chronicis/chronicis/src/Chronicis.Client/Pages/Admin/Utilities.razor

#LineLine coverage
 1@page "/admin/utilities"
 2@attribute [Authorize]
 3@inject IAdminAuthService AdminAuth
 4@inject NavigationManager Navigation
 5
 6<PageTitle>Utilities - Chronicis</PageTitle>
 7
 38@if (_authorized == null)
 9{
 10    <MudProgressLinear Indeterminate="true" Color="Color.Primary" />
 11}
 212else if (_authorized == false)
 13{
 14    <MudAlert Severity="Severity.Error" Class="ma-4">
 15        You do not have permission to access this page.
 16    </MudAlert>
 17}
 18else
 19{
 20    <MudPaper Elevation="2" Class="admin-container pa-6">
 21        <div class="admin-header mb-6">
 22            <MudText Typo="Typo.h4" Class="admin-title">Admin Utilities</MudText>
 23            <MudText Typo="Typo.body2" Class="mud-text-secondary">
 24                System administration tools. Handle with care.
 25            </MudText>
 26        </div>
 27
 28        <!-- Admin Navigation -->
 29        <div class="mb-4">
 30            <MudButtonGroup Variant="Variant.Outlined" Color="Color.Primary">
 31                <MudButton StartIcon="@Icons.Material.Filled.Build"
 32                           Href="/admin/utilities"
 33                           Variant="@(Navigation.Uri.Contains("/utilities") ? Variant.Filled : Variant.Outlined)">
 34                    Utilities
 35                </MudButton>
 36                <MudButton StartIcon="@Icons.Material.Filled.HealthAndSafety"
 37                           Href="/admin/status"
 38                           Variant="@(Navigation.Uri.Contains("/status") ? Variant.Filled : Variant.Outlined)">
 39                    System Status
 40                </MudButton>
 41            </MudButtonGroup>
 42        </div>
 43
 44        <MudTabs Elevation="0"
 45                 Rounded="true"
 46                 ApplyEffectsToContainer="true"
 47                 PanelClass="pt-6"
 48                 Color="Color.Primary"
 49                 SliderColor="Color.Primary"
 50                 Class="admin-tabs">
 51            <MudTabPanel Text="Worlds" Icon="@Icons.Material.Filled.Public">
 52                <AdminWorldsPanel />
 53            </MudTabPanel>
 54            <MudTabPanel Text="Tutorials" Icon="@Icons.Material.Filled.School">
 55                <AdminTutorialsPanel />
 56            </MudTabPanel>
 57            <MudTabPanel Text="External Resources" Icon="@Icons.Material.Filled.Extension">
 58                <RenderDefinitionGenerator />
 59            </MudTabPanel>
 60        </MudTabs>
 61    </MudPaper>
 62}
 63
 64@code {
 65    private bool? _authorized;
 66
 67    protected override async Task OnInitializedAsync()
 68    {
 69        _authorized = await AdminAuth.IsSysAdminAsync();
 70    }
 71}