view sat_templates/templates/default/blog/macros.html @ 295:1de599c5a68f

bulma (base): loading screen: when the `loading_screen` variable is set before extending `base/base.html`, a loading modal is shown (and must be removed via JavaScript). This avoids the user to try to use an interface which is not reactive or working normally because JS is not fully loaded yet.
author Goffi <goffi@goffi.org>
date Fri, 27 Nov 2020 12:24:03 +0100
parents 178f55b825b7
children
line wrap: on
line source

{% import 'input/textbox.html' as textbox with context %}

{% macro show_items(items, comment=False, expanded=false, dates_fmt=none) %}
    {# show items and comments items if present after each item,
        then post form if allow_commenting is set
        @param items(BlogItems): items to show
        @param comment(bool): True items are comments
            if False, a div with "main_article" class will be added
        @param expanded(bool): initial state of items
    #}
    {% if dates_format is undefined %}
        {% set dates_format = dates_fmt or 'short' %}
    {% endif %}
    {% for item in items %}
        {% if not comment %}<div class="main_article">{% endif %}
            {% include 'blog/item.html' %}
        {% if not comment %}</div>{% endif %}

        {# we recursively display comments for all comments nodes (usually there's only one) #}
        {% for comments_items in item.comments_items_list %}
            <div class="box box__under box--large">
            <button class="btn-fold" onclick="clicked_mh_fix('{{'comments_panel'|next_gidx}}');clicked_cls(this)">
                <span class='show_if_parent_not_clicked'>{% trans %}show comments{% endtrans %}</span>
                <span class='show_if_parent_clicked'>{% trans %}hide comments{% endtrans %}</span>
                ({{comments_items|count}})
            </button>
            </div>
            <div id="{{'comments_panel'|cur_gidx}}" class="panel-drawer">
                {% if allow_commenting %}
                    <div class="comment_post">
                        {{- textbox.comment(service=comments_items.service, node=comments_items.node) -}}
                    </div>
                {% endif %}

                <div class="comments">
                    {{show_items(comments_items, comment=True)}}
                </div>
            </div>

        {% endfor %}

    {% endfor %}
{% endmacro %}