1
0
Fork 0
mirror of https://github.com/Ylianst/MeshCentral.git synced 2025-02-15 04:21:51 +00:00

Fix for Chrome double submit issue, #3738

This commit is contained in:
Ylian Saint-Hilaire 2022-03-05 12:26:57 -08:00
parent 9198e336d6
commit 4a4eacf025

View file

@ -61,7 +61,7 @@
<img id="loginPicture" /> <img id="loginPicture" />
<div style="font-size:46px;font-family:Arial,Helvetica,sans-serif;font-weight:bold;padding-bottom:10px;color:#c8c8c8;text-shadow: 2px 2px 2px #000;">{{{title1}}}<sup style="font-size:20px"> {{{title2}}}</sup></div> <div style="font-size:46px;font-family:Arial,Helvetica,sans-serif;font-weight:bold;padding-bottom:10px;color:#c8c8c8;text-shadow: 2px 2px 2px #000;">{{{title1}}}<sup style="font-size:20px"> {{{title2}}}</sup></div>
<div id=loginpanel style="display:none;box-shadow:1px 1px 4px #000"> <div id=loginpanel style="display:none;box-shadow:1px 1px 4px #000">
<form method=post> <form id=loginpanelform method=post>
<input type=hidden name=action value=login /> <input type=hidden name=action value=login />
<div id=message1></div> <div id=message1></div>
<div id="loginuserpassdiv" style="display:none"> <div id="loginuserpassdiv" style="display:none">
@ -83,7 +83,7 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<input id=loginButton style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:6px" type=submit value="Log In" disabled="disabled" /> <input id=loginButton style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:6px" onclick="submitButtonClicked('loginpanelform')" type=button value="Log In" disabled="disabled" />
</td> </td>
</tr> </tr>
</table> </table>
@ -111,7 +111,7 @@
</form> </form>
</div> </div>
<div id=createpanel style="display:none;position:relative"> <div id=createpanel style="display:none;position:relative">
<form method=post> <form id=createpanelform method=post>
<input type=hidden name=action value=createaccount /> <input type=hidden name=action value=createaccount />
<div id=message2></div> <div id=message2></div>
<div> <div>
@ -145,7 +145,7 @@
</tr> </tr>
<tr> <tr>
<td colspan=2> <td colspan=2>
<div style=float:right><input id=createButton type=submit value="Create Account" disabled="disabled" /></div> <div style=float:right><input id=createButton type="button" onclick="submitButtonClicked('createpanelform')" value="Create Account" disabled="disabled" /></div>
<div id=passWarning style="padding-top:6px"></div> <div id=passWarning style="padding-top:6px"></div>
</td> </td>
</tr> </tr>
@ -155,7 +155,7 @@
</form> </form>
</div> </div>
<div id=resetpanel style="display:none"> <div id=resetpanel style="display:none">
<form method=post> <form id=resetpanelform method=post>
<input type=hidden name=action value=resetaccount /> <input type=hidden name=action value=resetaccount />
<div id=message3></div> <div id=message3></div>
<div> <div>
@ -169,7 +169,7 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<input id=eresetButton style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:6px" type=submit value="Reset Account" disabled="disabled" /> <input id=eresetButton style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:6px" type="button" onclick="submitButtonClicked('resetpanelform')" value="Reset Account" disabled="disabled" />
</td> </td>
</tr> </tr>
</table> </table>
@ -178,7 +178,7 @@
</form> </form>
</div> </div>
<div id=tokenpanel style="display:none"> <div id=tokenpanel style="display:none">
<form method=post {{{autocomplete}}}=off> <form id=tokenpanelform method=post {{{autocomplete}}}=off>
<input type=hidden name=action value=tokenlogin /> <input type=hidden name=action value=tokenlogin />
<input type=hidden name=hwstate value="{{{hwstate}}}" /> <input type=hidden name=hwstate value="{{{hwstate}}}" />
<div id=message4></div> <div id=message4></div>
@ -192,7 +192,7 @@
<tr> <tr>
<td> <td>
<div> <div>
<input id=tokenOkButton style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:6px" type=submit value="Log In" disabled="disabled" /> <input id=tokenOkButton style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:6px" type="button" onclick="submitButtonClicked('tokenpanelform')" value="Log In" disabled="disabled" />
</div> </div>
</td> </td>
</tr> </tr>
@ -218,7 +218,7 @@
</form> </form>
</div> </div>
<div id=resettokenpanel style="display:none"> <div id=resettokenpanel style="display:none">
<form method=post> <form id=resettokenpanelform method=post>
<input type=hidden name=action value=resetaccount /> <input type=hidden name=action value=resetaccount />
<div id=message5></div> <div id=message5></div>
<table style="width:100%"> <table style="width:100%">
@ -231,7 +231,7 @@
<tr> <tr>
<td> <td>
<div> <div>
<input id=resetTokenOkButton style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:6px" type=submit value="Log In" disabled="disabled" /> <input id=resetTokenOkButton style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:6px" type="button" onclick="submitButtonClicked('resetpanelform')" value="Log In" disabled="disabled" />
</div> </div>
</td> </td>
</tr> </tr>
@ -252,7 +252,7 @@
</form> </form>
</div> </div>
<div id=resetpasswordpanel style="display:none;position:relative"> <div id=resetpasswordpanel style="display:none;position:relative">
<form method=post> <form id=resetpasswordpanelform method=post>
<input type=hidden name=action value=resetpassword /> <input type=hidden name=action value=resetpassword />
<div id=message6></div> <div id=message6></div>
<div id="rpasswordPolicyCallout" style="display:none"></div> <div id="rpasswordPolicyCallout" style="display:none"></div>
@ -271,7 +271,7 @@
</tr> </tr>
<tr> <tr>
<td colspan=2> <td colspan=2>
<div style=float:right><input id=resetPassButton type=submit value="Reset Password" disabled="disabled" /></div> <div style=float:right><input id=resetPassButton type="button" onclick="submitButtonClicked('resetpasswordpanel')" value="Reset Password" disabled="disabled" /></div>
<div id=rpassWarning style="padding-top:6px"></div> <div id=rpassWarning style="padding-top:6px"></div>
</td> </td>
</tr> </tr>
@ -281,7 +281,7 @@
</form> </form>
</div> </div>
<div id=checkemailpanel style="display:none;position:relative"> <div id=checkemailpanel style="display:none;position:relative">
<form method=post> <form id=checkemailpanelform method=post>
<input type=hidden name=action value=checkemail /> <input type=hidden name=action value=checkemail />
<div id=message7></div> <div id=message7></div>
<table id="checkCheckOperations" style="width:100%;display:none"> <table id="checkCheckOperations" style="width:100%;display:none">
@ -295,7 +295,7 @@
<div> <div>
<input id=changeEmailButton type=button value="Change Email Address" onclick="changeEmailAddress()" /> <input id=changeEmailButton type=button value="Change Email Address" onclick="changeEmailAddress()" />
<input id=checkEmailButton2 type=button value="Resend Confirmation Email" onclick="resentEmailConfirmation()" /> <input id=checkEmailButton2 type=button value="Resend Confirmation Email" onclick="resentEmailConfirmation()" />
<input id=checkEmailButton type=submit style="display:none" /> <input id=checkEmailButton type="button" onclick="submitButtonClicked('checkemailpanelform')" style="display:none" />
<input id=checkEmailVal name=email type="hidden" value="" /> <input id=checkEmailVal name=email type="hidden" value="" />
</div> </div>
</td> </td>
@ -306,7 +306,7 @@
</form> </form>
</div> </div>
<div id=waitpushpanel style="display:none"> <div id=waitpushpanel style="display:none">
<form method=post> <form id=waitpushpanelform method=post>
<input type=hidden name=action value=pushlogin /> <input type=hidden name=action value=pushlogin />
<div id=message8></div> <div id=message8></div>
<table style="width:100%"> <table style="width:100%">
@ -324,7 +324,7 @@
<hr /><a onclick="return xgo(1,event);" href="#" style=cursor:pointer>Back to login</a> <hr /><a onclick="return xgo(1,event);" href="#" style=cursor:pointer>Back to login</a>
<input id=pushtokenformargs name="urlargs" type="hidden" value="" /> <input id=pushtokenformargs name="urlargs" type="hidden" value="" />
<input id=pushtokenInput name="hwstate" type="hidden" value="" /> <input id=pushtokenInput name="hwstate" type="hidden" value="" />
<input id=pushOkButton type=submit style="display:none" /> <input id=pushOkButton onclick="submitButtonClicked('waitpushpanelform')" style="display:none" />
</form> </form>
</div> </div>
</td> </td>
@ -383,6 +383,7 @@
var authStrategies = '{{{authStrategies}}}'.split(','); var authStrategies = '{{{authStrategies}}}'.split(',');
var tokenTimeout = parseInt('{{{tokenTimeout}}}'); var tokenTimeout = parseInt('{{{tokenTimeout}}}');
var websocket = null; var websocket = null;
var formSubmitted = false;
function startup() { function startup() {
if (decodeURIComponent('{{{loginpicture}}}') == 'true') { Q('loginPicture').src = "loginlogo.png"; } if (decodeURIComponent('{{{loginpicture}}}') == 'true') { Q('loginPicture').src = "loginlogo.png"; }
@ -685,6 +686,10 @@
} }
} }
function submitButtonClicked(v) {
if (!formSubmitted) { formSubmitted = true; document.getElementById(v).submit(); }
}
function validateLogin(box, e) { function validateLogin(box, e) {
var ok = ((Q('username').value.length > 0) && (Q('username').value.indexOf(' ') == -1) && (Q('password').value.length > 0)); var ok = ((Q('username').value.length > 0) && (Q('username').value.indexOf(' ') == -1) && (Q('password').value.length > 0));
QE('loginButton', ok); QE('loginButton', ok);