diff --git a/app/Conference.php b/app/Conference.php index 1654504d3..1d0922519 100644 --- a/app/Conference.php +++ b/app/Conference.php @@ -60,6 +60,11 @@ class Conference extends Model return $this->hasOne('App\Contact', 'id', 'conference'); } + public function getServerAttribute() + { + return \explodeJid($this->conference)['server']; + } + public function getConnectedAttribute() { return isset($this->presence); diff --git a/app/widgets/Rooms/Rooms.php b/app/widgets/Rooms/Rooms.php index 58a132a78..ad2b6c774 100644 --- a/app/widgets/Rooms/Rooms.php +++ b/app/widgets/Rooms/Rooms.php @@ -562,8 +562,10 @@ class Rooms extends Base ->withCount('unreads') ->get(); $connected = new Collection; + $servers = []; foreach ($conferences as $key => $conference) { + array_push($servers, $conference->server); if ($conference->connected) { $connected->push($conferences->pull($key)); } @@ -573,6 +575,7 @@ class Rooms extends Base $view = $this->tpl(); $view->assign('edit', $edit); + $view->assign('servers', App\Info::whereIn('server', array_unique($servers))->get()->keyBy('server')); $view->assign('conferences', $conferences); $view->assign('room', $this->get('r')); diff --git a/app/widgets/Rooms/_rooms.tpl b/app/widgets/Rooms/_rooms.tpl index a68956622..909ec514b 100644 --- a/app/widgets/Rooms/_rooms.tpl +++ b/app/widgets/Rooms/_rooms.tpl @@ -87,7 +87,7 @@ {if="$value->info && !$value->info->mucsemianonymous"} wifi_tethering {/if} - – + – {elseif="isset($info) && $info->occupants > 0"} wifi_tethering {/if} - – + – + {/if} + {if="$servers->has($value->server) && $servers->get($value->server)->type != 'text'"} + swap_horiz – {/if} {if="$connected"} {if="isset($info) && $info->description"}