<%= error_messages_for 'resource_booking' %> <%= warning_messages_for 'resource_booking' %>

<%= f.select :project_id, project_tree_options_for_select(@projects, selected: @resource_booking_project), { required: true }, onchange: "updateResourceBookingFrom('#{update_url}')" %>

<%= f.select :assigned_to_id, principals_options_for_select(@resource_booking_project.users, @resource_booking.assigned_to), { required: true }, data: { user_workday_length: @user_workday_length }, onchange: "updateResourceBookingFrom('#{update_url}')" %>

<%# TODO: Use select2_tag when support for the dropdownParent option will be available Problem: Select2 input doesn't work when embedded in a modal window Link: https://select2.org/troubleshooting/common-problems#select2-does-not-function-properly-when-i-use-it-inside-a-bootst === select2_tag 'resource_booking[issue_id]', options_for_select(issues.map { |issue| [issue, issue.id] }, @resource_booking.issue.try(:id)), include_blank: true, url: issues_autocomplete_resource_bookings_path(project_id: project), allow_clear: true, dropdown_parent: 'ajax-modal' %> <%= select_tag 'resource_booking[issue_id]', options_for_select([[@issue, @issue.try(:id)]], @issue.try(:id)), include_blank: true %> <%= javascript_tag do %> $('#resource_booking_issue_id').select2({ placeholder: '', width: '95%', allowClear: true, templateResult: formatStateWithLineThrough, containerCssClass: 'icon icon-issue', dropdownParent: $('#ajax-modal'), ajax: { url: function () { return '<%= issues_autocomplete_resource_bookings_path(project_id: @resource_booking_project) %>' + '&user_id=' + $('#resource_booking_assigned_to_id').val() }, dataType: 'json', delay: 250, data: function (params) { return { q: params.term }; }, processResults: function (data, params) { return { results: data }; }, cache: true } }); $('#resource_booking_issue_id').on('select2:select', function (e) { var selectedData = e.params.data; $('#issue_start_date').text(selectedData.start_date); $('#issue_due_date').text(selectedData.due_date); }); updateWorkloadPercentage(); updateTotalHours(); <% end %>

<%= f.text_field :start_date, value: @resource_booking.start_date.try(:to_date), type: 'date', size: 10, required: true, onchange: "updateTotalHours();" %> <%= calendar_for('resource_booking_start_date') %> <%= gray_hint("issue_start_date", @issue.try(:start_date)) %>

<%= f.text_field :end_date, value: @resource_booking.end_date.try(:to_date), type: 'date', size: 10, onchange: "updateTotalHours();" %> <%= calendar_for('resource_booking_end_date') %> <%= gray_hint("issue_due_date", @issue.try(:due_date)) %>

<%= f.text_field :hours_per_day, required: true, oninput: "updateWorkloadPercentage(); updateTotalHours();" %> <%= gray_hint("user_workload") %>

<%= gray_hint("days_count") %> <%= gray_hint("dayoffs_count") %>

<%= f.text_area :notes, rows: 8, placeholder: l(:label_resources_leave_comment) %>