Merge branch 'auto-away' of https://github.com/thierrytiti/converse.js into thierrytiti-auto-away
Conflicts: converse.js
This commit is contained in:
commit
8e5d481e1c
63
converse.js
63
converse.js
@ -257,6 +257,8 @@
|
||||
allow_logout: true,
|
||||
allow_muc: true,
|
||||
allow_otr: true,
|
||||
auto_away: 0, //in seconds
|
||||
auto_xa: 0, //in seconds
|
||||
allow_registration: true,
|
||||
animate: true,
|
||||
auto_list_rooms: false,
|
||||
@ -381,6 +383,65 @@
|
||||
|
||||
// Module-level functions
|
||||
// ----------------------
|
||||
|
||||
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'}));
|
||||
}
|
||||
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()});
|
||||
|
||||
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 (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');
|
||||
}
|
||||
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');
|
||||
}
|
||||
}, 1000); //every seconds
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
this.playNotification = function () {
|
||||
var audio;
|
||||
if (converse.play_sounds && typeof Audio !== "undefined"){
|
||||
@ -760,9 +821,9 @@
|
||||
this.features = new this.Features();
|
||||
this.enableCarbons();
|
||||
this.initStatus($.proxy(function () {
|
||||
|
||||
this.registerPingHandler();
|
||||
this.registerPongHandler();
|
||||
this.registerAutoAwayHandler();
|
||||
this.chatboxes.onConnected();
|
||||
this.giveFeedback(__('Contacts'));
|
||||
if (this.callback) {
|
||||
|
@ -17,6 +17,7 @@ Changelog
|
||||
* CSS: Fonts Path: editabable $font-path via sass/variables.scss [thierrytiti]
|
||||
* Add offline pretty status to enable translation [thierrytiti]
|
||||
* Add Ping funcionnality and Pong Handler (Fix to issue #144) [thierrytiti]
|
||||
* Add automatic Away mode and XEP-0352 support [thierrytiti]
|
||||
|
||||
0.9.3 (2015-05-01)
|
||||
------------------
|
||||
|
@ -175,6 +175,27 @@ It should be used either with ``authentication`` set to ``anonymous`` or to
|
||||
If ``authentication`` is set to ``login``, then you will also need to provide a
|
||||
valid ``jid`` and ``password`` values.
|
||||
|
||||
auto_away
|
||||
---------
|
||||
|
||||
* Default: ``0``
|
||||
|
||||
This option can be used to let converse.js automatically change user presence
|
||||
|
||||
This set the number a seconds before user presence become ``away``
|
||||
If the value if negative or ``0``, the function is disabled.
|
||||
|
||||
auto_xa
|
||||
-------
|
||||
|
||||
* Default: ``0``
|
||||
|
||||
This option can be used to let converse.js automatically change user presence
|
||||
|
||||
This set the number a seconds before user presence become ``xa`` (eXtended Away)
|
||||
The value must be greater than ``auto_away``
|
||||
If the value if negative or ``0``, the function is disabled.
|
||||
|
||||
auto_reconnect
|
||||
--------------
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user