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 09:38:04 +0100 |
| commit | 0458a37941745bb4f4be6bc0ff3aca4e4d9977a8 (patch) | |
| tree | fe52c2879753e266d63c98d5e101b1a0d09d255b | |
| parent | bb974dd27ea9e7d4185afd04b9c2f442f6fe61cb (diff) | |
fix adding properties to resources category, fixes #6366
Closes #6366
Merge request studip/studip!4825
| -rw-r--r-- | app/views/resources/category/_add_edit_form.php | 2 | ||||
| -rw-r--r-- | resources/assets/javascripts/lib/resources.js | 64 |
2 files changed, 26 insertions, 40 deletions
diff --git a/app/views/resources/category/_add_edit_form.php b/app/views/resources/category/_add_edit_form.php index 148107a..83f505e 100644 --- a/app/views/resources/category/_add_edit_form.php +++ b/app/views/resources/category/_add_edit_form.php @@ -143,7 +143,7 @@ </option> <? endforeach ?> </select> - <?= Icon::create('add')->asImg(['class' => 'add-action']) ?> + <?= Icon::create('add')->asInput(['class' => 'add-action']) ?> </td> </tr> </tfoot> 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'); |
