{% extends "_layouts/cp" %}
{% import "_includes/forms" as forms %}

{% set fullPageForm=1 %}

{% block details %}
    <div id="settings">
        <div class="meta">
            <div class="data first">
                <h5 class="heading">{{ "Status"|t('app') }}</h5>
                <div class="value flex">
                    <div class="flex-grow">
                        <span class="status {% if keypair.enabled %}active{% else %}inactive{% endif %}"></span>
                        {% if keypair.enabled %}Enabled{% else %}Disabled{% endif %}
                    </div>
                    {% if actions|length %}
                        <div>
                            <div id="action-menubtn" class="btn menubtn" data-icon="settings" title="{{ 'Actions'|t('app') }}"></div>
                            <div class="menu">
                                {% for actionList in actions %}
                                    {% if not loop.first %}<hr>{% endif %}
                                    <ul>
                                        {% for actionItem in actionList %}
                                            <li><a
                                                        {%- if actionItem.id is defined %} id="{{ actionItem.id }}"{% endif %}
                                                        {%- if actionItem.action is defined %} class="formsubmit" data-action="{{ actionItem.action }}"{% endif -%}
                                                >{{ actionItem.label }}</a>
                                            </li>
                                        {% endfor %}
                                    </ul>
                                {% endfor %}
                            </div>
                            <div id="action-spinner" class="spinner hidden"></div>
                        </div>
                    {% endif %}
                </div>
            </div>
            <hr>
            <p>
                {{ "Toggle 'Is Encrypted' to encrypt the key and certificate when it's stored in the db. This uses the Craft security key."|t('keychain') }}
            </p>
            {{ forms.lightswitchField({
                label: "Encrypt at Rest"|t('keychain'),
                id: 'isEncrypted',
                name: 'isEncrypted',
                on: keypair.id ? keypair.isEncrypted : true,
                errors: keypair.getErrors('isEncrypted')
            }) }}
        </div>
        <hr>
        {% if keypair.id %}
            <div class="meta read-only">
                <div class="data">
                    <h5 class="heading">{{ "Created at"|t('app') }}</h5>
                    <div class="value">{{ keypair.dateCreated|datetime('short') }}</div>
                </div>
                <div class="data">
                    <h5 class="heading">{{ "Updated at"|t('app') }}</h5>
                    <div class="value">{{ keypair.dateUpdated|datetime('short') }}</div>
                </div>
            </div>
        {% endif %}
    </div>
{% endblock %}

{% block content %}
    <input type="hidden" name="action"
           value="{{ baseActionPath }}/upsert">
    <input type="hidden" name="pluginHandle" value="{{ pluginHandle }}"/>
    {{ redirectInput(baseCpPath) }}

    {% if keypair.id %}<input type="hidden" name="identifier" value="{{ keypair.id }}">{% endif %}

    {{ forms.textField({
        label: "Description"|t('keychain'),
        instructions: "Describe the what this key pair is for."|t('keychain'),
        name: "description",
        id: 'description',
        value: keypair.description,
        errors: keypair.getErrors('keypair'),
    }) }}

    {{ forms.textareaField({
        label: "Key"|t('keychain'),
        instructions: "Key"|t('keychain'),
        class: "code",
        id: 'key',
        name: 'key',
        value:  keypair.getDecryptedKey(),
        errors: keypair.getErrors('key'),
        required: true,
        rows: 10
    }) }}

    {{ forms.textareaField({
        label: "Certificate"|t('keychain'),
        instructions: "Certificate"|t('keychain'),
        class: "code",
        id:   'certificate',
        name: 'certificate',
        value:  keypair.getDecryptedCertificate(),
        errors: keypair.getErrors('certificate'),
        required: true,
        rows: 10
    }) }}

    <div class="item" data-position="right" data-colspan="1"></div>

{% endblock %}
