From 7e17c82f4b530906a0b8dc923d4536cb91ea25ea Mon Sep 17 00:00:00 2001 From: joaohortsenado Date: Sun, 1 Sep 2024 23:04:31 -0300 Subject: [PATCH] fix: aplica um lazy loading no sortable do jquery ui pelo evento mouseenter. --- .../compilacao/js/old/compilacao_edit.js | 74 +++++++++++-------- 1 file changed, 42 insertions(+), 32 deletions(-) diff --git a/frontend/src/__apps/compilacao/js/old/compilacao_edit.js b/frontend/src/__apps/compilacao/js/old/compilacao_edit.js index 8ab884033..ba651188b 100644 --- a/frontend/src/__apps/compilacao/js/old/compilacao_edit.js +++ b/frontend/src/__apps/compilacao/js/old/compilacao_edit.js @@ -1,4 +1,3 @@ - const _$ = window.$ window.DispositivoEdit = function () { @@ -500,38 +499,47 @@ window.DispositivoEdit = function () { } instance.reloadFunctionsDraggables = function () { - _$('.dpt-alts').sortable({ - revert: true, - distance: 15, - start: function (event, ui) { - }, - stop: function (event, ui) { - const pk = ui.item.attr('pk') - const bloco_pk = ui.item.closest('.dpt-alts').closest('.dpt').attr('pk') - - const url = pk + '/refresh?action=json_drag_move_dpt_alterado&index=' + ui.item.index() + '&bloco_pk=' + bloco_pk - _$.get(url).done(function (data) { - // console.log(pk + ' - ' + bloco_pk) - // reloadFunctionsForObjectsOfCompilacao(); - }) - } - }) + const dptAlts = _$('.dpt-alts') + if (dptAlts.length > 0) { + dptAlts.sortable({ + connectWith: '.dpt-alts', + items: '.sorting-initialize', + revert: true, + distance: 15, + start: function (event, ui) { + }, + stop: function (event, ui) { + const pk = ui.item.attr('pk') + const bloco_pk = ui.item.closest('.dpt-alts').closest('.dpt').attr('pk') + + const url = pk + '/refresh?action=json_drag_move_dpt_alterado&index=' + ui.item.index() + '&bloco_pk=' + bloco_pk + _$.get(url).done(function (data) { + // handle data if needed + }) + } + }) + dptAlts.find('.dpt').one('mouseenter', function () { + $(this).addClass('sorting-initialize') + dptAlts.sortable('refresh') + }) - _$('.dpt-alts .dpt').draggable({ - connectToSortable: '.dpt-alts', - revert: 'invalid', - zIndex: 1, - distance: 15, - drag: function (event, ui) { - // _$('.dpt-comp-selected').removeClass('dpt-comp-selected'); - _$('.dpt-alts').addClass('drag') - }, - stop: function (event, ui) { - _$('.dpt-alts').removeClass('drag') - } - }) + _$('.dpt-alts .dpt').draggable({ + connectToSortable: '.dpt-alts', + revert: 'invalid', + zIndex: 1, + distance: 15, + drag: function (event, ui) { + _$('.dpt-alts').addClass('drag') + }, + stop: function (event, ui) { + _$('.dpt-alts').removeClass('drag') + } + }) - _$('.dpt-alts').disableSelection() + dptAlts.disableSelection() + } else { + console.warn("No '.dpt-alts' elements found to make sortable/draggable.") + } } instance.scrollTo = function (dpt) { try { @@ -570,7 +578,9 @@ window.DispositivoEdit = function () { instance.triggerBtnDptEdit(href[1]) } _$('main').click(function (event) { - if (event.target === this || event.target === this.firstElementChild) { instance.clearEditSelected() } + if (event.target === this || event.target === this.firstElementChild) { + instance.clearEditSelected() + } }) instance.waitHide() }