diff --git a/app/controllers/personalization_settings_controller.rb b/app/controllers/personalization_settings_controller.rb index 21e1253c..76d3f886 100644 --- a/app/controllers/personalization_settings_controller.rb +++ b/app/controllers/personalization_settings_controller.rb @@ -6,7 +6,8 @@ class PersonalizationSettingsController < ApplicationController AccountConfig::SUBMITTER_INVITATION_EMAIL_KEY, AccountConfig::SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY, AccountConfig::SUBMITTER_COMPLETED_EMAIL_KEY, - AccountConfig::FORM_COMPLETED_MESSAGE_KEY + AccountConfig::FORM_COMPLETED_MESSAGE_KEY, + *(Docuseal.multitenant? ? [] : [AccountConfig::POLICY_LINKS_KEY]) ].freeze InvalidKey = Class.new(StandardError) diff --git a/app/models/account_config.rb b/app/models/account_config.rb index 6ce4ef46..adda8091 100644 --- a/app/models/account_config.rb +++ b/app/models/account_config.rb @@ -44,6 +44,7 @@ class AccountConfig < ApplicationRecord REUSE_SIGNATURE_KEY = 'reuse_signature' COMBINE_PDF_RESULT_KEY = 'combine_pdf_result_key' DOCUMENT_FILENAME_FORMAT_KEY = 'document_filename_format' + POLICY_LINKS_KEY = 'policy_links' DEFAULT_VALUES = { SUBMITTER_INVITATION_EMAIL_KEY => lambda { diff --git a/app/views/personalization_settings/_form_policy_links_form.html.erb b/app/views/personalization_settings/_form_policy_links_form.html.erb new file mode 100644 index 00000000..cabf1b83 --- /dev/null +++ b/app/views/personalization_settings/_form_policy_links_form.html.erb @@ -0,0 +1,23 @@ +<% unless Docuseal.multitenant? %> +
+ +
+
+ <%= t('policy_links') %> +
+
+
+ <%= form_for AccountConfigs.find_or_initialize_for_key(current_account, AccountConfig::POLICY_LINKS_KEY), url: settings_personalization_path, method: :post, html: { autocomplete: 'off', class: 'space-y-4' } do |f| %> + <%= f.hidden_field :key %> +
+ + <%= f.text_area :value, class: 'base-input w-full py-2 font-mono', placeholder: "#{t('markdown_content_e_g')}\n[#{t('privacy_policy')}](https://example.com/privacy)" %> + +
+
+ <%= f.button button_title(title: t('save'), disabled_with: t('saving')), class: 'base-button' %> +
+ <% end %> +
+
+<% end %> diff --git a/app/views/personalization_settings/show.html.erb b/app/views/personalization_settings/show.html.erb index 125c758f..438da311 100644 --- a/app/views/personalization_settings/show.html.erb +++ b/app/views/personalization_settings/show.html.erb @@ -19,6 +19,7 @@
<%= render 'form_completed_message_form' %> <%= render 'form_completed_button_form' %> + <%= render 'form_policy_links_form' %>
<%= render 'form_customization_settings' %> diff --git a/app/views/submit_form/show.html.erb b/app/views/submit_form/show.html.erb index 4b072b29..a55944eb 100644 --- a/app/views/submit_form/show.html.erb +++ b/app/views/submit_form/show.html.erb @@ -4,6 +4,7 @@ <% values = @submitter.submission.submitters.reduce({}) { |acc, sub| acc.merge(sub.values) } %> <% submitters_index = @submitter.submission.submitters.index_by(&:uuid) %> <% page_blob_struct = Struct.new(:url, :metadata, keyword_init: true) %> +<% policy_links_config = AccountConfigs.find_for_account(@submitter.account, AccountConfig::POLICY_LINKS_KEY) unless Docuseal.multitenant? %>
@@ -63,6 +64,13 @@ <% end %> <% end %> <%= render 'shared/attribution', link_path: '/start', account: @submitter.account, with_style: false %> + <% if policy_links_config %> +
+
+ <%= auto_link(MarkdownToHtml.call(policy_links_config.value)) %> +
+
+ <% end %>
diff --git a/config/locales/i18n.yml b/config/locales/i18n.yml index 58869925..d6daf17d 100644 --- a/config/locales/i18n.yml +++ b/config/locales/i18n.yml @@ -646,6 +646,9 @@ en: &en this_month: This month last_month: Last month this_year: This year + policy_links: Policy Links + markdown_content_e_g: Markdown content, e.g. + privacy_policy: Privacy Policy submission_event_names: send_email_to_html: 'Email sent to %{submitter_name}' send_reminder_email_to_html: 'Reminder email sent to %{submitter_name}' @@ -1310,6 +1313,9 @@ es: &es this_month: Este Mes last_month: El Mes Pasado this_year: Este Año + policy_links: Enlaces de Políticas + markdown_content_e_g: Contenido Markdown, por ej. + privacy_policy: Política de Privacidad 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}' @@ -1974,6 +1980,9 @@ it: &it this_month: Questo Mese last_month: Mese Scorso this_year: "Quest'Anno" + policy_links: Collegamenti alle Politiche + markdown_content_e_g: Contenuto Markdown, ad es. + privacy_policy: Politica sulla Privacy 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}' @@ -2639,6 +2648,9 @@ fr: &fr this_month: Ce Mois-ci last_month: Le Mois Dernier this_year: Cette Année + policy_links: Liens des Politiques + markdown_content_e_g: Contenu Markdown, par ex. + privacy_policy: Politique de Confidentialité submission_event_names: send_email_to_html: 'E-mail envoyé à %{submitter_name}' send_reminder_email_to_html: 'E-mail de rappel envoyé à %{submitter_name}' @@ -3303,6 +3315,9 @@ pt: &pt this_month: Este Mês last_month: Mês Passado this_year: Este Ano + policy_links: Links de Políticas + markdown_content_e_g: Conteúdo Markdown, ex. + privacy_policy: Política de Privacidade 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}' @@ -3967,6 +3982,9 @@ de: &de this_month: Dieser Monat last_month: Letzter Monat this_year: Dieses Jahr + policy_links: Richtlinien-Links + markdown_content_e_g: Markdown-Inhalt, z. B. + privacy_policy: Datenschutzrichtlinie 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}'