From a01f0ec2151f4213d5a17b138909dd79a23ae4d2 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 24 Nov 2005 10:04:27 -0500
Subject: [PATCH] added return to infos for lists

---
 interface/lib/classes/tform_actions.inc.php   |   18 ++++++++++++++++--
 interface/lib/classes/plugin_listview.inc.php |    7 +++++++
 interface/web/sites/mail_box_edit.php         |    2 ++
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/plugin_listview.inc.php b/interface/lib/classes/plugin_listview.inc.php
index b6bea10..8cde0b7 100644
--- a/interface/lib/classes/plugin_listview.inc.php
+++ b/interface/lib/classes/plugin_listview.inc.php
@@ -73,6 +73,13 @@
 		$lng_file = "lib/lang/".$_SESSION["s"]["language"]."_".$app->listform->listDef['name']."_list.lng";
 		include($lng_file);
 		$listTpl->setVar($wb);
+		
+		// Setting Returnto information in the session
+		$list_name = $app->listform->listDef["name"];
+		$_SESSION["s"]["list"][$list_name]["parent_id"] = $app->tform_actions->id;
+		$_SESSION["s"]["list"][$list_name]["parent_tab"] = $_SESSION["s"]["form"]["tab"];
+		$_SESSION["s"]["list"][$list_name]["parent_script"] = $app->tform->formDef["action"];
+		$_SESSION["s"]["form"]["return_to"] = $list_name;
 
 		return $listTpl->grab();
 		
diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php
index 74d7de9..7d40956 100644
--- a/interface/lib/classes/tform_actions.inc.php
+++ b/interface/lib/classes/tform_actions.inc.php
@@ -115,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"];
+					unset($_SESSION["s"]["form"]["return_to"]);
+					header($redirect);
+				} else {
+    				header("Location: ".$app->tform->formDef['list_default']);
+				}
         		exit;
     		} else {
 				$this->onShow();
@@ -145,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"];
+					unset($_SESSION["s"]["form"]["return_to"]);
+					header($redirect);
+				} else {
+    				header("Location: ".$app->tform->formDef['list_default']);
+				}
         		exit;
     		} else {
 				$this->onShow();
diff --git a/interface/web/sites/mail_box_edit.php b/interface/web/sites/mail_box_edit.php
index 715964f..e01137a 100644
--- a/interface/web/sites/mail_box_edit.php
+++ b/interface/web/sites/mail_box_edit.php
@@ -51,6 +51,8 @@
 $app->uses('tpl,tform,tform_actions');
 $app->load('tform_actions');
 
+die(print_r($_SESSION));
+
 class page_action extends tform_actions {
 	
 	function onShowEnd() {

--
Gitblit v1.9.1