diff --git a/app/controllers/templates_uploads_controller.rb b/app/controllers/templates_uploads_controller.rb new file mode 100644 index 00000000..ffe5a148 --- /dev/null +++ b/app/controllers/templates_uploads_controller.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class TemplatesUploadsController < ApplicationController + def create + template = current_account.templates.new(author: current_user) + template.name = File.basename(params[:files].first.original_filename, '.*') + + template.save! + + documents = Templates::CreateAttachments.call(template, params) + + schema = documents.map { |doc| { attachment_uuid: doc.uuid, name: doc.filename.base } } + + template.update!(schema:) + + redirect_to edit_template_path(template) + end +end diff --git a/app/javascript/template_builder/builder.vue b/app/javascript/template_builder/builder.vue index 35cdf264..60d3581e 100644 --- a/app/javascript/template_builder/builder.vue +++ b/app/javascript/template_builder/builder.vue @@ -350,7 +350,7 @@ export default { onWindowResize (e) { const breakpointLg = 1024 - this.isBreakpointLg = this.$el.getRootNode().querySelector('div').offsetWidth < breakpointLg + this.isBreakpointLg = this.$el.getRootNode().querySelector('div[data-v-app]').offsetWidth < breakpointLg }, setDocumentRefs (el) { if (el) { diff --git a/app/views/dashboard/index.html.erb b/app/views/dashboard/index.html.erb index c73c6209..b47a8fbb 100644 --- a/app/views/dashboard/index.html.erb +++ b/app/views/dashboard/index.html.erb @@ -1,11 +1,14 @@ <% if Docuseal.demo? %><%= render 'shared/demo_alert' %><% end %> <% if @templates.any? %>
-

Templates

- <%= link_to new_template_path, class: 'btn btn-primary text-base btn-md gap-2', data: { turbo_frame: :modal } do %> - <%= svg_icon('plus', class: 'w-6 h-6 stroke-2') %> - - <% end %> +

Templates

+
+ <%= render 'templates/upload_button' %> + <%= link_to new_template_path, class: 'btn btn-primary text-base btn-md gap-2', data: { turbo_frame: :modal } do %> + <%= svg_icon('plus', class: 'w-6 h-6 stroke-2') %> + + <% end %> +
<% @templates.each do |template| %> diff --git a/app/views/icons/_upload.html.erb b/app/views/icons/_upload.html.erb new file mode 100644 index 00000000..2dc6247f --- /dev/null +++ b/app/views/icons/_upload.html.erb @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/views/templates/_upload_button.html.erb b/app/views/templates/_upload_button.html.erb new file mode 100644 index 00000000..15f80f94 --- /dev/null +++ b/app/views/templates/_upload_button.html.erb @@ -0,0 +1,17 @@ +<%= form_for '', url: templates_upload_path, method: :post, class: 'inline', html: { enctype: 'multipart/form-data' } do %> + + +<% end %> diff --git a/app/views/templates/new.html.erb b/app/views/templates/new.html.erb index 0c3475e9..bccbada2 100644 --- a/app/views/templates/new.html.erb +++ b/app/views/templates/new.html.erb @@ -1,4 +1,4 @@ -<%= render 'shared/turbo_modal', title: @base_template ? 'Clone Template' : 'New Template' do %> +<%= render 'shared/turbo_modal', title: @base_template ? 'Clone Template' : 'New Document Template' do %> <%= form_for @template, data: { turbo_frame: :_top } do |f| %> <% if @base_template %> <%= hidden_field_tag :base_template_id, @base_template.id %> diff --git a/config/routes.rb b/config/routes.rb index d49f50fe..38b3c067 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -47,6 +47,7 @@ Rails.application.routes.draw do resources :users, only: %i[new create edit update destroy] resources :submissions, only: %i[show destroy] resources :console_redirect, only: %i[index] + resource :templates_upload, only: %i[create] resources :templates, only: %i[new create edit show destroy] do resources :submissions, only: %i[new create] resources :submissions_export, only: %i[index new]