SAAS-945: Language + Timezone Setup Popup

forgot to auto detect user's timezone
This commit is contained in:
drigato 2015-07-27 14:38:42 -04:00
parent ee2bfe7664
commit 989b4994aa
5 changed files with 30 additions and 26 deletions

View file

@ -18,31 +18,24 @@ class SetupController extends Zend_Controller_Action
if ($request->isPost()) { if ($request->isPost()) {
$postData = $request->getPost(); $formData = $request->getPost();
$formData = array();
foreach ($postData["data"] as $key => $value) {
if ($value["name"] == "csrf") continue;
$formData[$value["name"]] = $value["value"];
}
if ($form->isValid($formData)) { if ($form->isValid($formData)) {
$userService = new Application_Service_UserService(); $userService = new Application_Service_UserService();
$currentUser = $userService->getCurrentUser(); $currentUser = $userService->getCurrentUser();
$currentUserId = $currentUser->getDbId(); $currentUserId = $currentUser->getDbId();
Application_Model_Preference::SetUserTimezone($formData["timezone"], $currentUserId); Application_Model_Preference::SetUserTimezone($formData["setup_timezone"], $currentUserId);
Application_Model_Preference::SetDefaultTimezone($formData["timezone"]); Application_Model_Preference::SetDefaultTimezone($formData["setup_timezone"]);
Application_Model_Preference::SetUserLocale($formData["language"], $currentUserId); Application_Model_Preference::SetUserLocale($formData["setup_language"], $currentUserId);
Application_Model_Preference::SetDefaultLocale($formData["language"]); Application_Model_Preference::SetDefaultLocale($formData["setup_language"]);
Application_Model_Preference::setLangTimezoneSetupComplete(true); Application_Model_Preference::setLangTimezoneSetupComplete(true);
$this->_helper->json->sendJson(null); $this->_redirect('/Showbuilder');
} else {
$this->_helper->json->sendJson($form->get);
}
} else {
$this->_helper->json->sendJson($form);
} }
} }
$this->_redirect('/Showbuilder');
}
} }

View file

@ -45,6 +45,7 @@ class ShowbuilderController extends Zend_Controller_Action
//$this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.ColReorder.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); //$this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.ColReorder.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.FixedColumns.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.FixedColumns.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.columnFilter.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.columnFilter.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/js-timezone-detect/jstz-1.0.4.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/blockui/jquery.blockUI.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'js/blockui/jquery.blockUI.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/airtime/buttons/buttons.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'js/airtime/buttons/buttons.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
@ -64,7 +65,6 @@ class ShowbuilderController extends Zend_Controller_Action
// and they have not seen the setup popup before // and they have not seen the setup popup before
if ($currentUser->getDbType() == "S" && strpos(strtolower($previousPage), 'login') !== false if ($currentUser->getDbType() == "S" && strpos(strtolower($previousPage), 'login') !== false
&& empty($setupComplete)) { && empty($setupComplete)) {
Logging::info("hello");
$lang_tz_popup_form = new Application_Form_SetupLanguageTimezone(); $lang_tz_popup_form = new Application_Form_SetupLanguageTimezone();
$this->view->lang_tz_popup_form = $lang_tz_popup_form; $this->view->lang_tz_popup_form = $lang_tz_popup_form;
$this->view->headScript()->appendFile($baseUrl.'js/airtime/nowplaying/lang-timezone-setup.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'js/airtime/nowplaying/lang-timezone-setup.js?'.$CC_CONFIG['airtime_version'],'text/javascript');

View file

@ -1,5 +1,5 @@
<div id="lang-timezone-popup" class="dialogPopup register-dialog" title="<?php echo _("Setup Station Language and Timezone") ?>" style="display: none;"> <div id="lang-timezone-popup" class="dialogPopup register-dialog" title="<?php echo _("Setup Station Language and Timezone") ?>" style="display: none;">
<form id="lang-timezone-form"> <form id="lang-timezone-form" method="post" action="/setup/setup-language-timezone">
<fieldset> <fieldset>
<dl class="zend_form"> <dl class="zend_form">
<?php echo $this->element->getElement('csrf') ?> <?php echo $this->element->getElement('csrf') ?>
@ -7,6 +7,9 @@
<?php echo $this->element->getElement('setup_language')->render(); ?> <?php echo $this->element->getElement('setup_language')->render(); ?>
<?php echo $this->element->getElement('setup_timezone')->render(); ?> <?php echo $this->element->getElement('setup_timezone')->render(); ?>
<br>
You can set these settings later under Preferences and your user settings.
</dl> </dl>
</fieldset> </fieldset>
</form> </form>

View file

@ -22,19 +22,25 @@ $(document).ready(function() {
text: $.i18n._("OK"), text: $.i18n._("OK"),
"class": "btn", "class": "btn",
click: function() { click: function() {
var formValues = $("#lang-timezone-form").serializeArray(); $("#lang-timezone-form").submit();
$.post(baseUrl+"setup/setup-language-timezone",
{
format: "json",
data: formValues
}, function(json) {
console.log(json);
$("#lang-timezone-popup").dialog("close");
});
} }
} }
] ]
}); });
var language = window.navigator.userLanguage || window.navigator.language;
if (language === undefined) {
language = "en_CA";
}
language = language.replace("-", "_");
$("#setup_language").val(language);
var timezone = jstz.determine();
var timezone_name = timezone.name();
if (timezone_name === undefined) {
timezone_name = "America/Toronto";
}
$("#setup_timezone").val(timezone_name);
dialog.dialog('open'); dialog.dialog('open');
}); });

File diff suppressed because one or more lines are too long