2017-09-13 08:47:34 +02:00
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager
2017-09-15 12:08:31 +02:00
@inject RoleManager<IdentityRole> RoleManager
2017-10-27 05:08:18 +02:00
@inject BTCPayServer.Services.BTCPayServerEnvironment env
2018-01-07 20:14:35 +01:00
@inject BTCPayServer.HostedServices.NBXplorerDashboard dashboard
2018-04-13 23:15:03 +02:00
@inject BTCPayServer.HostedServices.CssThemeManager themeManager
2018-04-29 13:48:17 +02:00
2017-09-13 08:47:34 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
2019-11-06 04:19:06 +01:00
<partial name="Header" />
2018-08-22 11:10:46 +02:00
@RenderSection("HeadScripts", required: false)
2018-11-19 05:20:48 +01:00
@RenderSection("HeaderContent", false)
2020-03-19 09:44:47 +01:00
<noscript>
<style>
.hide-when-js{
display:block !important;
}
.only-for-js{
display:none !important;
}
2020-03-19 10:08:33 +01:00
[v-cloak]::before { content: "" !important; }
2020-03-19 09:44:47 +01:00
</style>
</noscript>
2017-09-13 08:47:34 +02:00
</head>
<body id="page-top">
2017-10-27 10:53:04 +02:00
@{
2018-09-22 08:08:27 +02:00
if (ViewBag.AlwaysShrinkNavBar == null)
2017-10-27 10:53:04 +02:00
{
ViewBag.AlwaysShrinkNavBar = true;
}
var additionalStyle = ViewBag.AlwaysShrinkNavBar ? "navbar-shrink always-shrinked" : "";
}
<!-- Navigation -->
2019-02-26 06:08:03 +01:00
<nav class='navbar navbar-expand-lg navbar-dark fixed-top @additionalStyle' id="mainNav">
2017-10-27 10:53:04 +02:00
<div class="container">
2018-01-17 08:34:01 +01:00
<a class="navbar-brand js-scroll-trigger" href="~/">
2020-04-05 13:09:48 +02:00
<svg class="logo" viewBox="0 0 192 84" xmlns="http://www.w3.org/2000/svg"><g><path d="M5.206 83.433a4.86 4.86 0 01-4.859-4.861V5.431a4.86 4.86 0 119.719 0v73.141a4.861 4.861 0 01-4.86 4.861" fill="#CEDC21" class="logo-brand-light"/><path d="M5.209 83.433a4.862 4.862 0 01-2.086-9.253L32.43 60.274 2.323 38.093a4.861 4.861 0 015.766-7.826l36.647 26.999a4.864 4.864 0 01-.799 8.306L7.289 82.964a4.866 4.866 0 01-2.08.469" fill="#51B13E" class="logo-brand-medium"/><path d="M5.211 54.684a4.86 4.86 0 01-2.887-8.774L32.43 23.73 3.123 9.821a4.861 4.861 0 014.166-8.784l36.648 17.394a4.86 4.86 0 01.799 8.305l-36.647 27a4.844 4.844 0 01-2.878.948" fill="#CEDC21" class="logo-brand-light"/><path d="M10.066 31.725v20.553L24.01 42.006z" fill="#1E7A44" class="logo-brand-dark"/><path d="M10.066 5.431A4.861 4.861 0 005.206.57 4.86 4.86 0 00.347 5.431v61.165h9.72V5.431h-.001z" fill="#CEDC21" class="logo-brand-light"/><path d="M74.355 41.412c3.114.884 4.84 3.704 4.84 7.238 0 5.513-3.368 8.082-7.955 8.082H60.761V27.271h9.259c4.504 0 7.997 2.146 7.997 7.743 0 2.821-1.179 5.43-3.662 6.398m-4.293-.716c3.324 0 6.018-1.179 6.018-5.724 0-4.586-2.776-5.808-6.145-5.808h-7.197v11.531h7.324v.001zm1.052 14.099c3.366 0 6.06-1.768 6.06-6.145 0-4.713-3.072-6.144-6.901-6.144h-7.534v12.288h8.375v.001zM98.893 27.271v1.81h-8.122v27.651h-1.979V29.081h-8.123v-1.81zM112.738 26.85c5.01 0 9.554 2.524 10.987 8.543h-1.895c-1.348-4.923-5.303-6.732-9.134-6.732-6.944 0-10.605 5.681-10.605 13.341 0 8.08 3.661 13.256 10.646 13.256 4.125 0 7.828-1.85 9.26-7.279h1.895c-1.264 6.271-6.229 9.174-11.154 9.174-7.87 0-12.583-5.808-12.583-15.15 0-8.966 4.969-15.153 12.583-15.153M138.709 27.271c5.091 0 8.795 3.326 8.795 9.764 0 6.06-3.704 9.722-8.795 9.722h-7.746v9.976h-1.935V27.271h9.681zm0 17.549c3.745 0 6.816-2.397 6.816-7.827 0-5.429-2.947-7.869-6.816-7.869h-7.746V44.82h7.746zM147.841 56.732v-.255l11.741-29.29h.885l11.615 29.29v.255h-2.062l-3.322-8.501H153.27l-3.324 8.501h-2.105zm12.164-26.052l-6.059 15.697h12.078l-6.019-15.697zM189.551 27.271h2.104v.293l-9.176 16.92v12.248h-2.02V44.484l-9.216-16.961v-.252h2.147l3.997 7.492 4.043 7.786h.04l4.081-7.786z" class="logo-brand-text"/></g></svg>
2019-11-02 16:57:53 +01:00
2018-09-22 08:08:27 +02:00
@if (env.NetworkType != NBitcoin.NetworkType.Mainnet)
2018-01-17 08:34:01 +01:00
{
2018-04-19 10:06:08 +02:00
<span class="badge badge-warning" style="font-size:10px;">@env.NetworkType.ToString()</span>
2018-01-17 08:34:01 +01:00
}
</a>
2019-03-18 09:07:39 +01:00
@if (env.OnionUrl != null)
{
<span>
2020-04-05 13:09:48 +02:00
<a class="onion" href="@env.OnionUrl" target="_blank">
2019-03-18 09:07:39 +01:00
<img src="~/img/icons/onion.svg" width="26" height="32" />
</a>
</span>
}
2017-10-27 10:53:04 +02:00
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
2018-09-22 08:08:27 +02:00
@if (SignInManager.IsSignedIn(User))
2018-04-13 23:15:03 +02:00
{
2019-03-09 16:29:04 +01:00
if (User.IsInRole(Roles.ServerAdmin))
2018-04-13 23:15:03 +02:00
{
2019-05-13 10:59:15 +02:00
<li class="nav-item"><a asp-area="" asp-controller="Server" asp-action="ListUsers" class="nav-link js-scroll-trigger" id="ServerSettings">Server settings</a></li>
2018-04-13 23:15:03 +02:00
}
2019-05-12 10:13:26 +02:00
<li class="nav-item"><a asp-area="" asp-controller="UserStores" asp-action="ListStores" class="nav-link js-scroll-trigger" id="Stores">Stores</a></li>
<li class="nav-item"><a asp-area="" asp-controller="Apps" asp-action="ListApps" class="nav-link js-scroll-trigger" id="Apps">Apps</a></li>
<li class="nav-item"><a asp-area="" asp-controller="Wallets" asp-action="ListWallets" class="nav-link js-scroll-trigger" id="Wallets">Wallets</a></li>
<li class="nav-item"><a asp-area="" asp-controller="Invoice" asp-action="ListInvoices" class="nav-link js-scroll-trigger" id="Invoices">Invoices</a></li>
<li class="nav-item"><a asp-area="" asp-controller="PaymentRequest" asp-action="GetPaymentRequests" class="nav-link js-scroll-trigger" id="PaymentRequests">Payment Requests</a></li>
2018-04-13 23:15:03 +02:00
<li class="nav-item">
2019-05-12 10:13:26 +02:00
<a asp-area="" asp-controller="Manage" asp-action="Index" title="My settings" class="nav-link js-scroll-trigger" id="MySettings"><i class="fa fa-user"></i></a>
2018-04-13 23:15:03 +02:00
</li>
<li class="nav-item">
2019-05-12 10:13:26 +02:00
<a asp-area="" asp-controller="Account" asp- asp-action="Logout" title="Logout" class="nav-link js-scroll-trigger" id="Logout"><i class="fa fa-sign-out"></i></a>
2018-04-13 23:15:03 +02:00
</li>}
2019-04-04 07:28:11 +02:00
else if (env.IsSecure)
2018-04-13 23:15:03 +02:00
{
2019-03-09 16:29:04 +01:00
if (themeManager.ShowRegister)
2018-05-10 09:02:49 +02:00
{
2019-05-12 10:13:26 +02:00
<li class="nav-item"><a asp-area="" asp-controller="Account" asp-action="Register" class="nav-link js-scroll-trigger" id="Register">Register</a></li>
2018-05-10 09:02:49 +02:00
}
2019-05-12 10:13:26 +02:00
<li class="nav-item"><a asp-area="" asp-controller="Account" asp-action="Login" class="nav-link js-scroll-trigger" id="Login">Log in</a></li>
2019-04-04 07:28:11 +02:00
}
2017-10-27 10:53:04 +02:00
</ul>
</div>
2018-07-11 15:40:10 +02:00
<div id="badUrl" class="alert alert-danger alert-dismissible" style="display:none; position:absolute; top:75px;" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
2019-11-15 11:24:27 +01:00
<span>BTCPay is expecting you to access this website from <b>@(env.ExpectedProtocol)://@(env.ExpectedHost)/</b>. If you use a reverse proxy, please set the <b>X-Forwarded-Proto</b> header to <b id="browserScheme">@(env.ExpectedProtocol)</b> (<a href="https://docs.btcpayserver.org/faq-and-common-issues/faq-deployment#btcpay-is-expecting-you-to-access-this-website-from" target="_blank" class="alert-link">More information</a>)</span>
2018-07-11 15:40:10 +02:00
</div>
2019-04-04 07:28:11 +02:00
@if (!env.IsSecure)
{
<div class="alert alert-danger alert-dismissible" style="position:absolute; top:75px;" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
2019-10-26 21:20:39 +02:00
<span>Your access to BTCPay Server is over an unsecured network. If you are using the docker deployment method with NGINX and HTTPS is not available, you probably did not configure your DNS settings correctly. <br />
2019-04-04 07:28:11 +02:00
We disabled the register and login link so you don't leak your credentials.</span>
</div>
}
2017-10-27 10:53:04 +02:00
</div>
</nav>
2018-07-11 15:40:10 +02:00
2017-10-27 10:53:04 +02:00
@RenderBody()
2017-12-16 17:04:20 +01:00
2018-09-22 08:08:27 +02:00
@if (User.Identity.IsAuthenticated)
{
2019-11-02 16:57:53 +01:00
<footer class="footer">
2018-09-22 08:08:27 +02:00
<div class="container text-right">@env.ToString()</div>
</footer>
}
2017-10-27 10:53:04 +02:00
2018-09-22 08:08:27 +02:00
@if (!dashboard.IsFullySynched())
2017-12-16 18:07:11 +01:00
{
2018-05-08 10:57:53 +02:00
<partial name="SyncModal" />
2017-12-16 18:07:11 +01:00
}
2017-10-27 10:53:04 +02:00
@RenderSection("Scripts", required: false)
2018-07-11 15:40:10 +02:00
2019-08-10 07:05:11 +02:00
<script type="text/javascript">
var expectedDomain = @Safe.Json(env.ExpectedHost);
var expectedProtocol = @Safe.Json(env.ExpectedProtocol);
2018-07-11 15:40:10 +02:00
if (window.location.host != expectedDomain || window.location.protocol != expectedProtocol + ":") {
document.getElementById("badUrl").style.display = "block";
2019-03-04 09:25:01 +01:00
document.getElementById("browserScheme").innerText = window.location.protocol.substr(0, window.location.protocol.length -1);
2018-07-11 15:40:10 +02:00
}
2019-08-10 07:05:11 +02:00
</script>
2017-09-13 08:47:34 +02:00
</body>
</html>