@using BTCPayServer.Payments; @using BTCPayServer.Services @using BTCPayServer.Services.Mails; @model BTCPayServer.Services.PoliciesSettings @inject SettingsRepository _SettingsRepository @inject TransactionLinkProviders TransactionLinkProviders @{ ViewData.SetActivePage(ServerNavPages.Policies); var linkProviders = TransactionLinkProviders.ToArray(); } @section PageHeadContent { }

@ViewData["Title"]

@if (!ViewContext.ModelState.IsValid) {
}

Existing User Settings

New User Settings

@{ var emailSettings = (await _SettingsRepository.GetSettingAsync()) ?? new EmailSettings(); /* The "|| Model.RequiresConfirmedEmail" check is for the case when a user had checked the checkbox without first configuring the e-mail settings so that they can uncheck it. */ var isEmailConfigured = emailSettings.IsComplete() || Model.RequiresConfirmedEmail; } @if (!isEmailConfigured) {
Your email server has not been configured. Please configure it first.
}

Notification Settings

Maintenance Settings

@if (ViewBag.UpdateUrlPresent) {
}

Plugins

@* To handle the multiple submit buttons on this page: Give this button a specific order to put it last, but keep it first in the markup *@

Customization Settings

@if (!Model.DomainToAppMapping.Any()) { }
@if (Model.DomainToAppMapping.Any()) {
Domain to app mapping
@for (var index = 0; index < Model.DomainToAppMapping.Count; index++) {
}
}

Block Explorers

@for (var lpi = 0; lpi < linkProviders.Length; lpi++) { var pmi = linkProviders[lpi].Key; var defaultLink = linkProviders[lpi].Value.BlockExplorerLinkDefault; var existingOverride = Model.BlockExplorerLinks?.SingleOrDefault(tuple => PaymentMethodId.Parse(tuple.CryptoCode) == pmi); if (existingOverride is null) { existingOverride = new PoliciesSettings.BlockExplorerOverrideItem { CryptoCode = pmi.ToStringNormalized(), Link = null }; Model.BlockExplorerLinks ??= new (); Model.BlockExplorerLinks.Add(existingOverride); } var i = Model.BlockExplorerLinks.IndexOf(existingOverride); var linkValue = existingOverride.Link ?? defaultLink;
}
@section PageFootContent { }