diff options
Diffstat (limited to 'app/helpers/form_helper.rb')
-rw-r--r-- | app/helpers/form_helper.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/app/helpers/form_helper.rb b/app/helpers/form_helper.rb index 1182939f656..639a720b024 100644 --- a/app/helpers/form_helper.rb +++ b/app/helpers/form_helper.rb @@ -15,4 +15,37 @@ module FormHelper end end end + + def issue_dropdown_options(issuable, has_multiple_assignees = true) + options = { + toggle_class: 'js-user-search js-assignee-search', + title: 'Select assignee', + filter: true, + dropdown_class: 'dropdown-menu-user dropdown-menu-selectable dropdown-menu-assignee', + placeholder: 'Search users', + data: { + first_user: current_user&.username, + null_user: true, + current_user: true, + project_id: issuable.project.try(:id), + field_name: "#{issuable.class.model_name.param_key}[assignee_ids][]", + default_label: 'Assignee', + 'max-select': 1, + 'dropdown-header': 'Assignee', + } + } + + if has_multiple_assignees + options[:toggle_class] += ' js-multiselect js-save-user-data' + options[:title] = 'Select assignee(s)' + options[:data][:multi_select] = true + options[:data][:'input-meta'] = 'name' + options[:data][:'always-show-selectbox'] = true + options[:data][:current_user_info] = current_user.to_json(only: [:id, :name]) + options[:data][:'dropdown-header'] = 'Assignee(s)' + options[:data].delete(:'max-select') + end + + options + end end |