Skip to content

Commit 58963ee

Browse files
authored
fix: update "add_to" javascript... (#445)
...following "Replace existing relationships" checkbox addition Signed-off-by: tdruez <[email protected]>
1 parent b32166e commit 58963ee

File tree

2 files changed

+30
-25
lines changed

2 files changed

+30
-25
lines changed

component_catalog/templates/component_catalog/includes/add_to.js.html

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
let add_to_btn_wrapper = add_to_btn.parentElement;
55

66
let handle_button_display = function () {
7-
let checkedCheckboxes = document.querySelectorAll('main input[type="checkbox"]:checked');
7+
let checkedCheckboxes = document.querySelectorAll('#object-list-table input[type="checkbox"]:checked');
88
if (checkedCheckboxes.length >= 1) {
99
add_to_btn.classList.remove('disabled');
1010
add_to_btn_wrapper.setAttribute('data-bs-original-title', '');
@@ -15,7 +15,7 @@
1515
};
1616

1717
// Adding change event listener to all checkboxes
18-
document.querySelectorAll('main input[type="checkbox"]').forEach(function(checkbox) {
18+
document.querySelectorAll('#object-list-table input[type="checkbox"]').forEach(function(checkbox) {
1919
checkbox.addEventListener('change', handle_button_display);
2020
});
2121

@@ -27,35 +27,40 @@
2727
handle_button_display();
2828
});
2929

30-
$('#add-to-product-modal, #add-to-component-modal').on('show.bs.modal', function (event) {
31-
// Do not include the select-all as its value is not an id we want to keep
32-
let checked = $('main input[type="checkbox"]:checked').not('#checkbox-select-all');
30+
document.querySelectorAll('#add-to-product-modal, #add-to-component-modal').forEach(function(modal) {
31+
modal.addEventListener('show.bs.modal', function (event) {
32+
// Do not include the select-all as its value is not an id we want to keep
33+
let checked = Array.from(document.querySelectorAll('#object-list-table input[type="checkbox"]:checked'))
34+
.filter(checkbox => checkbox.id !== 'checkbox-select-all');
3335

34-
if (checked.length < 1) {
35-
event.preventDefault();
36-
return false;
37-
}
36+
if (checked.length < 1) {
37+
event.preventDefault();
38+
return false;
39+
}
3840

39-
let ids_input = $(this).find('#id_ids');
40-
let object_repr_list = $(this).find('#object-repe-list');
41+
let ids_input = modal.querySelector('#id_ids');
42+
let object_repr_list = modal.querySelector('#object-repr-list');
4143

42-
if (ids_input) {
43-
let selected_ids = [];
44-
object_repr_list.html('');
44+
if (ids_input) {
45+
let selected_ids = [];
46+
object_repr_list.innerHTML = '';
4547

46-
checked.each(function() {
47-
selected_ids.push(this.value);
48-
$('<li/>').text($(this).data('object-repr')).appendTo(object_repr_list);
49-
});
48+
checked.forEach(function(checkbox) {
49+
selected_ids.push(checkbox.value);
50+
let li = document.createElement('li');
51+
li.textContent = checkbox.dataset.objectRepr;
52+
object_repr_list.appendChild(li);
53+
});
5054

51-
ids_input.val(selected_ids);
55+
ids_input.value = selected_ids.join(',');
5256

53-
let new_component_link = $('#new-component-link');
54-
if (new_component_link) {
55-
let new_component_url = new_component_link.data('add-url') + '?package_ids=' + selected_ids.join();
56-
new_component_link.attr('href', new_component_url);
57+
let new_component_link = document.getElementById('new-component-link');
58+
if (new_component_link) {
59+
let new_component_url = new_component_link.dataset.addUrl + '?package_ids=' + selected_ids.join(',');
60+
new_component_link.setAttribute('href', new_component_url);
61+
}
5762
}
58-
}
63+
});
5964
});
6065

6166
// Select all forms with id starting with "add-to-"

component_catalog/templates/component_catalog/includes/add_to_modal.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ <h5 class="modal-title">{{ form.helper.modal_title }}</h5>
1313
{% if request.resolver_match.url_name|default:""|slice:"-4:" == "list" %}
1414
<hr>
1515
<h6>Selected objects:</h6>
16-
<ul id="object-repe-list" style="word-break: break-word;"></ul>
16+
<ul id="object-repr-list" style="word-break: break-word;"></ul>
1717
{% endif %}
1818
</div>
1919
<div class="modal-footer">

0 commit comments

Comments
 (0)