Browse Source

Display a little check icon when a Chat message has been successfully delivered

pull/183/head
Timothée Jaussoin 10 years ago
parent
commit
5effb2dcb0
  1. 1
      app/models/message/Message.php
  2. 22
      app/models/message/MessageDAO.php
  3. 2
      app/widgets/Chat/Chat.php
  4. 7
      app/widgets/Chat/chat.js
  5. 2
      app/widgets/Roster/_roster_search.tpl
  6. 1
      app/widgets/Roster/locales.ini
  7. 5
      app/widgets/Stickers/Stickers.php

1
app/models/message/Message.php

@ -127,7 +127,6 @@ class Message extends Model {
$this->published = gmdate('Y-m-d H:i:s', strtotime($parent->delay->attributes()->stamp));
else
$this->published = gmdate('Y-m-d H:i:s');
$this->delivered = gmdate('Y-m-d H:i:s');
}
}

22
app/models/message/MessageDAO.php

@ -11,7 +11,7 @@ class MessageDAO extends SQL {
html = :html,
published = :published,
delivered = :delivered,
edited = 1
edited = :edited
where session = :session
and id = :id
@ -25,6 +25,7 @@ class MessageDAO extends SQL {
'id' => $message->id,
'session' => $message->session,
'jidto' => $message->jidto,
'edited' => $message->edited,
'jidfrom' => $message->jidfrom,
'body' => $message->body,
'html' => $message->html,
@ -91,6 +92,25 @@ class MessageDAO extends SQL {
return $this->run('Message');
}
function getId($id)
{
$this->_sql = '
select * from message
where session = :session
and id = :id
limit 1';
$this->prepare(
'Message',
array(
'session' => $this->_user,
'id' => $id
)
);
return $this->run('Message', 'item');
}
function getLastItem($to)
{
$this->_sql = '

2
app/widgets/Chat/Chat.php

@ -25,6 +25,7 @@ class Chat extends WidgetBase
$this->addcss('chat.css');
$this->registerEvent('carbons', 'onMessage');
$this->registerEvent('message', 'onMessage');
$this->registerEvent('receipt', 'onMessage');
$this->registerEvent('mamresult', 'onMessageHistory');
$this->registerEvent('composing', 'onComposing');
$this->registerEvent('paused', 'onPaused');
@ -255,7 +256,6 @@ class Chat extends WidgetBase
} else {
$m->id = Uuid::uuid4();
$m->published = gmdate('Y-m-d H:i:s');
$m->delivered = gmdate('Y-m-d H:i:s');
}
$session = \Sessionx::start();

7
app/widgets/Chat/chat.js

@ -158,6 +158,10 @@ var Chat = {
info.innerHTML = '<i class="zmdi zmdi-edit"></i> ' + info.innerHTML;
}
if(message.delivered) {
info.innerHTML = '<i class="zmdi zmdi-check"></i> ' + info.innerHTML;
}
if(prepend) {
Chat.date = message.published;
var discussion = document.querySelector('#chat_widget div.contained');
@ -169,7 +173,8 @@ var Chat = {
var scrollDiff = discussion.scrollHeight - Chat.lastScroll;
discussion.scrollTop += scrollDiff;
Chat.lastScroll = discussion.scrollHeight;
} else if(message.edited) {
} else if(message.edited
|| message.delivered) {
var elem = document.getElementById(message.id);
if(elem)
elem.parentElement.replaceChild(bubble, elem);

2
app/widgets/Roster/_roster_search.tpl

@ -1,5 +1,5 @@
<section>
<h3>{$c->__('roster.search')}</h3>
<h3>{$c->__('roster.search_pod')}</h3>
<ul class="list">
<li>
<form name="add">

1
app/widgets/Roster/locales.ini

@ -16,3 +16,4 @@ added = Contact added
updated = Contact updated
deleted = Contact deleted
search = Search in your contacts
search_pod = Search a contact

5
app/widgets/Stickers/Stickers.php

@ -25,7 +25,7 @@ class Stickers extends WidgetBase
list($c, $ext) = explode('@', $cid);
list($sh, $key) = explode('+', $c);
$base64 = base64_encode(file_get_contents(dirname(__FILE__).'/stickers/'.$key.'.png'));
$base64 = base64_encode(file_get_contents(dirname(__FILE__).'/stickers/'.$key.'.png'));
$a = new Answer;
$a->setTo($to)
@ -63,7 +63,6 @@ class Stickers extends WidgetBase
$m->body = 'A Stickers has been sent using Movim';
$m->published = gmdate('Y-m-d H:i:s');
$m->delivered = gmdate('Y-m-d H:i:s');
$session = \Sessionx::start();
@ -122,6 +121,6 @@ class Stickers extends WidgetBase
function display()
{
}
}
Loading…
Cancel
Save