|
1 | | -$(document).on("click", ".InputfieldRockColorPicker svg", function () { |
2 | | - // using UIkit JS because jquery fails with addclass on svg |
3 | | - // see https://stackoverflow.com/a/10257755/6370411 |
4 | | - let util = UIkit.util; |
5 | | - let el = util.$(this); |
6 | | - let parent = el.parentNode; |
7 | | - let $li = $(this).closest(".Inputfield"); |
8 | | - let input = util.$("input", parent); |
9 | | - let remove = util.hasClass(el, "selected"); |
10 | | - util.each(util.$$("svg", parent), function (el) { |
11 | | - util.removeClass(el, "selected"); |
| 1 | +$(document).on("click", ".InputfieldRockColorPicker .rcp-color", function () { |
| 2 | + let $color = $(this).closest(".rcp-color"); |
| 3 | + let $colors = $color.closest(".rcp-colors"); |
| 4 | + let $li = $color.closest(".Inputfield"); |
| 5 | + let $input = $li.find("input"); |
| 6 | + |
| 7 | + // set flag that defines wether we can remove selected state or not |
| 8 | + let remove = |
| 9 | + $color.hasClass("selected") && !$li.hasClass("InputfieldStateRequired"); |
| 10 | + |
| 11 | + // unselect all items |
| 12 | + $.each($colors.find(".rcp-color"), function (i, el) { |
| 13 | + $(el).removeClass("selected"); |
12 | 14 | }); |
13 | | - $(this).closest(".Inputfield").addClass("InputfieldStateChanged"); |
14 | | - if (remove && !$li.hasClass("InputfieldStateRequired")) { |
15 | | - util.attr(input, "value", ""); |
| 15 | + |
| 16 | + // set the new selected item |
| 17 | + if (remove) { |
| 18 | + $input.val(""); |
16 | 19 | } else { |
17 | | - util.addClass(el, "selected"); |
18 | | - util.attr(input, "value", util.data(el, "col")); |
| 20 | + $color.addClass("selected"); |
| 21 | + $input.val($color.data("color")); |
19 | 22 | } |
20 | | - $(input).change(); // trigger change event (important for rockpagebuilder) |
| 23 | + |
| 24 | + // trigger change on the inputfield |
| 25 | + $li.addClass("InputfieldStateChanged"); |
| 26 | + $input.change(); // for rockpagebuilder |
21 | 27 | }); |
22 | 28 | $(document).bind("keypress", function (e) { |
23 | 29 | // support space+enter to change color |
24 | 30 | if (e.which == 32 || e.which == 13) { |
25 | | - $(":focus").closest("svg.rcp-color").click(); |
| 31 | + $(":focus").closest(".rcp-color").click(); |
26 | 32 | } |
27 | 33 | }); |
0 commit comments