init.js 2.5 KB

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