view sat_templates/templates/default/blog/macros.html @ 166:178f55b825b7

small refactoring/redesign, better BEM integration: - blog has been redesigned, and almost all blog CSS has been made generic and moved to main styles.css file. - better noscript handling, dynamic elements are created using "magic" classes (dom_update.js) - using better icons for older/newer messages - better state handling, classes now use "state_XXX" - more classes now use BEM convention - menu labels have been moved to a separate template (components/menu_labels.html), so it can be overriden easily by other sites - better styles.css organisation
author Goffi <goffi@goffi.org>
date Wed, 03 Oct 2018 21:00:24 +0200
parents e9f0a4215e46
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 %}