diff --git a/src/pretix/control/templates/pretixcontrol/items/index.html b/src/pretix/control/templates/pretixcontrol/items/index.html index de4566c89..c3ed265cd 100644 --- a/src/pretix/control/templates/pretixcontrol/items/index.html +++ b/src/pretix/control/templates/pretixcontrol/items/index.html @@ -48,7 +48,7 @@ {% if c %} - {{ c.name }}{% if c.category_type != "normal" %} ({{ c.get_category_type_display }}){% endif %} + {{ c.name }}{% if c.category_type != "normal" %} ({{ c.get_category_type_display }}){% endif %} diff --git a/src/pretix/static/pretixcontrol/js/ui/dragndroplist.js b/src/pretix/static/pretixcontrol/js/ui/dragndroplist.js index a13c01582..5bc03c90a 100644 --- a/src/pretix/static/pretixcontrol/js/ui/dragndroplist.js +++ b/src/pretix/static/pretixcontrol/js/ui/dragndroplist.js @@ -1,40 +1,51 @@ /*global $, Sortable*/ $(function () { + let didSort = false, lastClick = 0; $("[data-dnd-url]").each(function(){ const container = $(this), url = container.data("dnd-url"), - handle = $(''); + handle = $(''); container.find(".dnd-container").append(handle); - container.find(".sortable-up, .sortable-down").addClass("sr-only"); + if (!sessionStorage.dndShowMoveButtons) { + container.find(".sortable-up, .sortable-down").addClass("sr-only").on("click", function () { + sessionStorage.dndShowMoveButtons = 'true'; + }); + } if (container.find("[data-dnd-id]").length < 2 && !container.data("dnd-group")) { handle.addClass("disabled"); return; } - let didSort = false, lastClick = 0; - function handleMouseUp() { - if (Date.now() - lastClick < 6000) { - container.find(".sortable-up, .sortable-down").removeClass("sr-only"); + function maybeShowSortButtons() { + if (Date.now() - lastClick < 3000) { + $("[data-dnd-url] .sortable-up, [data-dnd-url] .sortable-down").removeClass("sr-only"); } lastClick = Date.now(); } - container.find(".dnd-sort-handle").on("mouseup", handleMouseUp); + container.find(".dnd-sort-handle").on("mouseup", maybeShowSortButtons); + const group = container.data("dnd-group"); + const containers = group ? container.parent().find('[data-dnd-group="' + group + '"]') : container; Sortable.create(container.get(0), { filter: ".sortable-disabled", handle: ".dnd-sort-handle", - group: container.data("dnd-group"), + group: group, onMove: function (evt) { return evt.related.className.indexOf('sortable-disabled') === -1; }, onStart: function (evt) { - container.addClass("sortable-dragarea"); + containers.addClass("sortable-dragarea"); container.parent().addClass("sortable-sorting"); didSort = false; }, onEnd: function (evt) { - container.removeClass("sortable-dragarea"); + containers.removeClass("sortable-dragarea"); container.parent().removeClass("sortable-sorting"); - if (!didSort) handleMouseUp(); + if (!didSort) { + maybeShowSortButtons(); + } else { + $("[data-dnd-url] .sortable-up, [data-dnd-url] .sortable-down").addClass("sr-only"); + delete sessionStorage.dndShowMoveButtons; + } }, onSort: function (evt){ if (evt.target !== evt.to) return;