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"} } 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 } } end end