From c6a97da3112e7f84616b771364ddccbbc588c377 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Fri, 11 Oct 2013 11:20:21 +0000 Subject: [PATCH] fixed changes in get_rows method were not send back to client, if PHP mcrypt is available / eTemplate request stored on client --- etemplate/inc/class.etemplate_request.inc.php | 20 ++++++++++++++++--- .../class.etemplate_widget_nextmatch.inc.php | 11 +++++++--- etemplate/js/etemplate2.js | 5 +++++ 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/etemplate/inc/class.etemplate_request.inc.php b/etemplate/inc/class.etemplate_request.inc.php index 12e3cb6374..f87fedd392 100644 --- a/etemplate/inc/class.etemplate_request.inc.php +++ b/etemplate/inc/class.etemplate_request.inc.php @@ -7,7 +7,7 @@ * @subpackage api * @link http://www.egroupware.org * @author Ralf Becker - * @copyright (c) 2007-9 by Ralf Becker + * @copyright (c) 2007-13 by Ralf Becker * @version $Id$ */ @@ -44,9 +44,23 @@ * Ajax requests can use this object to open the original request by using the id, they have to transmitt back, * and register further variables, modify the registered ones or delete them AND then update the id, if it changed: * - * if (($new_id = $request->id()) != $id) + * eTemplate2: + * + * if (($new_id = $request->id()) != $exec_id) * { - * $response->addAssign('etemplate_exec_id','value',$new_id); + * egw_json_response::get()->generic('assign', array( + * 'etemplate_exec_id' => $id, + * 'id' => '', + * 'key' => 'etemplate_exec_id', + * 'value' => $new_id, + * )); + * } + * + * old eTemplate: + * + * if (($new_id = $request->id()) != $exec_id) + * { + * egw_json_response::get()->assign('etemplate_exec_id','value',$new_id); * } * * For an example look in link_widget::ajax_search() diff --git a/etemplate/inc/class.etemplate_widget_nextmatch.inc.php b/etemplate/inc/class.etemplate_widget_nextmatch.inc.php index ead09a4490..1efffa8c6c 100644 --- a/etemplate/inc/class.etemplate_widget_nextmatch.inc.php +++ b/etemplate/inc/class.etemplate_widget_nextmatch.inc.php @@ -344,7 +344,7 @@ class etemplate_widget_nextmatch extends etemplate_widget $request_value[$key] = $value[$key]; egw_json_response::get()->generic('assign', array( - 'etemplate_exec_id' => self::$request->id(), + 'etemplate_exec_id' => $exec_id, 'id' => $form_name, 'key' => $key, 'value' => $value[$key], @@ -437,9 +437,14 @@ class etemplate_widget_nextmatch extends etemplate_widget egw_json_response::get()->data($result); // If etemplate_exec_id has changed, update the client side - if (($new_id = self::$request->id()) != $id) + if (($new_id = self::$request->id()) != $exec_id) { - egw_json_response::get()->assign('etemplate_exec_id','value',$new_id); + egw_json_response::get()->generic('assign', array( + 'etemplate_exec_id' => $exec_id, + 'id' => '', + 'key' => 'etemplate_exec_id', + 'value' => $new_id, + )); } } diff --git a/etemplate/js/etemplate2.js b/etemplate/js/etemplate2.js index ed4c176b78..86e935d185 100644 --- a/etemplate/js/etemplate2.js +++ b/etemplate/js/etemplate2.js @@ -724,6 +724,11 @@ function etemplate2_handle_assign(type, res, req) // Not for this etemplate, but not an error return false; } + if (res.data.key == 'etemplate_exec_id') + { + this.etemplate_exec_id = res.data.value; + return true; + } var widget = this.widgetContainer.getWidgetById(res.data.id); if (widget) {