JC Brand 12 лет назад
Родитель
Сommit
147c370404
1 измененных файлов с 0 добавлено и 251 удалено
  1. 0 251
      Libraries/jarnxmpp.core.handlers.js

+ 0 - 251
Libraries/jarnxmpp.core.handlers.js

@@ -1,251 +0,0 @@
-/*global $:false, document:false, window:false, portal_url:false,
-$msg:false, Strophe:false, setTimeout:false, navigator:false, jarn:false, google:false, jarnxmpp:false, jQuery:false, sessionStorage:false, $iq:false, $pres:false, Image:false, */
-
-(function (jarnxmpp, $, portal_url) {
-
-    portal_url = portal_url || '';
-
-    jarnxmpp.Storage = {
-        storage: null,
-        init: function () {
-            try {
-                if ('sessionStorage' in window && window.sessionStorage !== null && JSON in window && window.JSON !== null) {
-                    jarnxmpp.Storage.storage = sessionStorage;
-                    if (!('_user_info' in jarnxmpp.Storage.storage)) {
-                        jarnxmpp.Storage.set('_user_info', {});
-                    }
-                    if (!('_vCards' in jarnxmpp.Storage.storage)) {
-                        jarnxmpp.Storage.set('_vCards', {});
-                    }
-                    if (!('_subscriptions' in jarnxmpp.Storage.storage)) {
-                        jarnxmpp.Storage.set('_subscriptions', null);
-                    }
-                }
-            } catch (e) {}
-        },
-
-        get: function (key) {
-            if (key in sessionStorage) {
-                return JSON.parse(sessionStorage[key]);
-            }
-            return null;
-        },
-
-        set: function (key, value) {
-            sessionStorage[key] = JSON.stringify(value);
-        },
-
-        xmppGet: function (key, callback) {
-            var stanza = $iq({type: 'get'})
-                .c('query', {xmlns: 'jabber:iq:private'})
-                .c('jarnxmpp', {xmlns: 'http://jarn.com/ns/jarnxmpp:prefs:' + key})
-                .tree();
-            jarnxmpp.connection.sendIQ(stanza, function success(result) {
-                callback($('jarnxmpp ' + 'value', result).first().text());
-            });
-        },
-
-        xmppSet: function (key, value) {
-            var stanza = $iq({type: 'set'})
-                .c('query', {xmlns: 'jabber:iq:private'})
-                .c('jarnxmpp', {xmlns: 'http://jarn.com/ns/jarnxmpp:prefs:' + key})
-                .c('value', value)
-                .tree();
-            jarnxmpp.connection.sendIQ(stanza);
-        }
-    };
-
-    jarnxmpp.Storage.init();
-
-    jarnxmpp.Presence = {
-        online: {},
-        _user_info: {},
-
-        onlineCount: function () {
-            var me = Strophe.getNodeFromJid(jarnxmpp.connection.jid),
-                counter = 0,
-                user;
-            for (user in jarnxmpp.Presence.online) {
-                if ((jarnxmpp.Presence.online.hasOwnProperty(user)) && user !== me) {
-                    counter += 1;
-                }
-            }
-            return counter;
-        },
-
-        getUserInfo: function (user_id, callback) {
-            // User info on browsers without storage
-            if (jarnxmpp.Storage.storage === null) {
-                if (user_id in jarnxmpp.Presence._user_info) {
-                    callback(jarnxmpp.Presence._user_info[user_id]);
-                } else {
-                    $.getJSON(portal_url + "/xmpp-userinfo?user_id=" + user_id, function (data) {
-                        jarnxmpp.Presence._user_info[user_id] = data;
-                        callback(data);
-                    });
-                }
-            } else {
-                var _user_info = jarnxmpp.Storage.get('_user_info');
-                if (user_id in _user_info) {
-                    callback(_user_info[user_id]);
-                } else {
-                    $.getJSON(portal_url + "/xmpp-userinfo?user_id=" + user_id, function (data) {
-                        _user_info[user_id] = data;
-                        jarnxmpp.Storage.set('_user_info', _user_info);
-                        callback(data);
-                    });
-                }
-            }
-        }
-    };
-
-    jarnxmpp.vCard = {
-
-        _vCards: {},
-
-        _getVCard: function (jid, callback) {
-            var stanza =
-                $iq({type: 'get', to: jid})
-                .c('vCard', {xmlns: 'vcard-temp'}).tree();
-            jarnxmpp.connection.sendIQ(stanza, function (data) {
-                var result = {};
-                $('vCard[xmlns="vcard-temp"]', data).children().each(function (idx, element) {
-                    result[element.nodeName] = element.textContent;
-                });
-                if (typeof (callback) !== 'undefined') {
-                    callback(result);
-                }
-            });
-        },
-
-        getVCard: function (jid, callback) {
-            jid = Strophe.getBareJidFromJid(jid);
-            if (jarnxmpp.Storage.storage === null) {
-                if (jid in jarnxmpp.vCard._vCards) {
-                    callback(jarnxmpp.vCard._vCards[jid]);
-                } else {
-                    jarnxmpp.vCard._getVCard(jid, function (result) {
-                        jarnxmpp.vCard._vCards[jid] = result;
-                        callback(result);
-                    });
-                }
-            } else {
-                var _vCards = jarnxmpp.Storage.get('_vCards');
-                if (jid in _vCards) {
-                    callback(_vCards[jid]);
-                } else {
-                    jarnxmpp.vCard._getVCard(jid, function (result) {
-                        _vCards[jid] = result;
-                        jarnxmpp.Storage.set('_vCards', _vCards);
-                        callback(result);
-                    });
-                }
-            }
-        },
-
-        setVCard: function (params, photoUrl) {
-            var key,
-                vCard = Strophe.xmlElement('vCard', [['xmlns', 'vcard-temp'], ['version', '2.0']]);
-            for (key in params) {
-                if (params.hasOwnProperty(key)) {
-                    vCard.appendChild(Strophe.xmlElement(key, [], params[key]));
-                }
-            }
-            var send = function () {
-                var stanza = $iq({type: 'set'}).cnode(vCard).tree();
-                jarnxmpp.connection.sendIQ(stanza);
-            };
-            if (typeof (photoUrl) === 'undefined') {
-                send();
-            } else {
-                jarnxmpp.vCard.getBase64Image(photoUrl, function (base64img) {
-                    base64img = base64img.replace(/^data:image\/png;base64,/, "");
-                    var photo = Strophe.xmlElement('PHOTO');
-                    photo.appendChild(Strophe.xmlElement('TYPE', [], 'image/png'));
-                    photo.appendChild(Strophe.xmlElement('BINVAL', [], base64img));
-                    vCard.appendChild(photo);
-                    send();
-                });
-            }
-        },
-
-        getBase64Image: function (url, callback) {
-            // Create the element, then draw it on a canvas to get the base64 data.
-            var img = new Image();
-            $(img).load(function () {
-                var canvas = document.createElement('canvas');
-                canvas.width = img.width;
-                canvas.height = img.height;
-                var ctx = canvas.getContext("2d");
-                ctx.drawImage(img, 0, 0);
-                callback(canvas.toDataURL('image/png'));
-            }).attr('src', url);
-        }
-    };
-
-    jarnxmpp.onConnect = function (status) {
-        if ((status === Strophe.Status.ATTACHED) || (status === Strophe.Status.CONNECTED)) {
-            $(window).bind('beforeunload', function () {
-                $(document).trigger('jarnxmpp.disconnecting');
-                var presence = $pres({type: 'unavailable'});
-                jarnxmpp.connection.send(presence);
-                jarnxmpp.connection.disconnect();
-                jarnxmpp.connection.flush();
-            });
-            $(document).trigger('jarnxmpp.connected');
-        } else if (status === Strophe.Status.DISCONNECTED) {
-            $(document).trigger('jarnxmpp.disconnected');
-        }
-    };
-
-    jarnxmpp.rawInput = function (data) {
-        var event = jQuery.Event('jarnxmpp.dataReceived');
-        event.text = data;
-        $(document).trigger(event);
-    };
-
-    jarnxmpp.rawOutput = function (data) {
-        var event = jQuery.Event('jarnxmpp.dataSent');
-        event.text = data;
-        $(document).trigger(event);
-    };
-
-    $(document).bind('jarnxmpp.connected', function () {
-        // Logging
-        jarnxmpp.connection.rawInput = jarnxmpp.rawInput;
-        jarnxmpp.connection.rawOutput = jarnxmpp.rawOutput;
-    });
-
-    $(document).bind('jarnxmpp.disconnecting', function () {
-        if (jarnxmpp.Storage.storage !== null) {
-            jarnxmpp.Storage.set('online-count', jarnxmpp.Presence.onlineCount());
-        }
-    });
-
-    $(document).ready(function () {
-        var resource = jarnxmpp.Storage.get('xmppresource');
-        if (resource) {
-            data = {'resource': resource};
-        } else {
-            data = {};
-        }
-        $.ajax({
-            'url':portal_url + '/@@xmpp-loader',
-            'dataType': 'json',
-            'data': data,
-            'success': function (data) {
-                if (!(('rid' in data) && ('sid' in data) && ('BOSH_SERVICE' in data))) {
-                    return;
-                }
-                if (!resource) {
-                    jarnxmpp.Storage.set('xmppresource', Strophe.getResourceFromJid(data.jid));
-                }
-                jarnxmpp.BOSH_SERVICE = data.BOSH_SERVICE;
-                jarnxmpp.jid = data.jid;
-                jarnxmpp.connection = new Strophe.Connection(jarnxmpp.BOSH_SERVICE);
-                jarnxmpp.connection.attach(jarnxmpp.jid, data.sid, data.rid, jarnxmpp.onConnect);
-            }
-        });
-    });
-
-})(window.jarnxmpp = window.jarnxmpp || {}, jQuery, portal_url);