mirror of
https://github.com/openSUSE/osem.git
synced 2026-04-24 17:01:22 -04:00
DRY up selectize users helpers
(cherry picked from commit eb38ddc6c761d4920b35499690fd5681f0ea5385)
This commit is contained in:
committed by
Ana María Martínez Gómez
parent
4a0142f6a6
commit
ebdb5cab8c
@@ -119,18 +119,35 @@ module ApplicationHelper
|
||||
end
|
||||
|
||||
def speaker_selector_input(form)
|
||||
users = User.active.pluck(:id, :name, :username, :email).map { |user| [user[0], user[1].blank? ? user[2] : user[1], user[2], user[3]] }.sort_by { |user| user[1].downcase }
|
||||
form.input :speakers, as: :select,
|
||||
collection: options_for_select(users.map {|user| ["#{user[1]} (#{user[2]}) #{user[3]}", user[0]]}, @event.speakers.map(&:id)),
|
||||
include_blank: false, label: 'Speakers', input_html: { class: 'select-help-toggle', multiple: 'true' }
|
||||
user_selector_input(:speakers, form, '', false)
|
||||
end
|
||||
|
||||
def responsibles_selector_input(form)
|
||||
user_selector_input(
|
||||
:responsibles,
|
||||
form,
|
||||
'The people responsible for the booth. You can only select existing users.'
|
||||
)
|
||||
end
|
||||
|
||||
def user_selector_input(field, form, hint = '', multiple = true)
|
||||
users = User.active.pluck(:id, :name, :username, :email).map { |user| [user[0], user[1].blank? ? user[2] : user[1], user[2], user[3]] }.sort_by { |user| user[1].downcase }
|
||||
form.input :responsibles, as: :select,
|
||||
collection: options_for_select(users.map {|user| ["#{user[1]} (#{user[2]}) #{user[3]}", user[0]]}, @booth.responsibles.map(&:id)),
|
||||
include_blank: false, label: 'Responsibles', input_html: { class: 'select-help-toggle', multiple: 'true' },
|
||||
hint: 'The people responsible for the booth. You can only select existing users.'
|
||||
form.input(
|
||||
field,
|
||||
as: :select,
|
||||
include_blank: true,
|
||||
label: field.to_s.titleize,
|
||||
hint: hint,
|
||||
collection: options_for_select(
|
||||
users.map { |user| ["#{user[1]} (#{user[2]}) #{user[3]}", user[0]] },
|
||||
(form.object.send(field)&.map(&:id) || form.object.send(field)&.id)
|
||||
),
|
||||
input_html: {
|
||||
class: 'select-help-toggle',
|
||||
multiple: multiple,
|
||||
placeholder: (multiple ? 'Select users...' : 'Select a user...')
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
def event_types_sentence(conference)
|
||||
|
||||
Reference in New Issue
Block a user