|
|
|
@ -482,7 +482,8 @@ function rcube_webmail()
|
|
|
|
|
this.onloads[i]();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// start keep-alive interval
|
|
|
|
|
// start keep-alive and refresh intervals
|
|
|
|
|
this.start_refresh();
|
|
|
|
|
this.start_keepalive();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -880,10 +881,6 @@ function rcube_webmail()
|
|
|
|
|
this.show_message(this.env.first_uid);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'checkmail':
|
|
|
|
|
this.check_for_recent(true);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'compose':
|
|
|
|
|
url = {};
|
|
|
|
|
|
|
|
|
@ -2061,6 +2058,15 @@ function rcube_webmail()
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// sends request to check for recent messages
|
|
|
|
|
this.checkmail = function()
|
|
|
|
|
{
|
|
|
|
|
var lock = this.set_busy(true, 'checkingmail'),
|
|
|
|
|
params = this.check_recent_params();
|
|
|
|
|
|
|
|
|
|
this.http_request('check-recent', params, lock);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// list messages of a specific mailbox using filter
|
|
|
|
|
this.filter_mailbox = function(filter)
|
|
|
|
|
{
|
|
|
|
@ -6125,7 +6131,7 @@ function rcube_webmail()
|
|
|
|
|
// trigger plugin hook
|
|
|
|
|
var result = this.triggerEvent('request'+action, postdata);
|
|
|
|
|
if (result !== undefined) {
|
|
|
|
|
// abort if one the handlers returned false
|
|
|
|
|
// abort if one of the handlers returned false
|
|
|
|
|
if (result === false)
|
|
|
|
|
return false;
|
|
|
|
|
else
|
|
|
|
@ -6237,6 +6243,7 @@ function rcube_webmail()
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'refresh':
|
|
|
|
|
case 'check-recent':
|
|
|
|
|
case 'getunread':
|
|
|
|
|
case 'search':
|
|
|
|
@ -6469,13 +6476,25 @@ function rcube_webmail()
|
|
|
|
|
// starts interval for keep-alive signal
|
|
|
|
|
this.start_keepalive = function()
|
|
|
|
|
{
|
|
|
|
|
if (!this.env.session_lifetime || this.env.framed || this.task == 'login' || this.env.action == 'print')
|
|
|
|
|
if (!this.env.session_lifetime || this.env.framed || this.env.extwin || this.task == 'login' || this.env.action == 'print')
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (this._int)
|
|
|
|
|
clearInterval(this._int);
|
|
|
|
|
if (this._keepalive)
|
|
|
|
|
clearInterval(this._keepalive);
|
|
|
|
|
|
|
|
|
|
this._int = setInterval(function(){ ref.keep_alive(); }, this.env.session_lifetime * 0.5 * 1000);
|
|
|
|
|
this._keepalive = setInterval(function(){ ref.keep_alive(); }, this.env.session_lifetime * 0.5 * 1000);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// starts interval for refresh signal
|
|
|
|
|
this.start_refresh = function()
|
|
|
|
|
{
|
|
|
|
|
if (!this.env.keep_alive || this.env.framed || this.env.extwin || this.task == 'login' || this.env.action == 'print')
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (this._refresh)
|
|
|
|
|
clearInterval(this._refresh);
|
|
|
|
|
|
|
|
|
|
this._refresh = setInterval(function(){ ref.refresh(); }, this.env.keep_alive * 1000);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// sends keep-alive signal
|
|
|
|
@ -6485,27 +6504,39 @@ function rcube_webmail()
|
|
|
|
|
this.http_request('keep-alive');
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// sends request to check for recent messages
|
|
|
|
|
this.check_for_recent = function(refresh)
|
|
|
|
|
// sends refresh signal
|
|
|
|
|
this.refresh = function()
|
|
|
|
|
{
|
|
|
|
|
if (this.busy)
|
|
|
|
|
if (this.busy) {
|
|
|
|
|
// try again after 10 seconds
|
|
|
|
|
setTimeout(function(){ ref.refresh(); ref.start_refresh(); }, 10000);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var lock, url = {_mbox: this.env.mailbox};
|
|
|
|
|
var params = {}, lock = this.set_busy(true, 'refreshing');
|
|
|
|
|
|
|
|
|
|
if (refresh) {
|
|
|
|
|
lock = this.set_busy(true, 'checkingmail');
|
|
|
|
|
url._refresh = 1;
|
|
|
|
|
}
|
|
|
|
|
if (this.task == 'mail' && this.gui_objects.mailboxlist)
|
|
|
|
|
params = this.check_recent_params();
|
|
|
|
|
|
|
|
|
|
// plugins should bind to 'requestrefresh' event to add own params
|
|
|
|
|
this.http_request('refresh', params, lock);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// returns check-recent request parameters
|
|
|
|
|
this.check_recent_params = function()
|
|
|
|
|
{
|
|
|
|
|
var params = {_mbox: this.env.mailbox};
|
|
|
|
|
|
|
|
|
|
if (this.gui_objects.mailboxlist)
|
|
|
|
|
params._folderlist = 1;
|
|
|
|
|
if (this.gui_objects.messagelist)
|
|
|
|
|
url._list = 1;
|
|
|
|
|
params._list = 1;
|
|
|
|
|
if (this.gui_objects.quotadisplay)
|
|
|
|
|
url._quota = 1;
|
|
|
|
|
params._quota = 1;
|
|
|
|
|
if (this.env.search_request)
|
|
|
|
|
url._search = this.env.search_request;
|
|
|
|
|
params._search = this.env.search_request;
|
|
|
|
|
|
|
|
|
|
this.http_request('check-recent', url, lock);
|
|
|
|
|
return params;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|