From c4485fa99cee7c12be528ff44d5f255a7f09df77 Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Tue, 30 Oct 2012 08:50:47 -0400
Subject: [PATCH] Fixed: IE8 did not like some of the javascript

---
 interface/web/tools/interface_settings.php |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/interface/web/tools/interface_settings.php b/interface/web/tools/interface_settings.php
index 1ec67c5..0c17ac9 100644
--- a/interface/web/tools/interface_settings.php
+++ b/interface/web/tools/interface_settings.php
@@ -49,7 +49,8 @@
 $app->load('tform_actions');
 
 class page_action extends tform_actions {
-	
+	var $_theme_changed = false;
+    
 	function onLoad() {
                 global $app, $conf, $tform_def_file;
 
@@ -80,6 +81,7 @@
 		if(!in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) {
 			$app->tform->errorMessage .= $app->tform->wordbook['startmodule_err'];
 		}
+        $this->updateSessionTheme();
 	}
         
 	function onInsert() {
@@ -94,8 +96,38 @@
                 if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) {
 			$app->tform->errorMessage .= $app->tform->wordbook['startmodule_err'];
 		}
+        $this->updateSessionTheme();
 	}
+    
+    function updateSessionTheme() {
+        global $app, $conf;
+        
+        if($this->dataRecord['app_theme'] != 'default') {
+            $tmp_path = ISPC_THEMES_PATH."/".$this->dataRecord['app_theme'];
+            if(!@is_dir($tmp_path) || (@file_exists($tmp_path."/ispconfig_version") && trim(file_get_contents($tmp_path."/ispconfig_version")) != ISPC_APP_VERSION)) {
+                // fall back to default theme if this one is not compatible with current ispc version
+                $this->dataRecord['app_theme'] = 'default';
+            }
+        }
+        if($this->dataRecord['app_theme'] != $_SESSION['s']['user']['theme']) $this->_theme_changed = true;
+        $_SESSION['s']['theme'] = $this->dataRecord['app_theme'];
+        $_SESSION['s']['user']['theme'] = $_SESSION['s']['theme'];
+        $_SESSION['s']['user']['app_theme'] = $_SESSION['s']['theme'];
+    }
 	
+    function onAfterInsert() {
+        $this->onAfterUpdate();
+    }
+    function onAfterUpdate() {
+        if($this->_theme_changed == true) {
+            // not the best way, but it works
+            header('Content-Type: text/html');
+            print '<script type="text/javascript">document.location.reload();</script>';
+            exit;
+        }
+        else parent::onShow();
+    }
+    
 	
 }
 

--
Gitblit v1.9.1