2014-06-18 12:24:26 +00:00
|
|
|
class MembersController < ApplicationController
|
|
|
|
def index
|
2014-06-24 06:07:59 +00:00
|
|
|
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
|
2014-06-24 06:07:59 +00:00
|
|
|
params = OrbitHelper.params
|
|
|
|
|
|
|
|
member = MemberProfile.find_by(uid: params[:uid])
|
|
|
|
|
|
|
|
plugins = OrbitApp::Plugin::Registration.all rescue nil
|
2014-06-25 13:40:13 +00:00
|
|
|
plugin_list = plugins.collect do |plugin|
|
|
|
|
intro = PersonalPluginIntro.find_by(member_profile_id:member.id, _type: "#{plugin.app_name}Intro")
|
2014-06-24 06:07:59 +00:00
|
|
|
|
2014-06-25 13:40:13 +00:00
|
|
|
if intro.complete_list == true
|
|
|
|
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) + "?method=personal_plugin&plugin_name=#{plugin.app_name}"
|
|
|
|
}
|
|
|
|
end
|
|
|
|
{
|
|
|
|
"plugin_data" => pd,
|
|
|
|
"plugin_title" => plugin.app_name.titleize
|
|
|
|
}
|
|
|
|
# end
|
|
|
|
elsif intro.brief_intro == true
|
|
|
|
pd = []
|
2014-06-26 02:00:55 +00:00
|
|
|
pd << {"data_title" => intro.text.html_safe}
|
2014-06-25 13:40:13 +00:00
|
|
|
{
|
|
|
|
"plugin_data" => pd,
|
|
|
|
"plugin_title" => plugin.app_name.titleize
|
|
|
|
}
|
|
|
|
end
|
|
|
|
end
|
2014-06-24 06:07:59 +00:00
|
|
|
|
|
|
|
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
|
2014-06-25 05:27:34 +00:00
|
|
|
|
|
|
|
def personal_plugin
|
|
|
|
params = OrbitHelper.params
|
|
|
|
plugin_class = params[:plugin_name].constantize
|
|
|
|
plugin_value = plugin_class.find_by(uid: params[:uid])
|
|
|
|
data = []
|
|
|
|
plugin_value.values_for_view.each do |key,value|
|
|
|
|
data << {"key" => key.humanize, "value" => value}
|
|
|
|
end
|
|
|
|
{
|
|
|
|
"plugin_data" => data
|
|
|
|
}
|
|
|
|
end
|
2014-06-18 12:24:26 +00:00
|
|
|
end
|