class Admin::MembersController < OrbitMemberController before_action :set_member_profile, only: [:show, :edit, :update] def index @roles = Role.where(disabled: false).asc("_id") page_num = params[:page] || 1 @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' @members=MemberProfile.all.page(page_num).per(12).desc("_id") "index_summary" when 'thumbnail' @members=MemberProfile.all.page(page_num).per(36).desc("_id") "index_thumbnail" else @members=MemberProfile.all.page(page_num).per(10).desc("_id") "index" end elsif @filter.blank? and !@mq.blank? render case params[:at] when 'summary' @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") "index_summary" when 'thumbnail' @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") "index_thumbnail" else @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") "index" end elsif !@filter.blank? and @mq.blank? render case params[:at] when 'summary' @members=MemberProfile.all.any_in(:role_ids=>@filter['role']).page(page_num).per(12).desc("_id") "index_summary" when 'thumbnail' @members=MemberProfile.all.any_in(:role_ids=>@filter['role']).page(page_num).per(36).desc("_id") "index_thumbnail" else @members=MemberProfile.all.any_in(:role_ids=>@filter['role']).page(page_num).per(10).desc("_id") "index" end end end def show end def new @member = MemberProfile.new get_info_and_roles @user = User.new @form_index = 0 end def edit @form_index = 0 get_info_and_roles if @member.user.present? @user = @member.user else @user = User.new(member_profile_id: @member.id) end end def create @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 end def update respond_to do |format| if @member.update(member_profile_params) 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 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 @member_profile = MemberProfile.find(params[:id]) @member_profile.user.delete if @member_profile.user.present? @member_profile.delete end render action: "index" end 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 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 def user_params params.require(:user).permit! end protected def get_info_and_roles @roles = Role.excludes('disabled' => true) end def set_attribute @class = 'users' end end