{% import '_includes/forms' as forms %}
{% import 'feed-me/_macros' as feedMeMacro %}
{% if feed.elementGroup %}
{% set calendarId = feed.elementGroup[feed.elementType] %}
{% set calendar = craft.calendar.calendar({ id: calendarId }) %}
{% endif %}
{% set fields = [{
name: 'Title',
handle: 'title',
default: {
type: 'text',
},
}, {
name: 'Slug',
handle: 'slug',
instructions: 'If not set, the Slug will be automatically created from Title.'|t('feed-me'),
default: {
type: 'text',
},
}, {
type: 'date',
name: 'Start Date',
handle: 'startDate',
instructions: 'Accepts Unix timestamp, or just about any English textual datetime description.'|t('feed-me'),
default: {
type: 'dateTime',
},
}, {
type: 'date',
name: 'End Date',
handle: 'endDate',
instructions: 'Accepts Unix timestamp, or just about any English textual datetime description.'|t('feed-me'),
default: {
type: 'dateTime',
},
}, {
name: 'All Day',
handle: 'allDay',
instructions: 'Whether this event is all day or not.'|t('feed-me'),
default: {
type: 'select',
options: [
{ label: 'Don’t import'|t('feed-me'), value: '' },
{ label: 'Yes', value: '1' },
{ label: 'No', value: '0' },
],
},
}, {
name: 'Enabled',
handle: 'enabled',
instructions: 'Choose either a default status from the list or the imported field that will contain the status.'|t('feed-me'),
default: {
type: 'select',
options: [
{ label: 'Don’t import'|t('feed-me'), value: '' },
{ label: 'Enabled', value: '1' },
{ label: 'Disabled', value: '0' },
],
},
}, {
type: 'users',
name: 'Author',
handle: 'authorId',
instructions: 'Entries will be assigned to the user in this field. If the field does not match any existing member, the default author will be assigned.'|t('feed-me'),
default: {
type: 'elementselect',
options: {
elementType: 'craft\\elements\\User',
selectionLabel: "Default Author"|t('feed-me'),
limit: 1,
},
},
}, {
name: 'Event ID',
handle: 'id',
instructions: 'Warning: This should only be used for an existing Solspace Event ID.'|t('feed-me'),
default: {
type: 'text',
},
}] %}
{{ 'Event Fields'|t('feed-me') }}
{{ 'Field'|t('feed-me') }}
{{ 'Feed Element'|t('feed-me') }}
{{ 'Default Value'|t('feed-me') }}
{% for field in fields %}
{% set template = field.type ?? 'default' %}
{% set variables = field|merge({ feed: feed, feedData: feedData, attribute: true }) %}
{% include 'feed-me/_includes/fields/' ~ template ignore missing with variables only %}
{% endfor %}
{% for field in recurrenceFields %}
{% set template = field.type ?? 'default' %}
{% set variables = field|merge({ feed: feed, feedData: feedData, attribute: true }) %}
{% include 'feed-me/_includes/fields/' ~ template ignore missing with variables only %}
{% endfor %}
{% set tabs = [] %}
{% if calendar.fieldLayoutId %}
{% set tabs = craft.app.fields.getLayoutById(calendar.fieldLayoutId).getTabs() %}
{% for tab in tabs %}
{{ tab.name }} Fields
{{ 'Field'|t('feed-me') }}
{{ 'Feed Element'|t('feed-me') }}
{{ 'Default Value'|t('feed-me') }}
{% for layoutField in tab.getElements()|filter(e => e is instance of('craft\\fieldlayoutelements\\CustomField')) %}
{% set field = layoutField.getField() %}
{% set fieldClass = craft.feedme.fields.getRegisteredField(className(field)) %}
{% set template = fieldClass.getMappingTemplate() %}
{% set variables = { name: field.name, handle: field.handle, feed: feed, feedData: feedData, field: field, fieldClass: fieldClass } %}
{% include template ignore missing with variables only %}
{% endfor %}
{% endfor %}
{% endif %}
{{ "Set a unique identifier to match against existing elements"|t('feed-me') }}
{{ "Select the fields you want to use to check for existing elements. When selected, Feed Me will look for existing elements that match the fields provided below and either update, or skip depending on your choice of Import Strategy."|t('feed-me') }}
{% set uniqueFields = fields %}
{% for field in recurrenceFields %}
{% set uniqueFields = uniqueFields|merge([{ name: field.name, handle: field.handle }]) %}
{% endfor %}
{% for tab in tabs %}
{% for layoutField in tab.getElements()|filter(e => e is instance of('craft\\fieldlayoutelements\\CustomField')) %}
{% set field = layoutField.getField() %}
{% set uniqueFields = uniqueFields|merge([{ name: field.name, handle: field.handle, type: className(field) }]) %}
{% endfor %}
{% endfor %}