orbit4-5/app/controllers/members_controller.rb

136 lines
4.4 KiB
Ruby
Raw Normal View History

2014-06-18 12:24:26 +00:00
class MembersController < ApplicationController
def index
members = MemberProfile.all
member_list = members.collect do |member|
if member.avatar.present?
image = member.avatar.thumb.url
else
image = "http://placehold.it/100x100"
end
roles = member.roles.collect do |role|
{
"role" => role.title
}
end
{
"name" => member.name,
"email" => member.email,
"roles" => roles,
"img_src" => image,
"link_to_show" => OrbitHelper.url_to_show(member.to_param)
}
end
{
"members" => member_list,
"extras" => {"widget-title"=>"Members"}
}
2014-06-18 12:24:26 +00:00
end
def show
params = OrbitHelper.params
member = MemberProfile.find_by(uid: params[:uid])
plugins = OrbitApp::Plugin::Registration.all rescue nil
plugin_list = plugins.collect do |plugin|
plugin_data = plugin.app_name.constantize.where(member_profile_id: member) rescue nil
pd = plugin_data.collect do |p|
{
"data_title" => p.slug_title,
"link_to_show" => OrbitHelper.url_to_show(p.to_param)
}
end
{
"plugin_data" => pd,
"plugin_title" => plugin.app_name.titleize
}
end
if member.avatar.present?
image = member.avatar.thumb.url
else
image = "http://placehold.it/100x100"
end
custom_fields = member.member_profile_field_values.collect do |cf|
if (cf.member_profile_field.markup.eql?("text_field") || cf.member_profile_field.markup.eql?("text_area"))
custom_field_value = cf.value[I18n.locale]
elsif (cf.member_profile_field.markup.eql?("select") || cf.member_profile_field.markup.eql?("radio_button"))
custom_field_value = cf.member_profile_field.markup_value["#{cf.value}"][I18n.locale]
elsif cf.member_profile_field.markup.eql?("address")
custom_field_value = cf[:address_key][I18n.locale].map{|k,v| v}.join(', ')
elsif cf.member_profile_field.markup.eql?("date")
case cf.member_profile_field.typeC['format']
when 'format1'
custom_field_value = cf.value.to_date.strftime("%Y/%m/%d")
when 'format2'
custom_field_value = cf.value.to_date.strftime("%Y/%m/%d")
when 'format3'
custom_field_value = cf.value.to_date.strftime("%Y/%m")
when 'format4'
custom_field_value = cf.value.to_date.strftime("%Y")
end
elsif cf.member_profile_field.markup.eql?("checkbox")
custom_field_value = cf.value.map {|v| cf.member_profile_field.markup_value["#{v}"][I18n.locale]}.join(', ')
end
{
"custom_field_title" => cf.member_profile_field.title,
"custom_field_value" => custom_field_value
}
end
role_fields = member.attribute_values.collect do |rf|
if (rf.attribute_field.markup.eql?("text_field") || rf.attribute_field.markup.eql?("text_area"))
role_field_value = rf.value[I18n.locale]
elsif (rf.attribute_field.markup.eql?("select") || rf.attribute_field.markup.eql?("radio_button"))
role_field_value = rf.attribute_field.markup_value["#{rf.value}"][I18n.locale]
elsif rf.attribute_field.markup.eql?("address")
role_field_value = rf[:address_key][I18n.locale].map{|k,v| v}.join(', ')
elsif rf.attribute_field.markup.eql?("date")
case rf.attribute_field.typeC['format']
when 'format1'
role_field_value = rf.value.to_date.strftime("%Y/%m/%d")
when 'format2'
role_field_value = rf.value.to_date.strftime("%Y/%m/%d")
when 'format3'
role_field_value = rf.value.to_date.strftime("%Y/%m")
when 'format4'
role_field_value = rf.value.to_date.strftime("%Y")
end
elsif rf.attribute_field.markup.eql?("checkbox")
role_field_value = rf.value.map {|v| rf.attribute_field.markup_value["#{v}"][I18n.locale]}.join(', ')
end
{
"role_field_title" => rf.attribute_field.title,
"role_field_value" => role_field_value
}
end
roles = member.roles.collect do |role|
{
"role" => role.title
}
end
{
"roles" => roles,
"plugins" => plugin_list,
"custom_fields" => custom_fields,
"role_fields" => role_fields,
"data" => {
"name" => member.name,
"img_src" => image,
"email" => member.email,
"autobiography" => member.autobiography,
"gender" => member.sex,
"office" => member.office_tel,
"birthday" => member.birthday,
"id" => member.sid
}
}
2014-06-18 12:24:26 +00:00
end
end