friendica-addons/jappixmini/jappix/js/receipts.js

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)!"));
}
});
}