init.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. document.addEventListener('DOMContentLoaded', () => {
  2. // Refactored
  3. document.querySelector('#vstobjects').addEventListener('submit', () => {
  4. document.querySelector('.fullscreen-loader').classList.add('show');
  5. });
  6. document.querySelectorAll('.toolbar-right .sort-by').forEach((el) => {
  7. el.addEventListener('click', () => $('.context-menu.sort-order').toggle());
  8. });
  9. // TODO: Replace with autofocus
  10. if (document.querySelectorAll('.ui-dialog').length == 0) {
  11. const input = document.querySelector(
  12. '#vstobjects .form-control:not([disabled]),\
  13. #vstobjects .form-select:not([disabled])'
  14. );
  15. if (input) {
  16. input.focus();
  17. }
  18. }
  19. // TODO Refactor or remove
  20. $('.submenu-select-dropdown').each(() => {
  21. $(this).wrap("<span class='submenu-select-wrapper'></span>");
  22. $(this).after("<span class='holder'></span>");
  23. });
  24. $('.submenu-select-dropdown')
  25. .change(() => {
  26. const selectedOption = $(this).find(':selected').text();
  27. $(this).next('.holder').text(selectedOption);
  28. })
  29. .trigger('change');
  30. // SORTING
  31. $('.toolbar-sorting-toggle').click(function (evt) {
  32. evt.preventDefault();
  33. $('.toolbar-sorting-menu').toggleClass('u-hidden');
  34. });
  35. $('.toolbar-sorting-menu span').click(function () {
  36. $('.toolbar-sorting-menu').toggleClass('u-hidden');
  37. if ($(this).hasClass('active')) return;
  38. $('.toolbar-sorting-menu span').removeClass('active');
  39. $(this).addClass('active');
  40. VE.tmp.sort_par = $(this).parent('li').attr('entity');
  41. VE.tmp.sort_as_int = !!$(this).parent('li').attr('sort_as_int');
  42. VE.tmp.sort_direction = $(this).hasClass('up') * 1 || -1;
  43. $('.toolbar-sorting-toggle b').html($(this).parent('li').find('.name').html());
  44. $('.toolbar-sorting-toggle .fas').removeClass('fa-arrow-up-a-z fa-arrow-down-a-z');
  45. $(this).hasClass('up')
  46. ? $('.toolbar-sorting-toggle .fas').addClass('fa-arrow-up-a-z')
  47. : $('.toolbar-sorting-toggle .fas').addClass('fa-arrow-down-a-z');
  48. $('.units .l-unit')
  49. .sort((a, b) => {
  50. if (VE.tmp.sort_as_int)
  51. return parseInt($(a).attr(VE.tmp.sort_par)) >= parseInt($(b).attr(VE.tmp.sort_par))
  52. ? VE.tmp.sort_direction
  53. : VE.tmp.sort_direction * -1;
  54. else
  55. return $(a).attr(VE.tmp.sort_par) <= $(b).attr(VE.tmp.sort_par)
  56. ? VE.tmp.sort_direction
  57. : VE.tmp.sort_direction * -1;
  58. })
  59. .appendTo('.units');
  60. });
  61. $('.button.cancel').attr('title', 'ctrl+Backspace');
  62. VE.core.register();
  63. });