diff --git a/app/assets/javascripts/sdg/related_list_selector.js b/app/assets/javascripts/sdg/related_list_selector.js index 8836acd77..f36c1f7b9 100644 --- a/app/assets/javascripts/sdg/related_list_selector.js +++ b/app/assets/javascripts/sdg/related_list_selector.js @@ -30,11 +30,11 @@ var keep_goal = $(amsify_suggestags.selector).val().split(",").some(function(selected_value) { return App.SDGRelatedListSelector.goal_code(value) === App.SDGRelatedListSelector.goal_code(selected_value); }); - App.SDGRelatedListSelector.goal_element(value).attr("aria-checked", keep_goal); + App.SDGRelatedListSelector.goal_element(value).prop("checked", keep_goal); App.SDGRelatedListSelector.manage_remove_help(amsify_suggestags, value); }, afterAdd: function(value) { - App.SDGRelatedListSelector.goal_element(value).attr("aria-checked", true); + App.SDGRelatedListSelector.goal_element(value).prop("checked", true); App.SDGRelatedListSelector.manage_add_help(amsify_suggestags, value); }, keepLastOnHoverTag: false, @@ -48,23 +48,24 @@ } }, manage_icons: function(amsify_suggestags) { - $("[role='checkbox']").on("click keydown", function(event) { + $(".sdg-related-list-selector .goals input").on("change", function() { var goal_id = this.dataset.code; - if (event.type === "click" || (event.type === "keydown" && [13, 32].indexOf(event.keyCode) >= 0)) { - if (amsify_suggestags.isPresent(goal_id)) { - amsify_suggestags.removeTag(goal_id, false); - } else { - amsify_suggestags.addTag(goal_id, false); - } - + if (amsify_suggestags.isPresent(goal_id)) { + amsify_suggestags.removeTag(goal_id, false); + } else { + amsify_suggestags.addTag(goal_id, false); + } + }).on("keydown", function(event) { + if (event.keyCode === 13) { + $(this).trigger("click"); event.preventDefault(); event.stopPropagation(); } }); }, goal_element: function(value) { - return $("li[data-code=" + App.SDGRelatedListSelector.goal_code(value) + "]"); + return $(".sdg-related-list-selector .goals [data-code=" + App.SDGRelatedListSelector.goal_code(value) + "]"); }, goal_code: function(value) { return value.toString().split(".")[0]; diff --git a/app/assets/stylesheets/mixins.scss b/app/assets/stylesheets/mixins.scss index 0974541c1..fe55cf996 100644 --- a/app/assets/stylesheets/mixins.scss +++ b/app/assets/stylesheets/mixins.scss @@ -240,7 +240,7 @@ width: calc(100% + #{$spacing}); width: calc(100% + #{$max-spacing}); - li { + > * { margin-bottom: 0; margin-left: $spacing; margin-left: $max-spacing; diff --git a/app/assets/stylesheets/sdg/related_list_selector.scss b/app/assets/stylesheets/sdg/related_list_selector.scss index a2de54bd5..684ef2022 100644 --- a/app/assets/stylesheets/sdg/related_list_selector.scss +++ b/app/assets/stylesheets/sdg/related_list_selector.scss @@ -12,22 +12,18 @@ } } - label + ul { + .goals { $spacing: 0.5%; @include sdg-goal-list($spacing); - li { + legend { + @include element-invisible; + } + + label { min-width: $sdg-icon-min-width; width: calc(100% / 17 - #{$spacing}); - &[aria-checked=true] img { - opacity: 0.15; - } - - &:focus { - outline: $outline-focus; - } - &:hover { cursor: pointer; } @@ -36,6 +32,18 @@ width: 100%; } } + + input { + @include element-invisible; + + &:focus + label { + outline: $outline-focus; + } + + &:checked + label img { + opacity: 0.15; + } + } } .input-section { diff --git a/app/components/sdg/related_list_selector_component.html.erb b/app/components/sdg/related_list_selector_component.html.erb index 3697bfa29..24e408e44 100644 --- a/app/components/sdg/related_list_selector_component.html.erb +++ b/app/components/sdg/related_list_selector_component.html.erb @@ -2,13 +2,12 @@