2014-05-01 07:14:16 +00:00
|
|
|
class Admin::MembersController < OrbitMemberController
|
2014-05-26 01:45:46 +00:00
|
|
|
before_action :set_member_profile, only: [:show, :edit, :update]
|
2014-05-09 06:03:55 +00:00
|
|
|
|
2014-05-01 07:14:16 +00:00
|
|
|
def index
|
2014-05-26 10:52:15 +00:00
|
|
|
@roles = Role.where(disabled: false).asc("_id")
|
2014-05-09 06:03:55 +00:00
|
|
|
page_num = params[:page] || 1
|
2014-05-01 07:14:16 +00:00
|
|
|
|
|
|
|
@filter = params[:filter]
|
|
|
|
@mq = params[:mq]
|
|
|
|
@new_filter = params[:new_filter]
|
|
|
|
|
|
|
|
if @filter && params[:clear]
|
|
|
|
@filter.delete(params[:type])
|
|
|
|
elsif @filter && @new_filter
|
|
|
|
if @filter.has_key?(@new_filter[:type]) && @filter[@new_filter[:type]].include?(@new_filter[:id].to_s)
|
|
|
|
@filter[@new_filter[:type]].delete(@new_filter[:id].to_s)
|
|
|
|
elsif @filter.has_key?(@new_filter[:type])
|
|
|
|
@filter[@new_filter[:type]] << @new_filter[:id].to_s
|
|
|
|
else
|
|
|
|
@filter.merge!({@new_filter[:type] => [@new_filter[:id].to_s]})
|
|
|
|
end
|
|
|
|
elsif @new_filter
|
|
|
|
@filter = {@new_filter[:type] => [@new_filter[:id].to_s]}
|
|
|
|
end
|
|
|
|
|
|
|
|
if @filter.blank? and @mq.blank?
|
|
|
|
|
|
|
|
render case params[:at]
|
|
|
|
when 'summary'
|
2014-05-26 01:45:46 +00:00
|
|
|
@members=MemberProfile.all.page(page_num).per(12).desc("_id")
|
2014-05-01 07:14:16 +00:00
|
|
|
"index_summary"
|
|
|
|
when 'thumbnail'
|
2014-05-26 01:45:46 +00:00
|
|
|
@members=MemberProfile.all.page(page_num).per(36).desc("_id")
|
2014-05-01 07:14:16 +00:00
|
|
|
"index_thumbnail"
|
|
|
|
else
|
2014-05-26 01:45:46 +00:00
|
|
|
@members=MemberProfile.all.page(page_num).per(10).desc("_id")
|
2014-05-01 07:14:16 +00:00
|
|
|
"index"
|
|
|
|
end
|
|
|
|
|
|
|
|
elsif @filter.blank? and !@mq.blank?
|
|
|
|
|
|
|
|
render case params[:at]
|
|
|
|
when 'summary'
|
2014-05-26 01:45:46 +00:00
|
|
|
@members=MemberProfile.all.any_of({:user_id => /#{@mq}/i}, {:first_name => /#{@mq}/i}, {:last_name => /#{@mq}/i}, {:email => /#{@mq}/i}, {:office_tel => /#{@mq}/i}).desc("_id")
|
2014-05-01 07:14:16 +00:00
|
|
|
"index_summary"
|
|
|
|
when 'thumbnail'
|
2014-05-26 01:45:46 +00:00
|
|
|
@members=MemberProfile.all.any_of({:user_id => /#{@mq}/i}, {:first_name => /#{@mq}/i}, {:last_name => /#{@mq}/i}, {:email => /#{@mq}/i}, {:office_tel => /#{@mq}/i}).desc("_id")
|
2014-05-01 07:14:16 +00:00
|
|
|
"index_thumbnail"
|
|
|
|
else
|
2014-05-26 01:45:46 +00:00
|
|
|
@members=MemberProfile.all.any_of({:user_id => /#{@mq}/i}, {:first_name => /#{@mq}/i}, {:last_name => /#{@mq}/i}, {:email => /#{@mq}/i}, {:office_tel => /#{@mq}/i}).desc("_id")
|
2014-05-01 07:14:16 +00:00
|
|
|
"index"
|
|
|
|
end
|
|
|
|
|
|
|
|
elsif !@filter.blank? and @mq.blank?
|
|
|
|
|
|
|
|
render case params[:at]
|
|
|
|
when 'summary'
|
2014-05-26 01:45:46 +00:00
|
|
|
@members=MemberProfile.all.any_in(:role_ids=>@filter['role']).page(page_num).per(12).desc("_id")
|
2014-05-01 07:14:16 +00:00
|
|
|
"index_summary"
|
|
|
|
when 'thumbnail'
|
2014-05-26 01:45:46 +00:00
|
|
|
@members=MemberProfile.all.any_in(:role_ids=>@filter['role']).page(page_num).per(36).desc("_id")
|
2014-05-01 07:14:16 +00:00
|
|
|
"index_thumbnail"
|
|
|
|
else
|
2014-05-26 01:45:46 +00:00
|
|
|
@members=MemberProfile.all.any_in(:role_ids=>@filter['role']).page(page_num).per(10).desc("_id")
|
2014-05-01 07:14:16 +00:00
|
|
|
"index"
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
2014-05-09 06:03:55 +00:00
|
|
|
def show
|
|
|
|
end
|
|
|
|
|
2014-05-01 07:14:16 +00:00
|
|
|
def new
|
2014-05-26 01:45:46 +00:00
|
|
|
@member = MemberProfile.new
|
|
|
|
get_info_and_roles
|
|
|
|
@user = User.new
|
2014-05-26 10:52:15 +00:00
|
|
|
@form_index = 0
|
2014-05-01 07:14:16 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def edit
|
2014-05-26 10:52:15 +00:00
|
|
|
@form_index = 0
|
2014-05-27 10:37:59 +00:00
|
|
|
get_info_and_roles
|
2014-05-26 01:45:46 +00:00
|
|
|
if @member.user.present?
|
|
|
|
@user = @member.user
|
|
|
|
else
|
|
|
|
@user = User.new(member_profile_id: @member.id)
|
|
|
|
end
|
2014-05-01 07:14:16 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def create
|
2014-05-26 01:45:46 +00:00
|
|
|
@member = MemberProfile.new(member_profile_params)
|
|
|
|
@user = User.new(user_params)
|
|
|
|
|
|
|
|
if @member.save
|
|
|
|
@user.member_profile_id = @member.id
|
|
|
|
@user.save
|
|
|
|
redirect_to admin_members_path
|
|
|
|
else
|
|
|
|
redirect_to new_admin_member_path
|
|
|
|
end
|
2014-05-01 07:14:16 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def update
|
2014-05-09 06:03:55 +00:00
|
|
|
respond_to do |format|
|
|
|
|
if @member.update(member_profile_params)
|
2014-05-26 01:45:46 +00:00
|
|
|
if @member.user.present?
|
|
|
|
@member.user.update(user_params)
|
|
|
|
else
|
|
|
|
@user = User.new(user_params)
|
|
|
|
@user.save
|
|
|
|
@user.update_attributes(member_profile_id: @member.id)
|
|
|
|
end
|
2014-05-09 06:03:55 +00:00
|
|
|
|
|
|
|
format.html { redirect_to admin_members_path, notice: 'Successfully Updated the User' }
|
|
|
|
format.json { head :no_content }
|
|
|
|
else
|
|
|
|
format.html { render action: 'edit' }
|
|
|
|
format.json { render json: @member.errors, status: :unprocessable_entity }
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def destroy
|
|
|
|
if params[:id].eql?(current_user.id.to_s)
|
|
|
|
flash[:error] = t(:cant_delete_self)
|
|
|
|
else
|
2014-05-26 01:45:46 +00:00
|
|
|
@member_profile = MemberProfile.find(params[:id])
|
|
|
|
@member_profile.user.delete if @member_profile.user.present?
|
|
|
|
@member_profile.delete
|
2014-05-09 06:03:55 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
render action: "index"
|
2014-05-01 07:14:16 +00:00
|
|
|
end
|
2014-05-09 06:03:55 +00:00
|
|
|
|
2014-05-27 10:37:59 +00:00
|
|
|
def edit_passwd
|
|
|
|
@member = MemberProfile.find(params[:member_id])
|
|
|
|
@user = @member.user
|
|
|
|
if current_user.id == @user.id
|
|
|
|
redirect_to :action => :index
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def edit_privilege
|
|
|
|
@member = MemberProfile.find(params[:member_id])
|
|
|
|
@user = @member.user
|
|
|
|
@workgroup = Workgroup.find_by(key: 'admin')
|
|
|
|
if current_user.id == @user.id
|
|
|
|
redirect_to :action => :index
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-05-09 06:03:55 +00:00
|
|
|
private
|
|
|
|
|
|
|
|
# Use callbacks to share common setup or constraints between actions.
|
|
|
|
def set_member_profile
|
|
|
|
@member = MemberProfile.find(params[:id])
|
|
|
|
end
|
|
|
|
|
|
|
|
# Never trust parameters from the scary internet, only allow the white list through.
|
|
|
|
def member_profile_params
|
|
|
|
params.require(:member_profile).permit!
|
|
|
|
end
|
|
|
|
|
2014-05-26 01:45:46 +00:00
|
|
|
def user_params
|
|
|
|
params.require(:user).permit!
|
|
|
|
end
|
|
|
|
|
2014-05-09 06:03:55 +00:00
|
|
|
|
|
|
|
protected
|
|
|
|
|
2014-05-26 01:45:46 +00:00
|
|
|
def get_info_and_roles
|
|
|
|
@roles = Role.excludes('disabled' => true)
|
|
|
|
end
|
|
|
|
|
2014-05-09 06:03:55 +00:00
|
|
|
def set_attribute
|
|
|
|
@class = 'users'
|
|
|
|
end
|
|
|
|
|
2014-05-01 07:14:16 +00:00
|
|
|
end
|