program/include/rcube_json_output.php | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_template.php | ●●●●● patch | view | raw | blame | history | |
program/js/app.js | ●●●●● patch | view | raw | blame | history | |
program/js/common.js | ●●●●● patch | view | raw | blame | history |
program/include/rcube_json_output.php
@@ -33,6 +33,7 @@ private $env = array(); private $texts = array(); private $commands = array(); private $callbacks = array(); private $message = null; public $type = 'js'; @@ -122,7 +123,12 @@ */ public function command() { $this->commands[] = func_get_args(); $cmd = func_get_args(); if (strpos($cmd[0], 'plugin.') === 0) $this->callbacks[] = $cmd; else $this->commands[] = $cmd; } @@ -227,8 +233,11 @@ if (!empty($this->texts)) $response['texts'] = $this->texts; // send response code // send function calls $response['exec'] = $this->get_js_commands() . $add; if (!empty($this->callbacks)) $response['callbacks'] = $this->callbacks; echo json_serialize($response); } program/include/rcube_template.php
@@ -201,7 +201,9 @@ */ public function command() { $this->js_commands[] = func_get_args(); $cmd = func_get_args(); if (strpos($cmd[0], 'plugin.') === false) $this->js_commands[] = $cmd; } program/js/app.js
@@ -3923,6 +3923,12 @@ console.log(response.exec); eval(response.exec); } // execute callback functions of plugins if (response.callbacks && response.callbacks.length) { for (var i=0; i < response.callbacks.length; i++) this.triggerEvent(response.callbacks[i][0], response.callbacks[i][1]); } // process the response data according to the sent action switch (response.action) { program/js/common.js
@@ -288,8 +288,8 @@ { var ret, h; if (typeof e == 'undefined') e = {}; if (typeof e == 'object') e = this; else if (typeof e == 'object') e.event = evt; if (this._events && this._events[evt] && !this._event_exec) { @@ -297,9 +297,9 @@ for (var i=0; i < this._events[evt].length; i++) { if ((h = this._events[evt][i])) { if (typeof h.func == 'function') ret = h.func.call ? h.func.call(h.obj, this, e) : h.func(this, e); ret = h.func.call ? h.func.call(h.obj, e) : h.func(e); else if (typeof h.obj[h.func] == 'function') ret = h.obj[h.func](this, e); ret = h.obj[h.func](e); // cancel event execution if (typeof ret != 'undefined' && !ret)