diff --git a/app/assets/js/movim_tpl.js b/app/assets/js/movim_tpl.js index 059695ea3..2b2242b20 100755 --- a/app/assets/js/movim_tpl.js +++ b/app/assets/js/movim_tpl.js @@ -97,6 +97,25 @@ var MovimTpl = { toggleMenu : function() { movim_toggle_class('body > nav', 'active'); }, + toggleContextMenu : function(e) { + var element = 'ul.context_menu'; + var classname = 'shown'; + + if(document.querySelector(element) == null) { + return; + } + + if(document.querySelector('.show_context_menu').contains(e.target)) { + movim_add_class(element, classname); + return; + } + + //if(!document.querySelector(element).contains(e.target)) + movim_remove_class(element, classname); + }, + hideContextMenu : function() { + movim_remove_class('ul.context_menu', 'shown'); + }, hideMenu : function() { movim_remove_class('body > nav', 'active'); }, @@ -122,4 +141,5 @@ var MovimTpl = { movim_add_onload(function() { MovimTpl.init(); + document.body.addEventListener('click', MovimTpl.toggleContextMenu, false); }); diff --git a/app/models/message/MessageDAO.php b/app/models/message/MessageDAO.php index 761a0cfb3..40fbad609 100755 --- a/app/models/message/MessageDAO.php +++ b/app/models/message/MessageDAO.php @@ -93,6 +93,22 @@ class MessageDAO extends SQL { return $this->run('Message'); } + + function getRoomSubject($room) { + $this->_sql = ' + select * from message + where jidfrom = :jidfrom + and subject != \'\''; + + $this->prepare( + 'Message', + array( + 'jidfrom' => $room + ) + ); + + return $this->run('Message', 'item'); + } function clearMessage() { $this->_sql = ' diff --git a/app/widgets/Chat/Chat.php b/app/widgets/Chat/Chat.php index 4e1a570a3..f01be284a 100644 --- a/app/widgets/Chat/Chat.php +++ b/app/widgets/Chat/Chat.php @@ -10,13 +10,14 @@ class Chat extends WidgetCommon function load() { $this->addjs('chat.js'); - $this->addjs('chat_otr.js'); + //$this->addjs('chat_otr.js'); $this->addcss('chat.css'); $this->registerEvent('carbons', 'onMessage'); $this->registerEvent('message', 'onMessage'); $this->registerEvent('composing', 'onComposing'); $this->registerEvent('paused', 'onPaused'); $this->registerEvent('gone', 'onGone'); + $this->registerEvent('conference_subject', 'onConferenceSubject'); //$this->registerEvent('presence', 'onPresence'); } @@ -97,6 +98,12 @@ class Chat extends WidgetCommon $this->setState($array, $this->__('message.gone')); } + function onConferenceSubject($message) + { + $header = $this->prepareHeaderRoom($message->jidfrom); + Header::fill($header); + } + private function setState($array, $message) { list($from, $to) = $array; @@ -283,8 +290,16 @@ class Chat extends WidgetCommon function prepareHeaderRoom($room) { $view = $this->tpl(); - + + $md = new \Modl\MessageDAO; + $s = $md->getRoomSubject($room); + + $cd = new \Modl\ConferenceDAO; + $c = $cd->get($room); + $view->assign('room', $room); + $view->assign('subject', $s); + $view->assign('conference', $c); return $view->draw('_chat_header_room', true); } diff --git a/app/widgets/Chat/_chat_header.tpl b/app/widgets/Chat/_chat_header.tpl index efb40d0cb..810725697 100644 --- a/app/widgets/Chat/_chat_header.tpl +++ b/app/widgets/Chat/_chat_header.tpl @@ -17,12 +17,14 @@ -