diff options
| author | Tristan Zur <tzur@web.web.ccwn.org> | 2014-03-27 22:27:47 +0100 |
|---|---|---|
| committer | Tristan Zur <tzur@web.web.ccwn.org> | 2014-03-27 22:27:47 +0100 |
| commit | b62676ca5d3d6f6ba3f019ea3f99722e165a98d8 (patch) | |
| tree | 86722cb80f07d4569f90088eeaea2fc2f6e2ef94 /js/dojo-1.7.2/dojox/xmpp/UserService.js | |
Diffstat (limited to 'js/dojo-1.7.2/dojox/xmpp/UserService.js')
| -rw-r--r-- | js/dojo-1.7.2/dojox/xmpp/UserService.js | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/js/dojo-1.7.2/dojox/xmpp/UserService.js b/js/dojo-1.7.2/dojox/xmpp/UserService.js new file mode 100644 index 0000000..1c9fe69 --- /dev/null +++ b/js/dojo-1.7.2/dojox/xmpp/UserService.js @@ -0,0 +1,98 @@ +//>>built +// wrapped by build app +define("dojox/xmpp/UserService", ["dijit","dojo","dojox"], function(dijit,dojo,dojox){ +dojo.provide("dojox.xmpp.UserService"); + +dojo.declare("dojox.xmpp.UserService", null, { + constructor: function(xmppService){ + this.session= xmppService; + }, + + getPersonalProfile: function(){ + var req={ + id: this.session.getNextIqId(), + type: 'get' + } + var request = new dojox.string.Builder(dojox.xmpp.util.createElement("iq",req,false)); + request.append(dojox.xmpp.util.createElement("query",{xmlns:"jabber:iq:private"},false)); + request.append(dojox.xmpp.util.createElement("sunmsgr",{xmlsns:'sun:xmpp:properties'},true)); + request.append("</query></iq>"); + + var def = this.session.dispatchPacket(request.toString(),"iq",req.id); + def.addCallback(this, "_onGetPersonalProfile"); + }, + + setPersonalProfile: function(props){ + var req={ + id: this.session.getNextIqId(), + type: 'set' + } + + var request = new dojox.string.Builder(dojox.xmpp.util.createElement("iq",req,false)); + request.append(dojox.xmpp.util.createElement("query",{xmlns:"jabber:iq:private"},false)); + request.append(dojox.xmpp.util.createElement("sunmsgr",{xmlsns:'sun:xmpp:properties'},false)); + + for (var key in props){ + request.append(dojox.xmpp.util.createElement("property",{name: key},false)); + request.append(dojox.xmpp.util.createElement("value",{},false)); + request.append(props[key]); + request.append("</value></props>"); + } + + request.append("</sunmsgr></query></iq>"); + + var def = this.session.dispatchPacket(request.toString(), "iq", req.id); + def.addCallback(this, "_onSetPersonalProfile"); + }, + + _onSetPersonalProfile: function(response){ + if(response.getAttribute('type')=='result'){ + this.onSetPersonalProfile(response.getAttribute('id')); + }else if(response.getAttribute('type')=='error'){ + var err = this.session.processXmppError(response); + this.onSetPersonalProfileFailure(err); + } + }, + + onSetPersonalProfile: function(id){}, + onSetPersonalProfileFailure: function(err){}, + + _onGetPersonalProfile: function(profile){ + if (profile.getAttribute('type')=='result'){ + var props = {}; + + if (profile.hasChildNodes()){ + var queryNode = profile.firstChild; + if ((queryNode.nodeName=="query")&&(queryNode.getAttribute('xmlns')=='jabber:iq:private')){ + var sunNode = queryNode.firstChild; + if ((sunNode.nodeName=='query')&&(sunNode.getAttributes('xmlns')=='sun:xmpp:properties')){ + for (var i=0; i<sunNode.childNodes.length;i++){ + var n = sunNode.childNodes[i]; + if(n.nodeName == 'property'){ + var name = n.getAttribute('name'); + var val = n.firstChild || ""; + props[name]=val; + } + } + } + } + this.onGetPersonalProfile(props); + } + }else if (profile.getAttribute('type')=='error'){ + var err = this.session.processXmppError(profile); + this.onGetPersonalProfileFailure(err); + } + + return profile; + }, + + onGetPersonalProfile: function(profile){ + //console.log("UserService::onGetPersonalProfile() ", profile); + }, + + onGetPersonalProfileFailure: function(err){ + //console.log("UserService::onGetPersonalProfileFailure() ", err); + } +}); + +}); |
