utils.js 3.1 KB

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