diff --git a/src/pretix/static/pretixcontrol/js/ui/main.js b/src/pretix/static/pretixcontrol/js/ui/main.js index 1f2c0065f7..6eddfc3852 100644 --- a/src/pretix/static/pretixcontrol/js/ui/main.js +++ b/src/pretix/static/pretixcontrol/js/ui/main.js @@ -323,4 +323,22 @@ $(function () { ev.preventDefault(); return true; }) + + $(".scrolling-multiple-choice").each(function () { + var $small = $(""); + var $a_all = $("").addClass("choice-options-all").attr("href", "#").text(gettext("Alle")); + var $a_none = $("").addClass("choice-options-none").attr("href", "#").text(gettext("Keine")); + $(this).prepend($small.append($a_all).append(" / ").append($a_none)); + + $(this).find(".choice-options-none").click(function (e) { + $(this).closest(".scrolling-multiple-choice").find("input[type=checkbox]").prop("checked", false); + e.preventDefault(); + return false; + }); + $(this).find(".choice-options-all").click(function (e) { + $(this).closest(".scrolling-multiple-choice").find("input[type=checkbox]").prop("checked", true); + e.preventDefault(); + return false; + }); + }) }); diff --git a/src/pretix/static/pretixcontrol/scss/_forms.scss b/src/pretix/static/pretixcontrol/scss/_forms.scss index 6ae6c23ffd..f6eb5185f2 100644 --- a/src/pretix/static/pretixcontrol/scss/_forms.scss +++ b/src/pretix/static/pretixcontrol/scss/_forms.scss @@ -245,3 +245,16 @@ label .optional { color: $text-muted; font-weight: normal; } + +.scrolling-multiple-choice { + height: 150px; + border: 1px solid $input-border; + border-radius: $input-border-radius; + padding-left: 15px; + overflow-y: auto; + padding-top: 5px; + + .radio:first-of-type, .checkbox:first-of-type { + margin-top: 0; + } +}