mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
DRY up selectize users helpers
(cherry picked from commit eb38ddc6c761d4920b35499690fd5681f0ea5385)
This commit is contained in:
parent
4a0142f6a6
commit
ebdb5cab8c
1 changed files with 25 additions and 8 deletions
|
|
@ -119,18 +119,35 @@ module ApplicationHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def speaker_selector_input(form)
|
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 }
|
user_selector_input(:speakers, form, '', false)
|
||||||
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' }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def responsibles_selector_input(form)
|
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 }
|
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,
|
form.input(
|
||||||
collection: options_for_select(users.map {|user| ["#{user[1]} (#{user[2]}) #{user[3]}", user[0]]}, @booth.responsibles.map(&:id)),
|
field,
|
||||||
include_blank: false, label: 'Responsibles', input_html: { class: 'select-help-toggle', multiple: 'true' },
|
as: :select,
|
||||||
hint: 'The people responsible for the booth. You can only select existing users.'
|
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
|
end
|
||||||
|
|
||||||
def event_types_sentence(conference)
|
def event_types_sentence(conference)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue