forked from GNUsocial/gnu-social
Eliseu Amaro
65676d3980
Attachments may use only a specific block, not the full note macro itself. Since this is the case, the actor needs to be retrieved for the minimal macro note.
165 lines
6.6 KiB
Twig
165 lines
6.6 KiB
Twig
{% block note_actions %}
|
|
{% if app.user or note_actions_hide is defined %}
|
|
<div class="note-actions note-info-end">
|
|
<ul>
|
|
<li class="note-actions-extra">
|
|
<details class="note-actions-extra-details">
|
|
<summary>
|
|
{{ icon('kebab', 'icon icon-note-actions-extra') | raw }} {# button-container #}
|
|
</summary>
|
|
<ul>
|
|
<li>
|
|
<a href="{{ note.getUrl() }}">{{ 'Permalink' | trans }}</a>
|
|
</li>
|
|
<hr>
|
|
{% for current_action in get_extra_note_actions(note) %}
|
|
<li>
|
|
<a class="{{ current_action["classes"] }}"
|
|
href="{{ current_action["url"] }}">{{ current_action['title'] }}</a>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
{% for current_action in get_note_actions(note) %}
|
|
<li>
|
|
<a title="{{ current_action["title"] | trans }}" class="{{ current_action["classes"] }}"
|
|
href="{{ current_action["url"] }}"></a>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</div>
|
|
{% endif %}
|
|
{% endblock note_actions %}
|
|
|
|
{% block note_replies %}
|
|
{% if replies is defined and replies is not empty %}
|
|
<div class="u-in-reply-to replies" tabindex="0" title="{{ 'Begin replies to ' | trans }}{{ nickname }}{{ '\'s note!' | trans }}">
|
|
<strong><small>{{ 'Replies to ' | trans }}{{ nickname }}</small></strong>
|
|
{% for conversation in replies %}
|
|
{{ _self.macro_note(conversation['note'], conversation['replies']) }}
|
|
<hr tabindex="0" title="{{ 'End of reply' | trans }}">
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
{% endblock note_replies %}
|
|
|
|
{% block note_attachments %}
|
|
{% if hide_attachments is not defined %}
|
|
{% if note.getAttachments() is not empty %}
|
|
<section class="note-attachments" tabindex="0" title="{{ 'Note attachments.' | trans }}">
|
|
{% for attachment in note.getAttachments() %}
|
|
{% include '/cards/attachments/view.html.twig' with {'attachment': attachment, 'note': note} only%}
|
|
{% endfor %}
|
|
</section>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endblock note_attachments %}
|
|
|
|
{% block note_links %}
|
|
{% if note.getLinks() is not empty %}
|
|
<div class="note-links" title="{{ 'Shared links.' | trans }}">
|
|
{% for link in note.getLinks() %}
|
|
{% for block in handle_event('ViewLink', {'link': link, 'note': note}) %}
|
|
{{ block | raw }}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
{% endblock note_links %}
|
|
|
|
{% block note_text %}
|
|
<div class="note-text" tabindex="0" title="{{ 'Note text content.' | trans }}">
|
|
{{ note.getRendered() | raw }}
|
|
</div>
|
|
{% endblock note_text %}
|
|
|
|
{% block note_author %}
|
|
{# Microformat's h-card properties indicates a face icon is a "u-logo" #}
|
|
<header class="note-author-fullname" tabindex="0" title="{{ 'Begin a note by the user: ' | trans }} {{ nickname }}" >
|
|
{% if fullname is not null %}
|
|
{{ fullname }}
|
|
{% else %}
|
|
{{ nickname }}
|
|
{% endif %}
|
|
</header>
|
|
|
|
<small class="note-author-nickname">
|
|
<a href="{{ actor_url }}" class="note-author-url u-url">{{ nickname }}</a>
|
|
</small>
|
|
{% endblock note_author %}
|
|
|
|
{% block note_sidebar %}
|
|
<aside class="note-sidebar">
|
|
{% set actor_avatar_dimensions = note.getActor().getAvatarDimensions() %}
|
|
<img class="u-logo avatar" src="{{ note.getActorAvatarUrl() }}" alt="{{ nickname }}'s avatar" width="{{actor_avatar_dimensions['width']}}" height="{{actor_avatar_dimensions['height']}}">
|
|
</aside>
|
|
{% endblock note_sidebar %}
|
|
|
|
{% block note_info %}
|
|
<div class="note-info">
|
|
<div class="note-info-start">
|
|
{{ block('note_author') }}
|
|
<small class="note-conversation-info">
|
|
<a href="{{ note.getConversationUrl() }}" class="note-conversation-url">{{ 'in conversation' | trans }}</a>
|
|
<a href="{{ note.getUrl() }}" class="note-url">{{ note.getModified() | ago }}</a>
|
|
</small>
|
|
</div>
|
|
|
|
{{ block('note_actions') }}
|
|
</div>
|
|
{% endblock note_info %}
|
|
|
|
{% macro macro_note(note, replies) %}
|
|
{% set nickname = note.getActorNickname() %}
|
|
{% set fullname = note.getActorFullname() %}
|
|
{% set actor = note.getActor() %}
|
|
{% set actor_url = actor.getUrl() %}
|
|
{% set note_language = note.getNoteLanguageShortDisplay() %}
|
|
|
|
<article class="h-entry hentry note" lang={{ note.getLanguageLocale() }}>
|
|
{{ block('note_sidebar') }}
|
|
<div class="note-wrapper">
|
|
{{ block('note_info') }}
|
|
|
|
<section role="dialog" class="e-content entry-content note-content">
|
|
{{ block('note_text') }}
|
|
{{ block('note_attachments') }}
|
|
{{ block('note_links') }}
|
|
</section>
|
|
|
|
{{ block('note_replies') }}
|
|
|
|
{% for block in handle_event('AppendCardNote', {'note': note, 'actor': note.getActor() }) %}
|
|
<aside title="{{ 'Note\'s complementary information' | trans }}" class="note-complementary">
|
|
{{ block | raw }}
|
|
</aside>
|
|
{% endfor %}
|
|
|
|
{# {% if note_language is defined and note_language is not empty %}#}
|
|
{# <div title="{{ 'Note\'s language' | trans }}" class="h-entry-language">{{ note_language }}</div>#}
|
|
{# {% endif %}#}
|
|
</div>
|
|
</article>
|
|
{% endmacro macro_note %}
|
|
|
|
{% macro macro_note_minimal(note) %}
|
|
{% set nickname = note.getActorNickname() %}
|
|
{% set fullname = note.getActorFullname() %}
|
|
{% set actor_url = note.getActor().getUrl() %}
|
|
|
|
<article class="h-entry hentry note">
|
|
{{ block('note_sidebar') }}
|
|
<div class="note-wrapper">
|
|
<div tabindex="0" title="{{ 'Begin a note by the user: ' | trans }} {{ nickname }}." class="note-info">
|
|
{{ block('note_author') }}
|
|
</div>
|
|
<section tabindex="0" role="dialog" class="e-content entry-content note-content">
|
|
{{ block('note_text') }}
|
|
{{ block('note_attachments') }}
|
|
{{ block('note_links') }}
|
|
</section>
|
|
</div>
|
|
</article>
|
|
{% endmacro macro_note_minimal %}
|