message2.handlebars 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <!DOCTYPE html>
  2. <html lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv=X-UA-Compatible content="IE=edge" />
  5. <meta content="text/html;charset=utf-8" http-equiv=Content-Type />
  6. <meta name=viewport content="user-scalable=1.0,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0" />
  7. <meta name=apple-mobile-web-app-capable content=yes />
  8. <meta name=format-detection content="telephone=no" />
  9. <meta name="robots" content="noindex,nofollow">
  10. <link type=text/css href="/styles/style.css" media="screen" rel="stylesheet" title="CSS" />
  11. {{{customCSSTags}}}
  12. <link rel="apple-touch-icon" href="/favicon-303x303.png" />
  13. <script type="text/javascript" src="scripts/common-0.0.1{{min}}.js"></script>
  14. {{{customJSTags}}}
  15. <title id="topTitle">{{{title1}}}</title>
  16. <style>
  17. body {
  18. background-color: cadetblue;
  19. background: linear-gradient(to bottom right, #369, #036);
  20. height: 100%;
  21. overflow: hidden;
  22. }
  23. a:link { color: #c8c8c8; }
  24. a:visited { color: #c8c8c8; }
  25. a:hover { color: #c8c8c8; }
  26. a:active { color: #c8c8c8; }
  27. </style>
  28. </head>
  29. <body>
  30. <img style="position:absolute;left:0;bottom:0;z-index:-1;height:60%;opacity:0.1" src="../../images/login/back.png" />
  31. <table id="centralTable" class="container" style="height:100%;z-index:1">
  32. <tr>
  33. <td style="width:100%;text-align:center;color:#c8c8c8;font-size:larger">
  34. <h1 id="mainTitle"></h1>
  35. <p id="mainMessage"></p>
  36. </td>
  37. </tr>
  38. <tr style="height:20px">
  39. <td>
  40. <div>
  41. <div id="flink" style="margin-left:4px">{{{footer}}}</div>
  42. <div id="flink" style="float:right;margin-right:4px">{{{rootCertLink}}}&nbsp;<a href=../../terms>Terms &amp; Privacy</a></div>
  43. </div>
  44. </td>
  45. </tr>
  46. </table>
  47. <script>
  48. var random = '{{{randomlength}}}' // Random length string for BREACH mitigation
  49. var titleid = parseInt('{{{titleid}}}');
  50. var msgid = parseInt('{{{msgid}}}');
  51. var domainurl = decodeURIComponent('{{{domainurl}}}');
  52. var arg1 = decodeURIComponent('{{{arg1}}}');
  53. var arg2 = decodeURIComponent('{{{arg2}}}');
  54. var urlargs = parseUriArgs();
  55. var title = '';
  56. if (titleid == 1) { title = "Account Verification"; }
  57. if (titleid == 2) { title = "Desktop Sharing"; }
  58. if (titleid == 3) { title = "Server Under Maintenance"; }
  59. if (titleid == 4) { title = "Terminal Sharing"; }
  60. QH('topTitle', Q('topTitle').innerText + ' - ' + title);
  61. QH('mainTitle', title);
  62. var msg = '';
  63. switch (msgid) {
  64. case 1: { msg = "ERROR: Invalid domain."; break; }
  65. case 2: { msg = format("ERROR: Invalid username \"{0}\".", arg1); break; }
  66. case 3: { msg = format("ERROR: Invalid e-mail \"{0}\" for user \"{1}\".", arg1, arg2); break; }
  67. case 4: { msg = format("E-mail \"{0}\" for user \"{1}\" already verified.", arg1, arg2); break; }
  68. case 5: { msg = format("E-mail \"{0}\" already in use on a different account. Change the email address and try again.", arg1); break; }
  69. case 6: { msg = format("Verified email {0} for user account {1}.", '<b style=color:white>' + arg1 + '</b>', '<b style=color:white>' + arg2 + '</b>'); break; }
  70. case 7: { msg = format("E-mail \"{0}\" for user \"{1}\" not verified.", arg1, arg2); break; }
  71. case 8: {
  72. msg = '<div>' + format("Password for account {0} has been reset to:", '<b style=color:white>' + arg1 + '</b>') + '</div><div style=padding:14px;font-size:18px><b style=color:white>' + arg2 + '</b></div>';
  73. msg += "Login and go to the \"My Account\" tab to update your password.";
  74. break;
  75. }
  76. case 9: { msg = "ERROR: Invalid account check."; break; }
  77. case 10: { msg = "ERROR: Invalid account check, verification url is only valid for 30 minutes."; break; }
  78. case 11: { msg = "Sharing link not valid yet."; break; }
  79. case 12: { msg = "Sharing link is expired."; break; }
  80. case 13: {
  81. var loginUrl = '?loginscreen=1' + (urlargs.key ? '&key=' + urlargs.key : '');
  82. msg = "If you are an administrator, [login here].".replace('[', '<a href=' + loginUrl + '>').replace(']', '</a>');
  83. break;
  84. }
  85. case 14: { msg = '<a href=' + window.location.href + '&confirm=1>' + "Click here to reset your account password." + '</a>'; break; }
  86. }
  87. // Add login page link
  88. if ((msgid != 11) && (msgid != 12) && (msgid != 13) && (msgid != 14)) { msg += ' <a href="' + domainurl + (urlargs.key ? ('?key=' + urlargs.key) : '') + '">' + "Go to login page" + '</a>.' }
  89. QH('mainMessage', msg);
  90. function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
  91. // Parse URL arguments, only keep safe values
  92. function parseUriArgs() {
  93. var href = window.document.location.href;
  94. if (href.endsWith('#')) { href = href.substring(0, href.length - 1); }
  95. var name, r = {}, parsedUri = href.split(/[\?&|]/);
  96. parsedUri.splice(0, 1);
  97. for (var j in parsedUri) {
  98. var arg = parsedUri[j], i = arg.indexOf('=');
  99. name = arg.substring(0, i);
  100. r[name] = arg.substring(i + 1);
  101. if (!isSafeString(r[name])) { delete r[name]; } else { var x = parseInt(r[name]); if (x == r[name]) { r[name] = x; } }
  102. }
  103. return r;
  104. }
  105. </script>
  106. </body>
  107. </html>