From d01c8a96b40c46c859ced7927693fa44bd16a532 Mon Sep 17 00:00:00 2001 From: sohalt Date: Tue, 8 Oct 2019 20:12:42 +0200 Subject: [PATCH] Show first up arrow and last down arrow --- .../pretixcontrol/js/ui/dragndroplist.js | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/pretix/static/pretixcontrol/js/ui/dragndroplist.js b/src/pretix/static/pretixcontrol/js/ui/dragndroplist.js index b66a0fff05..36fcb50dd4 100644 --- a/src/pretix/static/pretixcontrol/js/ui/dragndroplist.js +++ b/src/pretix/static/pretixcontrol/js/ui/dragndroplist.js @@ -3,15 +3,30 @@ $(function () { $("[data-dnd-url]").each(function(){ var container = $(this), url = container.data("dnd-url"), - handle = $("", {class: "btn btn-default btn-sm dnd-sort-handle"}); - handle.append(''); - container.find("a:has(.fa-arrow-up)").remove(); - container.find("a:has(.fa-arrow-down)").replaceWith(handle); + up = container.find("a:has(.fa-arrow-up)"), + handle = $(''); + + function hideArrows(container){ + var up = container.find("a:has(.fa-arrow-up)"), + firstUp = up.first(), + down = container.find("a:has(.fa-arrow-down)"), + lastDown = down.last(); + up.not(firstUp).css("display","none"); + down.not(lastDown).css("display","none"); + firstUp.css("display","inline-block"); + lastDown.css("display","inline-block"); + } + up.after(handle); + hideArrows(container); Sortable.create(container.get(0), { handle: ".dnd-sort-handle", onSort: function(evt){ - var ids = $(evt.to).find("[data-dnd-id]").toArray().map(e => e.dataset.dndId); + var container = $(evt.to), + ids = container.find("[data-dnd-id]").toArray().map(e => e.dataset.dndId); + + hideArrows(container); + $.ajax( { 'type': 'POST',