toast.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. let toastPosition = "bottom left";
  2. let progressPosition = "bottom";
  3. let displayTime = 5000;
  4. class toast {
  5. static defaultAjaxError(xhr, status, error) {
  6. let title = "";
  7. let message = "";
  8. if (xhr.status == 404) {
  9. title = "Endpoint Error: 404";
  10. message = "The endpoint could not be found.";
  11. toast.error(title, message, true);
  12. } else {
  13. message = xhr.responseJSON.message;
  14. if (xhr.responseJSON.details != null) {
  15. message = "<p>" + message + "</p>";
  16. message += toast.arrayToHtmlList(xhr.responseJSON.details);
  17. }
  18. toast.error(null, message, true);
  19. }
  20. }
  21. static info(title, message, fixed) {
  22. this.showToast(title, message, fixed, "info");
  23. }
  24. static success(title, message, fixed) {
  25. this.showToast(title, message, fixed, "success");
  26. }
  27. static error(title, message, fixed) {
  28. this.showToast(title, message, fixed, "error");
  29. }
  30. static showToast(title, message, fixed, className) {
  31. let options = {
  32. displayTime: fixed ? 0 : displayTime,
  33. showProgress: progressPosition,
  34. position: toastPosition,
  35. compact: false
  36. };
  37. if (title != null) {
  38. options.title = title;
  39. }
  40. if (className != null) {
  41. options.class = className;
  42. }
  43. options.message = message;
  44. $("body").toast(options);
  45. }
  46. static arrayToHtmlList(input) {
  47. let message = "<div class='ui bulleted list'>";
  48. for (let i = 0; i < input.length; i++) {
  49. message += "<div class='item'>" + input[i] + "</div>";
  50. }
  51. message += "</div>";
  52. return message;
  53. }
  54. }