app.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. function num_from_string(inp) {
  2. let n = parseInt(inp)
  3. if (isNaN(n)) {
  4. return 0
  5. }
  6. return n
  7. }
  8. function set_value(element, val) {
  9. if (element) {
  10. element.value = val;
  11. }
  12. }
  13. const dateForDateTimeInputValue = date => new Date(date.getTime() + new Date().getTimezoneOffset() * -60 * 1000).toISOString().slice(0, 19)
  14. function send_delete(button_id, url, cb) {
  15. cb = cb || (() => { });
  16. var btn = document.getElementById(button_id);
  17. btn.onclick = function (event) {
  18. let confirmed = confirm(("Delete!?"))
  19. if (!confirmed) {
  20. return cb(false)
  21. }
  22. event.preventDefault();
  23. var xhr = new XMLHttpRequest();
  24. xhr.open('DELETE', url)
  25. xhr.onreadystatechange = function () {
  26. if (xhr.readyState == XMLHttpRequest.DONE) {
  27. cb(true, xhr.responseText)
  28. }
  29. }
  30. xhr.send(null)
  31. return false;
  32. }
  33. }
  34. function post_form(form_id, url, validation, cb) {
  35. validation = validation || (() => true);
  36. cb = cb || (() => { });
  37. var form = document.getElementById(form_id);
  38. form.onsubmit = function (event) {
  39. event.preventDefault();
  40. var xhr = new XMLHttpRequest();
  41. var formData = new FormData(form);
  42. formData = validation(Object.fromEntries(formData));
  43. if (!formData) {
  44. return
  45. }
  46. xhr.open('POST', url)
  47. xhr.setRequestHeader("Content-Type", form.enctype||"application/json");
  48. xhr.send(JSON.stringify(formData));
  49. xhr.onreadystatechange = function () {
  50. if (xhr.readyState == XMLHttpRequest.DONE) {
  51. cb(xhr.responseText)
  52. }
  53. }
  54. return false;
  55. }
  56. }
  57. function deleteAllCookies() {
  58. var cookies = document.cookie.split(";");
  59. for (var i = 0; i < cookies.length; i++) {
  60. var cookie = cookies[i];
  61. var eqPos = cookie.indexOf("=");
  62. var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
  63. document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
  64. }
  65. }
  66. function clearAndRedirect(link) {
  67. deleteAllCookies();
  68. document.location = link;
  69. }