%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/mail/widgets/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/mail/widgets/ConversationEntry.php |
<?php
/**
* Created by PhpStorm.
* User: kingb
* Date: 29.07.2018
* Time: 09:29
*/
namespace humhub\modules\mail\widgets;
use humhub\libs\Html;
use Yii;
use humhub\modules\mail\models\MessageEntry;
use humhub\widgets\JsWidget;
use humhub\modules\mail\helpers\Url;
class ConversationEntry extends JsWidget
{
/**
* @inheritdoc
*/
public $jsWidget = 'mail.ConversationEntry';
/**
* @var MessageEntry
*/
public $entry;
/**
* @var MessageEntry
*/
public $prevEntry;
/**
* @var MessageEntry
*/
public $nextEntry;
public function run()
{
return $this->render('conversationEntry', [
'entry' => $this->entry,
'contentClass' => $this->getContentClass(),
'showUserInfo' => $this->isShowUserInfo(),
'isOwnMessage' => $this->isOwnMessage(),
'options' => $this->getOptions()
]);
}
private function getContentClass()
{
$result = 'conversation-entry-content';
if($this->isPrevEntryFromSameUser()) {
$result .= ' seq-top';
}
if($this->isNextEntryFromSameUser()) {
$result .= ' seq-bottom';
}
if($this->isOwnMessage()) {
$result .= ' own';
}
return $result;
}
private function isOwnMessage()
{
return $this->entry->user->is(Yii::$app->user->getIdentity());
}
public function getData()
{
return [
'entry-id' => $this->entry->id,
'delete-url' => Url::toDeleteMessageEntry($this->entry)
];
}
public function getAttributes()
{
$result = [
'class' => 'media mail-conversation-entry'
];
if($this->isOwnMessage()) {
Html::addCssClass($result, 'own');
}
if($this->isPrevEntryFromSameUser()) {
Html::addCssClass($result, 'hideUserInfo');
}
return $result;
}
private function isPrevEntryFromSameUser()
{
return $this->prevEntry && $this->prevEntry->created_by === $this->entry->created_by;
}
private function isNextEntryFromSameUser()
{
return $this->nextEntry && $this->nextEntry->created_by === $this->entry->created_by;
}
private function isShowUserInfo()
{
return !$this->prevEntry || $this->prevEntry->created_by !== $this->entry->created_by;
}
}