From 9cbde5e91c0061cd8893a563abd02f258688f4f8 Mon Sep 17 00:00:00 2001 From: Moritz Strohm <strohm@data-quest.de> Date: Thu, 23 Nov 2023 15:19:10 +0000 Subject: [PATCH] allow unsetting assigned persons for resource properties of type "user" re #988 Merge request studip/studip!2020 --- .../resources/ResourcePropertyDefinition.class.php | 13 +++++++++++-- resources/assets/javascripts/bootstrap/resources.js | 2 +- .../bootstrap/studip_helper_attributes.js | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/models/resources/ResourcePropertyDefinition.class.php b/lib/models/resources/ResourcePropertyDefinition.class.php index 3525e413bde..04c492444e4 100644 --- a/lib/models/resources/ResourcePropertyDefinition.class.php +++ b/lib/models/resources/ResourcePropertyDefinition.class.php @@ -244,14 +244,23 @@ class ResourcePropertyDefinition extends SimpleORMap $search = new QuickSearch($input_name, new StandardSearch('user_id')); $search->defaultValue($value, ($value ? get_fullname($value, 'full_rev_username') : '')); return sprintf( - '<label %1$s>%2$s%3$s</label>', + '<label %1$s>%2$s<div class="assigned-user-search-wrapper flex-row">%3$s%4$s</div></label>', ( $label_html_classes ? 'class="' . htmlReady($label_html_classes) . '"' : '' ), $this->__toString(), - $search->render() + $search->render(), + Icon::create('refresh')->asImg( + [ + 'class' => 'delete-assigned-user-icon enter-accessible', + 'data-input-name' => $input_name, + 'title' => _('Zuorndung entfernen'), + 'tabindex' => '0', + 'aria-role' => 'button' + ] + ) ); } else { $input_type = 'text'; diff --git a/resources/assets/javascripts/bootstrap/resources.js b/resources/assets/javascripts/bootstrap/resources.js index 1238cec7e0c..388f47576e5 100644 --- a/resources/assets/javascripts/bootstrap/resources.js +++ b/resources/assets/javascripts/bootstrap/resources.js @@ -773,7 +773,7 @@ STUDIP.ready(function () { jQuery(document).on( 'click', - '.create-booking-form .delete-assigned-user-icon', + '.delete-assigned-user-icon', function (event) { var quicksearch = jQuery(event.target).parent().find('input'); if (!quicksearch) { diff --git a/resources/assets/javascripts/bootstrap/studip_helper_attributes.js b/resources/assets/javascripts/bootstrap/studip_helper_attributes.js index 0cdbaf37b44..8f96dcbe480 100644 --- a/resources/assets/javascripts/bootstrap/studip_helper_attributes.js +++ b/resources/assets/javascripts/bootstrap/studip_helper_attributes.js @@ -258,6 +258,7 @@ $(document).on('change', 'input[data-must-equal]', function() { $(document).on('keydown', '.enter-accessible', function(event) { if (event.code == 'Enter') { //The enter key has been pressed. + event.preventDefault(); $(this).trigger('click'); } }); -- GitLab