{% 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 %}
{% 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 %}