mirror of https://github.com/movim/movim
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
4.7 KiB
108 lines
4.7 KiB
{if="$contacts->isNotEmpty()"}
|
|
<li class="subheader">
|
|
<div>
|
|
<p>{$c->__('page.contacts')}</p>
|
|
</div>
|
|
</li>
|
|
{loop="$contacts"}
|
|
<li
|
|
id="{$value->jid|cleanupId}"
|
|
title="{$value->jid}"
|
|
name="{$value->jid|cleanupId}-{if="$value->truename"}{$value->truename|cleanupId}{/if}-{if="$value->group"}{$value->group|cleanupId}{/if}{if="$value->presence"}-{$value->presence->presencetext|cleanupId}{/if}"
|
|
class="{if="$value->presence && $value->presence->value > 4"}faded{/if}"
|
|
>
|
|
<span class="primary icon bubble active
|
|
{if="$value->locationDistance"} location{/if}
|
|
{if="!$value->presence || $value->presence->value > 4"}
|
|
faded
|
|
{else}
|
|
status {$value->presence->presencekey}
|
|
{/if}"
|
|
onclick="MovimUtils.reload('{$c->route('contact', $value->jid)}'); Drawer.clear();">
|
|
<img loading="lazy" src="{$value->getPicture(\Movim\ImageSize::M)}">
|
|
</span>
|
|
|
|
{if="$value->presences->count() > 0"}
|
|
{loop="$value->presences"}
|
|
{if="$value->capability && $value->capability->isJingleAudio()"}
|
|
<span title="{$c->__('button.audio_call')}" class="control icon active gray"
|
|
onclick="Visio_ajaxGetLobby('{$value->jid|echapJS}', true); Drawer.clear();">
|
|
<i class="material-symbols">phone</i>
|
|
</span>
|
|
{/if}
|
|
{if="$value->capability && $value->capability->isJingleVideo()"}
|
|
<span title="{$c->__('button.video_call')}" class="control icon active gray"
|
|
onclick="Visio_ajaxGetLobby('{$value->jid|echapJS}', true, true); Drawer.clear();">
|
|
<i class="material-symbols">videocam</i>
|
|
</span>
|
|
{break}
|
|
{/if}
|
|
{/loop}
|
|
{/if}
|
|
<span class="control icon active gray divided" onclick="Search.chat('{$value->jid|echapJS}')">
|
|
<i class="material-symbols">comment</i>
|
|
</span>
|
|
<div>
|
|
<p class="normal line">
|
|
{$value->truename}
|
|
{if="$value->group"}
|
|
<span class="tag color {$value->group|stringToColor}">
|
|
{$value->group}
|
|
</span>
|
|
{/if}
|
|
{if="$value->presence && $value->presence->capability"}
|
|
<span class="second" title="{$value->presence->capability->name}">
|
|
<i class="material-symbols">{$value->presence->capability->getDeviceIcon()}</i>
|
|
</span>
|
|
{/if}
|
|
|
|
{if="!in_array($value->subscription, ['', 'both'])"}
|
|
<span class="second">
|
|
{if="$value->subscription == 'to'"}
|
|
<i class="material-symbols">arrow_upward</i>
|
|
{elseif="$value->subscription == 'from'"}
|
|
<i class="material-symbols">arrow_downward</i>
|
|
{else}
|
|
<i class="material-symbols">block</i>
|
|
{/if}
|
|
</span>
|
|
{/if}
|
|
</p>
|
|
|
|
{if="$value->presence && $value->presence->seen"}
|
|
<p>
|
|
{$c->__('last.title')} {$value->presence->seen|prepareDate:true,true}
|
|
</p>
|
|
{elseif="$value->presence"}
|
|
<p>{$value->presence->presencetext}</p>
|
|
{/if}
|
|
</div>
|
|
</li>
|
|
{/loop}
|
|
|
|
{if="$contacts->count() > 7"}
|
|
<li class="showall active" onclick="Search.showCompleteRoster(this)">
|
|
<span class="primary icon gray">
|
|
<i class="material-symbols">expand_more</i>
|
|
</span>
|
|
<div>
|
|
<p class="normal line">
|
|
{$c->__('search.show_complete_roster')}
|
|
<span class="second">{$contacts->count()} <i class="material-symbols">people</i></span>
|
|
</p>
|
|
</div>
|
|
</li>
|
|
{/if}
|
|
{else}
|
|
<ul class="list thick">
|
|
<li>
|
|
<span class="primary icon blue">
|
|
<i class="material-symbols">help</i>
|
|
</span>
|
|
<div>
|
|
<p>{$c->__('search.no_contacts_title')}</p>
|
|
<p>{$c->__('search.no_contacts_text')}</p>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
{/if}
|