summaryrefslogtreecommitdiff
path: root/program/js/app.js
diff options
context:
space:
mode:
Diffstat (limited to 'program/js/app.js')
-rw-r--r--program/js/app.js24
1 files changed, 22 insertions, 2 deletions
diff --git a/program/js/app.js b/program/js/app.js
index fbbae4a0b..dcc212071 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -4884,9 +4884,19 @@ function rcube_webmail()
// send a http request to the server
this.http_request = function(action, querystring, lock)
{
- querystring += (querystring ? '&' : '') + '_remote=1';
- var url = this.env.comm_path + '&_action=' + action + '&' + querystring
+ // trigger plugin hook
+ var result = this.triggerEvent('request'+action, querystring);
+ if (typeof result != 'undefined') {
+ // abort if one the handlers returned false
+ if (result === false)
+ return false;
+ else
+ querystring = result;
+ }
+ querystring += (querystring ? '&' : '') + '_remote=1';
+ var url = this.env.comm_path + '&_action=' + action + '&' + querystring;
+
// send request
console.log('HTTP GET: ' + url);
$.get(url, { _unlock:(lock?1:0) }, function(data){ ref.http_response(data); }, 'json');
@@ -4904,6 +4914,16 @@ function rcube_webmail()
else
postdata += (postdata ? '&' : '') + '_remote=1' + (lock ? '&_unlock=1' : '');
+ // trigger plugin hook
+ var result = this.triggerEvent('request'+action, postdata);
+ if (typeof result != 'undefined') {
+ // abort if one the handlers returned false
+ if (result === false)
+ return false;
+ else
+ postdata = result;
+ }
+
// send request
console.log('HTTP POST: ' + url);
$.post(url, postdata, function(data){ ref.http_response(data); }, 'json');