utils.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /**
  2. * This JS file contains utils functions
  3. */
  4. class Utils {
  5. constructor(parent) {
  6. this.parent = parent;
  7. this.multipleSize = [1280, 1024, 'Mobile'];
  8. }
  9. /**
  10. * When something is written in the editor, it reset the safe mode
  11. */
  12. markDirty() {
  13. if (this.parent.monacoCreator.BlockEditorChange) return;
  14. this.setToMultipleID("safemodeToggle", "addClass", "checked");!
  15. this.setToMultipleID('safemodeToggle', 'innerHTML', 'Safe mode <i class="fa fa-check-square" aria-hidden="true"></i>');
  16. };
  17. /**
  18. * Used to show error messages
  19. * @param {String} errorMessage
  20. * @param {String} errorEvent
  21. */
  22. showError(errorMessage, errorEvent) {
  23. var errorContent =
  24. '<div class="alert alert-error"><button type="button" class="close" data-dismiss="alert">&times;</button>';
  25. if (errorEvent) {
  26. var regEx = /\(.+:(\d+):(\d+)\)\n/g;
  27. var match = regEx.exec(errorEvent.stack);
  28. if (match) {
  29. errorContent += "Line ";
  30. var lineNumber = match[1];
  31. var columnNumber = match[2];
  32. errorContent += lineNumber + ':' + columnNumber + ' - ';
  33. }
  34. }
  35. errorContent += errorMessage + '</div>';
  36. document.getElementById("errorZone").style.display = 'block';
  37. document.getElementById("errorZone").innerHTML = errorContent;
  38. // Close button error
  39. document.getElementById("errorZone").querySelector('.close').addEventListener('click', function () {
  40. document.getElementById("errorZone").style.display = 'none';
  41. });
  42. };
  43. /**
  44. * Apply things to the differents menu sizes
  45. */
  46. setToMultipleID(id, thingToDo, param) {
  47. this.multipleSize.forEach(function (size) {
  48. if (thingToDo == "innerHTML") {
  49. document.getElementById(id + size).innerHTML = param
  50. }
  51. else if (thingToDo == "click") {
  52. if (param.length > 1) {
  53. for (var i = 0; i < param.length; i++) {
  54. document.getElementById(id + size).addEventListener("click", param[i]);
  55. }
  56. }
  57. else
  58. document.getElementById(id + size).addEventListener("click", param);
  59. }
  60. else if (thingToDo == "addClass") {
  61. document.getElementById(id + size).classList.add(param);
  62. }
  63. else if (thingToDo == "removeClass") {
  64. document.getElementById(id + size).classList.remove(param);
  65. }
  66. else if (thingToDo == "display") {
  67. document.getElementById(id + size).style.display = param;
  68. }
  69. });
  70. };
  71. /**
  72. * Function to get the current screen size
  73. */
  74. getCurrentSize() {
  75. for(var i = 0; i < this.multipleSize.length; i++) {
  76. if(document.getElementById("menuButton" + this.multipleSize[i]).offsetHeight > 0) return this.multipleSize[i];
  77. }
  78. };
  79. }