67 lines
1.5 KiB
JavaScript
67 lines
1.5 KiB
JavaScript
|
// Generated by CoffeeScript 1.3.3
|
||
|
/*
|
||
|
Plugin to implement the vCard extension.
|
||
|
http://xmpp.org/extensions/xep-0054.html
|
||
|
|
||
|
Author: Nathan Zorn (nathan.zorn@gmail.com)
|
||
|
CoffeeScript port: Andreas Guth (guth@dbis.rwth-aachen.de)
|
||
|
*/
|
||
|
|
||
|
/* jslint configuration:
|
||
|
*/
|
||
|
|
||
|
/* global document, window, setTimeout, clearTimeout, console,
|
||
|
XMLHttpRequest, ActiveXObject,
|
||
|
Base64, MD5,
|
||
|
Strophe, $build, $msg, $iq, $pres
|
||
|
*/
|
||
|
|
||
|
var buildIq;
|
||
|
|
||
|
buildIq = function(type, jid, vCardEl) {
|
||
|
var iq;
|
||
|
iq = $iq(jid ? {
|
||
|
type: type,
|
||
|
to: jid
|
||
|
} : {
|
||
|
type: type
|
||
|
});
|
||
|
iq.c("vCard", {
|
||
|
xmlns: Strophe.NS.VCARD
|
||
|
});
|
||
|
if (vCardEl) {
|
||
|
iq.cnode(vCardEl);
|
||
|
}
|
||
|
return iq;
|
||
|
};
|
||
|
|
||
|
Strophe.addConnectionPlugin('vcard', {
|
||
|
_connection: null,
|
||
|
init: function(conn) {
|
||
|
this._connection = conn;
|
||
|
return Strophe.addNamespace('VCARD', 'vcard-temp');
|
||
|
},
|
||
|
/*Function
|
||
|
Retrieve a vCard for a JID/Entity
|
||
|
Parameters:
|
||
|
(Function) handler_cb - The callback function used to handle the request.
|
||
|
(String) jid - optional - The name of the entity to request the vCard
|
||
|
If no jid is given, this function retrieves the current user's vcard.
|
||
|
*/
|
||
|
|
||
|
get: function(handler_cb, jid, error_cb) {
|
||
|
var iq;
|
||
|
iq = buildIq("get", jid);
|
||
|
return this._connection.sendIQ(iq, handler_cb, error_cb);
|
||
|
},
|
||
|
/* Function
|
||
|
Set an entity's vCard.
|
||
|
*/
|
||
|
|
||
|
set: function(handler_cb, vCardEl, jid, error_cb) {
|
||
|
var iq;
|
||
|
iq = buildIq("set", jid, vCardEl);
|
||
|
return this._connection.sendIQ(iq, handler_cb, error_rb);
|
||
|
}
|
||
|
});
|