jsalert.tx 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <script>
  2. document.addEventListener("DOMContentLoaded", function(event) {
  3. // Defined-or, not a ternary: success is 0, which is falsy, so the old
  4. // test collapsed every success to -1 and hid the banner entirely.
  5. var loginFailure = <: $failure // -1 :>;
  6. if( loginFailure === -1 ) {
  7. document.querySelector('#jsalert').style.cssText = 'display:none;';
  8. } else if ( loginFailure === 1 ) {
  9. document.querySelector('#jsalert').classList.remove("alert-success");
  10. document.querySelector('#jsalert').classList.add("alert-danger");
  11. document.querySelector('#msgIcon').innerHTML = "❌";
  12. document.querySelector('#message').innerHTML = "<: $message :>";
  13. } else {
  14. document.querySelector('#jsalert').classList.remove("alert-danger");
  15. document.querySelector('#jsalert').classList.add("alert-success");
  16. document.querySelector('#msgIcon').innerHTML = "✓";
  17. document.querySelector('#message').innerHTML = "<: $message :>";
  18. : if ($to) {
  19. //JS redir better ux than 302
  20. window.setTimeout(function() {
  21. window.location="<: $to :>";
  22. }, 500);
  23. : } else {
  24. // Dismiss after a few seconds.
  25. window.setTimeout(function() {
  26. document.querySelector('#jsalert').classList.add('hidon');
  27. }, 500);
  28. : }
  29. }
  30. });
  31. </script>
  32. <style>
  33. #jsalert {
  34. margin: 1rem;
  35. border-radius: .75rem;
  36. border-color: rgba(255,0,0,.75);
  37. padding: 1rem;
  38. margin-top: 3rem;
  39. position: fixed;
  40. width:95%;
  41. left: 0px;
  42. }
  43. .alert-danger {
  44. background-color: rgba(100,0,0,.95);
  45. }
  46. .alert-success {
  47. background-color: rgba(0,255,0,.95);
  48. }
  49. </style>
  50. <div id="jsalert" class="alert-danger">
  51. <table>
  52. <tr>
  53. <td id="msgIcon">
  54. ⚠
  55. </td>
  56. <td id="message" style="padding-left: 1rem;">
  57. Please enable JavaScript on this domain.
  58. </td>
  59. </tr>
  60. </table>
  61. </div>