use vue for form submission

This commit is contained in:
Alex Turchyn
2023-05-25 22:47:52 +03:00
parent b5b4f286cf
commit 170cb1ecea
28 changed files with 976 additions and 448 deletions
@@ -4,18 +4,23 @@ class SendSubmissionEmailController < ApplicationController
layout 'flow'
skip_before_action :authenticate_user!
skip_before_action :verify_authenticity_token
def success; end
def create
@submission = if params[:flow_slug]
Submission.joins(:flow).find_by!(email: params[:email], flow: { slug: params[:flow_slug] })
else
Submission.find_by!(slug: params[:submission_slug])
end
@submission =
if params[:flow_slug]
Submission.joins(:flow).find_by!(email: params[:email], flow: { slug: params[:flow_slug] })
else
Submission.find_by!(slug: params[:submission_slug])
end
SubmissionMailer.copy_to_submitter(@submission).deliver_later!
redirect_to success_send_submission_email_index_path
respond_to do |f|
f.html { redirect_to success_send_submission_email_index_path }
f.json { head :ok }
end
end
end
+7 -1
View File
@@ -14,7 +14,7 @@ class SubmitFlowController < ApplicationController
def update
submission = Submission.find_by!(slug: params[:slug])
submission.values.merge!(params[:values].to_unsafe_h)
submission.values.merge!(normalized_values)
submission.completed_at = Time.current if params[:completed] == 'true'
submission.save
@@ -25,4 +25,10 @@ class SubmitFlowController < ApplicationController
def completed
@submission = Submission.find_by!(slug: params[:submit_flow_slug])
end
private
def normalized_values
params[:values].to_unsafe_h.transform_values { |v| v.is_a?(Array) ? v.compact_blank : v }
end
end