{% import '_includes/forms' as forms %} {% import 'verbb-base/_macros' as macros %}

{{ 'Form Settings' | t('formie') }}

{{ forms.textField({ first: true, label: 'Name' | t('formie'), instructions: 'What this form will be called in the control panel.' | t('formie'), id: 'title', name: 'title', required: true, inputAttributes: { 'v-model': 'form.title', }, }) }}

{{ 'Submissions' | t('formie') }}

{% set defaultStatus = form.defaultStatus ?? null %} {% set defaultStatusId = form.defaultStatus.id ?? null %} {{ forms.hidden({ id: 'defaultStatusId', name: 'defaultStatusId', value: defaultStatusId, }) }} {% set statusField %}
{% if defaultStatus %} {{ defaultStatus.name }} {% endif %}
{% endset %} {{ forms.field({ label: 'Default Status' | t('formie'), instructions: 'The default status to be assigned to new submissions.' | t('formie') }, statusField) }}

{{ 'Privacy' | t('formie') }}

{{ forms.lightswitchField({ label: 'Collect IP Addresses' | t('formie'), instructions: 'Whether this form should collect the users’ IP address.' | t('formie'), id: 'collectIp', name: 'settings[collectIp]', on: form.settings.collectIp ?? false, }) }} {% set collectUser = form.settings.collectUser ?? false %} {{ forms.lightswitchField({ label: 'Collect User' | t('formie'), instructions: 'Whether this form should keep a record of the logged-in user.' | t('formie'), id: 'collectUser', name: 'settings[collectUser]', on: collectUser, toggle: 'collect-user', }) }} {# Annoying, but different settings for top-level #} {% if stencil is defined %} {% set dataRetention = form.data.dataRetention ?? 'forever' %} {% set dataRetentionValue = form.data.dataRetentionValue ?? null %} {% set fileUploadsAction = form.data.fileUploadsAction ?? 'retain' %} {% else %} {% set dataRetention = form.dataRetention ?? 'forever' %} {% set dataRetentionValue = form.dataRetentionValue ?? null %} {% set fileUploadsAction = form.fileUploadsAction ?? 'retain' %} {% endif %} {{ forms.selectField({ label: 'Data Retention' | t('formie'), instructions: 'How long to retain form submission data for.' | t('formie'), id: 'dataRetention', name: 'dataRetention', options: [{ label: 'Forever' | t('formie'), value: 'forever', }, { label: 'Number of minutes' | t('formie'), value: 'minutes', }, { label: 'Number of hours' | t('formie'), value: 'hours', }, { label: 'Number of days' | t('formie'), value: 'days', }, { label: 'Number of weeks' | t('formie'), value: 'weeks', }, { label: 'Number of months' | t('formie'), value: 'months', }, { label: 'Number of years' | t('formie'), value: 'years', }], toggle: true, targetPrefix: '.fui-dr-', value: dataRetention, }) }}
{{ forms.textField({ label: 'Data Retention Duration' | t('formie'), instructions: 'After this duration has been met, submissions will be deleted.' | t('formie'), id: 'dataRetentionValue', name: 'dataRetentionValue', type: 'number', size: 3, value: dataRetentionValue, warning: 'We use Craft‘s [garbage collection](https://craftcms.com/docs/4.x/gc.html) mechanism to remove submissions, so this may not always be actioned immediately.' | t('formie'), }) }}
{{ forms.selectField({ label: 'File Uploads' | t('formie'), instructions: 'Select how to handle file uploads when a submission is deleted.' | t('formie'), id: 'fileUploadsAction', name: 'fileUploadsAction', options: [{ label: 'Retain files' | t('formie'), value: 'retain', }, { label: 'Delete files' | t('formie'), value: 'delete', }], value: fileUploadsAction, }) }}

{{ 'Advanced' | t('formie') }}

{% js %} $(function () { $colorSelect = $('#status-menu-btn'); new Garnish.MenuBtn($colorSelect, { onOptionSelect: function(data) { var val = $(data).data('val'); var label = $(data).data('label'); var color = $(data).data('color'); $('#defaultStatusId').val(val); var html = '' + label; $colorSelect.html(html); } }); }); {% endjs %}