Allow configuring nfc permission beforehand (#5319)

* Allow configuring nfc permission beforehand

* UI improvements

---------

Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
This commit is contained in:
Andrew Camilleri 2023-09-19 02:55:47 +02:00 committed by GitHub
parent 00acbccd7f
commit 19de73f9da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -24,6 +24,7 @@
$("#UseClassicCheckout").prop('checked', false);
$("#CheckoutV2Settings").addClass('show');
$("#ClassicCheckoutSettings").removeClass('show');
$("#CheckNFC").removeClass('d-none');
$("#PlaySoundOnPayment").prop('checked', true);
$("#ShowPayInWalletButton").prop('checked', false);
$("#ShowStoreHeader").prop('checked', false);
@ -32,10 +33,28 @@
$("#UseClassicCheckout").prop('checked', false);
$("#CheckoutV2Settings").addClass('show');
$("#ClassicCheckoutSettings").removeClass('show');
$("#CheckNFC").addClass('d-none');
$("#PlaySoundOnPayment").prop('checked', false);
$("#ShowPayInWalletButton").prop('checked', true);
$("#ShowStoreHeader").prop('checked', true);
});
delegate('click', '#CheckNFC button', async e => {
if ('NDEFReader' in window) {
const ndef = new NDEFReader();
try {
await ndef.scan();
e.target.classList = 'btn btn-outline-success';
e.target.innerText = 'NFC access granted';
} catch (error) {
e.target.classList = 'btn btn-outline-warning';
e.target.innerText = 'Please allow NFC access in your browser settings';
}
} else {
e.target.classList = 'btn btn-outline-danger';
e.target.innerText = 'NFC is not supported by this browser';
}
});
</script>
}
@ -98,13 +117,14 @@
</div>
</div>
</h3>
<div class="d-flex align-items-center mb-4">
<input asp-for="UseClassicCheckout" type="checkbox" class="btcpay-toggle me-3" data-bs-toggle="collapse" data-bs-target=".checkout-settings" aria-expanded="@(Model.UseClassicCheckout)" aria-controls="CheckoutV2Settings" />
<label asp-for="UseClassicCheckout" class="form-label mb-0"></label>
<span asp-validation-for="UseClassicCheckout" class="text-danger"></span>
</div>
<div id="CheckNFC" class="form-group d-none">
<button type="button" class="btn btn-outline-secondary">Check if NFC is supported and enabled on this device</button>
</div>
<div class="checkout-settings collapse @(Model.UseClassicCheckout ? "" : "show")" id="CheckoutV2Settings">
<div class="form-group">
<label asp-for="DisplayExpirationTimer" class="form-label"></label>