diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index 04bdda1e..95afc887 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -6,6 +6,8 @@ class DashboardController < ApplicationController def index return render 'pages/landing' unless signed_in? - @pagy, @templates = pagy(current_account.templates.active, items: 12) + templates = current_account.templates.active.preload(:author).order(id: :desc) + + @pagy, @templates = pagy(templates, items: 12) end end diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 6722b1e2..a337b3de 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -1,11 +1,7 @@ # frozen_string_literal: true class SubmissionsController < ApplicationController - before_action :load_template, only: %i[index new create] - - def index - @pagy, @submissions = pagy(@template.submissions.active) - end + before_action :load_template, only: %i[new create] def show @submission = @@ -32,7 +28,7 @@ class SubmissionsController < ApplicationController end end - redirect_to template_submissions_path(@template), + redirect_to template_path(@template), notice: "#{submissions.size} #{'recipient'.pluralize(submissions.size)} added" end @@ -42,7 +38,7 @@ class SubmissionsController < ApplicationController submission.update!(deleted_at: Time.current) - redirect_to template_submissions_path(submission.template), notice: 'Submission has been archived' + redirect_back(fallback_location: template_path(submission.template), notice: 'Submission has been archived') end private diff --git a/app/controllers/templates_controller.rb b/app/controllers/templates_controller.rb index 31e1b410..f8735827 100644 --- a/app/controllers/templates_controller.rb +++ b/app/controllers/templates_controller.rb @@ -1,13 +1,12 @@ # frozen_string_literal: true class TemplatesController < ApplicationController - layout 'plain' - before_action :load_base_template, only: %i[new create] def show - @template = current_account.templates.preload(documents_attachments: { preview_images_attachments: :blob }) - .find(params[:id]) + @template = current_account.templates.find(params[:id]) + + @pagy, @submissions = pagy(@template.submissions.active) end def new @@ -15,20 +14,22 @@ class TemplatesController < ApplicationController @template.name = "#{@base_template.name} (Clone)" if @base_template end - def create - @template = - if @base_template - current_account.templates.new(**@base_template.slice(:fields, :schema, :submitters), **template_params) - else - current_account.templates.new(template_params) - end + def edit + @template = current_account.templates.preload(documents_attachments: { preview_images_attachments: :blob }) + .find(params[:id]) + render :edit, layout: 'plain' + end + + def create + @template = current_account.templates.new(template_params) @template.author = current_user + @template.assign_attributes(@base_template.slice(:fields, :schema, :submitters)) if @base_template if @template.save Templates::CloneAttachments.call(template: @template, original_template: @base_template) if @base_template - redirect_to template_path(@template) + redirect_to edit_template_path(@template) else render turbo_stream: turbo_stream.replace(:modal, template: 'templates/new'), status: :unprocessable_entity end @@ -38,7 +39,7 @@ class TemplatesController < ApplicationController @template = current_account.templates.find(params[:id]) @template.update!(deleted_at: Time.current) - redirect_to settings_users_path, notice: 'template has been archived.' + redirect_back(fallback_location: root_path, notice: 'Template has been archived.') end private diff --git a/app/javascript/template_builder/builder.vue b/app/javascript/template_builder/builder.vue index 98605952..51bf35b3 100644 --- a/app/javascript/template_builder/builder.vue +++ b/app/javascript/template_builder/builder.vue @@ -405,7 +405,7 @@ export default { this.isSaving = true this.save().then(() => { - window.Turbo.visit(`/templates/${this.template.id}/submissions`) + window.Turbo.visit(`/templates/${this.template.id}`) }).finally(() => { this.isSaving = false }) diff --git a/app/views/dashboard/index.html.erb b/app/views/dashboard/index.html.erb index c8f45b40..a3a80b60 100644 --- a/app/views/dashboard/index.html.erb +++ b/app/views/dashboard/index.html.erb @@ -1,4 +1,4 @@ -<%- if @templates.any? %> +<% if @templates.any? %>
Created by <%= template.author.full_name %>
-+
<% end %>