Commit e0a58efc authored by JC Brand's avatar JC Brand

Linting and code formatting.

Also use and add a Strophe namespace for CSI.
parent c7ce646f
......@@ -156,6 +156,7 @@
Strophe.addNamespace('REGISTER', 'jabber:iq:register');
Strophe.addNamespace('ROSTERX', 'http://jabber.org/protocol/rosterx');
Strophe.addNamespace('XFORM', 'jabber:x:data');
Strophe.addNamespace('CSI', 'urn:xmpp:csi:0');
// Add Strophe Statuses
var i = 0;
......@@ -383,60 +384,53 @@
// Module-level functions
// ----------------------
this.autoAwayReset=function(){
this.sendCSI = function (stat) {
if (converse.HAS_CSI) {
converse.connection.send($build(stat, {xmlns: Strophe.NS.CSI}));
}
};
this.autoAwayReset = function () {
if (converse._idleCounter > 0) {
converse._idleCounter = 0;
if (converse._autoAway>0) {
converse._autoAway=0;
if (converse.HAS_CSI) {
converse.connection.send($build("active", {xmlns: 'urn:xmpp:csi:0'}));
}
if (converse._autoAway > 0) {
converse._autoAway = 0;
converse.sendCSI(ACTIVE);
converse.xmppstatus.setStatus('online');
}
}
};
this.registerAutoAwayHandler = function (){
if (converse.auto_away>0 || converse.auto_xa>0){
if (converse.features.findWhere({'var': 'urn:xmpp:csi'})) {
// The server supports XEP-0352 Client State Indication
converse.HAS_CSI=true;
}else {
converse.HAS_CSI=false;
}
if (converse.auto_xa>0 && converse.auto_xa<converse.auto_away) converse.auto_xa=converse.auto_away;
converse._idleCounter=0;
converse._autoAway=0;
$(window).on('click' , function(){converse.autoAwayReset()});
$(window).on('mousemove' , function(){converse.autoAwayReset()});
$(window).on('keypress' , function(){converse.autoAwayReset()});
$(window).on('focus' , function(){converse.autoAwayReset()});
$(window).on('beforeunload' , function(){converse.autoAwayReset()});
this.registerAutoAwayHandler = function () {
// TODO: we should probably come up with a way to decouple CSI and auto-away
if (this.auto_away > 0 || this.auto_xa > 0) {
this.HAS_CSI = this.features.findWhere({'var': Strophe.NS.CSI}) ? true : false;
if (this.auto_xa > 0 && this.auto_xa < this.auto_away) {
this.auto_xa = this.auto_away;
}
this._idleCounter = 0;
this._autoAway = 0;
$(window).on('click' , function () { converse.autoAwayReset(); });
$(window).on('mousemove' , function () { converse.autoAwayReset(); });
$(window).on('keypress' , function () { converse.autoAwayReset(); });
$(window).on('focus' , function () { converse.autoAwayReset(); });
$(window).on('beforeunload' , function () { converse.autoAwayReset(); });
window.setInterval(function () {
if ((converse._idleCounter <= converse.auto_away || (converse.auto_xa>0 && converse._idleCounter <= converse.auto_xa)) &&
(converse.xmppstatus.get('status') == 'online' && converse._autoAway==0) || (converse.xmppstatus.get('status') == 'away' && converse._autoAway==1) ){
converse._idleCounter++;
if ((this._idleCounter <= this.auto_away || (this.auto_xa > 0 && this._idleCounter <= this.auto_xa)) &&
(this.xmppstatus.get('status') == 'online' && this._autoAway === 0) || (this.xmppstatus.get('status') == 'away' && this._autoAway == 1) ){
this._idleCounter++;
}
if (converse.auto_away>0 && converse._autoAway!=1 && converse._idleCounter > converse.auto_away && converse._idleCounter <= converse.auto_xa){
if (converse.HAS_CSI) {
converse.connection.send($build("inactive", {xmlns: 'urn:xmpp:csi:0'}));
}
converse._autoAway=1;
converse.xmppstatus.setStatus('away');
if (this.auto_away > 0 && this._autoAway != 1 && this._idleCounter > this.auto_away && this._idleCounter <= this.auto_xa){
this.sendCSI(INACTIVE);
this._autoAway = 1;
this.xmppstatus.setStatus('away');
}
else if (converse.auto_xa>0 && converse._autoAway!=2 && converse._idleCounter > converse.auto_xa){
if (converse.HAS_CSI) {
converse.connection.send($build("inactive", {xmlns: 'urn:xmpp:csi:0'}));
}
converse._autoAway=2;
converse.xmppstatus.setStatus('xa');
else if (this.auto_xa > 0 && this._autoAway != 2 && this._idleCounter > this.auto_xa){
this.sendCSI(INACTIVE);
this._autoAway = 2;
this.xmppstatus.setStatus('xa');
}
}, 1000); //every seconds
}.bind(this), 1000); //every seconds
return true;
}
};
......@@ -444,7 +438,7 @@
this.playNotification = function () {
var audio;
if (converse.play_sounds && typeof Audio !== "undefined"){
if (converse.play_sounds && typeof Audio !== "undefined") {
audio = new Audio(converse.sounds_path+"msg_received.ogg");
if (audio.canPlayType('/audio/ogg')) {
audio.play();
......@@ -725,44 +719,47 @@
},this), 200));
};
this.ping = function (jid, success, error, timeout){
//var feature = converse.features.findWhere({'var': Strophe.NS.PING});
//if (feature) {
converse.lastMessage=new Date();
if (typeof jid === 'undefined' || jid == null) { jid = converse.bare_jid; }
this.ping = function (jid, success, error, timeout) {
// XXX: We could first check here if the server advertised that it supports PING.
// However, some servers don't advertise while still keeping the
// connection option due to pings.
//
// var feature = converse.features.findWhere({'var': Strophe.NS.PING});
converse.lastMessage = new Date();
if (typeof jid === 'undefined' || jid === null) { jid = converse.bare_jid; }
if (typeof timeout === 'undefined' ) { timeout = null; }
if (typeof success === 'undefined' ) { success = null; }
if (typeof error === 'undefined' ) { error = null; }
if (converse.connection) {
converse.connection.ping.ping( jid, success, error, timeout );
return true
};
//}
converse.connection.ping.ping(jid, success, error, timeout);
return true;
}
return false;
};
this.pong = function (ping){
this.pong = function (ping) {
converse.lastMessage=new Date();
converse.connection.ping.pong(ping);
return true;
};
this.registerPongHandler = function (){
var feature = converse.features.findWhere({'var': Strophe.NS.PING});
if (feature) {
this.registerPongHandler = function () {
if (converse.features.findWhere({'var': Strophe.NS.PING})) {
converse.connection.disco.addFeature(Strophe.NS.PING);
converse.connection.ping.addPingHandler( this.pong );
converse.connection.ping.addPingHandler(this.pong);
}
};
this.registerPingHandler = function (){
if (this.ping_interval>0){
this.registerPingHandler = function () {
if (this.ping_interval > 0) {
//handler on each message : save last message date in order to ping only when needed
converse.connection.addHandler(function(){ converse.lastMessage=new Date();});
converse.connection.addTimedHandler(1000,function() {
converse.connection.addHandler(function () { converse.lastMessage = new Date();});
converse.connection.addTimedHandler(1000,function () {
now = new Date();
if (!converse.lastMessage) converse.lastMessage=now;
if ((now - converse.lastMessage)/1000 > converse.ping_interval){
if (!converse.lastMessage) {
converse.lastMessage = now;
}
if ((now - converse.lastMessage)/1000 > converse.ping_interval) {
return converse.ping();
}
return true;
......@@ -1144,7 +1141,7 @@
'mousedown .dragresize-tm': 'onDragResizeStart'
},
initialize: function (){
initialize: function () {
this.model.messages.on('add', this.onMessageAdded, this);
this.model.on('show', this.show, this);
this.model.on('destroy', this.hide, this);
......@@ -1670,11 +1667,11 @@
var msgs = [];
if (data.otr_status == UNENCRYPTED) {
msgs.push(__("Your messages are not encrypted anymore"));
} else if (data.otr_status == UNVERIFIED){
} else if (data.otr_status == UNVERIFIED) {
msgs.push(__("Your messages are now encrypted but your contact's identity has not been verified."));
} else if (data.otr_status == VERIFIED){
} else if (data.otr_status == VERIFIED) {
msgs.push(__("Your contact's identify has been verified."));
} else if (data.otr_status == FINISHED){
} else if (data.otr_status == FINISHED) {
msgs.push(__("Your contact has ended encryption on their end, you should do the same."));
}
return this.showHelpMessages(msgs, 'info', false);
......@@ -1685,11 +1682,11 @@
var data = this.model.toJSON();
if (data.otr_status == UNENCRYPTED) {
data.otr_tooltip = __('Your messages are not encrypted. Click here to enable OTR encryption.');
} else if (data.otr_status == UNVERIFIED){
} else if (data.otr_status == UNVERIFIED) {
data.otr_tooltip = __('Your messages are encrypted, but your contact has not been verified.');
} else if (data.otr_status == VERIFIED){
} else if (data.otr_status == VERIFIED) {
data.otr_tooltip = __('Your messages are encrypted and your contact verified.');
} else if (data.otr_status == FINISHED){
} else if (data.otr_status == FINISHED) {
data.otr_tooltip = __('Your contact has closed their end of the private session, you should do the same');
}
this.$el.find('.chat-toolbar').html(
......@@ -4820,7 +4817,7 @@
this.save({'status': value});
},
getStatus: function() {
getStatus: function () {
return this.get('status') || 'online';
},
......@@ -4874,7 +4871,7 @@
'desc_change_status': __('Click to change your chat status')
}));
// iterate through all the <option> elements and add option values
options.each(function (){
options.each(function () {
options_list.push(converse.templates.status_option({
'value': $(this).val(),
'text': this.text
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment