{% import '_includes/forms' as forms %} {% extends 'formie/_layouts' %} {% set crumbs = [ { label: craft.formie.getPluginName() | t('formie'), url: url('formie') }, { label: 'Settings' | t('app'), url: url('formie/settings') }, { label: typeName | t('formie'), url: url(baseUrl) }, ] %} {% set bodyClass = 'fui-integrations-settings' %} {% set selectedSubnavItem = 'settings' %} {% set selectedTab = 'settings' %} {% if craft.app.config.general.allowAdminChanges %} {% set fullPageForm = true %} {% set saveShortcutRedirect = continueEditingUrl %} {% set formActions = [ { label: 'Save and continue editing' | t('app'), redirect: continueEditingUrl | hash, shortcut: true, retainScroll: true, }, not isNewIntegration ? { destructive: true, label: 'Delete integration' | t('formie'), action: 'formie/integrations/delete-integration', redirect: baseUrl | hash, confirm: 'Are you sure you want to delete this integration?' | t('formie'), } ] | filter %} {% endif %} {% block content %} {{ redirectInput(baseUrl) }} {% if not isNewIntegration %} {% endif %} {# Show an error when connecting to OAuth, instead of just in logs #} {% set message = craft.app.session.getFlash('formie-error') %} {% if message %}
{{ message }}
{% endif %}
{{ forms.textField({ first: true, label: 'Name' | t('formie'), instructions: 'What this integration will be called in the control panel.' | t('formie'), id: 'name', name: 'name', value: (integration is defined ? integration.getName() : null), errors: (integration is defined ? integration.getErrors('name') : null), autofocus: true, required: true, }) }} {{ forms.textField({ label: 'Handle' | t('formie'), instructions: 'How you’ll refer to this integration in the templates.' | t('formie'), id: 'handle', name: 'handle', class: 'code', autocorrect: false, autocapitalize: false, value: (integration is defined ? integration.handle : null), errors: (integration is defined ? integration.getErrors('handle') : null), required: true, }) }}
{{ forms.selectField({ label: 'Integration Provider' | t('formie'), instructions: 'Select the provider you wish to use for this integration.' | t('formie'), id: 'type', name: 'type', options: integrationTypeOptions, value: className(integration), toggle: true, }) }} {{ missingIntegrationPlaceholder | raw }} {% for integrationType in integrationTypes %} {% set isCurrent = (integrationType == className(integration)) %}
{% namespace 'types[' ~ integrationType ~ ']' %} {% if isCurrent %} {{ integration.getSettingsHtml() | raw }} {% else %} {{ integrationInstances[integrationType].getSettingsHtml() | raw }} {% endif %} {% endnamespace %}
{% endfor %}
{% endblock %} {% block details %}
{{ forms.lightswitchField({ first: true, label: 'Enabled' | t('formie'), id: 'enabled', name: 'enabled', on: isNewIntegration ? true : integration.getEnabled(), }) }} {% if not isNewIntegration and integration.supportsConnection() %} {% set connected = integration.getIsConnected() %} {% if integration.supportsOAuthConnection() %} {% if not craft.app.config.general.allowAdminChanges %}
{{ csrfInput() }} {% else %}
{% endif %} {% if connected %}
{{ 'Connected' | t('formie') }}
{% else %}
{{ 'Not connected' | t('formie') }}
{% endif %} {% if not craft.app.config.general.allowAdminChanges %} {% else %}
{% endif %} {% elseif integration.supportsConnection() %} {# Placeholder until Vue kicks in #}
{{ (connected ? 'Connected' : 'Not connected') | t('formie') }}
{% endif %} {% endif %}
{% if not isNewIntegration %} {% if craft.app.config.general.allowAdminChanges %}
{% endif %}
{{ 'Date Created' | t('app') }}
{{ integration.dateCreated | date('short') }} {{ integration.dateCreated | time('short') }}
{{ 'Date Updated' | t('app') }}
{{ integration.dateUpdated | date('short') }} {{ integration.dateUpdated | time('short') }}
{% endif %} {% endblock %} {% js %} {% if integration is not defined or not integration.handle %} new Craft.HandleGenerator('#name', '#handle'); {% endif %} // Add event listeners to all form inputs, to detect a change. Show a message to save when changed. $(document).ready(function() { var html = '
{{ 'Save this integration to connect.' | t('formie') }}
'; $('#main-form').find('input, select, textarea').on('input', function() { $('.fui-connect').html(html); }); $('#main-form').find('.lightswitch').on('change', function() { $('.fui-connect').html(html); }); }); {% endjs %}