btcpayserver/BTCPayServer/Views/Wallets/WalletSettings.cshtml
Dennis Reimann b47b942e97
Wallet UI: Improve views (#1763)
* Improve UpdateStore and DerivationScheme views

fix

* Improve wallet views

CSS fix

* Apply suggestions from code review

Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
2020-08-03 17:12:21 +09:00

109 lines
5.2 KiB
Text

@model WalletSettingsViewModel
@{
Layout = "../Shared/_NavLayout.cshtml";
ViewData["Title"] = "Wallet settings";
ViewData.SetActivePageAndTitle(WalletsNavPages.Settings);
}
@if (TempData.HasStatusMessage())
{
<partial name="_StatusMessage" />
}
<h4 class="mb-3">Additional wallet information</h4>
<div class="row">
<div class="col-md-8 col-lg-6">
<form method="post" asp-action="WalletSettings">
<input type="hidden" asp-for="StoreName"/>
<input type="hidden" asp-for="UriScheme"/>
<div class="form-group">
<label asp-for="Label"></label>
<input asp-for="Label" class="form-control"/>
<span asp-validation-for="Label" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="DerivationScheme"></label>
<input asp-for="DerivationScheme" class="form-control" readonly/>
<span asp-validation-for="DerivationScheme" class="text-danger"></span>
</div>
@if (!string.IsNullOrEmpty(Model.DerivationSchemeInput) && Model.DerivationSchemeInput != Model.DerivationScheme)
{
<div class="form-group">
<label asp-for="DerivationSchemeInput"></label>
<input asp-for="DerivationSchemeInput" class="form-control" readonly/>
<span asp-validation-for="DerivationSchemeInput" class="text-danger"></span>
</div>
}
@for (int i = 0; i < Model.AccountKeys.Count; i++)
{
<hr class="my-4"/>
<h4 class="mb-3">Account key @i</h4>
<div class="form-group">
<label asp-for="@Model.AccountKeys[i].AccountKey"></label>
<input asp-for="@Model.AccountKeys[i].AccountKey" class="form-control" readonly/>
<span asp-validation-for="@Model.AccountKeys[i].AccountKey" class="text-danger"></span>
</div>
<div class="form-row">
<div class="form-group col-auto">
<label asp-for="@Model.AccountKeys[i].MasterFingerprint"></label>
<input asp-for="@Model.AccountKeys[i].MasterFingerprint" class="form-control" style="max-width:16ch;"/>
<span asp-validation-for="@Model.AccountKeys[i].MasterFingerprint" class="text-danger"></span>
</div>
<div class="form-group col-auto">
<label asp-for="@Model.AccountKeys[i].AccountKeyPath"></label>
<input asp-for="@Model.AccountKeys[i].AccountKeyPath" class="form-control" style="max-width:16ch;" />
<span asp-validation-for="@Model.AccountKeys[i].AccountKeyPath" class="text-danger"></span>
</div>
</div>
@if (Model.IsMultiSig)
{
<div class="form-check form-check-inline">
<input asp-for="SelectedSigningKey" class="form-check-input" type="radio" value="@Model.AccountKeys[i].AccountKey"/>
<label asp-for="SelectedSigningKey" class="form-check-label"></label>
</div>
}
}
<div class="form-group d-flex mt-3">
<button name="command" type="submit" class="btn btn-primary mr-2" value="save">Save</button>
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="SettingsMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Other actions...
</button>
<div class="dropdown-menu" aria-labelledby="SendMenu">
<button name="command" type="submit" class="dropdown-item" value="prune">Prune old transactions from history</button>
@if (Model.NBXSeedAvailable)
{
<button name="command" type="submit" class="dropdown-item" value="view-seed">View seed</button>
}
@if (Model.UriScheme == "bitcoin")
{
<button type="button" class="dropdown-item register-wallet" data-storename="@Model.StoreName" data-scheme="@Model.UriScheme" data-url="@Url.Action("WalletSend", "Wallets", new {walletId = Context.GetRouteValue("walletId"), bip21 = "%s"})">Open this bitcoin wallet on payment links</button>
}
</div>
</div>
</div>
</form>
</div>
</div>
<script>
$(document).ready(function(){
if(navigator.registerProtocolHandler){
$(".register-wallet")
.show()
.on("click", function(){
var store = $(this).data("storename");
var scheme = $(this).data("scheme");
var url = decodeURIComponent($(this).data("url"));
navigator.registerProtocolHandler(scheme, url, "BTCPay Wallet -" + store);
});
}
});
</script>
<style>
.register-wallet{
display: none;
}
</style>