forked from GNUsocial/gnu-social
164 lines
6.5 KiB
Twig
164 lines
6.5 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">
|
|
<img class="u-logo avatar" src="{{ note.getActorAvatarUrl() }}" alt="{{ nickname }}'s avatar" width="32px" height="32px">
|
|
</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 %}
|