202 lines
11 KiB
Plaintext
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>
|