94 lines
4.5 KiB
HTML
94 lines
4.5 KiB
HTML
<li
|
|
id="{{ contact.id|slugify|cleanupId }}-chat-item"
|
|
data-jid="{{ contact.id }}"
|
|
class="{% if contact.in_roster %}roster{% if not contact.presence %} faded{% endif %}{% endif %}"
|
|
title="{{ contact.id }}{% if message %} • {{ message.date_full }}{% endif %}">
|
|
|
|
<span class="primary icon bubble {% if contact.presence %}status {{ contact.presence }}{% endif %} {% if composing %}composing{% endif %}"
|
|
{% if count > 0 %}data-counter="{{ count }}"{% endif %}>
|
|
<a href="#" onclick="listIconClick(event);" title="{{ contact.truename }}">
|
|
<img alt="" src="{{ contact.picture }}">
|
|
</a>
|
|
</span>
|
|
|
|
<div>
|
|
<p class="line">
|
|
{% if message %}
|
|
<span class="info">
|
|
{{ message.date }}
|
|
</span>
|
|
<span class="info" title="{{ message.date_full }}">
|
|
{% if message.mine %}
|
|
{% if message.displayed %}
|
|
<span class="material-symbols">done_all</span>
|
|
{% elif message.delivered %}
|
|
<span class="material-symbols">check</span>
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
</span>
|
|
{% endif %}
|
|
{% if resource %}
|
|
{{ resource }}
|
|
<span class="second" title="{{ bare }}">
|
|
{{ bare }}
|
|
</span>
|
|
{% else %}
|
|
{{ contact.truename }}
|
|
{% endif %}
|
|
</p>
|
|
{% if message %}
|
|
<p class="line">
|
|
{% if in_call %}
|
|
<i class="material-symbols icon green blink">phone_in_talk</i>
|
|
{{ __('visio.in_call') }} •
|
|
{% endif %}
|
|
{% if message.encrypted %}
|
|
<i class="material-symbols fill">lock</i> {% if message.retracted %}{{ __('message.retracted') }}{% else %}{{ __('message.encrypted') }}{% endif %}
|
|
{% elif message.retracted %}
|
|
<i class="material-symbols">delete</i> {{ __('message.retracted') }}
|
|
{% elif message.type == 'invitation' %}
|
|
<i class="material-symbols icon gray">outgoing_mail</i> {{ __('message.invitation') }}
|
|
{% elif message.type == 'jingle_incoming' %}
|
|
<i class="material-symbols icon green">call</i> {{ __('chat.jingle_incoming') }}
|
|
{% elif message.type == 'jingle_retract' %}
|
|
<i class="material-symbols icon gray">phone_missed</i> {{ __('chat.jingle_retract') }}
|
|
{% elif message.type == 'jingle_reject' %}
|
|
<i class="material-symbols icon orange">phone_missed</i> {{ __('chat.jingle_reject') }}
|
|
{% elif message.type == 'jingle_finish' %}
|
|
<i class="material-symbols icon red">phone_disabled</i> {{ __('chat.jingle_end') }}
|
|
{% elif message.type == 'jingle_outgoing' %}
|
|
<i class="material-symbols icon blue">call</i> {{ __('chat.jingle_outgoing') }}
|
|
{% elif message.type == 'jingle_end' %}
|
|
<i class="material-symbols icon red">call_end</i> {{ __('chat.jingle_end') }}
|
|
{% elif message.file %}
|
|
{% if message.mine %}
|
|
<span class="moderator">{{ __('chats.me') }}:</span>
|
|
{% endif %}
|
|
{% if message.file.isPicture %}
|
|
{% if message.file.thumbnail_type == 'image/thumbhash' and message.file.thumbnail_url %}
|
|
<img class="tinythumb" data-thumbhash="{{ message.file.thumbnail_url }}">
|
|
{% else %}
|
|
<i class="material-symbols">image</i>
|
|
{% endif %}
|
|
{{ __('chats.picture') }}
|
|
{% elif message.file.isAudio %}
|
|
<i class="material-symbols">equalizer</i> {{ __('chats.audio') }}
|
|
{% elif message.file.isVideo %}
|
|
<i class="material-symbols">local_movies</i> {{ __('chats.video') }}
|
|
{% else %}
|
|
<i class="material-symbols">insert_drive_file</i> {{ __('avatar.file') }}
|
|
{% endif %}
|
|
{% elif message.body %}
|
|
{% if message.mine %}
|
|
<span class="moderator">{{ __('chats.me') }}:</span>
|
|
{% endif %}
|
|
{{ message.body_html|safe }}
|
|
{% endif %}
|
|
</p>
|
|
{% elif contact.status %}
|
|
<p class="line">{{ contact.status }}</p>
|
|
{% endif %}
|
|
</div>
|
|
</li>
|