54 lines
1.7 KiB
Plaintext
54 lines
1.7 KiB
Plaintext
@using PanoptesFrontend.Data;
|
|
@using PanoptesFrontend.Services;
|
|
@using System
|
|
@using System.Text.Json;
|
|
@inject IHttpService httpService
|
|
|
|
<div class="top-row ps-3 navbar navbar-dark">
|
|
<div class="container-fluid">
|
|
<a class="navbar-brand" href="">Panoptes</a>
|
|
<button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
|
|
<nav class="flex-column">
|
|
@if (response != null)
|
|
{
|
|
@foreach (var module in response){
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href=@($"/module/{module.Name}") Match="NavLinkMatch.All">
|
|
<span class="oi oi-home" aria-hidden="true"></span> @module.Name
|
|
</NavLink>
|
|
</div>
|
|
}
|
|
}
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href=module-config Match="NavLinkMatch.All">
|
|
<span class="oi oi-cog" aria-hidden="true"></span> Module config
|
|
</NavLink>
|
|
</div>
|
|
</nav>
|
|
</div>
|
|
|
|
@code {
|
|
|
|
public Module[] response;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
var panoptesHost = Environment.GetEnvironmentVariable("PANOPTESHOST");
|
|
response = await httpService.GetAsync<Module[]>($"http://{panoptesHost}/modules");
|
|
}
|
|
|
|
private bool collapseNavMenu = true;
|
|
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
|
|
|
|
private void ToggleNavMenu()
|
|
{
|
|
collapseNavMenu = !collapseNavMenu;
|
|
}
|
|
}
|