What changed, and why it matters
This commit is a routine UI refactor: it renames the internal ASP.NET Core view component from <vc:breadcrumb> to <vc:title-header>, updates CSS class names, and standardizes how page titles are set across many Razor views. There is no security-relevant change in behavior—no new endpoints, no permission changes, no input handling changes, and no fixes for injection or bypass issues.
No security action required. Treat as normal code-review/merge for UI consistency.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff deletes BTCPayServer/Components/Breadcrumb/Breadcrumb.cs and Default.cshtml and adds BTCPayServer/Components/TitleHeader/TitleHeader.cs and Default.cshtml with identical logic but renamed namespace/class/CSS classes. A helper SetTitle is added/overloaded in ViewsRazor.cs to accept string or LocalizedString and store title.Value. Roughly 100 .cshtml files replace @ViewData[“Title”]
with
Changed components
BTCPayServer.Abstractions/Extensions/ViewsRazor.csBTCPayServer/Components/Breadcrumb/* (deleted)BTCPayServer/Components/TitleHeader/* (added)Numerous Razor view files under BTCPayServer/Views and BTCPayServer/PluginsInspect captured patch +189 / −199
diff --git a/BTCPayServer.Abstractions/Extensions/ViewsRazor.cs b/BTCPayServer.Abstractions/Extensions/ViewsRazor.cs
index 68cd01a..03c82f9 100644
--- a/BTCPayServer.Abstractions/Extensions/ViewsRazor.cs
+++ b/BTCPayServer.Abstractions/Extensions/ViewsRazor.cs
@@ -5,6 +5,7 @@ using System.Linq;
using BTCPayServer.Abstractions.Models;
using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
+using Microsoft.Extensions.Localization;
namespace BTCPayServer.Abstractions.Extensions
{
@@ -38,12 +39,13 @@ namespace BTCPayServer.Abstractions.Extensions
}
public static void SetTitle(this ViewDataDictionary viewData, string title) => viewData["Title"] = title;
+ public static void SetTitle(this ViewDataDictionary viewData, LocalizedString title) => viewData["Title"] = title.Value;
public static string GetTitle(this ViewDataDictionary viewData) => viewData["Title"]?.ToString();
public static void SetLayoutModel(this ViewDataDictionary viewData, LayoutModel model)
{
// Page Title
- viewData["Title"] = model.Title ?? model.MenuItemId;
+ viewData.SetTitle(model.Title ?? model.MenuItemId);
// Navigation
viewData[ACTIVE_PAGE_KEY] = model.MenuItemId;
viewData[ACTIVE_ID_KEY] = model.SubMenuItemId;
diff --git a/BTCPayServer/Components/Breadcrumb/Breadcrumb.cs b/BTCPayServer/Components/Breadcrumb/Breadcrumb.cs
deleted file mode 100644
index 297b0fa..0000000
--- a/BTCPayServer/Components/Breadcrumb/Breadcrumb.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-#nullable enable
-using System.Collections.Generic;
-using System.Linq;
-using BTCPayServer;
-using Microsoft.AspNetCore.Mvc;
-
-namespace BTCPayServer.Components.Breadcrumb;
-
-public class Breadcrumb : ViewComponent
-{
- public IViewComponentResult Invoke(string? title = null, string? documentationUrl = null)
- {
- title ??= ViewData["Title"] as string;
- var resolvedItems = ViewData.GetBreadcrumbs()
- .Select(item => item.Url is null && item.Action is not null
- ? item with { Url = Url.Action(item.Action, GetControllerName(item.Controller), item.RouteValues) }
- : item)
- .ToList();
-
- if (!resolvedItems.Any(item => item.Active))
- resolvedItems.Add(new BreadcrumbItem(title, Active: true));
-
- return View(new BreadcrumbViewModel(resolvedItems, title, documentationUrl));
- }
-
- private static string? GetControllerName(string? controller)
- => controller?.EndsWith("Controller") is true ? controller[..^"Controller".Length] : controller;
-}
-
-public record BreadcrumbItem(
- object? Text,
- string? Url = null,
- string? Action = null,
- string? Controller = null,
- object? RouteValues = null,
- bool Active = false,
- string? TestId = null);
-
-public record BreadcrumbViewModel(IReadOnlyList<BreadcrumbItem> Items, object? Title, string? DocumentationUrl);
diff --git a/BTCPayServer/Components/Breadcrumb/Default.cshtml b/BTCPayServer/Components/Breadcrumb/Default.cshtml
deleted file mode 100644
index 20e617b..0000000
--- a/BTCPayServer/Components/Breadcrumb/Default.cshtml
+++ /dev/null
@@ -1,33 +0,0 @@
-@model BTCPayServer.Components.Breadcrumb.BreadcrumbViewModel
-
-<nav aria-label="breadcrumb" class="breadcrumb-nav">
- <ol class="breadcrumb breadcrumb-nav__items">
- @foreach (var item in Model.Items)
- {
- if (item.Active)
- {
- <li class="breadcrumb-item breadcrumb-nav__item active" aria-current="page">@item.Text</li>
- }
- else
- {
- <li class="breadcrumb-item breadcrumb-nav__item">
- <a href="@item.Url" data-testid="@item.TestId">@item.Text</a>
- </li>
- }
- }
- </ol>
- @if (Model.Title is not null)
- {
- <h2 class="breadcrumb-nav__title">
- <span>@Model.Title</span>
- @if (Model.DocumentationUrl is not null)
- {
- <small>
- <a href="@Model.DocumentationUrl" target="_blank" rel="noreferrer noopener" title="@StringLocalizer["More information..."]">
- <vc:icon symbol="info" />
- </a>
- </small>
- }
- </h2>
- }
-</nav>
diff --git a/BTCPayServer/Components/TitleHeader/Default.cshtml b/BTCPayServer/Components/TitleHeader/Default.cshtml
new file mode 100644
index 0000000..d39bc72
--- /dev/null
+++ b/BTCPayServer/Components/TitleHeader/Default.cshtml
@@ -0,0 +1,36 @@
+@model BTCPayServer.Components.Breadcrumb.BreadcrumbViewModel
+
+<nav aria-label="breadcrumb" class="title-header-nav">
+ @if (Model.Items.Any())
+ {
+ <ol class="breadcrumb title-header-nav__items">
+ @foreach (var item in Model.Items)
+ {
+ if (item.Active)
+ {
+ <li class="breadcrumb-item title-header-nav__item active" aria-current="page">@item.Text</li>
+ }
+ else
+ {
+ <li class="breadcrumb-item title-header-nav__item">
+ <a href="@item.Url" data-testid="@item.TestId">@item.Text</a>
+ </li>
+ }
+ }
+ </ol>
+ }
+ @if (Model.Title is not null)
+ {
+ <h2 class="title-header-nav__title">
+ <span>@Model.Title</span>
+ @if (Model.DocumentationUrl is not null)
+ {
+ <small>
+ <a href="@Model.DocumentationUrl" target="_blank" rel="noreferrer noopener" title="@StringLocalizer["More information..."]">
+ <vc:icon symbol="info"/>
+ </a>
+ </small>
+ }
+ </h2>
+ }
+</nav>
diff --git a/BTCPayServer/Components/TitleHeader/TitleHeader.cs b/BTCPayServer/Components/TitleHeader/TitleHeader.cs
new file mode 100644
index 0000000..e19874d
--- /dev/null
+++ b/BTCPayServer/Components/TitleHeader/TitleHeader.cs
@@ -0,0 +1,38 @@
+#nullable enable
+using System.Collections.Generic;
+using System.Linq;
+using Microsoft.AspNetCore.Mvc;
+
+namespace BTCPayServer.Components.Breadcrumb;
+
+public class TitleHeader : ViewComponent
+{
+ public IViewComponentResult Invoke(string? title = null, string? documentationUrl = null)
+ {
+ title ??= ViewData["Title"] as string;
+ var resolvedItems = ViewData.GetBreadcrumbs()
+ .Select(item => item.Url is null && item.Action is not null
+ ? item with { Url = Url.Action(item.Action, GetControllerName(item.Controller), item.RouteValues) }
+ : item)
+ .ToList();
+
+ if (!resolvedItems.Any(item => item.Active))
+ resolvedItems.Add(new BreadcrumbItem(title, Active: true));
+
+ return View(new BreadcrumbViewModel(resolvedItems, title, documentationUrl));
+ }
+
+ private static string? GetControllerName(string? controller)
+ => controller?.EndsWith("Controller") is true ? controller[..^"Controller".Length] : controller;
+}
+
+public record BreadcrumbItem(
+ object? Text,
+ string? Url = null,
+ string? Action = null,
+ string? Controller = null,
+ object? RouteValues = null,
+ bool Active = false,
+ string? TestId = null);
+
+public record BreadcrumbViewModel(IReadOnlyList<BreadcrumbItem> Items, object? Title, string? DocumentationUrl);
diff --git a/BTCPayServer/Plugins/Bitpay/Views/CreateToken.cshtml b/BTCPayServer/Plugins/Bitpay/Views/CreateToken.cshtml
index 87856be..c383811 100644
--- a/BTCPayServer/Plugins/Bitpay/Views/CreateToken.cshtml
+++ b/BTCPayServer/Plugins/Bitpay/Views/CreateToken.cshtml
@@ -11,14 +11,7 @@
<form method="post">
<div class="sticky-header">
- @if (store != null)
- {
- <vc:breadcrumb />
- }
- else
- {
- <h2>@ViewData["Title"]</h2>
- }
+ <vc:title-header />
<input id="page-primary" type="submit" value="Request Pairing" class="btn btn-primary" />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Plugins/Bitpay/Views/RequestPairing.cshtml b/BTCPayServer/Plugins/Bitpay/Views/RequestPairing.cshtml
index 58c2931..6442eb1 100644
--- a/BTCPayServer/Plugins/Bitpay/Views/RequestPairing.cshtml
+++ b/BTCPayServer/Plugins/Bitpay/Views/RequestPairing.cshtml
@@ -21,14 +21,7 @@
}
<form asp-action="Pair" method="post" permissioned="@Policies.CanModifyStoreSettings">
<div class="sticky-header">
- @if (store != null)
- {
- <vc:breadcrumb />
- }
- else
- {
- <h2>@ViewData["Title"]</h2>
- }
+ <vc:title-header />
<button id="page-primary" type="submit" class="btn btn-primary mt-3" title="@StringLocalizer["Approve this pairing demand"]" text-translate="true">Approve</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Plugins/Crowdfund/Views/Public/ViewCrowdfund.cshtml b/BTCPayServer/Plugins/Crowdfund/Views/Public/ViewCrowdfund.cshtml
index 6e8e765..0414d2c 100644
--- a/BTCPayServer/Plugins/Crowdfund/Views/Public/ViewCrowdfund.cshtml
+++ b/BTCPayServer/Plugins/Crowdfund/Views/Public/ViewCrowdfund.cshtml
@@ -3,7 +3,7 @@
@inject BTCPayServer.Services.BTCPayServerEnvironment Env
@inject BTCPayServer.Security.ContentSecurityPolicies Csp
@{
- ViewData["Title"] = Model.Title;
+ ViewData.SetTitle(Model.Title);
ViewData["StoreBranding"] = Model.StoreBranding;
Layout = null;
Csp.UnsafeEval();
diff --git a/BTCPayServer/Plugins/Crowdfund/Views/UpdateCrowdfund.cshtml b/BTCPayServer/Plugins/Crowdfund/Views/UpdateCrowdfund.cshtml
index 69bcaa8..6b034c2 100644
--- a/BTCPayServer/Plugins/Crowdfund/Views/UpdateCrowdfund.cshtml
+++ b/BTCPayServer/Plugins/Crowdfund/Views/UpdateCrowdfund.cshtml
@@ -28,7 +28,7 @@
<form method="post" enctype="multipart/form-data" permissioned="@Policies.CanModifyStoreSettings">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<div>
<button id="page-primary" type="submit" class="btn btn-primary order-sm-1" text-translate="true">Save</button>
<a class="btn btn-secondary" asp-action="ListInvoices" asp-controller="UIInvoice" asp-route-storeId="@Model.StoreId" asp-route-searchterm="@Model.SearchTerm" text-translate="true">Invoices</a>
diff --git a/BTCPayServer/Plugins/DynamicDNS/Views/DynamicDnsService.cshtml b/BTCPayServer/Plugins/DynamicDNS/Views/DynamicDnsService.cshtml
index 090a2e6..0b82dbc 100644
--- a/BTCPayServer/Plugins/DynamicDNS/Views/DynamicDnsService.cshtml
+++ b/BTCPayServer/Plugins/DynamicDNS/Views/DynamicDnsService.cshtml
@@ -17,7 +17,7 @@
}
<form method="post">
<div class="sticky-header">
- <vc:breadcrumb documentation-url="https://docs.btcpayserver.org/Apps/" />
+ <vc:title-header documentation-url="https://docs.btcpayserver.org/Apps/" />
<button id="page-primary" name="command" class="btn btn-primary" type="submit" value="Save" text-translate="true">Save</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Plugins/DynamicDNS/Views/DynamicDnsServices.cshtml b/BTCPayServer/Plugins/DynamicDNS/Views/DynamicDnsServices.cshtml
index 4285568..c18a5ac 100644
--- a/BTCPayServer/Plugins/DynamicDNS/Views/DynamicDnsServices.cshtml
+++ b/BTCPayServer/Plugins/DynamicDNS/Views/DynamicDnsServices.cshtml
@@ -5,7 +5,7 @@
ViewData.SetBreadcrumbs([new(StringLocalizer["Services"], Action: nameof(BTCPayServer.Controllers.UIServerController.Services), Controller: nameof(BTCPayServer.Controllers.UIServerController), RouteValues: new { area = "" })]);
}
<div class="sticky-header">
- <vc:breadcrumb documentation-url="https://docs.btcpayserver.org/Apps/" />
+ <vc:title-header documentation-url="https://docs.btcpayserver.org/Apps/" />
<div>
<form method="post" asp-action="DynamicDnsService">
<button id="page-primary" class="btn btn-primary mt-2" type="submit" text-translate="true">Add Service</button>
diff --git a/BTCPayServer/Plugins/Emails/Views/Shared/EmailRulesList.cshtml b/BTCPayServer/Plugins/Emails/Views/Shared/EmailRulesList.cshtml
index 4b4be68..06f6e8d 100644
--- a/BTCPayServer/Plugins/Emails/Views/Shared/EmailRulesList.cshtml
+++ b/BTCPayServer/Plugins/Emails/Views/Shared/EmailRulesList.cshtml
@@ -18,7 +18,7 @@
}
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
@if (storeId is not null)
{
<a id="CreateEmailRule" permission="@Model.ModifyPermission" asp-action="StoreEmailRulesCreate" asp-route-storeId="@storeId"
diff --git a/BTCPayServer/Plugins/Emails/Views/Shared/EmailRulesManage.cshtml b/BTCPayServer/Plugins/Emails/Views/Shared/EmailRulesManage.cshtml
index a4e130c..d674a9d 100644
--- a/BTCPayServer/Plugins/Emails/Views/Shared/EmailRulesManage.cshtml
+++ b/BTCPayServer/Plugins/Emails/Views/Shared/EmailRulesManage.cshtml
@@ -30,7 +30,7 @@
<form id="save-form" method="post">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<div>
<button id="page-primary" type="submit" class="btn btn-primary" text-translate="true">Save</button>
<a asp-action="StoreEmailRulesList" asp-route-storeId="@storeId" class="btn btn-secondary" text-translate="true">Cancel</a>
diff --git a/BTCPayServer/Plugins/Forms/Views/Modify.cshtml b/BTCPayServer/Plugins/Forms/Views/Modify.cshtml
index 2fdffab..7d37103 100644
--- a/BTCPayServer/Plugins/Forms/Views/Modify.cshtml
+++ b/BTCPayServer/Plugins/Forms/Views/Modify.cshtml
@@ -199,7 +199,7 @@
<form method="post" asp-action="Modify" asp-route-id="@formId" asp-route-storeId="@storeId">
<div class="sticky-header">
- <vc:breadcrumb documentation-url="https://docs.btcpayserver.org/Forms" />
+ <vc:title-header documentation-url="https://docs.btcpayserver.org/Forms" />
<div>
<button id="page-primary" type="submit" class="btn btn-primary order-sm-1" text-translate="true">Save</button>
@if (!isNew)
diff --git a/BTCPayServer/Plugins/Forms/Views/View.cshtml b/BTCPayServer/Plugins/Forms/Views/View.cshtml
index b2ae9c3..aab4d56 100644
--- a/BTCPayServer/Plugins/Forms/Views/View.cshtml
+++ b/BTCPayServer/Plugins/Forms/Views/View.cshtml
@@ -2,7 +2,7 @@
@model BTCPayServer.Forms.Models.FormViewModel
@{
Layout = null;
- ViewData["Title"] = Model.FormName;
+ ViewData.SetTitle(Model.FormName);
ViewData["StoreBranding"] = Model.StoreBranding;
}
<!DOCTYPE html>
diff --git a/BTCPayServer/Plugins/Impersonation/Views/LoginCodes.cshtml b/BTCPayServer/Plugins/Impersonation/Views/LoginCodes.cshtml
index b7b1333..40207cc 100644
--- a/BTCPayServer/Plugins/Impersonation/Views/LoginCodes.cshtml
+++ b/BTCPayServer/Plugins/Impersonation/Views/LoginCodes.cshtml
@@ -8,7 +8,7 @@
}
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
<p text-translate="true">Easily log into BTCPay Server on another device using a simple login code from an already authenticated device.</p>
diff --git a/BTCPayServer/Plugins/Multisig/Views/SetupMultisigSubmitKey.cshtml b/BTCPayServer/Plugins/Multisig/Views/SetupMultisigSubmitKey.cshtml
index 1d4e019..e7e7fe2 100644
--- a/BTCPayServer/Plugins/Multisig/Views/SetupMultisigSubmitKey.cshtml
+++ b/BTCPayServer/Plugins/Multisig/Views/SetupMultisigSubmitKey.cshtml
@@ -1,7 +1,7 @@
@model MultisigSignerKeyViewModel
@{
Layout = "~/Views/Shared/_LayoutSimple.cshtml";
- ViewData["Title"] = StringLocalizer["Submit multisig signer key"];
+ ViewData.SetTitle(StringLocalizer["Submit multisig signer key"]);
var inputMethod = Model.InputMethod?.ToLowerInvariant();
var useHardware = inputMethod == "hardware";
var useManual = inputMethod == "manual";
diff --git a/BTCPayServer/Plugins/PointOfSale/Views/Public/_Layout.cshtml b/BTCPayServer/Plugins/PointOfSale/Views/Public/_Layout.cshtml
index 6116b78..3dcfca9 100644
--- a/BTCPayServer/Plugins/PointOfSale/Views/Public/_Layout.cshtml
+++ b/BTCPayServer/Plugins/PointOfSale/Views/Public/_Layout.cshtml
@@ -8,7 +8,7 @@
@model BTCPayServer.Plugins.PointOfSale.Models.ViewPointOfSaleViewModel
@{
- ViewData["Title"] = string.IsNullOrEmpty(Model.Title) ? Model.StoreName : Model.Title;
+ ViewData.SetTitle(string.IsNullOrEmpty(Model.Title) ? Model.StoreName : Model.Title);
ViewData["StoreBranding"] = Model.StoreBranding;
Layout = null;
diff --git a/BTCPayServer/Plugins/PointOfSale/Views/UpdatePointOfSale.cshtml b/BTCPayServer/Plugins/PointOfSale/Views/UpdatePointOfSale.cshtml
index 87f1a43..dc084f3 100644
--- a/BTCPayServer/Plugins/PointOfSale/Views/UpdatePointOfSale.cshtml
+++ b/BTCPayServer/Plugins/PointOfSale/Views/UpdatePointOfSale.cshtml
@@ -26,7 +26,7 @@
<form method="post">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<div>
<button id="page-primary" type="submit" class="btn btn-primary order-sm-1" text-translate="true" permissioned="@Policies.CanModifyStoreSettings">Save</button>
<a class="btn btn-secondary" asp-action="ListInvoices" asp-controller="UIInvoice" asp-route-storeId="@Model.StoreId" asp-route-searchterm="@Model.SearchTerm" text-translate="true">Invoices</a>
diff --git a/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/AddPlan.cshtml b/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/AddPlan.cshtml
index 97a2691..10e0ebc 100644
--- a/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/AddPlan.cshtml
+++ b/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/AddPlan.cshtml
@@ -15,7 +15,7 @@
<form method="post">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<input id="page-primary" type="submit" name="command" value="@submitLabel" class="btn btn-primary" />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/ConfigureOffering.cshtml b/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/ConfigureOffering.cshtml
index 584d44c..3e3b90c 100644
--- a/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/ConfigureOffering.cshtml
+++ b/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/ConfigureOffering.cshtml
@@ -22,7 +22,7 @@
<form method="post">
<input type="hidden" asp-for="OriginalName" />
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<input id="page-primary" type="submit" value="Save" class="btn btn-primary" />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/CreateOffering.cshtml b/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/CreateOffering.cshtml
index 6e8ad24..e03cb56 100644
--- a/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/CreateOffering.cshtml
+++ b/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/CreateOffering.cshtml
@@ -7,7 +7,7 @@
<form method="post">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<div>
<button cheat-mode="true" type="submit" name="command" value="create-fake" class="btn btn-outline-info" id="fake-offering-button">
Create fake offering
diff --git a/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/Offering.cshtml b/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/Offering.cshtml
index 24b8b2c..bef3901 100644
--- a/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/Offering.cshtml
+++ b/BTCPayServer/Plugins/Subscriptions/Views/UIOffering/Offering.cshtml
@@ -27,7 +27,7 @@
}
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<div>
<a class="btn btn-secondary" asp-action="ConfigureOffering" asp-route-storeId="@storeId" asp-route-offeringId="@offeringId" permission="@SubscriptionsPolicies.CanModifyOfferings" text-translate="true">Configure</a>
</div>
diff --git a/BTCPayServer/Plugins/Subscriptions/Views/UIPlanCheckout/PlanCheckout.cshtml b/BTCPayServer/Plugins/Subscriptions/Views/UIPlanCheckout/PlanCheckout.cshtml
index 1c52a25..cbd8fb7 100644
--- a/BTCPayServer/Plugins/Subscriptions/Views/UIPlanCheckout/PlanCheckout.cshtml
+++ b/BTCPayServer/Plugins/Subscriptions/Views/UIPlanCheckout/PlanCheckout.cshtml
@@ -6,7 +6,7 @@
@model PlanCheckoutViewModel
@{
- ViewData["Title"] = Model.Title;
+ ViewData.SetTitle(Model.Title);
ViewData["StoreBranding"] = Model.StoreBranding;
Layout = null;
ViewData.SetBlazorAllowed(false);
diff --git a/BTCPayServer/Plugins/Subscriptions/Views/UIPlanCheckout/PlanCheckoutDefaultRedirect.cshtml b/BTCPayServer/Plugins/Subscriptions/Views/UIPlanCheckout/PlanCheckoutDefaultRedirect.cshtml
index 198f32d..9a60daf 100644
--- a/BTCPayServer/Plugins/Subscriptions/Views/UIPlanCheckout/PlanCheckoutDefaultRedirect.cshtml
+++ b/BTCPayServer/Plugins/Subscriptions/Views/UIPlanCheckout/PlanCheckoutDefaultRedirect.cshtml
@@ -1,6 +1,6 @@
@model PlanCheckoutDefaultRedirectViewModel
@{
- ViewData["Title"] = Model.Title;
+ ViewData.SetTitle(Model.Title);
ViewData["StoreBranding"] = Model.StoreBranding;
Layout = null;
ViewData.SetBlazorAllowed(false);
diff --git a/BTCPayServer/Plugins/Translations/Views/CreateTranslation.cshtml b/BTCPayServer/Plugins/Translations/Views/CreateTranslation.cshtml
index 56017a5..4d2d112 100644
--- a/BTCPayServer/Plugins/Translations/Views/CreateTranslation.cshtml
+++ b/BTCPayServer/Plugins/Translations/Views/CreateTranslation.cshtml
@@ -7,7 +7,7 @@
}
<form method="post">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<input id="page-primary" type="submit" value="Create" class="btn btn-primary" />
</div>
diff --git a/BTCPayServer/Plugins/Translations/Views/EditTranslation.cshtml b/BTCPayServer/Plugins/Translations/Views/EditTranslation.cshtml
index fc52169..9b2c9ef 100644
--- a/BTCPayServer/Plugins/Translations/Views/EditTranslation.cshtml
+++ b/BTCPayServer/Plugins/Translations/Views/EditTranslation.cshtml
@@ -8,7 +8,7 @@
<form method="post" class="d-flex flex-column">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<div>
<button cheat-mode="true" class="btn btn-outline-info" name="command" value="Fake" text-translate="true">Fill fake</button>
<button id="page-primary" type="submit" class="btn btn-primary" name="command" value="Save" text-translate="true">Save</button>
diff --git a/BTCPayServer/Plugins/Translations/Views/ListTranslations.cshtml b/BTCPayServer/Plugins/Translations/Views/ListTranslations.cshtml
index 226f2d7..5e7d6b3 100644
--- a/BTCPayServer/Plugins/Translations/Views/ListTranslations.cshtml
+++ b/BTCPayServer/Plugins/Translations/Views/ListTranslations.cshtml
@@ -6,7 +6,7 @@
}
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<div class="d-flex gap-2">
<a id="page-primary" asp-action="CreateTranslation" class="btn btn-primary" role="button" text-translate="true">
Create
diff --git a/BTCPayServer/Plugins/Wallets/Views/UIStoreOnChainWallets/WalletSettings.cshtml b/BTCPayServer/Plugins/Wallets/Views/UIStoreOnChainWallets/WalletSettings.cshtml
index 682759a..ecb62e9 100644
--- a/BTCPayServer/Plugins/Wallets/Views/UIStoreOnChainWallets/WalletSettings.cshtml
+++ b/BTCPayServer/Plugins/Wallets/Views/UIStoreOnChainWallets/WalletSettings.cshtml
@@ -20,7 +20,7 @@
}
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<div>
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle"
diff --git a/BTCPayServer/Plugins/Wallets/Views/UIWallets/WalletLabels.cshtml b/BTCPayServer/Plugins/Wallets/Views/UIWallets/WalletLabels.cshtml
index f6e29fe..68b1a03 100644
--- a/BTCPayServer/Plugins/Wallets/Views/UIWallets/WalletLabels.cshtml
+++ b/BTCPayServer/Plugins/Wallets/Views/UIWallets/WalletLabels.cshtml
@@ -15,7 +15,7 @@
delegate('click', '.btn-delete', event => {
event.preventDefault()
})
-
+
delegate('click', '.btn-edit', event => {
const button = event.target.closest('.btn-edit')
const label = button.dataset.label
@@ -24,18 +24,18 @@
const form = modal.querySelector('form')
const oldLabelInput = modal.querySelector('#OldLabel')
const walletId = '@walletId'
-
+
input.value = label
oldLabelInput.value = label
form.action = `/wallets/${walletId}/labels/${encodeURIComponent(label)}/edit`
-
+
new bootstrap.Modal(modal).show()
})
</script>
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
@@ -81,7 +81,7 @@
<partial name="_Confirm"
model="@(new ConfirmModel(StringLocalizer["Delete label"],
StringLocalizer["This label will be deleted from this wallet and its associated transactions."], StringLocalizer["Delete"]))" />
-
+
<div class="modal fade" id="EditLabelModal" tabindex="-1" aria-labelledby="EditLabelModalLabel" aria-hidden="true">
<div class="modal-dialog">
<form method="post" asp-action="EditWalletLabel" asp-route-walletId="@Model.WalletId">
diff --git a/BTCPayServer/Plugins/Webhooks/Views/ModifyWebhook.cshtml b/BTCPayServer/Plugins/Webhooks/Views/ModifyWebhook.cshtml
index 92c30fd..d0c4f06 100644
--- a/BTCPayServer/Plugins/Webhooks/Views/ModifyWebhook.cshtml
+++ b/BTCPayServer/Plugins/Webhooks/Views/ModifyWebhook.cshtml
@@ -15,7 +15,7 @@
<form method="post">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
@if (Model.IsNew)
{
<button id="page-primary" name="add" type="submit" class="btn btn-primary" value="New" text-translate="true">Add Webhook</button>
diff --git a/BTCPayServer/Plugins/Webhooks/Views/Webhooks.cshtml b/BTCPayServer/Plugins/Webhooks/Views/Webhooks.cshtml
index f27a553..f571047 100644
--- a/BTCPayServer/Plugins/Webhooks/Views/Webhooks.cshtml
+++ b/BTCPayServer/Plugins/Webhooks/Views/Webhooks.cshtml
@@ -5,7 +5,7 @@
}
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<a id="page-primary" text-translate="true" asp-action="NewWebhook" class="btn btn-primary" role="button" asp-route-storeId="@Context.GetRouteValue("storeId")" permission="@Policies.CanModifyStoreSettings">
Create Webhook
</a>
diff --git a/BTCPayServer/Views/Shared/Confirm.cshtml b/BTCPayServer/Views/Shared/Confirm.cshtml
index d4c4723..e92dae2 100644
--- a/BTCPayServer/Views/Shared/Confirm.cshtml
+++ b/BTCPayServer/Views/Shared/Confirm.cshtml
@@ -1,7 +1,7 @@
@model BTCPayServer.Abstractions.Models.ConfirmModel
@{
- ViewData["Title"] = Model.Title;
+ ViewData.SetTitle(Model.Title);
Layout = "_LayoutSimple";
}
diff --git a/BTCPayServer/Views/Shared/CreateOrEditRole.cshtml b/BTCPayServer/Views/Shared/CreateOrEditRole.cshtml
index 2d38d48..b7cc217 100644
--- a/BTCPayServer/Views/Shared/CreateOrEditRole.cshtml
+++ b/BTCPayServer/Views/Shared/CreateOrEditRole.cshtml
@@ -23,7 +23,7 @@
<form method="post">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<button id="page-primary" type="submit" class="btn btn-primary" name="command" value="Save" text-translate="true">Save</button>
</div>
diff --git a/BTCPayServer/Views/Shared/Error.cshtml b/BTCPayServer/Views/Shared/Error.cshtml
index 56a4e5a..a315f1e 100644
--- a/BTCPayServer/Views/Shared/Error.cshtml
+++ b/BTCPayServer/Views/Shared/Error.cshtml
@@ -1,6 +1,6 @@
@model ErrorViewModel
@{
- ViewData["Title"] = ViewLocalizer["Error"];
+ ViewData.SetTitle(StringLocalizer["Error"]);
}
<h1 class="text-danger">
diff --git a/BTCPayServer/Views/Shared/ListRoles.cshtml b/BTCPayServer/Views/Shared/ListRoles.cshtml
index ae6b015..74aa49e 100644
--- a/BTCPayServer/Views/Shared/ListRoles.cshtml
+++ b/BTCPayServer/Views/Shared/ListRoles.cshtml
@@ -25,7 +25,7 @@
}
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<a id="page-primary" text-translate="true" class="btn btn-primary" role="button" asp-controller="@(string.IsNullOrEmpty(storeId) ? "UIServer" : "UIStores")" asp-action="CreateOrEditRole" asp-route-role="create" asp-route-storeId="@storeId" permission="@permission">Add Role</a>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIAccount/CheatPermissions.cshtml b/BTCPayServer/Views/UIAccount/CheatPermissions.cshtml
index becad2a..82ba9d4 100644
--- a/BTCPayServer/Views/UIAccount/CheatPermissions.cshtml
+++ b/BTCPayServer/Views/UIAccount/CheatPermissions.cshtml
@@ -1,7 +1,7 @@
@model CheatPermissionsViewModel
@{
- ViewData["Title"] = ViewLocalizer["Permissions"];
+ ViewData.SetTitle(StringLocalizer["Permissions"]);
Layout = "_LayoutSignedOut";
}
diff --git a/BTCPayServer/Views/UIAccount/ForgotPassword.cshtml b/BTCPayServer/Views/UIAccount/ForgotPassword.cshtml
index 4271132..23ae77e 100644
--- a/BTCPayServer/Views/UIAccount/ForgotPassword.cshtml
+++ b/BTCPayServer/Views/UIAccount/ForgotPassword.cshtml
@@ -3,7 +3,7 @@
@inject EmailSenderFactory EmailSenderFactory
@{
var isEmailConfigured = await EmailSenderFactory.IsComplete();
- ViewData["Title"] = isEmailConfigured ? "Forgot your password?" : "Email Server Configuration Required";
+ ViewData.SetTitle(isEmailConfigured ? "Forgot your password?" : "Email Server Configuration Required");
Layout = "_LayoutSignedOut";
}
diff --git a/BTCPayServer/Views/UIAccount/ForgotPasswordConfirmation.cshtml b/BTCPayServer/Views/UIAccount/ForgotPasswordConfirmation.cshtml
index fc4f1d5..7329cd0 100644
--- a/BTCPayServer/Views/UIAccount/ForgotPasswordConfirmation.cshtml
+++ b/BTCPayServer/Views/UIAccount/ForgotPasswordConfirmation.cshtml
@@ -1,5 +1,5 @@
@{
- ViewData["Title"] = "Email sent!";
+ ViewData.SetTitle("Email sent!");
Layout = "_LayoutSignedOut";
}
diff --git a/BTCPayServer/Views/UIAccount/Lockout.cshtml b/BTCPayServer/Views/UIAccount/Lockout.cshtml
index 0cb59db..2d6445a 100644
--- a/BTCPayServer/Views/UIAccount/Lockout.cshtml
+++ b/BTCPayServer/Views/UIAccount/Lockout.cshtml
@@ -1,6 +1,6 @@
@model ApplicationUser
@{
- ViewData["Title"] = "Account disabled";
+ ViewData.SetTitle("Account disabled");
Layout = "_LayoutSignedOut";
}
diff --git a/BTCPayServer/Views/UIAccount/Login.cshtml b/BTCPayServer/Views/UIAccount/Login.cshtml
index a610555..19d29a0 100644
--- a/BTCPayServer/Views/UIAccount/Login.cshtml
+++ b/BTCPayServer/Views/UIAccount/Login.cshtml
@@ -3,7 +3,7 @@
@inject BTCPayServer.Security.ContentSecurityPolicies Csp
@inject BTCPayServer.Services.PoliciesSettings PoliciesSettings
@{
- ViewData["Title"] = ViewLocalizer["Sign in"];
+ ViewData.SetTitle(StringLocalizer["Sign in"]);
Layout = "_LayoutSignedOut";
Csp.UnsafeEval();
}
diff --git a/BTCPayServer/Views/UIAccount/LoginWithLoginCode.cshtml b/BTCPayServer/Views/UIAccount/LoginWithLoginCode.cshtml
index c3a8cd2..ea19cc4 100644
--- a/BTCPayServer/Views/UIAccount/LoginWithLoginCode.cshtml
+++ b/BTCPayServer/Views/UIAccount/LoginWithLoginCode.cshtml
@@ -3,7 +3,7 @@
@inject BTCPayServer.Security.ContentSecurityPolicies Csp
@inject BTCPayServer.Services.PoliciesSettings PoliciesSettings
@{
- ViewData["Title"] = ViewLocalizer["Sign in with login code"];
+ ViewData.SetTitle(StringLocalizer["Sign in with login code"]);
Layout = "_LayoutSignedOut";
Csp.UnsafeEval();
}
diff --git a/BTCPayServer/Views/UIAccount/Register.cshtml b/BTCPayServer/Views/UIAccount/Register.cshtml
index de2ed90..49275dc 100644
--- a/BTCPayServer/Views/UIAccount/Register.cshtml
+++ b/BTCPayServer/Views/UIAccount/Register.cshtml
@@ -1,7 +1,7 @@
@model RegisterViewModel
@inject BTCPayServer.Services.BTCPayServerEnvironment env
@{
- ViewData["Title"] = ViewLocalizer["Create account"];
+ ViewData.SetTitle(StringLocalizer["Create account"]);
ViewBag.ShowLeadText = true;
Layout = "_LayoutSignedOut";
}
diff --git a/BTCPayServer/Views/UIAccount/SecondaryLogin.cshtml b/BTCPayServer/Views/UIAccount/SecondaryLogin.cshtml
index f98dc4a..e921c54 100644
--- a/BTCPayServer/Views/UIAccount/SecondaryLogin.cshtml
+++ b/BTCPayServer/Views/UIAccount/SecondaryLogin.cshtml
@@ -1,6 +1,6 @@
@model SecondaryLoginViewModel
@{
- ViewData["Title"] = "Two-factor/U2F authentication";
+ ViewData.SetTitle("Two-factor/U2F authentication");
Layout = "_LayoutSignedOut";
ViewBag.ShowTitle = false;
}
diff --git a/BTCPayServer/Views/UIAccount/SetPassword.cshtml b/BTCPayServer/Views/UIAccount/SetPassword.cshtml
index 6446e1e..f34ecc5 100644
--- a/BTCPayServer/Views/UIAccount/SetPassword.cshtml
+++ b/BTCPayServer/Views/UIAccount/SetPassword.cshtml
@@ -1,7 +1,7 @@
@model BTCPayServer.Models.AccountViewModels.SetPasswordViewModel
@{
var cta = Model.HasPassword ? StringLocalizer["Reset your password"] : StringLocalizer["Create Account"];
- ViewData["Title"] = cta;
+ ViewData.SetTitle(cta);
Layout = "_LayoutSignedOut";
}
diff --git a/BTCPayServer/Views/UIAccount/SignedOut.cshtml b/BTCPayServer/Views/UIAccount/SignedOut.cshtml
index 0d45f1d..6e12b18 100644
--- a/BTCPayServer/Views/UIAccount/SignedOut.cshtml
+++ b/BTCPayServer/Views/UIAccount/SignedOut.cshtml
@@ -1,5 +1,5 @@
@{
- ViewData["Title"] = StringLocalizer["Signed out"];
+ ViewData.SetTitle(StringLocalizer["Signed out"]);
}
<h2>@ViewData["Title"]</h2>
diff --git a/BTCPayServer/Views/UIApps/CreateApp.cshtml b/BTCPayServer/Views/UIApps/CreateApp.cshtml
index a0bcb4b..ce17858 100644
--- a/BTCPayServer/Views/UIApps/CreateApp.cshtml
+++ b/BTCPayServer/Views/UIApps/CreateApp.cshtml
@@ -9,7 +9,7 @@
<form asp-action="CreateApp" asp-route-appType="@Model.AppType">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<input id="page-primary" type="submit" value="Create" class="btn btn-primary" />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIError/403.cshtml b/BTCPayServer/Views/UIError/403.cshtml
index ce23333..4718a4a 100644
--- a/BTCPayServer/Views/UIError/403.cshtml
+++ b/BTCPayServer/Views/UIError/403.cshtml
@@ -1,7 +1,7 @@
@model string
@{
Layout = "_LayoutError.cshtml";
- ViewData["Title"] = "403 - Denied";
+ ViewData.SetTitle("403 - Denied");
}
What are you looking at?
diff --git a/BTCPayServer/Views/UIError/404.cshtml b/BTCPayServer/Views/UIError/404.cshtml
index 7d50748..6563595 100644
--- a/BTCPayServer/Views/UIError/404.cshtml
+++ b/BTCPayServer/Views/UIError/404.cshtml
@@ -1,6 +1,6 @@
@{
Layout = "_LayoutError.cshtml";
- ViewData["Title"] = "404 - Page not found";
+ ViewData.SetTitle("404 - Page not found");
}
This is like searching for a person more beautiful than <a href="https://x.com/NicolasDorier" target="_blank" rel="noreferrer noopener">Nicolas Dorier</a>.
diff --git a/BTCPayServer/Views/UIError/406.cshtml b/BTCPayServer/Views/UIError/406.cshtml
index c5ac210..e38f44d 100644
--- a/BTCPayServer/Views/UIError/406.cshtml
+++ b/BTCPayServer/Views/UIError/406.cshtml
@@ -1,6 +1,6 @@
@{
Layout = "_LayoutError.cshtml";
- ViewData["Title"] = "406 - Not Acceptable";
+ ViewData.SetTitle("406 - Not Acceptable");
}
Sorry, but our server can't service you.<br />
diff --git a/BTCPayServer/Views/UIError/417.cshtml b/BTCPayServer/Views/UIError/417.cshtml
index c6ed7c2..898e9cc 100644
--- a/BTCPayServer/Views/UIError/417.cshtml
+++ b/BTCPayServer/Views/UIError/417.cshtml
@@ -1,6 +1,6 @@
@{
Layout = "_LayoutError.cshtml";
- ViewData["Title"] = "417 - Expectation Failed";
+ ViewData.SetTitle("417 - Expectation Failed");
}
You've unfortunately failed expectations of manager <a href="https://x.com/pavlenex" target="_blank" rel="noreferrer noopener">Pavlenex</a>. Poor you.
diff --git a/BTCPayServer/Views/UIError/429.cshtml b/BTCPayServer/Views/UIError/429.cshtml
index fca4cf3..3de1744 100644
--- a/BTCPayServer/Views/UIError/429.cshtml
+++ b/BTCPayServer/Views/UIError/429.cshtml
@@ -1,6 +1,6 @@
@{
Layout = "_LayoutError.cshtml";
- ViewData["Title"] = "429 - Too Many Requests";
+ ViewData.SetTitle("429 - Too Many Requests");
}
Please send requests slower. Or face the wrath of <a href="https://x.com/r0ckstardev" target="_blank" rel="noreferrer noopener">Vin Diesel</a>.
diff --git a/BTCPayServer/Views/UIError/500.cshtml b/BTCPayServer/Views/UIError/500.cshtml
index 4ee5410..bfe1166 100644
--- a/BTCPayServer/Views/UIError/500.cshtml
+++ b/BTCPayServer/Views/UIError/500.cshtml
@@ -1,6 +1,6 @@
@{
Layout = "_LayoutError.cshtml";
- ViewData["Title"] = "500 - Internal Server Error";
+ ViewData.SetTitle("500 - Internal Server Error");
}
Whoops, something really went wrong! <a href="https://x.com/mrkukks" rel="noreferrer noopener">Mr Kukks</a> is so sorry.
diff --git a/BTCPayServer/Views/UIError/502.cshtml b/BTCPayServer/Views/UIError/502.cshtml
index abfe27f..d84412d 100644
--- a/BTCPayServer/Views/UIError/502.cshtml
+++ b/BTCPayServer/Views/UIError/502.cshtml
@@ -1,6 +1,6 @@
@{
Layout = "_LayoutError.cshtml";
- ViewData["Title"] = "502 - Bad Gateway";
+ ViewData.SetTitle("502 - Bad Gateway");
}
The life is all about finding the right Gateways.<br />
diff --git a/BTCPayServer/Views/UIError/Handle.cshtml b/BTCPayServer/Views/UIError/Handle.cshtml
index 2586b2a..328bd00 100644
--- a/BTCPayServer/Views/UIError/Handle.cshtml
+++ b/BTCPayServer/Views/UIError/Handle.cshtml
@@ -4,12 +4,12 @@
@model int?
@{
Layout = "_LayoutError.cshtml";
- ViewData["Title"] = "Generic Error occurred";
+ ViewData.SetTitle("Generic Error occurred");
if (Model.HasValue)
{
var httpCode = (HttpStatusCode)Model.Value;
var name = Regex.Replace(httpCode.ToString(), @"(\B[A-Z])", @" $1");
- ViewData["Title"] = $"{(int)httpCode} - {name}";
+ ViewData.SetTitle($"{(int)httpCode} - {name}");
}
this.Context.Items.TryGetValue(UIErrorController.ErrorDetailsKey, out var errorDetails);
}
diff --git a/BTCPayServer/Views/UIFido2/Create.cshtml b/BTCPayServer/Views/UIFido2/Create.cshtml
index c7a6c3e..a388c07 100644
--- a/BTCPayServer/Views/UIFido2/Create.cshtml
+++ b/BTCPayServer/Views/UIFido2/Create.cshtml
@@ -12,7 +12,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIHome/Home.cshtml b/BTCPayServer/Views/UIHome/Home.cshtml
index d96c76f..950d839 100644
--- a/BTCPayServer/Views/UIHome/Home.cshtml
+++ b/BTCPayServer/Views/UIHome/Home.cshtml
@@ -3,7 +3,7 @@
@inject SettingsRepository SettingsRepository
@{
var settings = await SettingsRepository.GetSettingAsync<ServerSettings>() ?? new ServerSettings();
- ViewData["Title"] = string.IsNullOrWhiteSpace(settings.ServerName) ? "BTCPay Server" : settings.ServerName;
+ ViewData.SetTitle(string.IsNullOrWhiteSpace(settings.ServerName) ? "BTCPay Server" : settings.ServerName);
}
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIHome/RecoverySeedBackup.cshtml b/BTCPayServer/Views/UIHome/RecoverySeedBackup.cshtml
index 571bd11..9387f02 100644
--- a/BTCPayServer/Views/UIHome/RecoverySeedBackup.cshtml
+++ b/BTCPayServer/Views/UIHome/RecoverySeedBackup.cshtml
@@ -1,7 +1,7 @@
@model RecoverySeedBackupViewModel
@{
Layout = "_LayoutSimple";
- ViewData["Title"] = "Your recovery phrase";
+ ViewData.SetTitle("Your recovery phrase");
}
@section PageHeadContent {
diff --git a/BTCPayServer/Views/UIInvoice/Checkout.cshtml b/BTCPayServer/Views/UIInvoice/Checkout.cshtml
index 42191bc..bf29142 100644
--- a/BTCPayServer/Views/UIInvoice/Checkout.cshtml
+++ b/BTCPayServer/Views/UIInvoice/Checkout.cshtml
@@ -5,7 +5,7 @@
@model CheckoutModel
@{
Layout = null;
- ViewData["Title"] = Model.HtmlTitle;
+ ViewData.SetTitle(Model.HtmlTitle);
ViewData["StoreBranding"] = Model.StoreBranding;
Csp.UnsafeEval();
}
diff --git a/BTCPayServer/Views/UIInvoice/CreateInvoice.cshtml b/BTCPayServer/Views/UIInvoice/CreateInvoice.cshtml
index 51e0748..d144672 100644
--- a/BTCPayServer/Views/UIInvoice/CreateInvoice.cshtml
+++ b/BTCPayServer/Views/UIInvoice/CreateInvoice.cshtml
@@ -27,7 +27,7 @@
<form asp-action="CreateInvoice" method="post" id="create-invoice-form">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<input id="page-primary" type="submit" value="Create" class="btn btn-primary" />
</div>
diff --git a/BTCPayServer/Views/UIInvoice/Invoice.cshtml b/BTCPayServer/Views/UIInvoice/Invoice.cshtml
index 1828c16..be5dbd2 100644
--- a/BTCPayServer/Views/UIInvoice/Invoice.cshtml
+++ b/BTCPayServer/Views/UIInvoice/Invoice.cshtml
@@ -172,7 +172,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<div>
@if (Model.ShowCheckout)
{
diff --git a/BTCPayServer/Views/UIInvoice/InvoiceReceipt.cshtml b/BTCPayServer/Views/UIInvoice/InvoiceReceipt.cshtml
index ad42ea1..534e398 100644
--- a/BTCPayServer/Views/UIInvoice/InvoiceReceipt.cshtml
+++ b/BTCPayServer/Views/UIInvoice/InvoiceReceipt.cshtml
@@ -6,7 +6,7 @@
@inject DisplayFormatter DisplayFormatter
@{
Layout = null;
- ViewData["Title"] = $"Receipt from {Model.StoreName}";
+ ViewData.SetTitle($"Receipt from {Model.StoreName}");
ViewData["StoreBranding"] = Model.StoreBranding;
var isProcessing = Model.Status == InvoiceStatus.Processing;
var isFreeInvoice = (Model.Status == InvoiceStatus.New && Model.Amount == 0);
diff --git a/BTCPayServer/Views/UIInvoice/InvoiceReceiptPrint.cshtml b/BTCPayServer/Views/UIInvoice/InvoiceReceiptPrint.cshtml
index b8459d0..f0d9a2f 100644
--- a/BTCPayServer/Views/UIInvoice/InvoiceReceiptPrint.cshtml
+++ b/BTCPayServer/Views/UIInvoice/InvoiceReceiptPrint.cshtml
@@ -4,7 +4,7 @@
@inject DisplayFormatter DisplayFormatter
@{
Layout = null;
- ViewData["Title"] = $"Receipt from {Model.StoreName}";
+ ViewData.SetTitle($"Receipt from {Model.StoreName}");
var isProcessing = Model.Status == InvoiceStatus.Processing;
var isFreeInvoice = (Model.Status == InvoiceStatus.New && Model.Amount == 0);
var isSettled = Model.Status == InvoiceStatus.Settled;
diff --git a/BTCPayServer/Views/UILNURL/EditLightningAddress.cshtml b/BTCPayServer/Views/UILNURL/EditLightningAddress.cshtml
index dff1b5e..5ddb6dd 100644
--- a/BTCPayServer/Views/UILNURL/EditLightningAddress.cshtml
+++ b/BTCPayServer/Views/UILNURL/EditLightningAddress.cshtml
@@ -24,7 +24,7 @@
}
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<a id="page-primary" data-bs-toggle="collapse" data-bs-target="#AddAddress" class="btn btn-primary" role="button"
text-translate="true">
Add Address
diff --git a/BTCPayServer/Views/UILightningAutomatedPayoutProcessors/Configure.cshtml b/BTCPayServer/Views/UILightningAutomatedPayoutProcessors/Configure.cshtml
index c9feb1a..71bc4d9 100644
--- a/BTCPayServer/Views/UILightningAutomatedPayoutProcessors/Configure.cshtml
+++ b/BTCPayServer/Views/UILightningAutomatedPayoutProcessors/Configure.cshtml
@@ -9,7 +9,7 @@
<form method="post" permissioned="@Policies.CanModifyStoreSettings">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<button id="page-primary" name="command" type="submit" class="btn btn-primary" value="Save" text-translate="true">Save</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UILightningLikePayout/ConfirmLightningPayout.cshtml b/BTCPayServer/Views/UILightningLikePayout/ConfirmLightningPayout.cshtml
index 9e6820c..a1a89eb 100644
--- a/BTCPayServer/Views/UILightningLikePayout/ConfirmLightningPayout.cshtml
+++ b/BTCPayServer/Views/UILightningLikePayout/ConfirmLightningPayout.cshtml
@@ -1,7 +1,7 @@
@model System.Collections.Generic.List<BTCPayServer.Data.Payouts.LightningLike.UILightningLikePayoutController.ConfirmVM>
@{
Layout = "../Shared/_Layout.cshtml";
- ViewData["Title"] = StringLocalizer["Confirm Lightning Payout"];
+ ViewData.SetTitle(StringLocalizer["Confirm Lightning Payout"]);
var cryptoCode = Context.GetRouteValue("cryptoCode");
}
diff --git a/BTCPayServer/Views/UILightningLikePayout/LightningPayoutResult.cshtml b/BTCPayServer/Views/UILightningLikePayout/LightningPayoutResult.cshtml
index c51abaa..b3f14f8 100644
--- a/BTCPayServer/Views/UILightningLikePayout/LightningPayoutResult.cshtml
+++ b/BTCPayServer/Views/UILightningLikePayout/LightningPayoutResult.cshtml
@@ -1,7 +1,7 @@
@model System.Collections.Generic.List<BTCPayServer.Data.Payouts.LightningLike.UILightningLikePayoutController.ResultVM>
@{
Layout = "_Layout";
- ViewData["Title"] = StringLocalizer["Lightning Payout Result"];
+ ViewData.SetTitle(StringLocalizer["Lightning Payout Result"]);
}
<h2 class="mt-1 mb-4">@ViewData["Title"]</h2>
diff --git a/BTCPayServer/Views/UIManage/APIKeyPermissionAnalysis.cshtml b/BTCPayServer/Views/UIManage/APIKeyPermissionAnalysis.cshtml
index 174d5d6..e6e6fbe 100644
--- a/BTCPayServer/Views/UIManage/APIKeyPermissionAnalysis.cshtml
+++ b/BTCPayServer/Views/UIManage/APIKeyPermissionAnalysis.cshtml
@@ -9,7 +9,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<div class="row g-3 mb-4">
diff --git a/BTCPayServer/Views/UIManage/APIKeys.cshtml b/BTCPayServer/Views/UIManage/APIKeys.cshtml
index ef57be8..cfb73a6 100644
--- a/BTCPayServer/Views/UIManage/APIKeys.cshtml
+++ b/BTCPayServer/Views/UIManage/APIKeys.cshtml
@@ -9,7 +9,7 @@
}
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<a id="page-primary" class="btn btn-primary" asp-action="AddApiKey" text-translate="true">
Generate Key
</a>
diff --git a/BTCPayServer/Views/UIManage/AddApiKey.cshtml b/BTCPayServer/Views/UIManage/AddApiKey.cshtml
index ee2fd96..b70fe64 100644
--- a/BTCPayServer/Views/UIManage/AddApiKey.cshtml
+++ b/BTCPayServer/Views/UIManage/AddApiKey.cshtml
@@ -28,7 +28,7 @@
<form method="post" asp-action="AddApiKey" id="Permissions">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<button id="page-primary" type="submit" class="btn btn-primary" text-translate="true">Generate API Key</button>
</div>
<p text-translate="true">Generate a new api key to use BTCPay through its API.</p>
diff --git a/BTCPayServer/Views/UIManage/ChangePassword.cshtml b/BTCPayServer/Views/UIManage/ChangePassword.cshtml
index 133203e..098638c 100644
--- a/BTCPayServer/Views/UIManage/ChangePassword.cshtml
+++ b/BTCPayServer/Views/UIManage/ChangePassword.cshtml
@@ -6,7 +6,7 @@
<form method="post">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<button id="page-primary" text-translate="true" type="submit" class="btn btn-primary">Update Password</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIManage/EnableAuthenticator.cshtml b/BTCPayServer/Views/UIManage/EnableAuthenticator.cshtml
index 179c7d4..543764d 100644
--- a/BTCPayServer/Views/UIManage/EnableAuthenticator.cshtml
+++ b/BTCPayServer/Views/UIManage/EnableAuthenticator.cshtml
@@ -6,7 +6,7 @@
ViewData.SetBreadcrumbs([new(StringLocalizer["Two Factor Authentication"], Action: nameof(BTCPayServer.Controllers.UIManageController.TwoFactorAuthentication), Controller: nameof(BTCPayServer.Controllers.UIManageController))]);
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
<p class="my-3" text-translate="true">To use an authenticator app go through the following steps:</p>
diff --git a/BTCPayServer/Views/UIManage/Index.cshtml b/BTCPayServer/Views/UIManage/Index.cshtml
index f9c0a49..57aa82a 100644
--- a/BTCPayServer/Views/UIManage/Index.cshtml
+++ b/BTCPayServer/Views/UIManage/Index.cshtml
@@ -9,7 +9,7 @@
<form method="post" enctype="multipart/form-data">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<button id="page-primary" text-translate="true" type="submit" class="btn btn-primary">Save</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIManage/NotificationSettings.cshtml b/BTCPayServer/Views/UIManage/NotificationSettings.cshtml
index 78ac144..2aa5943 100644
--- a/BTCPayServer/Views/UIManage/NotificationSettings.cshtml
+++ b/BTCPayServer/Views/UIManage/NotificationSettings.cshtml
@@ -7,7 +7,7 @@
<form method="post" asp-action="NotificationSettings">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<button id="page-primary" type="submit" class="btn btn-primary" name="command" value="update" text-translate="true">Save</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIManage/SetPassword.cshtml b/BTCPayServer/Views/UIManage/SetPassword.cshtml
index 7fbd8b0..c17c667 100644
--- a/BTCPayServer/Views/UIManage/SetPassword.cshtml
+++ b/BTCPayServer/Views/UIManage/SetPassword.cshtml
@@ -6,7 +6,7 @@
<form method="post">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<button id="page-primary" type="submit" class="btn btn-primary" text-translate="true">Set Password</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UINotifications/Index.cshtml b/BTCPayServer/Views/UINotifications/Index.cshtml
index 6cbeba1..f96e139 100644
--- a/BTCPayServer/Views/UINotifications/Index.cshtml
+++ b/BTCPayServer/Views/UINotifications/Index.cshtml
@@ -1,6 +1,6 @@
@model BTCPayServer.Models.NotificationViewModels.NotificationIndexViewModel
@{
- ViewData["Title"] = ViewLocalizer["Notifications"];
+ ViewData.SetTitle(StringLocalizer["Notifications"]);
var showAll = Model.Search.GetFilterBool("all") is true;
var statusFilterCount = Model.Search.CountArrayFilter("type");
var storesFilterCount = Model.Search.CountArrayFilter("storeid");
diff --git a/BTCPayServer/Views/UIOnChainAutomatedPayoutProcessors/Configure.cshtml b/BTCPayServer/Views/UIOnChainAutomatedPayoutProcessors/Configure.cshtml
index 635a808..e81a0f8 100644
--- a/BTCPayServer/Views/UIOnChainAutomatedPayoutProcessors/Configure.cshtml
+++ b/BTCPayServer/Views/UIOnChainAutomatedPayoutProcessors/Configure.cshtml
@@ -10,7 +10,7 @@
<form method="post" permissioned="@Policies.CanModifyStoreSettings">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<button id="page-primary" name="command" type="submit" class="btn btn-primary" value="Save" text-translate="true">Save</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIPaymentRequest/EditPaymentRequest.cshtml b/BTCPayServer/Views/UIPaymentRequest/EditPaymentRequest.cshtml
index dd32e51..5032b37 100644
--- a/BTCPayServer/Views/UIPaymentRequest/EditPaymentRequest.cshtml
+++ b/BTCPayServer/Views/UIPaymentRequest/EditPaymentRequest.cshtml
@@ -27,7 +27,7 @@
<form method="post">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<div>
@if (payreqId is null)
{
diff --git a/BTCPayServer/Views/UIPaymentRequest/PaymentRequestLabels.cshtml b/BTCPayServer/Views/UIPaymentRequest/PaymentRequestLabels.cshtml
index 6f186d4..a0ccfa2 100644
--- a/BTCPayServer/Views/UIPaymentRequest/PaymentRequestLabels.cshtml
+++ b/BTCPayServer/Views/UIPaymentRequest/PaymentRequestLabels.cshtml
@@ -12,7 +12,7 @@
delegate('click', '.btn-delete', event => {
event.preventDefault()
})
-
+
delegate('click', '.btn-edit', event => {
const button = event.target.closest('.btn-edit')
const label = button.dataset.label
@@ -21,18 +21,18 @@
const form = modal.querySelector('form')
const oldLabelInput = modal.querySelector('#OldLabel')
const storeId = '@Model.StoreId'
-
+
input.value = label
oldLabelInput.value = label
form.action = `/stores/${storeId}/payment-requests/labels/${encodeURIComponent(label)}/edit`
-
+
new bootstrap.Modal(modal).show()
})
</script>
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
@@ -82,7 +82,7 @@
<partial name="_Confirm"
model="@(new ConfirmModel(StringLocalizer["Delete label"],
StringLocalizer["This label will be deleted from all payment requests."], StringLocalizer["Delete"]))" />
-
+
<div class="modal fade" id="EditLabelModal" tabindex="-1" aria-labelledby="EditLabelModalLabel" aria-hidden="true">
<div class="modal-dialog">
<form method="post" asp-action="EditPaymentRequestLabel" asp-route-storeId="@Model.StoreId">
diff --git a/BTCPayServer/Views/UIPaymentRequest/ViewPaymentRequest.cshtml b/BTCPayServer/Views/UIPaymentRequest/ViewPaymentRequest.cshtml
index d130420..e7c95c6 100644
--- a/BTCPayServer/Views/UIPaymentRequest/ViewPaymentRequest.cshtml
+++ b/BTCPayServer/Views/UIPaymentRequest/ViewPaymentRequest.cshtml
@@ -5,7 +5,7 @@
@inject BTCPayServer.Services.BTCPayServerEnvironment Env
@inject BTCPayServer.Security.ContentSecurityPolicies Csp
@{
- ViewData["Title"] = Model.Title;
+ ViewData.SetTitle(Model.Title);
ViewData["StoreBranding"] = Model.StoreBranding;
Csp.UnsafeEval();
Layout = null;
diff --git a/BTCPayServer/Views/UIPublicLightningNodeInfo/ShowLightningNodeInfo.cshtml b/BTCPayServer/Views/UIPublicLightningNodeInfo/ShowLightningNodeInfo.cshtml
index 59375ff..d89538d 100644
--- a/BTCPayServer/Views/UIPublicLightningNodeInfo/ShowLightningNodeInfo.cshtml
+++ b/BTCPayServer/Views/UIPublicLightningNodeInfo/ShowLightningNodeInfo.cshtml
@@ -2,7 +2,7 @@
@model BTCPayServer.Controllers.ShowLightningNodeInfoViewModel
@{
Layout = null;
- ViewData["Title"] = $"{Model.StoreName} – {StringLocalizer["{0} Lightning Node", Model.CryptoCode]}";
+ ViewData.SetTitle($"{Model.StoreName} – {StringLocalizer["{0} Lightning Node", Model.CryptoCode]}");
ViewData["StoreBranding"] = Model.StoreBranding;
}
<!DOCTYPE html>
diff --git a/BTCPayServer/Views/UIPullPayment/EditPullPayment.cshtml b/BTCPayServer/Views/UIPullPayment/EditPullPayment.cshtml
index a699abc..dd0386b 100644
--- a/BTCPayServer/Views/UIPullPayment/EditPullPayment.cshtml
+++ b/BTCPayServer/Views/UIPullPayment/EditPullPayment.cshtml
@@ -17,7 +17,7 @@
<form method="post" asp-action="EditPullPayment" asp-route-pullPaymentId="@Model.Id">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<div>
@if (string.IsNullOrEmpty(Model.Id))
{
diff --git a/BTCPayServer/Views/UIPullPayment/ViewPullPayment.cshtml b/BTCPayServer/Views/UIPullPayment/ViewPullPayment.cshtml
index a6ba46c..219e82f 100644
--- a/BTCPayServer/Views/UIPullPayment/ViewPullPayment.cshtml
+++ b/BTCPayServer/Views/UIPullPayment/ViewPullPayment.cshtml
@@ -5,7 +5,7 @@
@inject DisplayFormatter DisplayFormatter
@model BTCPayServer.Models.ViewPullPaymentModel
@{
- ViewData["Title"] = Model.Title;
+ ViewData.SetTitle(Model.Title);
ViewData["StoreBranding"] = Model.StoreBranding;
Csp.UnsafeEval();
Layout = null;
diff --git a/BTCPayServer/Views/UIServer/Branding.cshtml b/BTCPayServer/Views/UIServer/Branding.cshtml
index 98974a4..3225590 100644
--- a/BTCPayServer/Views/UIServer/Branding.cshtml
+++ b/BTCPayServer/Views/UIServer/Branding.cshtml
@@ -16,7 +16,7 @@
<form method="post" enctype="multipart/form-data">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<button id="page-primary" type="submit" class="btn btn-primary" name="command" value="Save" text-translate="true">Save</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/CLightningRestServices.cshtml b/BTCPayServer/Views/UIServer/CLightningRestServices.cshtml
index a40a352..6200bb6 100644
--- a/BTCPayServer/Views/UIServer/CLightningRestServices.cshtml
+++ b/BTCPayServer/Views/UIServer/CLightningRestServices.cshtml
@@ -6,7 +6,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/ConfiguratorService.cshtml b/BTCPayServer/Views/UIServer/ConfiguratorService.cshtml
index 184aec2..aeb3f7d 100644
--- a/BTCPayServer/Views/UIServer/ConfiguratorService.cshtml
+++ b/BTCPayServer/Views/UIServer/ConfiguratorService.cshtml
@@ -6,7 +6,7 @@
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/CreateUser.cshtml b/BTCPayServer/Views/UIServer/CreateUser.cshtml
index 8b65dcc..8bcaf18 100644
--- a/BTCPayServer/Views/UIServer/CreateUser.cshtml
+++ b/BTCPayServer/Views/UIServer/CreateUser.cshtml
@@ -7,7 +7,7 @@
<form method="post" asp-action="CreateUser">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<button id="page-primary" type="submit" class="btn btn-primary" name="command" value="Save" text-translate="true">Create Account</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/EditAmazonS3StorageProvider.cshtml b/BTCPayServer/Views/UIServer/EditAmazonS3StorageProvider.cshtml
index 577c2b2..3dd1729 100644
--- a/BTCPayServer/Views/UIServer/EditAmazonS3StorageProvider.cshtml
+++ b/BTCPayServer/Views/UIServer/EditAmazonS3StorageProvider.cshtml
@@ -10,7 +10,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/EditAzureBlobStorageStorageProvider.cshtml b/BTCPayServer/Views/UIServer/EditAzureBlobStorageStorageProvider.cshtml
index b4970e4..9d5d8ef 100644
--- a/BTCPayServer/Views/UIServer/EditAzureBlobStorageStorageProvider.cshtml
+++ b/BTCPayServer/Views/UIServer/EditAzureBlobStorageStorageProvider.cshtml
@@ -10,7 +10,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/EditFileSystemStorageProvider.cshtml b/BTCPayServer/Views/UIServer/EditFileSystemStorageProvider.cshtml
index b40834f..71c20d6 100644
--- a/BTCPayServer/Views/UIServer/EditFileSystemStorageProvider.cshtml
+++ b/BTCPayServer/Views/UIServer/EditFileSystemStorageProvider.cshtml
@@ -10,7 +10,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/EditGoogleCloudStorageStorageProvider.cshtml b/BTCPayServer/Views/UIServer/EditGoogleCloudStorageStorageProvider.cshtml
index 7f9c70b..40d2f65 100644
--- a/BTCPayServer/Views/UIServer/EditGoogleCloudStorageStorageProvider.cshtml
+++ b/BTCPayServer/Views/UIServer/EditGoogleCloudStorageStorageProvider.cshtml
@@ -10,7 +10,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/LightningChargeServices.cshtml b/BTCPayServer/Views/UIServer/LightningChargeServices.cshtml
index 579a08e..9e8e234 100644
--- a/BTCPayServer/Views/UIServer/LightningChargeServices.cshtml
+++ b/BTCPayServer/Views/UIServer/LightningChargeServices.cshtml
@@ -6,7 +6,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/LightningWalletServices.cshtml b/BTCPayServer/Views/UIServer/LightningWalletServices.cshtml
index ca30258..6e727fe 100644
--- a/BTCPayServer/Views/UIServer/LightningWalletServices.cshtml
+++ b/BTCPayServer/Views/UIServer/LightningWalletServices.cshtml
@@ -6,7 +6,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/ListUsers.cshtml b/BTCPayServer/Views/UIServer/ListUsers.cshtml
index 07e8898..2487296 100644
--- a/BTCPayServer/Views/UIServer/ListUsers.cshtml
+++ b/BTCPayServer/Views/UIServer/ListUsers.cshtml
@@ -31,7 +31,7 @@
}
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<a id="page-primary" asp-action="CreateUser" class="btn btn-primary" role="button" text-translate="true">
Add User
</a>
diff --git a/BTCPayServer/Views/UIServer/LndSeedBackup.cshtml b/BTCPayServer/Views/UIServer/LndSeedBackup.cshtml
index 6815fc0..f29d425 100644
--- a/BTCPayServer/Views/UIServer/LndSeedBackup.cshtml
+++ b/BTCPayServer/Views/UIServer/LndSeedBackup.cshtml
@@ -6,7 +6,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
@@ -19,7 +19,7 @@
<p>The recovering process is documented by LND on <a href="https://github.com/lightningnetwork/lnd/blob/master/docs/recovery.md" rel="noreferrer noopener">this page</a>.</p>
</div>
<button class="btn btn-primary @(Model.Removed ? "collapse" : "")" id="details" type="button" text-translate="true">See confidential seed information</button>
-
+
@if (Model.Removed)
{
<div class="alert alert-light d-flex align-items-center" role="alert">
diff --git a/BTCPayServer/Views/UIServer/LndServices.cshtml b/BTCPayServer/Views/UIServer/LndServices.cshtml
index daad981..db3a4ee 100644
--- a/BTCPayServer/Views/UIServer/LndServices.cshtml
+++ b/BTCPayServer/Views/UIServer/LndServices.cshtml
@@ -6,7 +6,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
<p>
diff --git a/BTCPayServer/Views/UIServer/P2PService.cshtml b/BTCPayServer/Views/UIServer/P2PService.cshtml
index 82a5b84..451c4d8 100644
--- a/BTCPayServer/Views/UIServer/P2PService.cshtml
+++ b/BTCPayServer/Views/UIServer/P2PService.cshtml
@@ -6,7 +6,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/Policies.cshtml b/BTCPayServer/Views/UIServer/Policies.cshtml
index 42a847c..e77c8dd 100644
--- a/BTCPayServer/Views/UIServer/Policies.cshtml
+++ b/BTCPayServer/Views/UIServer/Policies.cshtml
@@ -22,7 +22,7 @@
<form method="post">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<button id="page-primary" type="submit" class="btn btn-primary" name="command" value="Save" text-translate="true">Save</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/RPCService.cshtml b/BTCPayServer/Views/UIServer/RPCService.cshtml
index f2398db..6c6bd77 100644
--- a/BTCPayServer/Views/UIServer/RPCService.cshtml
+++ b/BTCPayServer/Views/UIServer/RPCService.cshtml
@@ -6,7 +6,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/ResetUserPassword.cshtml b/BTCPayServer/Views/UIServer/ResetUserPassword.cshtml
index 21c56d3..6954011 100644
--- a/BTCPayServer/Views/UIServer/ResetUserPassword.cshtml
+++ b/BTCPayServer/Views/UIServer/ResetUserPassword.cshtml
@@ -6,7 +6,7 @@
<form method="post" asp-action="ResetUserPassword">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<button id="page-primary" type="submit" class="btn btn-primary" name="command" value="Save" text-translate="true">Reset Password</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/SSHService.cshtml b/BTCPayServer/Views/UIServer/SSHService.cshtml
index bc6aab6..1ac74b0 100644
--- a/BTCPayServer/Views/UIServer/SSHService.cshtml
+++ b/BTCPayServer/Views/UIServer/SSHService.cshtml
@@ -6,7 +6,7 @@
}
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
</div>
<partial name="_StatusMessage" />
<p text-translate="true">SSH services are used by the maintenance operations.</p>
diff --git a/BTCPayServer/Views/UIServer/Storage.cshtml b/BTCPayServer/Views/UIServer/Storage.cshtml
index bf40c8f..aafaec5 100644
--- a/BTCPayServer/Views/UIServer/Storage.cshtml
+++ b/BTCPayServer/Views/UIServer/Storage.cshtml
@@ -7,7 +7,7 @@
<form method="post">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<button id="page-primary" type="submit" class="btn btn-primary" name="command" value="Save" text-translate="true">Next</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIServer/User.cshtml b/BTCPayServer/Views/UIServer/User.cshtml
index 53854e9..b5bb414 100644
--- a/BTCPayServer/Views/UIServer/User.cshtml
+++ b/BTCPayServer/Views/UIServer/User.cshtml
@@ -12,7 +12,7 @@
<form method="post" enctype="multipart/form-data">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<button id="page-primary" name="command" type="submit" class="btn btn-primary" value="Save" text-translate="true">Save</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIStorePullPayments/NewPullPayment.cshtml b/BTCPayServer/Views/UIStorePullPayments/NewPullPayment.cshtml
index 110e1e3..2f742d6 100644
--- a/BTCPayServer/Views/UIStorePullPayments/NewPullPayment.cshtml
+++ b/BTCPayServer/Views/UIStorePullPayments/NewPullPayment.cshtml
@@ -18,7 +18,7 @@
<form method="post" asp-route-walletId="@Context.GetRouteValue("walletId")" asp-action="NewPullPayment">
<div class="sticky-header">
- <vc:breadcrumb />
+ <vc:title-header />
<input id="page-primary" type="submit" value="Create" class="btn btn-primary"/>
</div>
diff --git a/BTCPayServer/Views/UIStores/CheckoutAppearance.cshtml b/BTCPayServer/Views/UIStores/CheckoutAppearance.cshtml
index 197e593..d2f89d0 100644
--- a/BTCPayServer/Views/UIStores/CheckoutAppearance.cshtml
+++ b/BTCPayServer/Views/UIStores/CheckoutAppearance.cshtml
@@ -62,7 +62,7 @@
<form method="post" enctype="multipart/form-data" permissioned="@Policies.CanModifyStoreSettings">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<button id="page-primary" type="submit" class="btn btn-primary" text-translate="true">Save</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIStores/LightningSettings.cshtml b/BTCPayServer/Views/UIStores/LightningSettings.cshtml
index 083c646..e389537 100644
--- a/BTCPayServer/Views/UIStores/LightningSettings.cshtml
+++ b/BTCPayServer/Views/UIStores/LightningSettings.cshtml
@@ -9,7 +9,7 @@
<form method="post">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<button id="page-primary" name="command" type="submit" value="save" class="btn btn-primary" text-translate="true">Save</button>
</div>
<partial name="_StatusMessage" />
diff --git a/BTCPayServer/Views/UIStores/Rates.cshtml b/BTCPayServer/Views/UIStores/Rates.cshtml
index 30fad62..bb1072b 100644
--- a/BTCPayServer/Views/UIStores/Rates.cshtml
+++ b/BTCPayServer/Views/UIStores/Rates.cshtml
@@ -6,7 +6,7 @@
<form method="post" permissioned="@Policies.CanModifyStoreSettings">
<div class="sticky-header">
- <h2>@ViewData["Title"]</h2>
+ <vc:title-header />
<button id="page-primary" name="command" type="submit" class="btn btn-primary" value="Save" text-translate="true">Save</button>
</div>
<partial name="_StatusMessage" />
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.