Only the fields with a value will be displayed

This commit is contained in:
Saurabh Bhatia 2014-06-29 20:42:15 +08:00
parent 9cb35af4ad
commit 77b31482e5
4 changed files with 81 additions and 50 deletions

View File

@ -113,7 +113,6 @@ class Admin::MembersController < OrbitMemberController
@user = User.new(user_params) rescue nil
if @member.save
@user.member_profile_id = @member.id
if !params[:member_profile_field_values].nil?
params[:member_profile_field_values].each_with_index do |m,i|
@custom_field_value = @member.member_profile_field_values.build(value: m.second["value"], member_profile_field_id: m.second["member_profile_field_id"])
@ -121,6 +120,13 @@ class Admin::MembersController < OrbitMemberController
end
end
if !params[:role_field_values].nil?
params[:role_field_values].each_with_index do |r,i|
field_value = r.last[:id].present?
@custom_field_value = AttributeValue.put_field_values(@member, r.last, r.last[:attribute_field_id], field_value)
end
end
@user.save
redirect_to admin_members_path
else

View File

@ -106,9 +106,9 @@ class MembersController < ApplicationController
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]
custom_field_value = cf.member_profile_field.markup_value["#{cf.value}"][I18n.locale] rescue nil
elsif cf.member_profile_field.markup.eql?("address")
custom_field_value = cf[:address_key][I18n.locale].map{|k,v| v}.join(', ')
custom_field_value = cf[:address_key][I18n.locale].map{|k,v| v}.delete_if(&:blank?).join(', ')
elsif cf.member_profile_field.markup.eql?("date")
case cf.member_profile_field.typeC['format']
@ -122,13 +122,21 @@ class MembersController < ApplicationController
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(', ')
custom_field_value = cf.value.map {|v| cf.member_profile_field.markup_value["#{v}"][I18n.locale]}.join(', ') rescue nil
end
if !custom_field_value.blank?
{
"custom_field_title" => cf.member_profile_field.title,
"custom_field_value" => custom_field_value
}
else
{
"custom_field_title" => "",
"custom_field_value" => ""
}
end
end
custom_fields_final = custom_fields.map {|c| c.delete_if {|k,v| (v.nil? || v.blank?)}}.delete_if(&:blank?)
role_fields = member.attribute_values.collect do |rf|
if (rf.attribute_field.markup.eql?("text_field") || rf.attribute_field.markup.eql?("text_area"))
@ -136,7 +144,7 @@ class MembersController < ApplicationController
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] rescue nil
elsif rf.attribute_field.markup.eql?("address")
role_field_value = rf[:address_key][I18n.locale].map{|k,v| v}.join(', ')
role_field_value = rf[:address_key][I18n.locale].map{|k,v| v}.delete_if(&:blank?).join(', ')
elsif rf.attribute_field.markup.eql?("date")
case rf.attribute_field.typeC['format']
@ -152,32 +160,44 @@ class MembersController < ApplicationController
elsif rf.attribute_field.markup.eql?("checkbox")
role_field_value = rf.value.map {|v| rf.attribute_field.markup_value["#{v}"][I18n.locale]}.join(', ') rescue nil
end
if !role_field_value.blank?
{
"role_field_title" => rf.attribute_field.title,
"role_field_value" => role_field_value
}
else
{
"role_field_title" => "",
"role_field_value" => ""
}
end
end
role_fields_final = role_fields.map {|r| r.delete_if {|k,v| (v.nil? || v.blank?)}}.delete_if(&:blank?)
roles = member.roles.collect do |role|
{
"role" => role.title
}
end
data = []
member.values_for_show.each do |key,value|
data << {"key" => key.humanize, "value" => value}
end
autobiography = []
if !member.get_autobiography_for_show.blank?
autobiography << {"key" => "#{member.get_autobiography_for_show.first[0].capitalize}", "value" => member.get_autobiography_for_show["autobiography"]}
end
image = member.get_image_for_show["img_src"]
{
"roles" => roles,
"plugins" => plugin_list,
"custom_fields" => custom_fields,
"role_fields" => role_fields,
"data" => {
"name" => member.name,
"custom_fields_final" => custom_fields_final,
"role_fields_final" => role_fields_final,
"member_data" => data,
"autobiography_data" => autobiography,
"data" => {
"img_src" => image,
"email" => member.email,
"autobiography" => member.autobiography,
"gender" => member.sex,
"office" => member.office_tel,
"birthday" => member.birthday,
"id" => member.sid
"name" => member.name
}
}
end

View File

@ -120,6 +120,36 @@ class MemberProfile
member_data_tmp = member_data.collect {|v| v[1] }
end
def values_for_show
attribute_values = self.attributes.select{|k,v| v if (k.in?(["office_tel","sid","email"]) && v.present?)}
name_fields = {"name" => self.name}
if self.sex.present?
gender_fields = {"gender" => self.sex}
end
values = [attribute_values, name_fields, gender_fields].delete_if(&:nil?)
values.inject(&:merge)
end
def get_image_for_show
if self.avatar.present?
image = self.avatar.thumb.url
else
image = "http://placehold.it/100x100"
end
image_fields = {"img_src" => image}
end
def get_autobiography_for_show
if autobiography.present?
autobiography = {"autobiography" => self.attributes["autobiography"][I18n.locale]}
else
autobiography = {}
end
end
def assign_default_position?
self.position.nil? || self.parent_id_changed?
end

View File

@ -11,48 +11,23 @@
</span>
</span>
</small>
<div data-list="role_fields" data-level="0">
<div data-list="role_fields_final" data-level="0">
<p>{{role_field_title}} : {{role_field_value}}</p>
</div>
<table>
<thead>
<tr class="table">
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>id number:</td>
<td>{{id}}</td>
</tr>
<tr>
<td>e-mail:</td>
<td>{{email}}</td>
</tr>
<tr>
<td>gender:</td>
<td>{{gender}}</td>
</tr>
<tr>
<td>birthday:</td>
<td>{{birthday}}</td>
</tr>
<tr>
<td>office telephone:</td>
<td>{{office}}</td>
</tr>
</tbody>
</table>
<div data-list="member_data" data-level="0">
<p>{{key}} : {{value}}</p>
</div>
<div data-list="custom_fields" data-level="0">
<div data-list="custom_fields_final" data-level="0">
<p>{{custom_field_title}} : {{custom_field_value}}</p>
</div>
<section class="post">
<p class="pic"><img src="{{img_src}}" alt=""></p>
<h3>Autobiography:</h3>
<p>{{autobiography}}</p>
<div data-list="autobiography_data" data-level="0">
<h3>{{key}}:</h3>
<p>{{value}}</p>
</div>
</section>
<div data-list="plugins" data-level="0">