init
This commit is contained in:
@@ -0,0 +1,219 @@
|
||||
<section>
|
||||
{% if id %}
|
||||
<ul class="list thick">
|
||||
<li>
|
||||
{% if conference %}
|
||||
<span class="primary icon bubble">
|
||||
<img src="{{ conference.picture }}">
|
||||
</span>
|
||||
<span class="control icon gray divided active" onclick="RoomsUtils_ajaxRemove('{{ conference.jid|echapJS }}');">
|
||||
<i class="material-symbols">delete</i>
|
||||
</span>
|
||||
{% endif %}
|
||||
<div>
|
||||
<p class="line">{% if conference %}{{ conference.title }}{% else %}{{ id }}{% endif %}</p>
|
||||
<p>{{ __('chatrooms.edit') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
{% else %}
|
||||
<h3>{{ __('chatrooms.create') }}</h3>
|
||||
{% endif %}
|
||||
|
||||
<form name="bookmarkmucadd">
|
||||
{% if create %}
|
||||
<div>
|
||||
<ul class="list middle">
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">people_alt</i>
|
||||
</span>
|
||||
<span class="control">
|
||||
<div class="radio">
|
||||
<input name="type" value="groupchat"
|
||||
id="type_groupchat" type="radio"
|
||||
checked>
|
||||
<label for="type_groupchat"></label>
|
||||
</div>
|
||||
</span>
|
||||
<div>
|
||||
<p>{{ __('room.group_chat') }}</p>
|
||||
<p>{{ __('room.group_chat_text') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">wifi_tethering</i>
|
||||
</span>
|
||||
<span class="control">
|
||||
<div class="radio">
|
||||
<input name="type" value="channel"
|
||||
id="type_channel" type="radio">
|
||||
<label for="type_channel"></label>
|
||||
</div>
|
||||
</span>
|
||||
<div>
|
||||
<p>{{ __('room.channel') }}</p>
|
||||
<p>{{ __('room.channel_text') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
{% if conference %}
|
||||
value="{{ conference.name }}"
|
||||
{% elif info %}
|
||||
value="{{ info.name }}"
|
||||
{% elif name %}
|
||||
value="{{ name }}"
|
||||
{% endif %}
|
||||
name="name"
|
||||
placeholder="{{ __('chatrooms.name_placeholder') }}"
|
||||
onblur="RoomsUtils_ajaxResolveSlug(this.value)"
|
||||
required />
|
||||
<label>{{ __('general.name') }}</label>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if id and not create %}
|
||||
<input type="hidden" value="{{ id }}" name="jid"/>
|
||||
{% else %}
|
||||
<div id="bookmarkmucadd_jid">
|
||||
<input
|
||||
name="jid"
|
||||
{% if mucservice %}
|
||||
placeholder="chatroom@{{ mucservice.server }}"
|
||||
{% else %}
|
||||
placeholder="chatroom@server.com"
|
||||
{% endif %}
|
||||
type="email"
|
||||
list="suggestions"
|
||||
oninput="Rooms.cleanId(this); Rooms.suggest()"
|
||||
required />
|
||||
<label>{{ __('chatrooms.id') }}</label>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div>
|
||||
<ul class="list">
|
||||
{% if not create %}
|
||||
<li>
|
||||
<div>
|
||||
<input
|
||||
{% if conference %}
|
||||
value="{{ conference.name }}"
|
||||
{% elif info %}
|
||||
value="{{ info.name }}"
|
||||
{% elif name %}
|
||||
value="{{ name }}"
|
||||
{% endif %}
|
||||
name="name"
|
||||
type="hidden"
|
||||
required />
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">person_book</i>
|
||||
</span>
|
||||
<div>
|
||||
<input
|
||||
{% if conference and conference.nick %}
|
||||
value="{{ conference.nick }}"
|
||||
{% else %}
|
||||
value="{{ username }}"
|
||||
{% endif %}
|
||||
name="nick"
|
||||
placeholder="{{ username }}"/>
|
||||
<label>{{ __('general.nickname') }}</label>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">edit_notifications</i>
|
||||
</span>
|
||||
<div>
|
||||
<div class="select">
|
||||
<select name="notify">
|
||||
<option value="never" {% if conference and conference.notify == 0 %}selected{% endif %}>
|
||||
{{ __('room.notify_never') }}
|
||||
</option>
|
||||
<option value="on-mention" {% if conference and conference.notify == 1 %}selected{% endif %}
|
||||
{% if not conference %}selected{% endif %}>
|
||||
{{ __('room.notify_mentioned') }}
|
||||
</option>
|
||||
<option value="always" {% if conference and conference.notify == 2 %}selected{% endif %}>
|
||||
{{ __('room.notify_always') }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<label>{{ __('room.notify_title') }}</label>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">login</i>
|
||||
</span>
|
||||
<span class="control">
|
||||
<div class="checkbox">
|
||||
<input
|
||||
{% if conference and conference.autojoin %}
|
||||
checked
|
||||
{% endif %}
|
||||
type="checkbox"
|
||||
id="autojoin"
|
||||
name="autojoin"/>
|
||||
<label for="autojoin"></label>
|
||||
</div>
|
||||
</span>
|
||||
<div>
|
||||
<p class="all">{{ __('chatrooms.autojoin') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">push_pin</i>
|
||||
</span>
|
||||
<span class="control">
|
||||
<div class="checkbox">
|
||||
<input
|
||||
{% if conference and conference.pinned %}
|
||||
checked
|
||||
{% endif %}
|
||||
type="checkbox"
|
||||
id="pinned"
|
||||
name="pinned"/>
|
||||
<label for="pinned"></label>
|
||||
</div>
|
||||
</span>
|
||||
<div>
|
||||
<p>{{ __('chatrooms.pinned') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
<footer>
|
||||
<button class="button flat" onclick="Dialog_ajaxClear()">
|
||||
{{ __('button.cancel') }}
|
||||
</button>
|
||||
<button
|
||||
class="button flat"
|
||||
{% if create %}
|
||||
onclick="RoomsUtils_ajaxAddCreate(MovimUtils.formToJson('bookmarkmucadd'));"
|
||||
{% else %}
|
||||
onclick="RoomsUtils_ajaxAddConfirm(MovimUtils.formToJson('bookmarkmucadd'));"
|
||||
{% endif %}
|
||||
>
|
||||
{% if conference %}
|
||||
{{ __('button.edit') }}
|
||||
{% else %}
|
||||
{{ __('button.add') }}
|
||||
{% endif %}
|
||||
</button>
|
||||
</footer>
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
<section class="scroll">
|
||||
<ul class="list thick">
|
||||
<li>
|
||||
{% if owner %}
|
||||
<span class="control icon divided active"
|
||||
title="{{ __('button.destroy') }}"
|
||||
onclick="RoomsUtils_ajaxAskDestroy('{{ room|echapJS }}');">
|
||||
<i class="material-symbols">delete</i>
|
||||
</span>
|
||||
{% endif %}
|
||||
<span class="primary icon bubble">
|
||||
<img src="{{ picture }}">
|
||||
</span>
|
||||
<div>
|
||||
<p class="line">{{ title }}</p>
|
||||
<p>{{ __('chatrooms.configure') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<form name="config">
|
||||
{{ form|safe }}
|
||||
</form>
|
||||
</section>
|
||||
<footer>
|
||||
<a onclick="Dialog_ajaxClear()" class="button flat">
|
||||
{{ __('button.close') }}
|
||||
</a>
|
||||
<a onclick="RoomsUtils_ajaxSetConfig(MovimUtils.formToJson('config'), '{{ room|echapJS }}'); Dialog_ajaxClear();" class="button flat green color">
|
||||
{{ __('button.save') }}
|
||||
</a>
|
||||
</footer>
|
||||
@@ -0,0 +1,75 @@
|
||||
<section>
|
||||
<h3>{{ __('room.configure_user') }}</h3>
|
||||
<ul class="list thick">
|
||||
<li>
|
||||
<span class="primary icon bubble small status {{ occupant.presence }}">
|
||||
<img loading="lazy" src="{{ occupant.picture }}">
|
||||
</span>
|
||||
<div>
|
||||
<p>{{ occupant.nick }}</p>
|
||||
<p>{% if occupant.jid %}{{ occupant.jid }}{% endif %}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list active">
|
||||
{% if occupant.jid %}
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">assignment_ind</i>
|
||||
</span>
|
||||
<div>
|
||||
<div class="select">
|
||||
<select name="affiliation"
|
||||
onchange="RoomsUtils_ajaxChangeAffiliation('{{ room|echapJS }}', '{{ occupant.jid|echapJS }}', this.value);">
|
||||
<option value="owner" {% if occupant.affiliation == 'owner' %}selected{% endif %} {% if my_affiliation != 'owner' %}disabled{% endif %}>
|
||||
{{ __('affiliation.owner') }}
|
||||
</option>
|
||||
<option value="admin" {% if occupant.affiliation == 'admin' %}selected{% endif %} {% if my_affiliation != 'owner' %}disabled{% endif %}>
|
||||
{{ __('affiliation.admin') }}
|
||||
</option>
|
||||
<option value="member" {% if occupant.affiliation == 'member' %}selected{% endif %}>
|
||||
{{ __('affiliation.member') }}
|
||||
</option>
|
||||
<option value="none" {% if occupant.affiliation == 'none' %}selected{% endif %}>
|
||||
{{ __('affiliation.no') }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<label>{{ __('room.role') }}</label>
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">voice_selection</i>
|
||||
</span>
|
||||
<span class="control">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" id="voice" name="voice" {% if occupant.role != 'visitor' %}checked{% endif %}
|
||||
onchange="RoomsUtils_ajaxChangeVoice('{{ room|echapJS }}', '{{ occupant.nick|echapJS }}', this.checked);">
|
||||
<label for="voice"></label>
|
||||
</div>
|
||||
</span>
|
||||
<div>
|
||||
<p class="all">{{ __('room.allowed_send_messages') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
<hr />
|
||||
<li onclick="RoomsUtils_ajaxKick('{{ room|echapJS }}', '{{ occupant.nick|echapJS }}'); Dialog_ajaxClear();">
|
||||
<span class="primary icon gray"><i class="material-symbols">person_remove</i></span>
|
||||
<div><p class="line">{{ __('room.kick') }}</p></div>
|
||||
</li>
|
||||
{% if occupant.jid %}
|
||||
<li onclick="RoomsUtils_ajaxChangeAffiliation('{{ room|echapJS }}', '{{ occupant.jid|echapJS }}', 'outcast'); Dialog_ajaxClear();">
|
||||
<span class="primary icon red"><i class="material-symbols">block</i></span>
|
||||
<div><p class="line">{{ __('room.ban') }}</p></div>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</section>
|
||||
<footer>
|
||||
<button class="button flat oppose" onclick="Dialog_ajaxClear()">
|
||||
{{ __('button.close') }}
|
||||
</button>
|
||||
</footer>
|
||||
@@ -0,0 +1,18 @@
|
||||
<section>
|
||||
<h3>{{ __('chatrooms.destroy_title') }}</h3>
|
||||
<br />
|
||||
<h4 class="gray">{{ __('chatrooms.destroy_text') }}</h4>
|
||||
<br />
|
||||
<h4 class="gray">{{ room }}</h4>
|
||||
</section>
|
||||
<footer>
|
||||
<button onclick="Dialog_ajaxClear()" class="button flat">
|
||||
{{ __('button.cancel') }}
|
||||
</button>
|
||||
<button
|
||||
name="submit"
|
||||
class="button flat color red"
|
||||
onclick="RoomsUtils_ajaxDestroy('{{ room|echapJS }}'); Dialog_ajaxClear()">
|
||||
{{ __('button.destroy') }}
|
||||
</button>
|
||||
</footer>
|
||||
@@ -0,0 +1,155 @@
|
||||
<section class="scroll">
|
||||
<header class="big"
|
||||
style="background-image: linear-gradient(to bottom, rgba(23,23,23,0.8) 0%, rgba(23,23,23,0.5) 100%), url('{{ c.picture }}');"
|
||||
>
|
||||
<ul class="list thick">
|
||||
<li>
|
||||
<span class="primary icon bubble active"
|
||||
style="background-image: url({{ c.picture }});">
|
||||
</span>
|
||||
<span title="{{ __('chatrooms.config') }}"
|
||||
class="control icon active"
|
||||
onclick="RoomsUtils_ajaxAdd('{{ room|echapJS }}'); Drawer.clear()">
|
||||
<i class="material-symbols">edit</i>
|
||||
</span>
|
||||
<span title="{{ __('button.delete') }}"
|
||||
class="control icon active"
|
||||
onclick="RoomsUtils_ajaxRemove('{{ room|echapJS }}'); Drawer.clear()">
|
||||
<i class="material-symbols">delete</i>
|
||||
</span>
|
||||
|
||||
<div>
|
||||
<p class="line" title="{{ room }}">
|
||||
{{ c.title }}
|
||||
</p>
|
||||
<p class="line">{{ room }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
|
||||
<ul class="list middle">
|
||||
{% if c.group %}
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">people_alt</i>
|
||||
</span>
|
||||
<div>
|
||||
<p class="line">{{ __('room.group_chat') }}</p>
|
||||
<p class="all">{{ __('room.group_chat_text') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
{% else %}
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">wifi_tethering</i>
|
||||
</span>
|
||||
<div>
|
||||
<p class="line">{{ __('room.channel') }}</p>
|
||||
<p class="all">{{ __('room.channel_text') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
<ul class="list">
|
||||
{% if c.subject %}
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">info_i</i>
|
||||
</span>
|
||||
<div>
|
||||
<p class="line">{{ __('page.about') }}</p>
|
||||
<p class="all">{{ subject_html|safe }}</p>
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if c.description %}
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">short_text</i>
|
||||
</span>
|
||||
<div>
|
||||
<p class="line">{{ __('information.description') }}</p>
|
||||
<p class="all">{{ c.description }}</p>
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if c.public %}
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">explore</i>
|
||||
</span>
|
||||
<div>
|
||||
<p class="line">{{ __('room.public_muc') }}</p>
|
||||
<p class="all">{{ __('room.public_muc_text') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if c.mam %}
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">archive</i>
|
||||
</span>
|
||||
<div>
|
||||
<p class="line">{{ __('room.archived') }}</p>
|
||||
<p class="all">{{ __('room.archived_text') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<li class="subheader">
|
||||
<div>
|
||||
<p>{{ __('room.notify_title') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">{% if c.notify == 0 %}notifications_off{% elif c.notify == 2 %}notifications_active{% else %}notifications{% endif %}</i>
|
||||
</span>
|
||||
<span class="control icon gray active"
|
||||
onclick="RoomsUtils_ajaxAdd('{{ room|echapJS }}'); Drawer.clear()">
|
||||
<i class="material-symbols">settings</i>
|
||||
</span>
|
||||
<div>
|
||||
<p class="line">{{ __('room.notify_title') }}</p>
|
||||
<p class="line">{% if c.notify == 0 %}{{ __('room.notify_never') }}{% elif c.notify == 2 %}{{ __('room.notify_always') }}{% else %}{{ __('room.notify_mentioned') }}{% endif %}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list">
|
||||
<li class="subheader">
|
||||
<div>
|
||||
<p>{{ __('chatrooms.members') }} <span class="second">{{ c.count }}</span></p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="active" onclick="RoomsUtils_ajaxAskInvite('{{ room|echapJS }}'); Drawer.clear();">
|
||||
<span class="primary icon gray">
|
||||
<i class="material-symbols">person_add</i>
|
||||
</span>
|
||||
<span class="control icon gray">
|
||||
<i class="material-symbols">chevron_right</i>
|
||||
</span>
|
||||
<div>
|
||||
<p class="line">{{ __('room.group_chat_add') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="list thin" id="room_presences_list">
|
||||
{{ presences|safe }}
|
||||
</ul>
|
||||
|
||||
{% if c.affiliation == 'owner' %}
|
||||
<ul class="list active">
|
||||
<hr />
|
||||
<li onclick="RoomsUtils_ajaxGetConfig('{{ room|echapJS }}'); Drawer.clear();">
|
||||
<span class="primary icon gray"><i class="material-symbols">settings</i></span>
|
||||
<div><p class="line">{{ __('chatrooms.config') }}</p></div>
|
||||
</li>
|
||||
<li onclick="RoomsUtils_ajaxAskDestroy('{{ room|echapJS }}'); Drawer.clear();">
|
||||
<span class="primary icon red"><i class="material-symbols">delete_forever</i></span>
|
||||
<div><p class="line">{{ __('button.destroy') }}</p></div>
|
||||
</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
</section>
|
||||
@@ -0,0 +1,44 @@
|
||||
<section>
|
||||
<form name="invite">
|
||||
<h3>{{ __('room.invite') }}</h3>
|
||||
<h4>{{ room }}</h4>
|
||||
<div>
|
||||
<input type="hidden" value="{{ room }}" name="to" id="to"/>
|
||||
<datalist id="contact_list">
|
||||
{% for value in contacts %}
|
||||
<option value="{{ value }}"/>
|
||||
{% endfor %}
|
||||
</datalist>
|
||||
<input
|
||||
name="invite"
|
||||
list="contact_list"
|
||||
id="invite"
|
||||
required
|
||||
placeholder="user@server.tld"/>
|
||||
<label>{{ __('roster.add_contact_info1') }}</label>
|
||||
</div>
|
||||
<div>
|
||||
<ul class="list">
|
||||
<li>
|
||||
<span class="control icon gray active" onclick="Preview.copyToClipboard('xmpp:{{ room|echapJS }}?join')">
|
||||
<i class="material-symbols">content_copy</i>
|
||||
</span>
|
||||
<div>
|
||||
<input readonly value="xmpp:{{ room }}?join">
|
||||
<label>{{ __('room.invite_code') }}</label>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
<footer>
|
||||
<button class="button flat" onclick="Dialog_ajaxClear()">
|
||||
{{ __('button.cancel') }}
|
||||
</button>
|
||||
<button
|
||||
class="button flat"
|
||||
onclick="RoomsUtils_ajaxInvite(MovimUtils.formToJson('invite'));">
|
||||
{{ __('button.invite') }}
|
||||
</button>
|
||||
</footer>
|
||||
@@ -0,0 +1,58 @@
|
||||
{% set ns = namespace(affiliation=none) %}
|
||||
{% for value in presences %}
|
||||
{% if ns.affiliation != value.affiliation_txt and page == 1 and not compact %}
|
||||
<li class="subheader sticky">
|
||||
{% if value.affiliation == 'owner' %}
|
||||
<span class="control icon tiny yellow" title="{{ __('affiliation.owner') }}">
|
||||
<i class="material-symbols fill">star</i>
|
||||
</span>
|
||||
{% elif value.affiliation == 'admin' %}
|
||||
<span class="control icon tiny gray" title="{{ __('affiliation.admin') }}">
|
||||
<i class="material-symbols fill">star</i>
|
||||
</span>
|
||||
{% endif %}
|
||||
<div>
|
||||
<p>
|
||||
{{ value.affiliation_txt }}
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li title="{{ value.nick }}" name="{{ value.jid|default('')|cleanupId }}-{{ value.role|cleanupId }}-{{ value.nick|cleanupId }}"
|
||||
{% if compact %}onclick="Chat.quoteMUC('{{ value.nick|echapJS }}', true);"{% endif %}>
|
||||
<span class="primary icon bubble small status {{ value.presence }} {% if value.jid %}active{% endif %}"
|
||||
{% if value.jid and not compact %}onclick="ChatActions_ajaxGetContact('{{ value.jid|echapJS }}'); Drawer.clear();"{% endif %}>
|
||||
<img loading="lazy" src="{{ value.picture }}">
|
||||
</span>
|
||||
{% if not compact %}
|
||||
{% if value.jid and value.jid != me %}
|
||||
<span class="control icon active gray divided" onclick="Chats_ajaxOpen('{{ value.jid|echapJS }}', true); Drawer.clear();">
|
||||
<i class="material-symbols">comment</i>
|
||||
</span>
|
||||
{% elif not value.jid and not value.self %}
|
||||
<span class="control icon active gray divided" onclick="Chats_ajaxOpen('{{ (room ~ '/' ~ value.nick)|echapJS }}', true); Drawer.clear();">
|
||||
<i class="material-symbols">comment</i>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if can_moderate and not value.self %}
|
||||
<span class="control icon active gray divided" onclick="RoomsUtils_ajaxConfigureUser('{{ room|echapJS }}', '{{ value.nick|echapJS }}'); Drawer.clear();">
|
||||
<i class="material-symbols">manage_accounts</i>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div>
|
||||
<p class="line">
|
||||
{{ value.nick }}
|
||||
{% if value.role == 'visitor' %}
|
||||
<span class="second gray" title="{{ __('room.visitor') }}">
|
||||
<i class="material-symbols">voice_selection_off</i>
|
||||
</span>
|
||||
{% endif %}
|
||||
</p>
|
||||
{% if value.status and not compact %}
|
||||
<p class="line" title="{{ value.status }}">{{ value.status }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</li>
|
||||
{% set ns.affiliation = value.affiliation_txt %}
|
||||
{% endfor %}
|
||||
@@ -0,0 +1,18 @@
|
||||
<section>
|
||||
<h3>{{ __('chatrooms.remove_title') }}</h3>
|
||||
<br />
|
||||
<h4 class="gray">{{ __('chatrooms.remove_text') }}</h4>
|
||||
<br />
|
||||
<h4 class="gray">{{ room }}</h4>
|
||||
</section>
|
||||
<footer>
|
||||
<button onclick="Dialog_ajaxClear()" class="button flat">
|
||||
{{ __('button.cancel') }}
|
||||
</button>
|
||||
<button
|
||||
name="submit"
|
||||
class="button flat"
|
||||
onclick="Rooms_ajaxExit('{{ room|echapJS }}'); RoomsUtils_ajaxRemoveConfirm('{{ room|echapJS }}'); Dialog_ajaxClear()">
|
||||
{{ __('button.remove') }}
|
||||
</button>
|
||||
</footer>
|
||||
@@ -0,0 +1,56 @@
|
||||
<section>
|
||||
{% if room %}
|
||||
<ul class="list thick">
|
||||
<li>
|
||||
<div>
|
||||
<p>{{ __('chatrooms.discover') }}</p>
|
||||
<p class="line">{{ room }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
{% else %}
|
||||
<h3>{{ __('chatrooms.discover') }}</h3>
|
||||
{% endif %}
|
||||
|
||||
<form name="rooms_discover">
|
||||
{% if not room %}
|
||||
<datalist id="suggestions">
|
||||
</datalist>
|
||||
|
||||
<div id="bookmarkmucadd_jid">
|
||||
<ul class="list">
|
||||
<li>
|
||||
<span class="control icon divided gray active" >
|
||||
<i class="material-symbols">search</i>
|
||||
</span>
|
||||
<div>
|
||||
<input
|
||||
name="jid"
|
||||
placeholder="chatroom@{% if mucservice %}{{ mucservice }}{% else %}server.com{% endif %}"
|
||||
type="email"
|
||||
list="suggestions"
|
||||
oninput="Rooms.cleanId(this); Rooms.suggest(); MovimUtils.addClass('#rooms_discover_add', 'disabled')"
|
||||
onblur="RoomsUtils_ajaxDiscoRoom(this.value)"
|
||||
required />
|
||||
<label>{{ __('chatrooms.id') }}</label>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
<input type="hidden" name="jid" value="{{ room }}">
|
||||
{% endif %}
|
||||
</form>
|
||||
|
||||
<div id="rooms_discover_result"></div>
|
||||
</section>
|
||||
<footer>
|
||||
<button onclick="Dialog_ajaxClear()" class="button flat">
|
||||
{{ __('button.cancel') }}
|
||||
</button>
|
||||
<button id="rooms_discover_add"
|
||||
onclick="RoomsUtils_ajaxAdd(document.querySelector('form[name=rooms_discover] input[name=jid]').value);"
|
||||
class="button color green disabled">
|
||||
{{ __('button.add') }}
|
||||
</button>
|
||||
</footer>
|
||||
@@ -0,0 +1,11 @@
|
||||
<ul class="list thick">
|
||||
<li>
|
||||
<span class="primary icon red">
|
||||
<i class="material-symbols">error</i>
|
||||
</span>
|
||||
<div>
|
||||
<p></p>
|
||||
<p>{{ __('chatrooms.disco_error') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,35 @@
|
||||
{% if muc %}
|
||||
<ul class="list thick flex card">
|
||||
<li class="block large">
|
||||
<div>
|
||||
<p class="line">
|
||||
{% if occupants %}
|
||||
<span class="info">{{ occupants }} <i class="material-symbols">people</i></span>
|
||||
{% endif %}
|
||||
{{ name }}
|
||||
<span class="second">
|
||||
{% if group %}
|
||||
<i class="material-symbols">people_alt</i> {{ __('room.group_chat') }}
|
||||
{% else %}
|
||||
<i class="material-symbols">wifi_tethering</i> {{ __('room.channel') }}
|
||||
{% endif %}
|
||||
</span>
|
||||
</p>
|
||||
<p>{{ description }}</p>
|
||||
<p></p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
{% else %}
|
||||
<ul class="list">
|
||||
<li>
|
||||
<span class="primary icon red">
|
||||
<i class="material-symbols">error</i>
|
||||
</span>
|
||||
<div>
|
||||
<p></p>
|
||||
<p>{{ __('chatrooms.disco_not_muc') }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
@@ -0,0 +1,20 @@
|
||||
<section>
|
||||
<form name="changesubject">
|
||||
<h3>{{ __('chatrooms.subject') }}</h3>
|
||||
|
||||
<div>
|
||||
<textarea name="subject" placeholder="{{ __('chatrooms.subject') }}">{% if subject %}{{ subject }}{% endif %}</textarea>
|
||||
<label for="subject">{{ __('chatrooms.subject') }}</label>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
<footer>
|
||||
<button class="button flat" onclick="Dialog_ajaxClear()">
|
||||
{{ __('button.close') }}
|
||||
</button>
|
||||
<button
|
||||
class="button flat"
|
||||
onclick="RoomsUtils_ajaxSetSubject('{{ room|echapJS }}', MovimUtils.formToJson('changesubject')); Dialog_ajaxClear();">
|
||||
{{ __('button.save') }}
|
||||
</button>
|
||||
</footer>
|
||||
Reference in New Issue
Block a user