diff --git a/app/controllers/forms_controller.rb b/app/controllers/forms_controller.rb index 92c2ece..4b0ac01 100644 --- a/app/controllers/forms_controller.rb +++ b/app/controllers/forms_controller.rb @@ -25,6 +25,19 @@ class FormsController < ApplicationController end end + def edit + @form = current_user.forms.find_by!(token: params[:id]) + end + + def update + @form = current_user.forms.find_by!(token: params[:id]) + if @form.update(form_params) + redirect_to form_url(@form) + else + render :edit + end + end + def form @form = Form.find_by!(token: params[:id]) end diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index cb5ec14..eb9edfa 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -3,4 +3,12 @@ class HomeController < ApplicationController def index redirect_to forms_url if logged_in? end + + def demo + if params[:backend] == 'airtable' + render 'demo-airtable' + else + render 'demo-google' + end + end end diff --git a/app/javascript/demo.js b/app/javascript/demo.js index 66e15d5..420708d 100644 --- a/app/javascript/demo.js +++ b/app/javascript/demo.js @@ -13,8 +13,13 @@ document.addEventListener("turbolinks:load", function () { var name = document.getElementById('demo-submission-name'); var demoFields = document.getElementById('demo-fields'); var demoSucess = document.getElementById('demo-success'); + var demoIframe = document.getElementById('demo-sheet'); demoFields.style.display = 'none'; demoSucess.style.display = 'block'; name.innerText = e.detail.submission.Name; + // The airtable sheet must be reloaded for the submission to get visible + if (demoIframe.dataset.refresh) { + demoIframe.src = demoIframe.src + '&c=' + new Date().getTime(); + } }); }); diff --git a/app/models/submission.rb b/app/models/submission.rb index 3a60e14..5a404d8 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -37,7 +37,7 @@ class Submission < ApplicationRecord attachment = ActiveStorage::Attachment.new(record: self, name: 'files', blob: create_one.blob) attachment.save # return the URL that we use to show in the Spreadsheet - Rails.application.routes.url_helpers.file_upload_url(form_id: form, submission_id: self, id: attachment.token, host: DEFAULT_HOST) + Rails.application.routes.url_helpers.file_upload_url(form_id: form, submission_id: self, id: attachment.token, host: DEFAULT_HOST, filename: attachment.blob.filename) else value.to_s end diff --git a/app/views/forms/_form.html.erb b/app/views/forms/_form.html.erb new file mode 100644 index 0000000..c03993b --- /dev/null +++ b/app/views/forms/_form.html.erb @@ -0,0 +1,15 @@ +<%= form_for form, local: true do |f| %> +
Document not loading? <%= link_to 'Open it here', DEMO_FORM.spreadsheet_url %>.
+ +Document not loading? <%= link_to 'Open it here', GOOGLE_DEMO_FORM.spreadsheet_url %>.