95 lines
2.1 KiB
JavaScript
95 lines
2.1 KiB
JavaScript
|
/*
|
||
|
|
||
|
Jappix - An open social platform
|
||
|
These are the receipts JS scripts for Jappix
|
||
|
|
||
|
-------------------------------------------------
|
||
|
|
||
|
License: AGPL
|
||
|
Author: Vanaryon
|
||
|
Last revision: 26/12/10
|
||
|
|
||
|
*/
|
||
|
|
||
|
// Checks if we can send a receipt request
|
||
|
function receiptRequest(hash) {
|
||
|
// Entity have support for receipt?
|
||
|
if($('#' + hash + ' .message-area').attr('data-receipts') == 'true')
|
||
|
return true;
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
// Checks if there is a receipt request
|
||
|
function hasReceipt(packet) {
|
||
|
// Any receipt request?
|
||
|
if(packet.getChild('request', NS_URN_RECEIPTS))
|
||
|
return true;
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
// Checks if there is a received reply
|
||
|
function hasReceived(packet) {
|
||
|
// Any received reply?
|
||
|
if(packet.getChild('received', NS_URN_RECEIPTS))
|
||
|
return true;
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
// Sends a received notification
|
||
|
function sendReceived(type, to, id) {
|
||
|
var aMsg = new JSJaCMessage();
|
||
|
aMsg.setTo(to);
|
||
|
aMsg.setID(id);
|
||
|
|
||
|
// Any type?
|
||
|
if(type)
|
||
|
aMsg.setType(type);
|
||
|
|
||
|
// Append the received node
|
||
|
aMsg.appendNode('received', {'xmlns': NS_URN_RECEIPTS, 'id': id});
|
||
|
|
||
|
con.send(aMsg);
|
||
|
|
||
|
logThis('Sent received to: ' + to);
|
||
|
}
|
||
|
|
||
|
// Tells the message has been received
|
||
|
function messageReceived(hash, id) {
|
||
|
// Line selector
|
||
|
var path = $('#' + hash + ' .one-line[data-id=' + id + ']');
|
||
|
|
||
|
// Add a received marker
|
||
|
path.attr('data-received', 'true')
|
||
|
.removeAttr('data-lost');
|
||
|
|
||
|
// Group selector
|
||
|
var group = path.parent();
|
||
|
|
||
|
// Remove the group marker
|
||
|
if(!group.find('.one-line[data-lost]').size()) {
|
||
|
group.find('b.name').removeClass('talk-images')
|
||
|
.removeAttr('title');
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
// Checks if the message has been received
|
||
|
function checkReceived(hash, id) {
|
||
|
// Fire a check 10 seconds later
|
||
|
$('#' + hash + ' .one-line[data-id=' + id + ']').oneTime('10s', function() {
|
||
|
// Not received?
|
||
|
if($(this).attr('data-received') != 'true') {
|
||
|
// Add a "lost" marker
|
||
|
$(this).attr('data-lost', 'true');
|
||
|
|
||
|
// Add a warn on the buddy-name
|
||
|
$(this).parent().find('b.name').addClass('talk-images')
|
||
|
.attr('title', _e("Your friend seems not to have received your message(s)!"));
|
||
|
}
|
||
|
});
|
||
|
}
|