forked from GNUsocial/gnu-social
Eliseu Amaro
600a1511cb
In user panel render time reduced dramatically, by ~70ms. Said icon was requested by twig >10 times.
47 lines
1.9 KiB
Twig
47 lines
1.9 KiB
Twig
{% macro settings_details_element(title, summary, id, details_content, context, details_ids) %}
|
|
{% if details_ids is null %}
|
|
{% set details_ids = [id] %}
|
|
{% endif %}
|
|
<details class="section-settings-details" {{ open_details(context.open_details_query, details_ids) }} id={{ id }}>
|
|
<summary>
|
|
<strong class="section-settings-details-title">
|
|
{{ title | trans }}
|
|
</strong>
|
|
<em>
|
|
{{ summary | trans }}
|
|
</em>
|
|
</summary>
|
|
|
|
{% if details_content is instanceof('Twig\\Markup') %}
|
|
{{ details_content }}
|
|
{% else %}
|
|
{{ form(details_content) }}
|
|
{% endif %}
|
|
</details>
|
|
{% endmacro settings_details_element %}
|
|
|
|
{% macro settings_details_container(title, summary, container_id, tabs, context) %}
|
|
{% set children_ids = [container_id] %}
|
|
{% set details_content %}
|
|
<nav class='section-settings-nav'>
|
|
<ul>
|
|
{% for tab in tabs %}
|
|
<hr>
|
|
<li>
|
|
{% set content %}
|
|
{% if tab['controller'] is defined %}
|
|
{% include tab['controller']['_template'] with tab['controller'] only %}
|
|
{% else %}
|
|
{{ form(tab['form']) }}
|
|
{% endif %}
|
|
{% endset %}
|
|
{{ _self.settings_details_element(tab['title'], tab['desc'], tab['id'] ~ '-details', content, context) }}
|
|
{% set children_ids = children_ids|merge([tab['id'] ~ '-details']) %}
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</nav>
|
|
{% endset %}
|
|
{{ _self.settings_details_element(title, summary, container_id, details_content, context, children_ids) }}
|
|
{% endmacro settings_details_container %}
|