From b152f9b1fbc7e36f705f3230efece40febae71c2 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 24 Nov 2005 11:26:32 -0500
Subject: [PATCH] Fixed bug in tform_actions

---
 interface/lib/classes/tform_actions.inc.php |   38 ++++++++++++++++++++++++++++++++------
 1 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php
index 56deb43..91b063a 100644
--- a/interface/lib/classes/tform_actions.inc.php
+++ b/interface/lib/classes/tform_actions.inc.php
@@ -71,6 +71,7 @@
 		$this->id = intval($_REQUEST["id"]);
 
 		if(count($_POST) > 1) {
+			$this->dataRecord = $_POST;
 			$this->onSubmit();
 		} else {
 			$this->onShow();
@@ -83,8 +84,6 @@
 	
 	function onSubmit() {
 		global $app, $conf;
-		
-		$this->dataRecord = $_POST;
 		
 		// Calling the action functions
 		if($this->id > 0) {
@@ -104,7 +103,11 @@
 		$ext_where = '';
 		$sql = $app->tform->getSQL($this->dataRecord,$app->tform->getCurrentTab(),'UPDATE',$this->id,$ext_where);
 		if($app->tform->errorMessage == '') {
-			$app->db->query($sql);
+			
+			if(!empty($sql)) {
+				$app->db->query($sql);
+				if($app->db->errorMessage != '') die($app->db->errorMessage);
+			}
 			
 			// Call plugin
 			foreach($this->plugins as $plugin) {
@@ -112,7 +115,14 @@
 			}
 			
 			if($_REQUEST["next_tab"] == '') {
-    			header("Location: ".$app->tform->formDef['list_default']);
+				if($_SESSION["s"]["form"]["return_to"] != '') {
+					$list_name = $_SESSION["s"]["form"]["return_to"];
+					$redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
+					$_SESSION["s"]["form"]["return_to"] = '';
+					header($redirect);
+				} else {
+    				header("Location: ".$app->tform->formDef['list_default']);
+				}
         		exit;
     		} else {
 				$this->onShow();
@@ -133,6 +143,7 @@
 		$sql = $app->tform->getSQL($this->dataRecord,$app->tform->getCurrentTab(),'INSERT',$this->id,$ext_where);
 		if($app->tform->errorMessage == '') {
 			$app->db->query($sql);
+			if($app->db->errorMessage != '') die($app->db->errorMessage);
 			$this->id = $app->db->insertID();
 			
 			// Call plugin
@@ -141,7 +152,14 @@
 			}
 			
 			if($_REQUEST["next_tab"] == '') {
-    			header("Location: ".$app->tform->formDef['list_default']);
+    			if($_SESSION["s"]["form"]["return_to"] != '') {
+					$list_name = $_SESSION["s"]["form"]["return_to"];
+					$redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
+					$_SESSION["s"]["form"]["return_to"] = '';
+					header($redirect);
+				} else {
+    				header("Location: ".$app->tform->formDef['list_default']);
+				}
         		exit;
     		} else {
 				$this->onShow();
@@ -215,7 +233,15 @@
 			}
 		}
 
-		header("Location: ".$liste["file"]."?PHPSESSID=".$_SESSION["s"]["id"]);
+		//header("Location: ".$liste["file"]."?PHPSESSID=".$_SESSION["s"]["id"]);
+		if($_SESSION["s"]["form"]["return_to"] != '') {
+			$list_name = $_SESSION["s"]["form"]["return_to"];
+			$redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
+			$_SESSION["s"]["form"]["return_to"] = '';
+			header($redirect);
+		} else {
+    		header("Location: ".$liste["file"]);
+		}
 		exit;
 		
 	}

--
Gitblit v1.9.1