diff --git a/app/assets/javascripts/rails_admin/ra.sidescroll.js b/app/assets/javascripts/rails_admin/ra.sidescroll.js index e9e03854be..389608eb1e 100644 --- a/app/assets/javascripts/rails_admin/ra.sidescroll.js +++ b/app/assets/javascripts/rails_admin/ra.sidescroll.js @@ -1,34 +1,27 @@ (function ($) { - function setFrozenColPositions() { - var $listForm, frozenColumns; + "use strict"; - $listForm = $("#bulk_form"); - if (!$listForm.is(".ra-sidescroll")) { + document.addEventListener("rails_admin.dom_ready", () => { + const listForm = document.getElementById("bulk_form"); + if (!listForm || !listForm.classList.contains("ra-sidescroll")) { return; } - frozenColumns = $listForm.data("ra-sidescroll"); - $listForm.find("table tr").each(function (index, tr) { - var firstPosition = 0; - - $(tr) - .children() + const frozenColumns = Number(listForm.dataset.raSidescroll); + listForm.querySelectorAll("tr").forEach((tr, index) => { + let firstPosition; + Array.from(tr.children) .slice(0, frozenColumns) - .each(function (idx, td) { - var tdLeft; - $(td).addClass("ra-sidescroll-frozen"); + .forEach((td, idx) => { + td.classList.add("ra-sidescroll-frozen"); if (idx === frozenColumns - 1) { - $(td).addClass("last-of-frozen"); + td.classList.add("last-of-frozen"); } - tdLeft = $(td).position().left; if (idx === 0) { - firstPosition = tdLeft; + firstPosition = td.offsetLeft; } - td.style.left = tdLeft - firstPosition + "px"; + td.style.left = `${td.offsetLeft - firstPosition}px`; }); }); - } - - $(window).on("load", setFrozenColPositions); - document.addEventListener("rails_admin.dom_ready", setFrozenColPositions); + }); })(jQuery);