This commit is contained in:
nnduc
2026-10-24 14:03:52 +07:00
commit 4fe046de58
4790 changed files with 311146 additions and 0 deletions
@@ -0,0 +1,23 @@
<li {% if mine %}class="oppose"{% endif %}
onclick="Chat_ajaxGetMessageContext('{{ jid|echapJS }}', {{ message.mid }}); Drawer.clear()">
<div class="bubble {% if picture %}file{% endif %}"
data-publishedprepared="{{ date }}">
<div class="message">
{% if muc %}
<span class="resource {{ color }}">{{ message.resource }}</span>
{% endif %}
{% if message.encrypted %}
<p class="encrypted">{% if message.retracted %}{{ __('message.retracted') }}{% else %}{{ __('message.encrypted') }}{% endif %} <i class="material-symbols fill">lock</i></p>
{% elif message.retracted %}
<p class="retracted">{{ __('message.retracted') }} <i class="material-symbols">delete</i></p>
{% elif picture %}
<div class="file">
<img src="{{ picture }}">
</div>
{% else %}
<p>{{ body|safe }}</p>
{% endif %}
<span class="info"></span>
</div>
</div>
</li>
@@ -0,0 +1,84 @@
<section id="chat_actions">
<ul class="list" id="message_preview">
{{ preview|safe }}
{% if reactions %}
<li class="reactions">
<div>
<p class="all">{% for r in reactions %}<a class="chip" href="#" title="{{ r.from|implodeCsv }}">{{ r.emoji|addEmojis(true) }}{{ r.from|implodeCsv }}</a>{% endfor %}</p>
</div>
</li>
{% endif %}
</ul>
<ul class="list divided active middle">
{% if not message.encrypted %}
<li onclick="Stickers_ajaxReaction({{ message.mid }}); Dialog_ajaxClear()">
<span class="primary icon gray">
<i class="material-symbols">add_reaction</i>
</span>
<div>
<p>{{ __('message.react') }}</p>
</div>
</li>
<li
onclick="MovimUtils.copyToClipboard(MovimUtils.decodeHTMLEntities(ChatActions.message.body)); ChatActions_ajaxCopiedMessageText(); Dialog_ajaxClear()">
<span class="primary icon gray">
<i class="material-symbols">content_copy</i>
</span>
<div>
<p>{{ __('chatactions.copy_text') }}</p>
</div>
</li>
{% endif %}
<li onclick="Chat_ajaxHttpDaemonReply({{ message.mid }}); Dialog_ajaxClear()">
<span class="primary icon gray">
<i class="material-symbols">reply</i>
</span>
<div>
<p>{{ __('button.reply') }}</p>
</div>
</li>
{% if editable %}
<li onclick="Chat_ajaxEdit({{ message.mid }}); Dialog_ajaxClear();">
<span class="primary icon gray">
<i class="material-symbols">edit</i>
</span>
<div>
<p>{{ __('button.edit') }}</p>
</div>
</li>
{% endif %}
{% if mine %}
<li onclick="ChatActions_ajaxHttpDaemonRetract({{ message.mid }})">
<span class="primary icon gray">
<i class="material-symbols">delete</i>
</span>
<div>
<p>{{ __('message.retract') }}</p>
</div>
</li>
{% endif %}
{% if moderator %}
<li class="subheader">
<div>
<p>{{ __('page.administration') }}</p>
</div>
</li>
<li onclick="ChatActions_ajaxHttpDaemonModerate({{ message.mid }})">
<span class="primary icon gray">
<i class="material-symbols">delete</i>
</span>
<div>
<p>{{ __('message.retract') }}</p>
</div>
</li>
{% endif %}
</ul>
</section>
<footer>
<button onclick="Dialog_ajaxClear()" class="button flat">
{{ __('button.close') }}
</button>
</footer>
@@ -0,0 +1,13 @@
<section id="chat_search">
{{ placeholder|safe }}
</section>
<ul class="list">
<li class="search">
<form name="search" onsubmit="return false;">
<div>
<input name="keyword" autocomplete="off"
placeholder="{{ __('button.search') }}" oninput="ChatActions_ajaxSearchMessages('{{ jid|echapJS }}', this.value, {% if muc %}true{% else %}false{% endif %});" type="text">
</div>
</form>
</li>
</ul>
@@ -0,0 +1,5 @@
<div class="placeholder">
<i class="material-symbols">search</i>
<h1>{{ __('chatactions.search_messages') }}</h1>
<h4>{{ __('input.open_me_using') }} <span class="chip outline">Ctrl</span> + <span class="chip outline">F</span></h4>
</div>
@@ -0,0 +1,13 @@
{% if not messages %}
<div class="placeholder">
<i class="material-symbols">search_off</i>
<h1>{{ __('chatactions.search_messages') }}</h1>
<h4>{{ __('chatactions.search_messages_empty') }}</h4>
</div>
{% else %}
<ul class="list active divided" id="message_preview">
{% for m in messages %}
{{ m|safe }}
{% endfor %}
</ul>
{% endif %}