utils.js 2.8 KB

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