actix-admin 0.9.0

An admin interface for actix-web
Documentation
{% if model_field.field_type == "TextArea" %}
<textarea class="{{ model_field | get_html_input_class }} {{ additional_classes | default(value='') }}
        {% if model.errors | length > 0 or model.custom_errors | length > 0 %}
            {% if
                model.errors | get(key=model_field.field_name, default="" ) !=""
                or
                model.custom_errors | get(key=model_field.field_name, default="" ) !=""
            %}is-danger{% else %}is-success{% endif %}
        {% endif %}
        " type="{{ model_field | get_html_input_type }}" name="{{ model_field.field_name }}"
    placeholder="{{ model_field.field_name }}"
    {% if model_field.readonly %}readonly{% endif %}
    aria-label="{{ model_field.field_name }}">{{ model.values | get(key=model_field.field_name, default="") }}</textarea>
{% elif model_field.field_type == "RichText" %}
<textarea class="textarea aa-wysiwyg" id="aa-wysiwyg-{{ model_field.field_name }}"
    name="{{ model_field.field_name }}"
    {% if model_field.readonly %}readonly{% endif %}
    aria-label="{{ model_field.field_name }}">{{ model.values | get(key=model_field.field_name, default="") }}</textarea>
<script>
    (function () {
        var el = document.getElementById("aa-wysiwyg-{{ model_field.field_name }}");
        if (el && !el.dataset.aaWysiwygInitialised && window.EasyMDE) {
            new EasyMDE({
                element: el,
                autoDownloadFontAwesome: false,
                spellChecker: false,
                status: false,
                minHeight: "200px"
            });
            el.dataset.aaWysiwygInitialised = "1";
        }
    })();
</script>
{% elif model_field.field_type == "FileUpload" and model.values | get(key=model_field.field_name, default="") != "" %}
<div>
<a hx-disable href="{{ base_path }}/{{ entity_name }}/file/{{ model.primary_key }}/{{ model_field.field_name }}">{{ model.values |
    get(key=model_field.field_name, default="") }}</a>
<a class="is-pulled-right" hx-target="closest div" hx-push-url="false" hx-delete="{{ base_path }}/{{ entity_name }}/file/{{ model.primary_key }}/{{ model_field.field_name }}"
    hx-confirm="Are you sure?"><i class="fa-solid fa-trash"></i></a>
</div>
{% elif model_field.field_type == "Image" %}
<div>
    {% set img = model.values | get(key=model_field.field_name, default="") %}
    {% if img and model.primary_key %}
    <div class="mb-2">
        <img src="{{ base_path }}/{{ entity_name }}/file/{{ model.primary_key }}/{{ model_field.field_name }}"
             alt="{{ img }}" style="max-height: 160px; border-radius: 4px;">
        <a class="ml-2" hx-target="closest div" hx-push-url="false"
           hx-delete="{{ base_path }}/{{ entity_name }}/file/{{ model.primary_key }}/{{ model_field.field_name }}"
           hx-confirm="Are you sure?"><i class="fa-solid fa-trash"></i></a>
    </div>
    {% endif %}
    <input class="input" type="file" accept="image/*" name="{{ model_field.field_name }}"
           {% if model_field.readonly %}disabled{% endif %}
           aria-label="{{ model_field.field_name }}">
</div>
{% else %}
<input class="{{ model_field | get_html_input_class }} {{ additional_classes | default(value='') }}
        {% if model.errors | length > 0 or model.custom_errors | length > 0 %}
            {% if
                model.errors | get(key=model_field.field_name, default="" ) !=""
                or
                model.custom_errors | get(key=model_field.field_name, default="" ) !=""
            %}is-danger{% else %}is-success{% endif %}
        {% endif %}
        " type="{{ model_field | get_html_input_type }}"
    value="{{ model.values | get(key=model_field.field_name, default="") }}" name="{{ model_field.field_name }}"
    placeholder="{{ model_field.field_name }}"
    {% if model_field.readonly %}readonly{% endif %}
    aria-label="{{ model_field.field_name }}">
{% endif %}