mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
192 lines
10 KiB
192 lines
10 KiB
<div class="flex flex-wrap space-y-4 md:flex-nowrap md:space-y-0">
|
|
<%= render 'shared/settings_nav' %>
|
|
<div class="flex-grow max-w-xl mx-auto">
|
|
<h1 class="text-4xl font-bold mb-4">
|
|
<%= t('account') %>
|
|
</h1>
|
|
<%= form_for '', url: settings_account_path, method: :patch, html: { autocomplete: 'off', class: 'space-y-4' } do |f| %>
|
|
<%= fields_for current_account do |ff| %>
|
|
<div class="form-control">
|
|
<%= ff.label :name, t('company_name'), class: 'label' %>
|
|
<%= ff.text_field :name, required: true, class: 'base-input', dir: 'auto' %>
|
|
</div>
|
|
<div class="grid md:grid-cols-2 gap-4">
|
|
<div class="form-control">
|
|
<%= ff.label :timezone, t('time_zone'), class: 'label' %>
|
|
<%= ff.select :timezone, nil, {}, class: 'base-select' do %>
|
|
<%= time_zone_options_for_select(current_account.timezone) %>
|
|
<% end %>
|
|
</div>
|
|
<div class="form-control">
|
|
<%= ff.label :locale, t('language'), class: 'label' %>
|
|
<%= ff.select :locale, options_for_select(AccountsController::LOCALE_OPTIONS.invert, current_account.locale), {}, class: 'base-select' %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
<% encrypted_config = @encrypted_config || EncryptedConfig.find_or_initialize_by(account: current_account, key: EncryptedConfig::APP_URL_KEY) %>
|
|
<% if !Docuseal.multitenant? && can?(:manage, encrypted_config) && !current_account.testing? && ENV['APP_URL'].blank? %>
|
|
<%= fields_for encrypted_config do |ff| %>
|
|
<div class="form-control">
|
|
<%= ff.label :value, t('app_url'), class: 'label' %>
|
|
<%= ff.text_field :value, autocomplete: 'off', class: 'base-input' %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% if can?(:update, current_account) %>
|
|
<div class="form-control pt-2">
|
|
<%= f.button button_title(title: t('update'), disabled_with: t('updating')), class: 'base-button' %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% if can?(:manage, AccountConfig) %>
|
|
<div class="px-1 mt-8">
|
|
<h2 class="text-2xl font-bold mb-2">
|
|
<%= t('preferences') %>
|
|
</h2>
|
|
<% account_config = AccountConfig.find_or_initialize_by(account: current_account, key: AccountConfig::FORCE_MFA) %>
|
|
<% if can?(:manage, account_config) %>
|
|
<%= form_for account_config, url: account_configs_path, method: :post do |f| %>
|
|
<%= f.hidden_field :key %>
|
|
<div class="flex items-center justify-between py-2.5">
|
|
<span>
|
|
<%= t('force_2fa_with_authenticator_app') %>
|
|
</span>
|
|
<%= f.check_box :value, class: 'toggle', checked: account_config.value, onchange: 'this.form.requestSubmit()' %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% account_config = AccountConfig.find_or_initialize_by(account: current_account, key: AccountConfig::WITH_SIGNATURE_ID) %>
|
|
<% if can?(:manage, account_config) %>
|
|
<%= form_for account_config, url: account_configs_path, method: :post do |f| %>
|
|
<%= f.hidden_field :key %>
|
|
<div class="flex items-center justify-between py-2.5">
|
|
<span>
|
|
<%= t('add_signature_id_to_the_documents') %>
|
|
</span>
|
|
<%= f.check_box :value, class: 'toggle', checked: account_config.value, onchange: 'this.form.requestSubmit()', disabled: can?(:manage, :cfr) %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% account_config = AccountConfig.find_or_initialize_by(account: current_account, key: AccountConfig::REQUIRE_SIGNING_REASON_KEY) %>
|
|
<% if can?(:manage, account_config) %>
|
|
<%= form_for account_config, url: account_configs_path, method: :post do |f| %>
|
|
<%= f.hidden_field :key %>
|
|
<div class="flex items-center justify-between py-2.5">
|
|
<span>
|
|
<%= t('require_signing_reason') %>
|
|
</span>
|
|
<%= f.check_box :value, class: 'toggle', checked: account_config.value, onchange: 'this.form.requestSubmit()', disabled: can?(:manage, :cfr) %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% account_config = AccountConfig.find_or_initialize_by(account: current_account, key: AccountConfig::ALLOW_TYPED_SIGNATURE) %>
|
|
<% if can?(:manage, account_config) %>
|
|
<%= form_for account_config, url: account_configs_path, method: :post do |f| %>
|
|
<%= f.hidden_field :key %>
|
|
<div class="flex items-center justify-between py-2.5">
|
|
<span>
|
|
<%= t('allow_typed_text_signatures') %>
|
|
</span>
|
|
<%= f.check_box :value, class: 'toggle', checked: account_config.value != false, onchange: 'this.form.requestSubmit()' %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% account_config = AccountConfig.find_or_initialize_by(account: current_account, key: AccountConfig::ALLOW_TO_RESUBMIT) %>
|
|
<% if can?(:manage, account_config) %>
|
|
<%= form_for account_config, url: account_configs_path, method: :post do |f| %>
|
|
<%= f.hidden_field :key %>
|
|
<div class="flex items-center justify-between py-2.5">
|
|
<span>
|
|
<%= t('allow_to_resubmit_completed_forms') %>
|
|
</span>
|
|
<%= f.check_box :value, class: 'toggle', checked: account_config.value != false, onchange: 'this.form.requestSubmit()' %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% account_config = AccountConfig.find_or_initialize_by(account: current_account, key: AccountConfig::ALLOW_TO_DECLINE_KEY) %>
|
|
<% if can?(:manage, account_config) %>
|
|
<%= form_for account_config, url: account_configs_path, method: :post do |f| %>
|
|
<%= f.hidden_field :key %>
|
|
<div class="flex items-center justify-between py-2.5">
|
|
<span>
|
|
<%= t('allow_to_decline_documents') %>
|
|
</span>
|
|
<%= f.check_box :value, class: 'toggle', checked: account_config.value != false, onchange: 'this.form.requestSubmit()' %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% account_config = AccountConfig.find_or_initialize_by(account: current_account, key: AccountConfig::FORM_PREFILL_SIGNATURE_KEY) %>
|
|
<% if can?(:manage, account_config) %>
|
|
<%= form_for account_config, url: account_configs_path, method: :post do |f| %>
|
|
<%= f.hidden_field :key %>
|
|
<div class="flex items-center justify-between py-2.5">
|
|
<span>
|
|
<%= t('remember_and_pre_fill_signatures') %>
|
|
</span>
|
|
<%= f.check_box :value, class: 'toggle', checked: account_config.value != false, onchange: 'this.form.requestSubmit()' %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% account_config = AccountConfig.find_or_initialize_by(account: current_account, key: AccountConfig::DOWNLOAD_LINKS_AUTH_KEY) %>
|
|
<% if can?(:manage, account_config) %>
|
|
<%= form_for account_config, url: account_configs_path, method: :post do |f| %>
|
|
<%= f.hidden_field :key %>
|
|
<div class="flex items-center justify-between py-2.5">
|
|
<span>
|
|
<%= t('require_authentication_for_file_download_links') %>
|
|
</span>
|
|
<%= f.check_box :value, class: 'toggle', checked: account_config.value, onchange: 'this.form.requestSubmit()' %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% account_config = AccountConfig.find_or_initialize_by(account: current_account, key: AccountConfig::COMBINE_PDF_RESULT_KEY) %>
|
|
<% if can?(:manage, account_config) %>
|
|
<%= form_for account_config, url: account_configs_path, method: :post do |f| %>
|
|
<%= f.hidden_field :key %>
|
|
<div class="flex items-center justify-between py-2.5">
|
|
<span>
|
|
<%= t('combine_completed_documents_and_audit_log') %>
|
|
</span>
|
|
<%= f.check_box :value, class: 'toggle', checked: account_config.value, onchange: 'this.form.requestSubmit()' %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% if !Docuseal.multitenant? || can?(:manage, :personalization_advanced) %>
|
|
<% account_config = AccountConfig.find_or_initialize_by(account: current_account, key: AccountConfig::ENFORCE_SIGNING_ORDER_KEY) %>
|
|
<% if can?(:manage, account_config) %>
|
|
<%= form_for account_config, url: account_configs_path, method: :post do |f| %>
|
|
<%= f.hidden_field :key %>
|
|
<div class="flex items-center justify-between py-2.5">
|
|
<span>
|
|
<%= t('always_enforce_signing_order') %>
|
|
</span>
|
|
<%= f.check_box :value, class: 'toggle', checked: account_config.value, onchange: 'this.form.requestSubmit()' %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
<% end %>
|
|
<% if !Docuseal.multitenant? && SearchEntry.table_exists? && (!Docuseal.fulltext_search? || params[:reindex] == 'true') && can?(:manage, EncryptedConfig) %>
|
|
<div class="flex items-center justify-between py-2.5">
|
|
<span>
|
|
Efficient search with search index
|
|
</span>
|
|
<%= button_to params[:reindex] == 'true' ? 'Reindex' : 'Build Search Index', settings_search_entries_reindex_index_path, method: :post, class: 'btn btn-sm btn-neutral text-white px-4' %>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
<% end %>
|
|
<%= render 'compliances' %>
|
|
<%= render 'integrations' %>
|
|
<% if can?(:manage, current_account) && Docuseal.multitenant? && true_user == current_user %>
|
|
<div class="px-1 mt-8">
|
|
<h2 class="text-2xl font-bold mb-2">
|
|
<%= t('danger_zone') %>
|
|
</h2>
|
|
<%= button_to button_title(title: t('delete_my_account')), settings_account_path, class: 'btn btn-outline btn-error block', data: { turbo_confirm: t('you_are_scheduling_your_account_for_deletion_after_deletion_your_data_will_be_permanently_removed_and_cannot_be_recovered_click_ok_if_you_would_like_to_continue') }, method: :delete, id: :account_delete_button %>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
<div class="w-0 md:w-52"></div>
|
|
</div>
|
|
<%= render 'shared/app_tour', type: 'account' %>
|