{% requirePermission 'sproutImport-generateSeeds' %}

{% extends "sprout-base-import/_layouts/base" %}
{% import "_includes/forms" as forms %}
{% import 'sprout-base/_includes/sproutcp' as sprout %}

{% set title = 'Seed'|t('sprout-base-import') %}

{% macro errorList(errors) %}
    {% if errors %}
        <ul class="errors">
            {% for categorizedErrors in errors %}
                {% for error in categorizedErrors %}
                    <li>{{ error }}</li>
                {% endfor %}
            {% endfor %}
        </ul>
    {% endif %}
{% endmacro %}

{% from _self import errorList %}

{% block content %}

    {% if seedJob.getErrors()|length %}
        <div class="pane">
            <h3>{{ "Unable to plant seeds."|t('sprout-base-import') }}</h3>
            {{ errorList(seedJob.getErrors()) }}
        </div>
        <br>
    {% endif %}

    <form method="post" accept-charset="UTF-8">
        {{ csrfInput() }}
        {{ redirectInput('sprout-import/seed') }}
        <input type="hidden" name="action"
            value="sprout-base-import/seed/generate-element-seeds">

        {{ forms.textField({
            label: 'How many items to seed?'|t('sprout-base-import'),
            instructions: 'Total number of content items to import.'|t('sprout-base-import'),
            name: 'quantity',
            placeholder: '11'|t('sprout-base-import'),
            value: seedJob.quantity ?? 11,
            errors: seedJob.getErrors('quantity') ?? null,
            size: 4,
            first: true
        }) }}

        {{ forms.selectField({
            label: "Type of Content"|t('sprout-base-import'),
            instructions: "Select the type of content to seed in your database."|t('sprout-base-import'),
            id: "elementType",
            name: "elementType",
            options: elements,
            value: seedJob.elementType ?? '',
            errors: seedJob.getErrors('elementType') ?? null,
            hasOptgroups: true
        }) }}

        {# Output settings for each of our Importers #}
        {% for key, importer in importers %}
            <div class="field element-options {{ key|replace({'\\': "-"}) }}"
                style="display: none">
                {% namespace 'settings[' ~ key ~ ']' %}
                    {{ importer.getSeedSettingsHtml(seedJob)|raw }}
                {% endnamespace %}
            </div>
        {% endfor %}

        <div class="buttons">
            <button class="btn submit actions">{{ "Generate Content"|t('sprout-base-import') }}</button>
        </div>
    </form>

{% endblock %}

{% block details %}

    <div class="meta">

        <h2>{{ "Generate fake content"|t('sprout-base-import') }}</h2>

        <p>{{ "Generate content to work with for front-end prototyping, testing large amounts of content, and more. Any seed data generated will be marked and can later be unmarked or removed using the Weed tab."|t('sprout-base-import') }}</p>

        <h6>{{ "Supported Elements"|t('sprout-base-import') }}</h6>

        {% set importers = craft.sproutImport.getSproutImportImporters() %}

        <ul>
            {% for importer in importers %}
                {% if importer.hasSeedGenerator() %}
                    <li>{{ importer.getName() }}</li>
                {% endif %}
            {% endfor %}
        </ul>

        <h6>{{ "Supported Fields"|t('sprout-base-import') }}</h6>

        {% set fieldImporters = craft.sproutImport.getSproutImportFieldImporters() %}

        <ul>
            {% for importer in fieldImporters %}
                <li>{{ importer.getName() }}</li>
            {% endfor %}
        </ul>

    </div>

{% endblock %}

{% do view.registerAssetBundle("barrelstrength\\sproutbaseimport\\web\\assets\\import\\ImportAsset") %}

{% js %}

    Craft.SproutImport.Seed.init();

    $selectedElementType = $('#elementType').val();
    $selectedElementClass = $selectedElementType.replace(/\\/g, '-');
    $('.'+$selectedElementClass).show();

{% endjs %}