diff --git a/app/assets/javascripts/osem-switch.js b/app/assets/javascripts/osem-switch.js index 35393625..7a406f2b 100644 --- a/app/assets/javascripts/osem-switch.js +++ b/app/assets/javascripts/osem-switch.js @@ -2,6 +2,8 @@ $(function () { $("[class='switch-checkbox']").bootstrapSwitch(); $('input[class="switch-checkbox"]').on('switchChange.bootstrapSwitch', function(event, state) { + console.log(event); + console.log(state); var url = $(this).attr('url') + state; var method = $(this).attr('method'); @@ -11,4 +13,7 @@ $(function () { dataType: 'script' }); }); + + + }); diff --git a/app/controllers/admin/registrations_controller.rb b/app/controllers/admin/registrations_controller.rb index fd4a02be..281758d3 100644 --- a/app/controllers/admin/registrations_controller.rb +++ b/app/controllers/admin/registrations_controller.rb @@ -11,7 +11,8 @@ module Admin @attended = @conference.registrations.where('attended = ?', true).count end - def edit; end + def edit; + end def update @registration.update_attributes(registration_params) @@ -36,45 +37,22 @@ module Admin end end -=begin - def present - @registration.attended = true - if @registration.save - flash[:notice] = "#{@user.email} has attended" - redirect_to admin_conference_registrations_path(@conference.short_title) - else - flash[:notice] = "Update Attended for #{@user.email} failed!" \ - "#{@registration.errors.full_messages.join('. ')}" - redirect_to admin_conference_registrations_path(@conference.short_title) - end - end - - def absent - @registration.attended = false - if @registration.save - flash[:notice] = "#{@user.email} has not attended" - redirect_to admin_conference_registrations_path(@conference.short_title) - else - flash[:notice] = "Update Attended for #{@user.email} failed!" \ - "#{@registration.errors.full_messages.join('. ')}" - redirect_to admin_conference_registrations_path(@conference.short_title) - end - end -=end - def toggle_attendance - if params[:attended] == "true" - flash[:notice] = "#{@user.email} is attended." - @registration.attended = true - elsif params[:attended] == "false" - flash[:notice] = "#{@user.email} is not attended." - @registration.attended = false + case params[:attended] + when "true" + @registration.attended = true + when "false" + @registration.attended = false + else + # redirect_to action: :index, + # error: 'Wrong url path.') end - unless @registration.save - flash[:notice] = "Update Attended for #{@user.email} failed!" \ - "#{@registration.errors.full_messages.join('. ')}" + + if @registration.save + head :ok + else + head :unprocessable_entity end - render json: {attended: @registration.attended} end protected @@ -86,13 +64,13 @@ module Admin def registration_params params.require(:registration). permit( - :conference_id, :arrival, :departure, - :volunteer, - vchoice_ids: [], qanswer_ids: [], - qanswers_attributes: [], - user_attributes: [ - :id, :name, :tshirt, :mobile, :volunteer_experience, :languages, - :nickname, :affiliation ]) + :conference_id, :arrival, :departure, + :volunteer, + vchoice_ids: [], qanswer_ids: [], + qanswers_attributes: [], + user_attributes: [ + :id, :name, :tshirt, :mobile, :volunteer_experience, :languages, + :nickname, :affiliation]) end end diff --git a/app/views/admin/registrations/index.html.haml b/app/views/admin/registrations/index.html.haml index fdad2aa4..54cc9d5a 100644 --- a/app/views/admin/registrations/index.html.haml +++ b/app/views/admin/registrations/index.html.haml @@ -44,8 +44,9 @@ %td = link_to 'Questions','#', class: 'btn btn-success question-btn', 'data-id' => index, 'data-name' => registration.name %td{'data-order' => "#{registration.attended}"} - = check_box_tag "#{@conference.short_title}_#{registration.id}", registration.id, registration.attended, class: 'switch-checkbox', - method: :patch, url: toggle_attendance_admin_conference_registration_path(@conference.short_title, id: registration.id)+"?attended=", + = check_box_tag "#{@conference.short_title}_#{registration.id}", registration.id, registration.attended, + class: 'switch-checkbox', method: :patch, + url: toggle_attendance_admin_conference_registration_path(@conference.short_title, id: registration.id)+"?attended=", data: { size: "large", on_color: 'success', off_color: 'warning',