forked from OPCFoundation/UA-CloudLibrary
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEmail.cshtml
81 lines (75 loc) · 3.75 KB
/
Email.cshtml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
@page
@model EmailModel
@{
ViewData["Title"] = "Manage Email";
ViewData["ActivePage"] = ManageNavPages.Email;
var _reCaptchaUrl = $"{@Model.CaptchaSettings.ClientApiUrl}{@Model.CaptchaSettings.SiteKey}";
}
<h3>@ViewData["Title"]</h3>
<partial name="_StatusMessage" for="StatusMessage" />
<div class="row">
<div class="col-md-6">
<form id="emailForm" method="post">
<div asp-validation-summary="All" class="text-danger"></div>
<span asp-validation-for="CaptchaResponseToken" class="text-danger"></span>
<input type="hidden" asp-for="CaptchaResponseToken" id="CaptchaResponseToken" />
@if (Model.IsEmailConfirmed)
{
<div class="form-floating input-group">
<input asp-for="Email" class="form-control" disabled />
<div class="input-group-append">
<span class="h-100 input-group-text text-success font-weight-bold">✓</span>
</div>
<label asp-for="Email" class="form-label"></label>
</div>
}
else
{
<div class="form-floating">
<input asp-for="Email" class="form-control" disabled />
<label asp-for="Email" class="form-label"></label>
<button id="emailVerificationSubmit" type="submit" asp-page-handler="SendVerificationEmail" class="btn btn-link">Send verification email</button>
</div>
}
<div class="form-floating">
<input asp-for="Input.NewEmail" class="form-control" autocomplete="email" aria-required="true" />
<label asp-for="Input.NewEmail" class="form-label"></label>
<span asp-validation-for="Input.NewEmail" class="text-danger"></span>
</div>
<button id="changeEmailSubmit" type="submit" asp-page-handler="ChangeEmail" class="w-100 btn btn-lg btn-primary">Change email</button>
</form>
</div>
</div>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
@if (Model.CaptchaSettings.Enabled)
{
<script src='@_reCaptchaUrl'></script>
<script>
function reCaptchaExecuteVerify() {
grecaptcha.execute('@Model.CaptchaSettings.SiteKey', { action: 'reverifyEmail' }).then(function (token) {
//populate token value in hidden field
document.getElementById("CaptchaResponseToken").value = token;
//submit form
$('#emailForm').submit();
});
}
//wire up register button to execute reCaptcha before submitting
const btnVerifySubmit = document.getElementById("emailVerificationSubmit");
btnVerifySubmit.addEventListener('click', reCaptchaExecuteVerify, false);
//Note - if run on load, the token expires after 2 mins
function reCaptchaExecute() {
grecaptcha.execute('@Model.CaptchaSettings.SiteKey', { action: 'reverifyEmail' }).then(function (token) {
//populate token value in hidden field
document.getElementById("CaptchaResponseToken").value = token;
//submit form
$('#emailForm').submit();
});
}
//wire up register button to execute reCaptcha before submitting
const btnChangeEmail = document.getElementById("changeEmailSubmit");
btnChangeEmail.addEventListener('click', reCaptchaExecute, false);
//Note - if run on load, the token expires after 2 mins
</script>
}
}