From 5718acecff1c7a8228e41ad76ffbbdba7fe3ef5e Mon Sep 17 00:00:00 2001 From: Alex Turchyn Date: Mon, 27 Jan 2025 19:54:44 +0200 Subject: [PATCH 01/16] add translations --- config/locales/i18n.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/config/locales/i18n.yml b/config/locales/i18n.yml index e710474a..c3a91e8e 100644 --- a/config/locales/i18n.yml +++ b/config/locales/i18n.yml @@ -690,6 +690,9 @@ en: &en extremely_satisfied: Extremely Satisfied your_pro_plan_payment_is_overdue: Your Pro plan payment is overdue. click_here_to_update_your_payment_details_and_clear_the_invoice_to_ensure_uninterrupted_service_html: Click here to update your payment details and clear the invoice to ensure uninterrupted service. + overdue_payment: Overdue Payment + your_pro_plan_has_been_suspended_due_to_unpaid_invoices_you_can_update_your_payment_details_to_settle_the_invoice_and_continue_using_docuseal_or_cancel_your_subscription: Your Pro Plan has been suspended due to unpaid invoices. You can update your payment details to settle the invoice and continue using DocuSeal or cancel your subscription. + manage_subscription: Manage Subscription submission_event_names: send_email_to_html: 'Email sent to %{submitter_name}' send_reminder_email_to_html: 'Reminder email sent to %{submitter_name}' @@ -1400,6 +1403,9 @@ es: &es extremely_satisfied: Extremadamente satisfecho your_pro_plan_payment_is_overdue: El pago de tu plan Pro está atrasado. click_here_to_update_your_payment_details_and_clear_the_invoice_to_ensure_uninterrupted_service_html: 'Haz clic aquí para actualizar tus datos de pago y liquidar la factura para garantizar un servicio ininterrumpido.' + overdue_payment: Pago Atrasado + your_pro_plan_has_been_suspended_due_to_unpaid_invoices_you_can_update_your_payment_details_to_settle_the_invoice_and_continue_using_docuseal_or_cancel_your_subscription: Tu plan Pro ha sido suspendido debido a facturas impagas. Puedes actualizar tus datos de pago para liquidar la factura y seguir usando DocuSeal o cancelar tu suscripción. + manage_subscription: Gestionar Suscripción submission_event_names: send_email_to_html: 'Correo electrónico enviado a %{submitter_name}' send_reminder_email_to_html: 'Correo de recordatorio enviado a %{submitter_name}' @@ -2109,6 +2115,9 @@ it: &it extremely_satisfied: Estremamente soddisfatto your_pro_plan_payment_is_overdue: Il pagamento del tuo piano Pro è in ritardo. click_here_to_update_your_payment_details_and_clear_the_invoice_to_ensure_uninterrupted_service_html: 'Fai clic qui per aggiornare i tuoi dati di pagamento e saldare la fattura per garantire un servizio ininterrotto.' + overdue_payment: Pagamento Scaduto + your_pro_plan_has_been_suspended_due_to_unpaid_invoices_you_can_update_your_payment_details_to_settle_the_invoice_and_continue_using_docuseal_or_cancel_your_subscription: Il tuo piano Pro è stato sospeso a causa di fatture non pagate. Puoi aggiornare i tuoi dati di pagamento per saldare la fattura e continuare a utilizzare DocuSeal o annullare l'abbonamento. + manage_subscription: Gestisci Abbonamento submission_event_names: send_email_to_html: 'E-mail inviato a %{submitter_name}' send_reminder_email_to_html: 'E-mail di promemoria inviato a %{submitter_name}' @@ -2820,6 +2829,9 @@ fr: &fr extremely_satisfied: Extrêmement satisfait your_pro_plan_payment_is_overdue: Le paiement de votre plan Pro est en retard. click_here_to_update_your_payment_details_and_clear_the_invoice_to_ensure_uninterrupted_service_html: 'Cliquez ici pour mettre à jour vos informations de paiement et régler la facture afin de garantir un service ininterrompu.' + overdue_payment: Paiement En Retard + your_pro_plan_has_been_suspended_due_to_unpaid_invoices_you_can_update_your_payment_details_to_settle_the_invoice_and_continue_using_docuseal_or_cancel_your_subscription: Votre plan Pro a été suspendu en raison de factures impayées. Vous pouvez mettre à jour vos informations de paiement pour régler la facture et continuer à utiliser DocuSeal ou annuler votre abonnement. + manage_subscription: Gérer l'Abonnement submission_event_names: send_email_to_html: 'E-mail envoyé à %{submitter_name}' send_reminder_email_to_html: 'E-mail de rappel envoyé à %{submitter_name}' @@ -3530,6 +3542,9 @@ pt: &pt extremely_satisfied: Extremamente satisfeito your_pro_plan_payment_is_overdue: O pagamento do seu plano Pro está atrasado. click_here_to_update_your_payment_details_and_clear_the_invoice_to_ensure_uninterrupted_service_html: 'Clique aqui para atualizar seus dados de pagamento e quitar a fatura para garantir um serviço ininterrupto.' + overdue_payment: Pagamento Atrasado + your_pro_plan_has_been_suspended_due_to_unpaid_invoices_you_can_update_your_payment_details_to_settle_the_invoice_and_continue_using_docuseal_or_cancel_your_subscription: Seu plano Pro foi suspenso devido a faturas não pagas. Você pode atualizar seus dados de pagamento para quitar a fatura e continuar usando o DocuSeal ou cancelar sua assinatura. + manage_subscription: Gerenciar Assinatura submission_event_names: send_email_to_html: 'E-mail enviado para %{submitter_name}' send_reminder_email_to_html: 'E-mail de lembrete enviado para %{submitter_name}' @@ -4240,6 +4255,9 @@ de: &de extremely_satisfied: Extrem zufrieden your_pro_plan_payment_is_overdue: Ihre Zahlung für den Pro-Plan ist überfällig. click_here_to_update_your_payment_details_and_clear_the_invoice_to_ensure_uninterrupted_service_html: 'Klicken Sie hier, um Ihre Zahlungsdaten zu aktualisieren und die Rechnung zu begleichen, um einen unterbrechungsfreien Service sicherzustellen.' + overdue_payment: Überfällige Zahlung + your_pro_plan_has_been_suspended_due_to_unpaid_invoices_you_can_update_your_payment_details_to_settle_the_invoice_and_continue_using_docuseal_or_cancel_your_subscription: Ihr Pro-Plan wurde aufgrund unbezahlter Rechnungen ausgesetzt. Sie können Ihre Zahlungsdaten aktualisieren, um die Rechnung zu begleichen und DocuSeal weiterhin zu nutzen, oder Ihr Abonnement kündigen. + manage_subscription: Abonnement Verwalten submission_event_names: send_email_to_html: 'E-Mail gesendet an %{submitter_name}' send_reminder_email_to_html: 'Erinnerungs-E-Mail gesendet an %{submitter_name}' From bc0917a190a98b3737ca6e5a2b526d5361322786 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Mon, 27 Jan 2025 15:51:47 +0200 Subject: [PATCH 02/16] fix sign in date --- app/views/users/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb index 6d08ecaf..a37a59c0 100644 --- a/app/views/users/index.html.erb +++ b/app/views/users/index.html.erb @@ -60,7 +60,7 @@ - <%= user.last_sign_in_at ? l(user.last_sign_in_at.in_time_zone(current_account.timezone), format: :short, locale: current_account.locale) : '-' %> + <%= user.current_sign_in_at ? l(user.current_sign_in_at.in_time_zone(current_account.timezone), format: :short, locale: current_account.locale) : '-' %> <% if params[:status].blank? && can?(:update, user) && user.archived_at.blank? %> From 97c0dad7ffabedb92ce465705f0c7892a818ce5e Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Tue, 28 Jan 2025 14:13:06 +0200 Subject: [PATCH 03/16] add with fields search --- app/javascript/template_builder/builder.vue | 6 ++++++ app/javascript/template_builder/fields.vue | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/javascript/template_builder/builder.vue b/app/javascript/template_builder/builder.vue index 6e8bae2a..5e6316dc 100644 --- a/app/javascript/template_builder/builder.vue +++ b/app/javascript/template_builder/builder.vue @@ -366,6 +366,7 @@ :with-help="withHelp" :default-submitters="defaultSubmitters" :draw-field-type="drawFieldType" + :with-fields-search="withFieldsSearch" :default-fields="[...defaultRequiredFields, ...defaultFields]" :template="template" :default-required-fields="defaultRequiredFields" @@ -623,6 +624,11 @@ export default { required: false, default: true }, + withFieldsSearch: { + type: Boolean, + required: false, + default: null + }, withFieldsList: { type: Boolean, required: false, diff --git a/app/javascript/template_builder/fields.vue b/app/javascript/template_builder/fields.vue index 2eefac39..cd896022 100644 --- a/app/javascript/template_builder/fields.vue +++ b/app/javascript/template_builder/fields.vue @@ -229,6 +229,11 @@ export default { type: Array, required: true }, + withFieldsSearch: { + type: Boolean, + required: false, + default: null + }, template: { type: Object, required: true @@ -297,7 +302,11 @@ export default { fieldNames: FieldType.computed.fieldNames, fieldIcons: FieldType.computed.fieldIcons, isShowFieldSearch () { - return this.submitterDefaultFields.length > 15 + if (this.withFieldsSearch === false) { + return false + } else { + return this.submitterDefaultFields.length > 15 + } }, defaultFieldsIndex () { return this.defaultFields.reduce((acc, field) => { From ab6cd0e89c7c17ed1ac43d44cf7cc20a66d94f42 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Tue, 28 Jan 2025 18:32:32 +0200 Subject: [PATCH 04/16] adjust send email job --- app/jobs/send_submitter_invitation_email_job.rb | 8 +++++++- lib/accounts.rb | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/jobs/send_submitter_invitation_email_job.rb b/app/jobs/send_submitter_invitation_email_job.rb index 22616c09..31f4af2b 100644 --- a/app/jobs/send_submitter_invitation_email_job.rb +++ b/app/jobs/send_submitter_invitation_email_job.rb @@ -8,6 +8,12 @@ class SendSubmitterInvitationEmailJob return if submitter.submission.source == 'invite' && !Accounts.can_send_emails?(submitter.account, on_events: true) + unless Accounts.can_send_invitation_emails?(submitter.account) + Rollbar.warning("Skip email: #{submitter.account.id}") if defined?(Rollbar) + + return + end + mail = SubmitterMailer.invitation_email(submitter) Submitters::ValidateSending.call(submitter, mail) @@ -17,6 +23,6 @@ class SendSubmitterInvitationEmailJob SubmissionEvent.create!(submitter:, event_type: 'send_email') submitter.sent_at ||= Time.current - submitter.save + submitter.save! end end diff --git a/lib/accounts.rb b/lib/accounts.rb index 67427cf6..f3dd639b 100644 --- a/lib/accounts.rb +++ b/lib/accounts.rb @@ -153,6 +153,10 @@ module Accounts EncryptedConfig.exists?(key: EncryptedConfig::EMAIL_SMTP_KEY) end + def can_send_invitation_emails?(_account) + true + end + def normalize_timezone(timezone) tzinfo = TZInfo::Timezone.get(ActiveSupport::TimeZone::MAPPING[timezone] || timezone) From 071f187605247807dc31599738186333372c27e0 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Wed, 29 Jan 2025 00:56:14 +0200 Subject: [PATCH 05/16] fix template conditions --- lib/abilities/template_conditions.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/abilities/template_conditions.rb b/lib/abilities/template_conditions.rb index cadbc030..4a7ebf04 100644 --- a/lib/abilities/template_conditions.rb +++ b/lib/abilities/template_conditions.rb @@ -25,7 +25,7 @@ module Abilities account_ids = [user.account_id, TemplateSharing::ALL_ID] template.template_sharings.any? do |e| - e.account_id.in?(account_ids) && (ability.nil? || e.ability == ability) + e.account_id.in?(account_ids) && (ability.nil? || e.ability == 'manage' || e.ability == ability) end end end From 9ff41a0c4a9428d42c3a1a3608dde03e8fb3a003 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Wed, 29 Jan 2025 16:08:09 +0200 Subject: [PATCH 06/16] scroll on mobile field click --- app/javascript/submission_form/areas.vue | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/app/javascript/submission_form/areas.vue b/app/javascript/submission_form/areas.vue index d17a728c..67ac0bdd 100644 --- a/app/javascript/submission_form/areas.vue +++ b/app/javascript/submission_form/areas.vue @@ -31,7 +31,7 @@ :with-label="withLabel && !withFieldPlaceholder && step.length < 2" :is-value-set="step.some((f) => f.uuid in values)" :attachments-index="attachmentsIndex" - @click="$emit('focus-step', stepIndex)" + @click="[$emit('focus-step', stepIndex), maybeScrollOnClick(field, area)]" /> @@ -109,6 +109,14 @@ export default { areaRefs: [] } }, + computed: { + isMobileContainer () { + const root = this.$root.$el.parentNode.getRootNode() + const container = root.body || root.querySelector('div') + + return container.style.overflow === 'hidden' + } + }, beforeUpdate () { this.areaRefs = [] }, @@ -121,14 +129,16 @@ export default { this.scrollIntoArea(field.areas[0]) } }, + maybeScrollOnClick (field, area) { + if (['text', 'number', 'cells'].includes(field.type) && this.isMobileContainer) { + this.scrollIntoArea(area) + } + }, scrollIntoArea (area) { const areaRef = this.areaRefs.find((a) => a.area === area) if (areaRef) { - const root = this.$root.$el.parentNode.getRootNode() - const container = root.body || root.querySelector('div') - - if (container.style.overflow === 'hidden') { + if (this.isMobileContainer) { this.scrollInContainer(areaRef.$el) } else { const targetRect = areaRef.$refs.scrollToElem.getBoundingClientRect() From 922101b12c9eef3d884c469893c3744c73397b75 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Fri, 31 Jan 2025 12:03:52 +0200 Subject: [PATCH 07/16] fix dashboard toggle --- app/views/templates_dashboard/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/templates_dashboard/index.html.erb b/app/views/templates_dashboard/index.html.erb index 6819beaf..8f290c57 100644 --- a/app/views/templates_dashboard/index.html.erb +++ b/app/views/templates_dashboard/index.html.erb @@ -2,7 +2,7 @@ <% if Docuseal.demo? %><%= render 'shared/demo_alert' %><% end %>
- <% if has_archived || @pagy.count > 0 %> + <% if has_archived || @pagy.count > 0 || @template_folders.present? %>
<%= render 'dashboard/toggle_view', selected: 'templates' %>
From bfb2e0043d36af62b083bbb16b72923ee66cb69c Mon Sep 17 00:00:00 2001 From: Alex Turchyn Date: Wed, 29 Jan 2025 16:03:06 +0200 Subject: [PATCH 08/16] update email attribution footer for Test Mode --- app/views/shared/_email_attribution.html.erb | 6 +++++- config/locales/i18n.yml | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/views/shared/_email_attribution.html.erb b/app/views/shared/_email_attribution.html.erb index 5e30a0c4..43b6d5f0 100644 --- a/app/views/shared/_email_attribution.html.erb +++ b/app/views/shared/_email_attribution.html.erb @@ -2,5 +2,9 @@ ---

- <%= t('sent_using_product_name_free_document_signing_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> + <% if @current_account&.testing? %> + <%= t('sent_using_product_name_via_developer_sandbox_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> + <% else %> + <%= t('sent_using_product_name_free_document_signing_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> + <% end %>

diff --git a/config/locales/i18n.yml b/config/locales/i18n.yml index c3a91e8e..aa31f9e0 100644 --- a/config/locales/i18n.yml +++ b/config/locales/i18n.yml @@ -42,6 +42,7 @@ en: &en hello_name: Hello %{name} you_are_invited_to_product_name: You are invited to %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'You have been invited to %{account_name} %{product_name}. Please sign up using the link below:' + sent_using_product_name_via_developer_sandbox_html: 'Sent using %{product_name} via Developer Sandbox' sent_using_product_name_free_document_signing_html: 'Sent using %{product_name} free document signing.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Sign documents with trusted certificate provided by DocuSeal. Your documents and data are never shared with DocuSeal. PDF checksum is provided to generate a trusted signature. you_have_been_invited_to_submit_the_name_form: 'You have been invited to submit the "%{name}" form.' @@ -755,6 +756,7 @@ es: &es hello_name: Hola %{name} you_are_invited_to_product_name: Estás invitado a %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Has sido invitado a %{account_name} %{product_name}. Por favor, regístrate usando el enlace a continuación:' + sent_using_product_name_via_developer_sandbox_html: 'Enviado usando %{product_name} a través de Developer Sandbox' sent_using_product_name_free_document_signing_html: 'Enviado usando la firma de documentos gratuita de %{product_name}.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Firme documentos con un certificado de confianza proporcionado por DocuSeal. Sus documentos y datos nunca se comparten con DocuSeal. Se proporciona un checksum de PDF para generar una firma de confianza. hi_there: Hola @@ -1467,6 +1469,7 @@ it: &it hello_name: Ciao %{name} you_are_invited_to_product_name: Sei stato invitato a %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Sei stato invitato a %{account_name} %{product_name}. Registrati utilizzando il link qui sotto:' + sent_using_product_name_via_developer_sandbox_html: 'Inviato utilizzando %{product_name} tramite Developer Sandbox' sent_using_product_name_free_document_signing_html: 'Inviato utilizzando la firma di documenti gratuita di %{product_name}.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: "Firma documenti con un certificato di fiducia fornito da DocuSeal. I tuoi documenti e i tuoi dati non vengono mai condivisi con DocuSeal. Il checksum PDF è fornito per generare una firma di fiducia." hi_there: Ciao @@ -2180,6 +2183,7 @@ fr: &fr hello_name: Bonjour %{name} you_are_invited_to_product_name: Vous êtes invité à %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Vous avez été invité à %{account_name} %{product_name}. Veuillez vous inscrire en utilisant le lien ci-dessous:' + sent_using_product_name_via_developer_sandbox_html: 'Envoyé en utilisant %{product_name} via Developer Sandbox' sent_using_product_name_free_document_signing_html: 'Envoyé en utilisant la signature de documents gratuite de %{product_name}.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Signez des documents avec un certificat de confiance fourni par DocuSeal. Vos documents et données ne sont jamais partagés avec DocuSeal. Un checksum PDF est fourni pour générer une signature de confiance. hi_there: Bonjour @@ -2894,6 +2898,7 @@ pt: &pt hello_name: Olá %{name} you_are_invited_to_product_name: Você está convidado para %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Você foi convidado para %{account_name} %{product_name}. Inscreva-se usando o link abaixo:' + sent_using_product_name_via_developer_sandbox_html: 'Enviado usando %{product_name} via Developer Sandbox' sent_using_product_name_free_document_signing_html: 'Enviado usando a assinatura gratuita de documentos de %{product_name}.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Assine documentos com certificado confiável fornecido pela DocuSeal. Seus documentos e dados nunca são compartilhados com a DocuSeal. O checksum do PDF é fornecido para gerar uma assinatura confiável. hi_there: Olá @@ -3607,6 +3612,7 @@ de: &de hello_name: Hallo %{name} you_are_invited_to_product_name: Sie sind eingeladen zu %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Sie wurden zu %{account_name} %{product_name} eingeladen. Bitte registrieren Sie sich über den folgenden Link:' + sent_using_product_name_via_developer_sandbox_html: 'Gesendet über %{product_name} via Developer Sandbox' sent_using_product_name_free_document_signing_html: 'Gesendet mit der kostenlosen Dokumentensignierung von %{product_name}.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Unterzeichnen Sie Dokumente mit einem vertrauenswürdigen Zertifikat von DocuSeal. Ihre Dokumente und Daten werden niemals mit DocuSeal geteilt. Eine PDF-Prüfziffer wird bereitgestellt, um eine vertrauenswürdige Signatur zu generieren. hi_there: Hallo From 6d2a8ca3d345a9ad3d7f472e4429a86518460953 Mon Sep 17 00:00:00 2001 From: Alex Turchyn Date: Thu, 30 Jan 2025 14:40:05 +0200 Subject: [PATCH 09/16] update translations --- app/views/shared/_email_attribution.html.erb | 2 +- config/locales/i18n.yml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/views/shared/_email_attribution.html.erb b/app/views/shared/_email_attribution.html.erb index 43b6d5f0..8cfd4988 100644 --- a/app/views/shared/_email_attribution.html.erb +++ b/app/views/shared/_email_attribution.html.erb @@ -3,7 +3,7 @@

<% if @current_account&.testing? %> - <%= t('sent_using_product_name_via_developer_sandbox_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> + <%= t('sent_using_product_name_in_testing_mode_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> <% else %> <%= t('sent_using_product_name_free_document_signing_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> <% end %> diff --git a/config/locales/i18n.yml b/config/locales/i18n.yml index aa31f9e0..e222e091 100644 --- a/config/locales/i18n.yml +++ b/config/locales/i18n.yml @@ -42,7 +42,7 @@ en: &en hello_name: Hello %{name} you_are_invited_to_product_name: You are invited to %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'You have been invited to %{account_name} %{product_name}. Please sign up using the link below:' - sent_using_product_name_via_developer_sandbox_html: 'Sent using %{product_name} via Developer Sandbox' + sent_using_product_name_in_testing_mode_html: 'Sent using %{product_name} in Testing Mode' sent_using_product_name_free_document_signing_html: 'Sent using %{product_name} free document signing.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Sign documents with trusted certificate provided by DocuSeal. Your documents and data are never shared with DocuSeal. PDF checksum is provided to generate a trusted signature. you_have_been_invited_to_submit_the_name_form: 'You have been invited to submit the "%{name}" form.' @@ -756,7 +756,7 @@ es: &es hello_name: Hola %{name} you_are_invited_to_product_name: Estás invitado a %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Has sido invitado a %{account_name} %{product_name}. Por favor, regístrate usando el enlace a continuación:' - sent_using_product_name_via_developer_sandbox_html: 'Enviado usando %{product_name} a través de Developer Sandbox' + sent_using_product_name_in_testing_mode_html: 'Enviado usando %{product_name} en Modo de Prueba' sent_using_product_name_free_document_signing_html: 'Enviado usando la firma de documentos gratuita de %{product_name}.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Firme documentos con un certificado de confianza proporcionado por DocuSeal. Sus documentos y datos nunca se comparten con DocuSeal. Se proporciona un checksum de PDF para generar una firma de confianza. hi_there: Hola @@ -1469,7 +1469,7 @@ it: &it hello_name: Ciao %{name} you_are_invited_to_product_name: Sei stato invitato a %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Sei stato invitato a %{account_name} %{product_name}. Registrati utilizzando il link qui sotto:' - sent_using_product_name_via_developer_sandbox_html: 'Inviato utilizzando %{product_name} tramite Developer Sandbox' + sent_using_product_name_in_testing_mode_html: 'Inviato utilizzando %{product_name} in Modalità di Test' sent_using_product_name_free_document_signing_html: 'Inviato utilizzando la firma di documenti gratuita di %{product_name}.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: "Firma documenti con un certificato di fiducia fornito da DocuSeal. I tuoi documenti e i tuoi dati non vengono mai condivisi con DocuSeal. Il checksum PDF è fornito per generare una firma di fiducia." hi_there: Ciao @@ -2183,7 +2183,7 @@ fr: &fr hello_name: Bonjour %{name} you_are_invited_to_product_name: Vous êtes invité à %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Vous avez été invité à %{account_name} %{product_name}. Veuillez vous inscrire en utilisant le lien ci-dessous:' - sent_using_product_name_via_developer_sandbox_html: 'Envoyé en utilisant %{product_name} via Developer Sandbox' + sent_using_product_name_in_testing_mode_html: 'Envoyé en utilisant %{product_name} en Mode Test' sent_using_product_name_free_document_signing_html: 'Envoyé en utilisant la signature de documents gratuite de %{product_name}.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Signez des documents avec un certificat de confiance fourni par DocuSeal. Vos documents et données ne sont jamais partagés avec DocuSeal. Un checksum PDF est fourni pour générer une signature de confiance. hi_there: Bonjour @@ -2898,7 +2898,7 @@ pt: &pt hello_name: Olá %{name} you_are_invited_to_product_name: Você está convidado para %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Você foi convidado para %{account_name} %{product_name}. Inscreva-se usando o link abaixo:' - sent_using_product_name_via_developer_sandbox_html: 'Enviado usando %{product_name} via Developer Sandbox' + sent_using_product_name_in_testing_mode_html: 'Enviado usando %{product_name} no Modo de Teste' sent_using_product_name_free_document_signing_html: 'Enviado usando a assinatura gratuita de documentos de %{product_name}.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Assine documentos com certificado confiável fornecido pela DocuSeal. Seus documentos e dados nunca são compartilhados com a DocuSeal. O checksum do PDF é fornecido para gerar uma assinatura confiável. hi_there: Olá @@ -3612,7 +3612,7 @@ de: &de hello_name: Hallo %{name} you_are_invited_to_product_name: Sie sind eingeladen zu %{product_name} you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Sie wurden zu %{account_name} %{product_name} eingeladen. Bitte registrieren Sie sich über den folgenden Link:' - sent_using_product_name_via_developer_sandbox_html: 'Gesendet über %{product_name} via Developer Sandbox' + sent_using_product_name_in_testing_mode_html: 'Gesendet über %{product_name} im Testmodus' sent_using_product_name_free_document_signing_html: 'Gesendet mit der kostenlosen Dokumentensignierung von %{product_name}.' sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Unterzeichnen Sie Dokumente mit einem vertrauenswürdigen Zertifikat von DocuSeal. Ihre Dokumente und Daten werden niemals mit DocuSeal geteilt. Eine PDF-Prüfziffer wird bereitgestellt, um eine vertrauenswürdige Signatur zu generieren. hi_there: Hallo From 5bed6448dcea7c4051bdec2142e77d8fcef45b75 Mon Sep 17 00:00:00 2001 From: Alex Turchyn Date: Mon, 27 Jan 2025 13:30:34 +0200 Subject: [PATCH 10/16] make custom fields titles smaller on mobile devices --- .../submission_form/attachment_step.vue | 2 +- app/javascript/submission_form/date_step.vue | 14 ++++++++++---- app/javascript/submission_form/form.vue | 16 ++++++++++++---- app/javascript/submission_form/image_step.vue | 16 +++++++++++++--- app/javascript/submission_form/initials_step.vue | 7 ++++--- .../submission_form/multi_select_step.vue | 16 +++++++++++----- app/javascript/submission_form/number_step.vue | 15 +++++++++------ app/javascript/submission_form/payment_step.vue | 2 +- app/javascript/submission_form/phone_step.vue | 8 +++----- .../submission_form/signature_step.vue | 7 ++++--- app/javascript/submission_form/text_step.vue | 15 +++++++++------ .../submission_form/verification_step.vue | 2 +- 12 files changed, 78 insertions(+), 42 deletions(-) diff --git a/app/javascript/submission_form/attachment_step.vue b/app/javascript/submission_form/attachment_step.vue index f64dbb23..9f9f5f8b 100644 --- a/app/javascript/submission_form/attachment_step.vue +++ b/app/javascript/submission_form/attachment_step.vue @@ -49,7 +49,7 @@

-
+
+ > + +
+ > +