feat(EnvelopeLocked): Timer mit CSS-Konfiguration und Javascript-Ereignis hinzugefügt.
- Ablauf über Home-Controller-Ansichtsdaten hinzugefügt
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
@using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver;
|
||||
@using Newtonsoft.Json
|
||||
@{
|
||||
var nonce = _accessor.HttpContext?.Items["csp-nonce"] as string;
|
||||
var logo = _logoOpt.Value;
|
||||
@@ -6,6 +7,7 @@
|
||||
var userCulture = ViewData["UserCulture"] as Culture;
|
||||
bool viaSms = ViewData["ViaSms"] is bool _viaSms && _viaSms;
|
||||
var accessCodeName = viaSms ? "smsCode" : "accessCode";
|
||||
DateTime? expiration = ViewData["Expiration"] is DateTime _expiration ? _expiration : null;
|
||||
}
|
||||
<div class="page container py-4 px-4">
|
||||
<header class="text-center">
|
||||
@@ -35,6 +37,10 @@
|
||||
login
|
||||
</span>
|
||||
</button>
|
||||
@if (expiration is not null)
|
||||
{
|
||||
<div id="sms-timer" class="alert alert-primary" role="alert">00:00</div>
|
||||
}
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -52,4 +58,30 @@
|
||||
<p>@_localizer[viaSms ? WebKey.LockedSmsTfaFooterBody : WebKey.LockedFooterBody]</p>
|
||||
</details>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<script nonce="@nonce">
|
||||
var expiration = new Date(@Html.Raw(JsonConvert.SerializeObject(expiration)));
|
||||
|
||||
const element = document.getElementById("sms-timer");
|
||||
|
||||
const interval = setInterval(function () {
|
||||
var now = new Date();
|
||||
|
||||
var diffInMillis = expiration - now;
|
||||
|
||||
if (diffInMillis <= 0) {
|
||||
element.textContent = "00:00";
|
||||
clearInterval(interval);
|
||||
return;
|
||||
}
|
||||
|
||||
var minutes = Math.floor(diffInMillis / 1000 / 60);
|
||||
var seconds = Math.floor((diffInMillis / 1000) % 60);
|
||||
|
||||
var formattedMinutes = minutes.toString().padStart(2, '0');
|
||||
var formattedSeconds = seconds.toString().padStart(2, '0');
|
||||
|
||||
var remainingTime = `${formattedMinutes}:${formattedSeconds}`;
|
||||
element.textContent = remainingTime;
|
||||
}, 1000);
|
||||
</script>
|
||||
Reference in New Issue
Block a user