diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2026-03-18 07:53:00 +0100 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2026-03-18 07:53:00 +0100 |
| commit | 5caaa0edf377cce82d01b4d8f6aec90f1f5abf30 (patch) | |
| tree | 95bcb0d1f6e2afb76a51ac03cc2bc2a93f729679 /resources/assets/javascripts | |
| parent | 431fda0deda433186c5ea5740e2a2b120d2c1a14 (diff) | |
fix adding properties to resources category, fixes #6366
Closes #6366
Merge request studip/studip!4825
Diffstat (limited to 'resources/assets/javascripts')
| -rw-r--r-- | resources/assets/javascripts/lib/resources.js | 64 |
1 files changed, 25 insertions, 39 deletions
diff --git a/resources/assets/javascripts/lib/resources.js b/resources/assets/javascripts/lib/resources.js index 73623e1..8549070 100644 --- a/resources/assets/javascripts/lib/resources.js +++ b/resources/assets/javascripts/lib/resources.js @@ -490,73 +490,59 @@ class Resources static addResourcePropertyToTable(event) { - var select = jQuery(event.target).siblings('select')[0]; + event.preventDefault(); + event.stopPropagation(); + + const select = jQuery(this).siblings('select')[0]; if (!select) { //Something is wrong with the HTML return; } - var selected_property_id = jQuery(select).val(); - var selected_property = jQuery(select).children( - 'option:selected' - )[0]; + const selected_property = jQuery(select).children('option:selected'); if (!selected_property) { return; } - var selected_property_name = jQuery(selected_property).text(); + const selected_property_id = jQuery(select).val(); + const selected_property_name = jQuery(selected_property).text(); if (!selected_property_id || !selected_property_name) { //Invalid option return; } - var table = jQuery(event.target).parents( - 'table' - )[0]; + const table = jQuery(this).closest('table'); if (!table) { return; } - var template = jQuery(table).find('tr.template')[0]; + const template = jQuery(table).find('tr.template'); if (!template) { return; } - var new_row = jQuery(template).clone(); - if (!new_row) { - return; - } + const new_row = jQuery(template).clone(); - var text_field = jQuery(new_row).find('.name'); - jQuery(text_field).text(selected_property_name); - var set_input = jQuery(new_row).find('.property-input'); - jQuery(set_input).attr( - 'name', - 'prop[' + selected_property_id + ']' - ); - var value_input = jQuery(new_row).find('.value-input'); - jQuery(value_input).attr( - 'name', - 'prop_value[' + selected_property_id + ']' - ); - var requestable_input = jQuery(new_row).find('.requestable-input'); - jQuery(requestable_input).attr( - 'name', - 'prop_requestable[' + selected_property_id + ']' - ); - var protected_input = jQuery(new_row).find('.protected-input'); - jQuery(protected_input).attr( - 'name', - 'prop_protected[' + selected_property_id + ']' - ); + jQuery(new_row).find('.name').text(selected_property_name); + jQuery(new_row).find('.property-input').attr({ + name: `prop[${selected_property_id}]` + }); + jQuery(new_row).find('.value-input').attr({ + name: `prop_value[${selected_property_id}]` + }); + jQuery(new_row).find('.requestable-input').attr({ + name: `prop_requestable[${selected_property_id}]` + }); + jQuery(new_row).find('.protected-input').attr({ + name: `prop_protected[${selected_property_id}]` + }); - var tbody = jQuery(table).find('tbody')[0]; + const tbody = jQuery(table).find('tbody'); if (!tbody) { return; } - jQuery(new_row).removeClass('invisible'); - jQuery(new_row).removeClass('template'); + jQuery(new_row).removeClass(['invisible', 'template']); jQuery(new_row).data('property_id', selected_property_id); jQuery(tbody).append(new_row); jQuery(selected_property).attr('disabled', 'disabled'); |
