From 49463d611c449759d96bf82bf1ae536845163a3b Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Wed, 4 Nov 2026 12:35:39 +0200 Subject: [PATCH] unify native modals --- app/controllers/submissions_export_controller.rb | 2 +- app/controllers/submissions_filters_controller.rb | 2 +- app/controllers/template_folders_controller.rb | 2 +- app/controllers/templates_clone_controller.rb | 2 +- app/controllers/templates_folders_controller.rb | 2 +- app/controllers/user_initials_controller.rb | 2 +- app/controllers/user_signatures_controller.rb | 2 +- app/javascript/template_builder/conditions_modal.vue | 2 +- app/javascript/template_builder/description_modal.vue | 2 +- .../template_builder/documents_editor_modal.vue | 2 +- app/javascript/template_builder/font_modal.vue | 2 +- app/javascript/template_builder/formula_modal.vue | 2 +- app/javascript/template_builder/revisions_modal.vue | 2 +- app/views/layouts/application.html.erb | 4 +--- app/views/shared/_turbo_drawer.html.erb | 4 ++-- app/views/shared/_turbo_modal.html.erb | 1 - app/views/shared/_turbo_modal_large.html.erb | 10 +++------- app/views/submissions/new.html.erb | 2 +- app/views/submissions_export/new.html.erb | 2 +- app/views/submissions_filters/_filter_modal.html.erb | 2 +- app/views/submitters/edit.html.erb | 2 +- app/views/template_folders/edit.html.erb | 2 +- app/views/templates/new.html.erb | 2 +- app/views/templates_clone/_form.html.erb | 2 +- app/views/templates_folders/edit.html.erb | 4 ++-- app/views/templates_preferences/show.html.erb | 6 +++--- app/views/templates_share_link/show.html.erb | 2 +- app/views/user_initials/edit.html.erb | 4 ++-- app/views/user_signatures/edit.html.erb | 4 ++-- app/views/users/_form.html.erb | 2 +- 30 files changed, 37 insertions(+), 44 deletions(-) diff --git a/app/controllers/submissions_export_controller.rb b/app/controllers/submissions_export_controller.rb index 7a42d6a5c..1c83545a7 100644 --- a/app/controllers/submissions_export_controller.rb +++ b/app/controllers/submissions_export_controller.rb @@ -26,6 +26,6 @@ class SubmissionsExportController < ApplicationController end def new - render layout: turbo_native_android? ? 'plain' : true + render layout: 'plain' end end diff --git a/app/controllers/submissions_filters_controller.rb b/app/controllers/submissions_filters_controller.rb index ecebfefca..37e8ed914 100644 --- a/app/controllers/submissions_filters_controller.rb +++ b/app/controllers/submissions_filters_controller.rb @@ -14,6 +14,6 @@ class SubmissionsFiltersController < ApplicationController def show return head :not_found unless ALLOWED_NAMES.include?(params[:name]) - render params[:name], layout: turbo_native_android? ? 'plain' : true + render params[:name], layout: 'plain' end end diff --git a/app/controllers/template_folders_controller.rb b/app/controllers/template_folders_controller.rb index 8b24d2020..2ef30c202 100644 --- a/app/controllers/template_folders_controller.rb +++ b/app/controllers/template_folders_controller.rb @@ -42,7 +42,7 @@ class TemplateFoldersController < ApplicationController end def edit - render layout: turbo_native_android? ? 'plain' : true + render layout: 'plain' end def update diff --git a/app/controllers/templates_clone_controller.rb b/app/controllers/templates_clone_controller.rb index 8d5f62546..d524a886a 100644 --- a/app/controllers/templates_clone_controller.rb +++ b/app/controllers/templates_clone_controller.rb @@ -8,7 +8,7 @@ class TemplatesCloneController < ApplicationController @template = Template.new(name: "#{@base_template.name} (#{I18n.t('clone')})") - render layout: turbo_native_android? ? 'plain' : true + render layout: 'plain' end def create diff --git a/app/controllers/templates_folders_controller.rb b/app/controllers/templates_folders_controller.rb index 6f22669b0..b62a9d406 100644 --- a/app/controllers/templates_folders_controller.rb +++ b/app/controllers/templates_folders_controller.rb @@ -4,7 +4,7 @@ class TemplatesFoldersController < ApplicationController load_and_authorize_resource :template def edit - render layout: turbo_native_android? ? 'plain' : true + render layout: 'plain' end def update diff --git a/app/controllers/user_initials_controller.rb b/app/controllers/user_initials_controller.rb index 1306444cc..1f78092c7 100644 --- a/app/controllers/user_initials_controller.rb +++ b/app/controllers/user_initials_controller.rb @@ -5,7 +5,7 @@ class UserInitialsController < ApplicationController authorize_resource :user_config def edit - render layout: turbo_native_android? ? 'plain' : true + render layout: 'plain' end def update diff --git a/app/controllers/user_signatures_controller.rb b/app/controllers/user_signatures_controller.rb index 353e26092..aa6833b03 100644 --- a/app/controllers/user_signatures_controller.rb +++ b/app/controllers/user_signatures_controller.rb @@ -5,7 +5,7 @@ class UserSignaturesController < ApplicationController authorize_resource :user_config def edit - render layout: turbo_native_android? ? 'plain' : true + render layout: 'plain' end def update diff --git a/app/javascript/template_builder/conditions_modal.vue b/app/javascript/template_builder/conditions_modal.vue index c625f43e5..4e29c8de8 100644 --- a/app/javascript/template_builder/conditions_modal.vue +++ b/app/javascript/template_builder/conditions_modal.vue @@ -7,7 +7,7 @@ class="absolute top-0 bottom-0 right-0 left-0" @click.prevent="$emit('close')" /> -
+
-
+
-
+
-
+
-
+
<% end %> <% end %> - <% unless content_for?(:native_modal) %> - - <% end %> + <%= render turbo_native_app? ? 'shared/native_navbar' : 'shared/navbar' %>
diff --git a/app/views/shared/_turbo_drawer.html.erb b/app/views/shared/_turbo_drawer.html.erb index eaa9418c6..637c2f504 100644 --- a/app/views/shared/_turbo_drawer.html.erb +++ b/app/views/shared/_turbo_drawer.html.erb @@ -1,7 +1,7 @@ -<% if turbo_native_app? && !turbo_frame_request? %> +<% if turbo_native_app? %> <% content_for(:native_title, local_assigns[:title]) if local_assigns[:title] %> - + <%= yield %> diff --git a/app/views/shared/_turbo_modal.html.erb b/app/views/shared/_turbo_modal.html.erb index 6425ed165..d12eec6a3 100644 --- a/app/views/shared/_turbo_modal.html.erb +++ b/app/views/shared/_turbo_modal.html.erb @@ -1,5 +1,4 @@ <% if turbo_native_app? %> - <% content_for(:native_modal, 'true') %> <% content_for(:native_title, local_assigns[:title]) if local_assigns[:title] %> diff --git a/app/views/shared/_turbo_modal_large.html.erb b/app/views/shared/_turbo_modal_large.html.erb index 088ee63fd..235fbff14 100644 --- a/app/views/shared/_turbo_modal_large.html.erb +++ b/app/views/shared/_turbo_modal_large.html.erb @@ -1,6 +1,7 @@ -<% if turbo_native_app? && turbo_frame_request? %> +<% if turbo_native_app? %> + <% content_for(:native_title, local_assigns[:title]) if local_assigns[:title] %> - + <%= yield %> @@ -23,11 +24,6 @@
-<% elsif turbo_native_app? %> - <% content_for(:native_title, local_assigns[:title]) if local_assigns[:title] %> - - <%= yield %> - <% else %> <% if local_assigns[:title] %>
diff --git a/app/views/submissions/new.html.erb b/app/views/submissions/new.html.erb index c869745d4..d6e9b3060 100644 --- a/app/views/submissions/new.html.erb +++ b/app/views/submissions/new.html.erb @@ -26,7 +26,7 @@
<% end %> -
+
<% unless only_detailed %>
<%= render 'email_form', template: @template, variables_form:, can_send_emails:, viewer_submitter_uuids: %> diff --git a/app/views/submissions_export/new.html.erb b/app/views/submissions_export/new.html.erb index 52e25fdd1..3143752cd 100644 --- a/app/views/submissions_export/new.html.erb +++ b/app/views/submissions_export/new.html.erb @@ -1,6 +1,6 @@ <% filter_params = params.permit(:q, :archived, *Submissions::Filter::ALLOWED_PARAMS) %> <%= render 'shared/turbo_modal', title: t('export'), close_after_submit: false do %> -
+
<%= button_to template_submissions_export_index_path(@template), params: { format: :xlsx, **filter_params }, method: :get, data: { turbo_frame: :_top } do %>
diff --git a/app/views/submissions_filters/_filter_modal.html.erb b/app/views/submissions_filters/_filter_modal.html.erb index b7d45e168..a3318718a 100644 --- a/app/views/submissions_filters/_filter_modal.html.erb +++ b/app/views/submissions_filters/_filter_modal.html.erb @@ -1,7 +1,7 @@ <% path_uri = Addressable::URI.parse(params[:path].to_s) %> <% path = url_for(**Rails.application.routes.recognize_path(path_uri.path, method: :get)) %> <%= render 'shared/turbo_modal', title: local_assigns[:title] do %> - <%= form_for '', url: path, method: :get, data: { turbo_frame: :_top }, html: { autocomplete: :off, class: ('px-4' if turbo_native_android?) } do |f| %> + <%= form_for '', url: path, method: :get, data: { turbo_frame: :_top }, html: { autocomplete: :off, style: ('padding-inline: 18px' if turbo_native_app?) } do |f| %> <%= hidden_field_tag :q, params[:q] if params[:q].present? %> <%= hidden_field_tag :scope, params[:scope] if params[:scope].present? %> <%= hidden_field_tag :archived, params[:archived] if params[:archived].present? %> diff --git a/app/views/submitters/edit.html.erb b/app/views/submitters/edit.html.erb index 6be3ae03c..142998c3d 100644 --- a/app/views/submitters/edit.html.erb +++ b/app/views/submitters/edit.html.erb @@ -1,5 +1,5 @@ <%= render 'shared/turbo_modal_large', title: t('edit_recipient') do %> -
+
<%= form_for '', url: submitter_path(@submitter), method: :patch, html: { autocomplete: 'off' }, data: { turbo_frame: :_top } do |f| %>
diff --git a/app/views/template_folders/edit.html.erb b/app/views/template_folders/edit.html.erb index 4b8cbbf5d..2c1699037 100644 --- a/app/views/template_folders/edit.html.erb +++ b/app/views/template_folders/edit.html.erb @@ -1,5 +1,5 @@ <%= render 'shared/turbo_modal', title: t('rename_folder') do %> - <%= form_for @template_folder, url: folder_path(@template_folder), data: { turbo_frame: :_top }, html: { autocomplete: :off, class: ('px-4' if turbo_native_android?) } do |f| %> + <%= form_for @template_folder, url: folder_path(@template_folder), data: { turbo_frame: :_top }, html: { autocomplete: :off, style: ('padding-inline: 18px' if turbo_native_app?) } do |f| %>
<%= f.text_field :name, required: true, placeholder: "#{t('folder_name')}...", class: 'base-input w-full', autofocus: true, dir: 'auto' %>
diff --git a/app/views/templates/new.html.erb b/app/views/templates/new.html.erb index 414faaa21..84e7f4004 100644 --- a/app/views/templates/new.html.erb +++ b/app/views/templates/new.html.erb @@ -1,5 +1,5 @@ <%= render 'shared/turbo_modal', title: @base_template ? t('clone_template') : t('new_document_template') do %> -
+
<%= render 'templates/file_form' %>
<% end %> diff --git a/app/views/templates_clone/_form.html.erb b/app/views/templates_clone/_form.html.erb index ebb320584..8c3f60fb7 100644 --- a/app/views/templates_clone/_form.html.erb +++ b/app/views/templates_clone/_form.html.erb @@ -1,4 +1,4 @@ -<%= form_for @template, url: template_clone_index_path(@base_template), data: { turbo_frame: :_top }, html: { autocomplete: :off, class: ('px-4' if turbo_native_android?) } do |f| %> +<%= form_for @template, url: template_clone_index_path(@base_template), data: { turbo_frame: :_top }, html: { autocomplete: :off, style: ('padding-inline: 18px' if turbo_native_app?) } do |f| %> <% accounts = Account.accessible_by(true_ability).where.not(id: true_user.account.testing_accounts).where(User.where(User.arel_table[:account_id].eq(Account.arel_table[:id])).arel.exists).active %> <% with_accounts = (can?(:manage, :tenants) || true_user != current_user) && accounts.where.not(id: current_account.id).exists? %> <% if with_accounts %> diff --git a/app/views/templates_folders/edit.html.erb b/app/views/templates_folders/edit.html.erb index 26bd1643f..2123a3d21 100644 --- a/app/views/templates_folders/edit.html.erb +++ b/app/views/templates_folders/edit.html.erb @@ -1,7 +1,7 @@ <% with_subfolder = @template.folder.name != TemplateFolder::DEFAULT_NAME && params[:subfolder] != 'false' %> <%= render 'shared/turbo_modal', title: t('move_into_folder') do %> <% if with_subfolder %> - <%= form_for '', url: template_folder_path(@template), method: :put, data: { turbo_frame: :_top }, html: { id: 'subfolder_form', autocomplete: :off, class: ('px-4' if turbo_native_android?) } do |f| %> + <%= form_for '', url: template_folder_path(@template), method: :put, data: { turbo_frame: :_top }, html: { id: 'subfolder_form', autocomplete: :off, style: ('padding-inline: 18px' if turbo_native_app?) } do |f| %> <%= f.hidden_field :parent_name, value: @template.folder.parent_folder&.name || @template.folder.name %>
@@ -25,7 +25,7 @@
<% end %> <% end %> - <%= form_for '', url: template_folder_path(@template), method: :put, data: { turbo_frame: :_top }, html: { id: 'folder_form', autocomplete: :off, class: "#{turbo_native_android? ? 'mt-1.5 px-4' : 'mt-6'} #{'hidden' if with_subfolder}" } do |f| %> + <%= form_for '', url: template_folder_path(@template), method: :put, data: { turbo_frame: :_top }, html: { id: 'folder_form', autocomplete: :off, class: "#{turbo_native_android? ? 'mt-1.5' : 'mt-6'} #{'hidden' if with_subfolder}", style: ('padding-inline: 18px' if turbo_native_app?) } do |f| %>
<%= f.text_field :name, required: true, placeholder: "#{t('new_folder_name')}...", class: 'base-input w-full', autofocus: true %> diff --git a/app/views/templates_preferences/show.html.erb b/app/views/templates_preferences/show.html.erb index 404355d4f..c6922da3f 100644 --- a/app/views/templates_preferences/show.html.erb +++ b/app/views/templates_preferences/show.html.erb @@ -18,7 +18,7 @@
<% end %> -
+
<%= render 'access' %> <%= form_for @template, url: template_preferences_path(@template), method: :post, html: { autocomplete: 'off', class: 'mt-2' }, data: { close_on_submit: false } do |f| %> @@ -146,14 +146,14 @@ <%= render 'templates_code_modal/preferences', class: 'pt-2' %>
<% if show_recipients %> -