From 6ee7f02a7dea6b19e9201d0b840d05d163a0f396 Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Tue, 21 Apr 2015 14:47:46 -0500
Subject: [PATCH] tz: Detect default timezone at install time

---
 include/i18n/en_US/config.yaml |  1 -
 setup/inc/class.installer.php  |  2 +-
 setup/inc/footer.inc.php       |  5 +++++
 setup/inc/header.inc.php       |  3 ---
 setup/inc/install.inc.php      |  2 ++
 setup/js/setup.js              | 12 ++++++++++--
 6 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/include/i18n/en_US/config.yaml b/include/i18n/en_US/config.yaml
index 113cda50d..35e5a830b 100644
--- a/include/i18n/en_US/config.yaml
+++ b/include/i18n/en_US/config.yaml
@@ -8,7 +8,6 @@ core:
     date_format: 'm/d/Y'
     datetime_format: 'm/d/Y g:i a'
     daydatetime_format: 'D, M j Y g:ia'
-    default_timezone_id: 8
     default_priority_id: 2
     enable_daylight_saving: 0
 
diff --git a/setup/inc/class.installer.php b/setup/inc/class.installer.php
index 321d64ae4..c10b1ed9e 100644
--- a/setup/inc/class.installer.php
+++ b/setup/inc/class.installer.php
@@ -209,7 +209,7 @@ class Installer extends SetupWizard {
                 'alert_email_id'=>$alert_email_id,
                 'default_dept_id'=>$dept_id_1, 'default_sla_id'=>$sla_id_1,
                 'default_template_id'=>$template_id_1,
-                'default_timezone' => date_default_timezone_get(),
+                'default_timezone' => $vars['timezone'] ?: date_default_timezone_get(),
                 'admin_email'=>$vars['admin_email'],
                 'schema_signature'=>$streams['core'],
                 'helpdesk_url'=>URL,
diff --git a/setup/inc/footer.inc.php b/setup/inc/footer.inc.php
index 852062efe..5bc03569e 100644
--- a/setup/inc/footer.inc.php
+++ b/setup/inc/footer.inc.php
@@ -3,5 +3,10 @@
         </div> <!-- content -->
     </div> <!-- wizard -->
     <div id="footer" class="centered">Copyright &copy; 2013 <a target="_blank" href="http://osticket.com">osTicket.com</a></div>
+
+    <script type="text/javascript" src="../js/jquery-1.11.2.min.js"></script>
+    <script type="text/javascript" src="../js/jstz.min.js"></script>
+    <script type="text/javascript" src="js/setup.js"></script>
+    <script type="text/javascript" src="js/tips.js"></script>
 </body>
 </html>
diff --git a/setup/inc/header.inc.php b/setup/inc/header.inc.php
index b7530d1ce..79078a002 100644
--- a/setup/inc/header.inc.php
+++ b/setup/inc/header.inc.php
@@ -11,9 +11,6 @@ if (($lang = Internationalization::getCurrentLanguage())
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <link rel="stylesheet" href="css/wizard.css">
     <link type="text/css" rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/flags.css">
-    <script type="text/javascript" src="../js/jquery-1.8.3.min.js"></script>
-    <script type="text/javascript" src="js/tips.js"></script>
-    <script type="text/javascript" src="js/setup.js"></script>
 </head>
 <body>
     <div id="wizard">
diff --git a/setup/inc/install.inc.php b/setup/inc/install.inc.php
index 807be16fd..15efe6061 100644
--- a/setup/inc/install.inc.php
+++ b/setup/inc/install.inc.php
@@ -115,6 +115,8 @@ $info=($_POST && $errors)?Format::htmlchars($_POST):array('prefix'=>'ost_','dbho
                 <div id="bar">
                     <input class="btn" type="submit" value="<?php echo __('Install Now');?>" tabindex="14">
                 </div>
+
+                <input type="hidden" name="timezone" id="timezone"/>
             </form>
     </div>
     <div>
diff --git a/setup/js/setup.js b/setup/js/setup.js
index 7dd4c81aa..981d21b4e 100644
--- a/setup/js/setup.js
+++ b/setup/js/setup.js
@@ -1,5 +1,5 @@
 jQuery(function($) {
-            
+
     $("#overlay").css({
         opacity : 0.3,
         top     : 0,
@@ -12,10 +12,18 @@ jQuery(function($) {
         top  : ($(window).height() / 3),
         left : ($(window).width() / 2 - 160)
         });
-        
+
     $('form#install').submit(function(e) {
         $('input[type=submit]', this).attr('disabled', 'disabled');
         $('#overlay, #loading').show();
         return true;
         });
+
+    var recheck = setInterval(function() {
+        if (window.jstz !== undefined) {
+            clearInterval(recheck);
+            var zone = jstz.determine();
+            $('#timezone').val(zone.name());
+        }
+    }, 200);
 });
-- 
GitLab