Sprankelprachtig aan/afmeldsysteem

members_controller.rb 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. class MembersController < ApplicationController
  2. include GroupsHelper
  3. before_action :set_group
  4. before_action :set_member, only: [:show, :edit, :update, :destroy]
  5. before_action :require_leader!
  6. # GET /members
  7. # GET /members.json
  8. def index
  9. @members = @group.members
  10. end
  11. # GET /members/1
  12. # GET /members/1.json
  13. def show
  14. end
  15. # GET /members/new
  16. def new
  17. @member = Member.new
  18. @possible_members = Person.where.not(id: @group.person_ids)
  19. end
  20. # GET /members/1/edit
  21. def edit
  22. @possible_members = Person.where.not(id: @group.person_ids)
  23. end
  24. # POST /members
  25. # POST /members.json
  26. def create
  27. @member = Member.new(member_params)
  28. @member.group = @group
  29. respond_to do |format|
  30. if @member.save
  31. format.html { redirect_to group_member_url(@group, @member), notice: 'Member was successfully created.' }
  32. format.json { render :show, status: :created, location: @member }
  33. else
  34. @possible_members = Person.where.not(id: @group.person_ids)
  35. format.html { render :new }
  36. format.json { render json: @member.errors, status: :unprocessable_entity }
  37. end
  38. end
  39. end
  40. # PATCH/PUT /members/1
  41. # PATCH/PUT /members/1.json
  42. def update
  43. respond_to do |format|
  44. if @member.update(member_params)
  45. format.html { redirect_to group_member_url(@group, @member), notice: 'Member was successfully updated.' }
  46. format.json { render :show, status: :ok, location: @member }
  47. else
  48. @possible_members = Person.where.not(id: @group.person_ids)
  49. format.html { render :edit }
  50. format.json { render json: @member.errors, status: :unprocessable_entity }
  51. end
  52. end
  53. end
  54. # DELETE /members/1
  55. # DELETE /members/1.json
  56. def destroy
  57. @member.destroy
  58. respond_to do |format|
  59. format.html { redirect_to group_members_url(@group), notice: 'Member was successfully destroyed.' }
  60. format.json { head :no_content }
  61. end
  62. end
  63. private
  64. # Use callbacks to share common setup or constraints between actions.
  65. def set_member
  66. @member = Member.find(params[:id])
  67. end
  68. def set_group
  69. @group = Group.find(params[:group_id])
  70. end
  71. # Never trust parameters from the scary internet, only allow the white list through.
  72. def member_params
  73. params.require(:member).permit(:person_id, :is_leader)
  74. end
  75. end