fix members_controller in app/controllers/.

This commit is contained in:
BOHUNG 2020-02-01 11:28:21 +08:00
parent 00d1af4260
commit 4805a1e34c
1 changed files with 32 additions and 20 deletions

View File

@ -69,21 +69,25 @@ class MembersController < ApplicationController
if params[:tag].blank? if params[:tag].blank?
MemberProfile.not_in(:role_status_ids.in=>role_status_ids).where(:role_ids.in=>[role['id']]).collect do |profile| MemberProfile.not_in(:role_status_ids.in=>role_status_ids).where(:role_ids.in=>[role['id']]).collect do |profile|
if profile.user.nil? if profile.user.nil? || profile.user.approved
member_profiles << get_member_data(profile, fields_to_show) get_member_data_return = get_member_data(profile, fields_to_show)
elsif profile.user.approved if !get_member_data_return.nil?
member_profiles << get_member_data(profile, fields_to_show) member_profiles << get_member_data_return
end
end end
end end
else else
tag = MemberTag.find(params[:tag]) rescue nil tag = MemberTag.find(params[:tag]) rescue nil
MemberProfile.not_in(:role_status_ids.in=>role_status_ids).where(:role_ids.in=>[role['id']], :member_tag_ids.in => [tag.id]).collect do |profile| if !tag.nil?
if profile.user.nil? MemberProfile.not_in(:role_status_ids.in=>role_status_ids).where(:role_ids.in=>[role['id']], :member_tag_ids.in => [tag.id]).each do |profile|
member_profiles << get_member_data(profile, fields_to_show) if profile.user.nil? || profile.user.approved
elsif profile.user.approved get_member_data_return = get_member_data(profile, fields_to_show)
member_profiles << get_member_data(profile, fields_to_show) if !get_member_data_return.nil?
member_profiles << get_member_data_return
end
end
end end
end if !tag.nil? end
end end
if member_sort_position if member_sort_position
member_profiles = member_profiles.sort_by{|data| (data['list_order'])} rescue member_profiles member_profiles = member_profiles.sort_by{|data| (data['list_order'])} rescue member_profiles
@ -113,10 +117,11 @@ class MembersController < ApplicationController
end end
mps.each do |member| mps.each do |member|
if member.user.nil? if member.user.nil? || member.user.approved
member_profiles << get_member_data(member, fields_to_show) get_member_data_return = get_member_data(member, fields_to_show)
elsif member.user.approved if !get_member_data_return.nil?
member_profiles << get_member_data(member, fields_to_show) member_profiles << get_member_data_return
end
end end
end end
if member_sort_position if member_sort_position
@ -128,13 +133,18 @@ class MembersController < ApplicationController
def get_member_data(member, fields_to_show) def get_member_data(member, fields_to_show)
image = member.avatar.present? ? member.avatar.thumb.url : ActionController::Base.helpers.asset_path('member-pic.png') image = member.avatar.present? ? member.avatar.thumb.url : ActionController::Base.helpers.asset_path('member-pic.png')
member_data_return = member_data(member, fields_to_show)
if !member_data_return.nil? && (!member_data_return.empty? rescue false)
{ {
'profile_data'=>member_data(member, fields_to_show), 'profile_data'=> member_data_return,
'list_order' => member.position, 'list_order' => member.position,
'name' => member.name, 'name' => member.name,
'image'=>image, 'image'=>image,
"link_to_show" => OrbitHelper.url_to_show(member.to_param) "link_to_show" => OrbitHelper.url_to_show(member.to_param)
} }
else
nil
end
end end
def show def show
@ -374,6 +384,7 @@ class MembersController < ApplicationController
if !field['id'].blank? if !field['id'].blank?
next if !privacy_approved_status next if !privacy_approved_status
av = member.attribute_values.find_by(:attribute_field_id=>field['id'],:key=>field['key']) rescue nil av = member.attribute_values.find_by(:attribute_field_id=>field['id'],:key=>field['key']) rescue nil
av = member.attribute_values.find_by(:attribute_field_id=>field['id']) rescue nil if av.nil? #some role's key has been changed to sort number,so it doesn't work when searching field from using its key
field_data = {"value" => "&nbsp;"} field_data = {"value" => "&nbsp;"}
if !av.nil? if !av.nil?
r = av.attribute_field.role rescue nil r = av.attribute_field.role rescue nil
@ -435,11 +446,11 @@ class MembersController < ApplicationController
@new_field_data = member.get_attribute_data(field) rescue {} @new_field_data = member.get_attribute_data(field) rescue {}
break if @new_field_data['value'].to_s.gsub('&nbsp;','').strip !="" break if @new_field_data['value'].to_s.gsub('&nbsp;','').strip !=""
end end
field_data['value'] = @new_field_data['value'].nil? ? "&nbsp" :@new_field_data['value'] field_data['value'] = @new_field_data['value'].nil? ? "&nbsp" : @new_field_data['value']
I18n.locale = @locale I18n.locale = @locale
end end
if field['link_to_show'] if field['link_to_show']
if field_data['value'] == '&nbsp;' #需jquery刪除空白欄位 if field_data['value'] == '&nbsp;' #空白欄位
field_data['value'] = "" #若無網站連結,刪除實驗室網站字樣 field_data['value'] = "" #若無網站連結,刪除實驗室網站字樣
field_data['title'] = "" #無網站連結,則不顯示 field_data['title'] = "" #無網站連結,則不顯示
elsif field_data['value'].include? 'href=' elsif field_data['value'].include? 'href='
@ -456,8 +467,9 @@ class MembersController < ApplicationController
field_data['title_class'] = "member-data-title-"+field['key'].underscore.gsub('_','-') field_data['title_class'] = "member-data-title-"+field['key'].underscore.gsub('_','-')
field_data['value_class'] = "member-data-value-"+field['key'].underscore.gsub('_','-') field_data['value_class'] = "member-data-value-"+field['key'].underscore.gsub('_','-')
next if field_data['value'] == "" || field_data['value'] == '&nbsp;' if !field_data['title'].blank? && !field_data['value'].blank?
profile_data.push(field_data) profile_data.push(field_data)
end
end end
return profile_data return profile_data
end end