btcpayserver-plugin-builder/PluginBuilder/Components/MainNav/Default.cshtml
Chukwuleta Tobechi 21c2a93fdd revert changes
2026-05-14 11:21:20 +01:00

202 lines
11 KiB
Plaintext

@inject SignInManager<IdentityUser> SignInManager
@using Microsoft.AspNetCore.Identity
@using PluginBuilder.Components
@model PluginBuilder.Components.MainNav.MainNavViewModel
<nav id="mainNav" class="d-flex flex-column justify-content-between">
<div class="accordion px-3 px-lg-4">
@if (SignInManager.IsSignedIn(User))
{
@if (Model.PluginSlug != null)
{
<div class="accordion-item">
<div class="accordion-body">
<ul class="navbar-nav">
<li class="nav-item">
<a asp-area="" asp-controller="Plugin" asp-action="Dashboard" asp-route-pluginSlug="@Model.PluginSlug"
class="nav-link js-scroll-trigger @ViewData.IsActivePage(PluginNavPages.Dashboard)" id="StoreNav-Dashboard">
<vc:icon symbol="home" />
<span>Builds</span>
</a>
</li>
@if (Model.RequestListing && Model.Versions.Any())
{
<li class="nav-item">
<a asp-area="" asp-controller="Plugin" asp-action="RequestListing" asp-route-pluginSlug="@Model.PluginSlug"
class="nav-link js-scroll-trigger @ViewData.IsActivePage(PluginNavPages.RequestListing)" id="StoreNav-RequestListing">
<vc:icon symbol="notification" />
<span>Request Listing</span>
</a>
</li>
}
<li class="nav-item">
<a asp-area="" asp-controller="Plugin" asp-action="Settings" asp-route-pluginSlug="@Model.PluginSlug"
class="nav-link js-scroll-trigger @ViewData.IsActivePage(PluginNavPages.Settings)" id="StoreNav-Settings">
<vc:icon symbol="settings" />
<span>Settings</span>
</a>
</li>
<li class="nav-item">
<a asp-area="" asp-controller="Plugin" asp-action="Owners" asp-route-pluginSlug="@Model.PluginSlug"
class="nav-link js-scroll-trigger @ViewData.IsActivePage(PluginNavPages.Owners)" id="StoreNav-Owners">
<vc:icon symbol="users" />
<span>Owners</span>
</a>
</li>
</ul>
</div>
</div>
@if (Model.Versions.Any())
{
<div class="accordion-item">
<header class="accordion-header" id="Nav-Versions-Header">
<div class="accordion-button">
Versions
</div>
</header>
<div id="Nav-Versions" class="accordion-collapse" aria-labelledby="Nav-Wallets-Header">
<div class="accordion-body">
<ul class="navbar-nav">
@foreach (var version in Model.Versions)
{
<li class="nav-item">
<span class="nav-link">
<vc:plugin-version model="@version"></vc:plugin-version>
</span>
</li>
}
</ul>
</div>
</div>
</div>
}
}
<div class="accordion-item">
<div class="accordion-body">
<ul class="navbar-nav">
<li class="nav-item">
<a asp-area=""
asp-controller="Home"
asp-action="AllPlugins"
class="nav-link js-scroll-trigger"
id="Nav-AllPlugins">
<vc:icon symbol="info" />
<span>Public Directory</span>
</a>
</li>
</ul>
</div>
</div>
// Server settings
@if (User.IsInRole(Roles.ServerAdmin))
{
<div class="accordion-item">
<header class="accordion-header" id="Nav-Server-Admin-Header">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#Nav-Server-Admin" aria-expanded="true"
aria-controls="Nav-Server-Admin">
<span text-translate="true">Server Administration</span>
<vc:icon symbol="caret-down" />
</button>
</header>
<div id="Nav-Server-Admin" class="accordion-collapse collapse show" aria-labelledby="Nav-Server-Admin-Header">
<div class="accordion-body">
<ul class="navbar-nav">
<li class="nav-item">
<a asp-area="" asp-controller="Admin" asp-action="Users"
class="nav-link js-scroll-trigger @ViewData.IsActivePage(AdminNavPages.Users)" id="AdminNav-Users">
<vc:icon symbol="users" />
<span text-translate="true">Users</span>
</a>
</li>
<li class="nav-item">
<a asp-area="" asp-controller="Admin" asp-action="ListPlugins"
class="nav-link js-scroll-trigger @ViewData.IsActivePage(AdminNavPages.Plugins)" id="AdminNav-Plugins">
<vc:icon symbol="plugins" />
<span text-translate="true">Plugins</span>
</a>
</li>
<li class="nav-item">
<a asp-area="" asp-controller="Admin" asp-action="ListingRequests"
class="nav-link js-scroll-trigger @ViewData.IsActivePage(AdminNavPages.ListingRequests)" id="AdminNav-ListingRequests">
<vc:icon symbol="notification" />
<span text-translate="true">Listing Requests</span>
@if (Model.PendingListingRequestsCount > 0)
{
<span class="badge bg-warning text-dark ms-1">@Model.PendingListingRequestsCount</span>
}
</a>
</li>
<li class="nav-item">
<a asp-area="" asp-controller="Admin" asp-action="EmailSettings"
class="nav-link js-scroll-trigger @ViewData.IsActivePage(AdminNavPages.EmailSettings)" id="AdminNav-EmailSettings">
<vc:icon symbol="email-settings" />
<span text-translate="true">Email Settings</span>
</a>
</li>
<li class="nav-item">
<a asp-area="" asp-controller="Admin" asp-action="SettingsEditor"
class="nav-link js-scroll-trigger @ViewData.IsActivePage(AdminNavPages.Settings)" id="AdminNav-Settings">
<vc:icon symbol="settings" />
<span text-translate="true">Settings</span>
</a>
</li>
<li class="nav-item">
<a asp-area="" asp-controller="Admin" asp-action="LogsView"
class="nav-link js-scroll-trigger @ViewData.IsActivePage(AdminNavPages.Logs)" id="AdminNav-Logs">
<vc:icon symbol="server-settings" />
<span text-translate="true">Logs</span>
</a>
</li>
</ul>
</div>
</div>
</div>
}
}
</div>
@if (SignInManager.IsSignedIn(User))
{
<ul id="mainNavSettings" class="navbar-nav border-top p-3 px-lg-4">
<li class="nav-item dropup">
<a class="nav-link js-scroll-trigger" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false"
id="Nav-Account">
<vc:icon symbol="account" />
<span>Account</span>
</a>
<ul class="dropdown-menu py-0 w-100" aria-labelledby="Nav-Account">
<li class="p-3">
<strong class="d-block text-truncate" style="max-width:195px">@User.Identity?.Name</strong>
@if (User.IsInRole(Roles.ServerAdmin))
{
<div class="text-secondary">Administrator</div>
}
</li>
<li class="border-top py-1 px-3">
<a asp-area="" asp-controller="Account" asp-action="AccountDetails" class="nav-link" id="Nav-ManageAccount">
<span>Manage Account</span>
</a>
</li>
<li class="border-top py-1 px-3">
<div class="btcpay-theme-switch w-100 py-2">
<span class="btcpay-theme-switch-label">Theme</span>
<div class="btcpay-theme-switch-themes">
<button type="button" title="System" data-theme="system"><vc:icon symbol="themes-system"/></button>
<button type="button" title="Light" data-theme="light"><vc:icon symbol="themes-light"/></button>
<button type="button" title="Dark" data-theme="dark"><vc:icon symbol="themes-dark"/></button>
</div>
</div>
</li>
<li class="border-top py-1 px-3">
<a asp-area="" asp-controller="Home" asp-action="Logout" class="nav-link text-danger" id="Nav-Logout">
<span>Logout</span>
</a>
</li>
</ul>
</li>
</ul>
}
</nav>