init.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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('dialog[open]').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. // SORTING
  21. document.querySelectorAll('.toolbar-sorting-toggle').forEach((toggle) => {
  22. toggle.addEventListener('click', (evt) => {
  23. evt.preventDefault();
  24. document.querySelector('.toolbar-sorting-menu').classList.toggle('u-hidden');
  25. });
  26. });
  27. $('.toolbar-sorting-menu span').click(function () {
  28. $('.toolbar-sorting-menu').toggleClass('u-hidden');
  29. if ($(this).hasClass('active')) return;
  30. $('.toolbar-sorting-menu span').removeClass('active');
  31. $(this).addClass('active');
  32. VE.tmp.sort_par = $(this).parent('li').attr('entity');
  33. VE.tmp.sort_as_int = !!$(this).parent('li').attr('sort_as_int');
  34. VE.tmp.sort_direction = $(this).hasClass('up') * 1 || -1;
  35. $('.toolbar-sorting-toggle b').html($(this).parent('li').find('.name').html());
  36. $('.toolbar-sorting-toggle .fas').removeClass('fa-arrow-up-a-z fa-arrow-down-a-z');
  37. $(this).hasClass('up')
  38. ? $('.toolbar-sorting-toggle .fas').addClass('fa-arrow-up-a-z')
  39. : $('.toolbar-sorting-toggle .fas').addClass('fa-arrow-down-a-z');
  40. $('.units .l-unit')
  41. .sort((a, b) => {
  42. if (VE.tmp.sort_as_int)
  43. return parseInt($(a).attr(VE.tmp.sort_par)) >= parseInt($(b).attr(VE.tmp.sort_par))
  44. ? VE.tmp.sort_direction
  45. : VE.tmp.sort_direction * -1;
  46. else
  47. return $(a).attr(VE.tmp.sort_par) <= $(b).attr(VE.tmp.sort_par)
  48. ? VE.tmp.sort_direction
  49. : VE.tmp.sort_direction * -1;
  50. })
  51. .appendTo('.units');
  52. });
  53. $('.button.cancel').attr('title', 'ctrl+Backspace');
  54. VE.core.register();
  55. });