Anton Shestakov <av6@dwimlabs.net>, Mon, 21 Mar 2016 23:11:40 +0800
css: missing presence message style
js/index.js
Permissions: -rw-r--r--
// Generated by CoffeeScript 1.10.0 var $form, getContact, getContactProfile, getText, getVersion, onConnected, onGetVersion, onPresence; if (window.contacts == null) { window.contacts = new Tram.Contacts(); if (window.contactsApp == null) { window.contactsApp = new Tram.ContactsApp({ el: $('[data-app="contacts"]'), if (window.messages == null) { window.messages = new Tram.Messages(); if (window.logApp == null) { window.logApp = new Tram.LogApp({ el: $('[data-app="log"]'), onConnected = function() { X.conn.addHandler(onPresence, null, 'presence'); X.conn.addHandler(onGetVersion, Strophe.NS.VERSION, 'iq', 'get'); X.conn.send($pres().c('priority').t('1').up().c('status').t('Online').tree()); var i, len, node, ref, str; if (el.childNodes.length === 0 && el.nodeType === Strophe.ElementType.TEXT) { for (i = 0, len = ref.length; i < len; i++) { if (node.nodeType === Strophe.ElementType.TEXT) { getVersion = function() { id: X.conn.getUniqueId('version'), xmlns: Strophe.NS.VERSION okcb = function(stanza) { var delay, name, os, stamp, version; name = getText(stanza.getElementsByTagName('name')[0]); version = getText(stanza.getElementsByTagName('version')[0]); os = getText(stanza.getElementsByTagName('os')[0]); delay = stanza.getElementsByTagName('delay')[0]; stamp = delay ? new Date(delay.getAttribute('stamp')) : new Date(); id: stanza.getAttribute('id'), type: stanza.getAttribute('type'), from: stanza.getAttribute('from'), text: "connected to " + name + " " + version + " on " + os failcb = function(stanza) { return console.error("couldn't get version", stanza != null ? stanza.innerHTML : void 0); return X.conn.sendIQ(iq.tree(), okcb, failcb, 5000); onGetVersion = function(stanza) { id = stanza.getAttribute('id'); from = stanza.getAttribute('from'); xmlns: Strophe.NS.VERSION }).c('name').t(Tram.info.client).up().c('version').t(Tram.info.version); getContact = function(from) { contact = contacts.get(from); self = from === X.conn.jid; type: self ? 'self' : 'contact' getContactProfile(contact); getContactProfile = function(contact) { okcb = function(stanza) { vcard = stanza.getElementsByTagName('vCard')[0]; console.warn("no vcard in response", stanza); nickname: getText(vcard.querySelector('NICKNAME')), fullname: getText(vcard.querySelector('FN')), firstname: getText(vcard.querySelector('N > GIVEN')), lastname: getText(vcard.querySelector('N > FAMILY')) mime = getText(vcard.querySelector('PHOTO > TYPE')); data = getText(vcard.querySelector('PHOTO > BINVAL')); return contact.set('avatar', { return contact.unset('avatar'); failcb = function(stanza) { return console.warn("couldn't get vcard", stanza); bjid = Strophe.getBareJidFromJid(contact.get('jid')); if (bjid === Strophe.getBareJidFromJid(X.conn.jid)) { return X.conn.vcard.get(okcb, bjid, failcb); onPresence = function(stanza) { var contact, delay, from, priority, ref, s, show, stamp, type; from = stanza.getAttribute('from'); type = (ref = stanza.getAttribute('type')) != null ? ref : 'online'; if (type === 'subscribe') { console.warn('not handling <presence type="subscribe">', stanza); if (type === 'subscribed') { console.warn('not handling <presence type="subscribed">', stanza); console.error('got <presence type="error">', stanza); delay = stanza.getElementsByTagName('delay')[0]; stamp = delay ? new Date(delay.getAttribute('stamp')) : new Date(); priority = stanza.getElementsByTagName('priority')[0]; priority = priority ? getText(priority) : '0'; show = stanza.getElementsByTagName('show')[0]; show = show ? getText(show) : void 0; s = stanza.getElementsByTagName('status')[0]; s = s ? getText(s) : void 0; contact = getContact(from); id: stanza.getAttribute('id'), text: 'is now ' + (show != null ? show : type) window.X = new Tram.XMPPInterface(); X.on('connecting', function() { return $('[data-msg^="a/"]').addClass('uk-hidden'); X.on('authfail', function() { return $('[data-msg="a/fail"]').removeClass('uk-hidden'); X.on('disconnected', function() { $('[data-step="login"]').removeClass('uk-hidden'); return $('[data-step="main"]').addClass('uk-hidden'); X.on('connected attached', function() { $('[data-step="login"]').addClass('uk-hidden'); $('[data-step="main"]').removeClass('uk-hidden'); $('button[data-disconnect]').on('click', function() { return X.disconnect('Logged out'); $(window).on('beforeunload unload', function() { return X.disconnect('Window closed'); $form = $('[data-form="connect"]'); $form.find('input').on('keydown', function(e) { if ((!this.required || this.value !== '') && e.keyCode === 13) { index = $form.find('input').index(this); $next = $form.find('input').eq(index + 1); if ($next.length !== 0) { return $form.find('button').trigger('click'); $form.find('button').on('click', function(e) { Tram.validation.unsetError($('#username, #password')); ok &= Tram.validation.validateRequired($('#username'), true); ok &= Tram.validation.validateRequired($('#password')); return X.connect($('#username').val().trim(), $('#password').val()); //# sourceMappingURL=index.js.map