124 lines
3.4 KiB
Ruby
124 lines
3.4 KiB
Ruby
ActiveAdmin.register JamRuby::User, :as => 'Users' do
|
|
|
|
|
|
collection_action :autocomplete_user_email, :method => :get
|
|
|
|
menu :label => 'Users', :parent => 'Users'
|
|
|
|
config.sort_order = 'created_at DESC'
|
|
|
|
filter :email
|
|
filter :first_name
|
|
filter :last_name
|
|
filter :internet_service_provider
|
|
filter :created_at
|
|
filter :updated_at
|
|
|
|
|
|
form do |ff|
|
|
ff.inputs "Details" do
|
|
ff.input :email
|
|
ff.input :admin
|
|
ff.input :raw_password, :label => 'Password'
|
|
ff.input :first_name
|
|
ff.input :last_name
|
|
ff.input :city
|
|
ff.input :state
|
|
ff.input :country
|
|
ff.input :musician
|
|
ff.input :can_invite
|
|
ff.input :photo_url
|
|
ff.input :internet_service_provider
|
|
ff.input :session_settings
|
|
end
|
|
ff.inputs "Signup" do
|
|
ff.input :email_template, :label => 'Welcome Email Template Name'
|
|
ff.input :confirm_url, :label => 'Signup Confirm URL'
|
|
end
|
|
ff.actions
|
|
end
|
|
|
|
show do |user|
|
|
attributes_table do
|
|
row :id
|
|
row :email
|
|
row :admin
|
|
row :updated_at
|
|
row :created_at
|
|
row :musician
|
|
row :city
|
|
row :state
|
|
row :country
|
|
row :first_name
|
|
row :last_name
|
|
row :birth_date
|
|
row :gender
|
|
row :internet_service_provider
|
|
row :email_confirmed
|
|
row :image do user.photo_url ? image_tag(user.photo_url) : '' end
|
|
row :session_settings
|
|
row :can_invite
|
|
end
|
|
active_admin_comments
|
|
end
|
|
index do
|
|
column "ID" do |user|
|
|
link_to(truncate(user.id, {:length => 12}),
|
|
resource_path(user),
|
|
{:title => user.id})
|
|
end
|
|
column "Email" do |user|
|
|
link_to user.email, resource_path(user)
|
|
end
|
|
column :admin
|
|
column :updated_at
|
|
column :created_at
|
|
column :musician do |user| user.musician? ? true : false end
|
|
column :city
|
|
column :state
|
|
column :country
|
|
column :first_name
|
|
column :last_name
|
|
column :birth_date
|
|
column :gender
|
|
column :internet_service_provider
|
|
column :email_confirmed
|
|
column :photo_url
|
|
column :session_settings
|
|
column :can_invite
|
|
|
|
# default_actions # use this for all view/edit/delete links
|
|
column "Actions" do |user|
|
|
links = ''.html_safe
|
|
links << link_to("View", resource_path(user), :class => "member_link view_link")
|
|
links << link_to("Edit", edit_resource_path(user), :class => "member_link edit_link")
|
|
links
|
|
end
|
|
end
|
|
|
|
|
|
controller do
|
|
|
|
# this actually searches on first name, last name, and email, because of get_autocomplete_items defined below
|
|
autocomplete :user, :email, :full => true, :display_value => :autocomplete_display_name
|
|
|
|
def get_autocomplete_items(parameters)
|
|
items = User.select("DISTINCT email, first_name, last_name, id").where(["email ILIKE ? OR first_name ILIKE ? OR last_name ILIKE ?", "%#{parameters[:term]}%", "%#{parameters[:term]}%", "%#{parameters[:term]}%"])
|
|
end
|
|
|
|
def create
|
|
@jam_ruby_user = JamRuby::User.new(params[:jam_ruby_user])
|
|
@jam_ruby_user.administratively_created = true
|
|
if @jam_ruby_user.password.nil? || @jam_ruby_user.password.length == 0
|
|
# a nil password in the form means we simply won't create one; however,
|
|
# the password_digest has to be set to something to make 'has_secure_password' happy
|
|
@jam_ruby_user.password_digest = SecureRandom.urlsafe_base64
|
|
end
|
|
|
|
# call `create!` to ensure that the rest of the action continues as normal
|
|
create!
|
|
end
|
|
end
|
|
|
|
end
|