CC-2511:Phone Home Metric: add error display on popup

- refactoring was needed to solve this problem.
- javascript error check is not necessary anymore.
- The form is preloaded to nowplaying page, only when
it's needed, hence ajax call to pull up the form is not
needed anymore.
This commit is contained in:
james 2011-07-05 15:53:50 -04:00
parent 883cacd220
commit daf6f9963f
6 changed files with 155 additions and 143 deletions

View file

@ -7,6 +7,8 @@ class NowplayingController extends Zend_Controller_Action
{
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('get-data-grid-data', 'json')
->addActionContext('register', 'json')
->addActionContext('remindme', 'json')
->initContext();
}
@ -23,10 +25,46 @@ class NowplayingController extends Zend_Controller_Action
$refer_sses = new Zend_Session_Namespace('referrer');
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
$user = new User($userInfo->id);
if($refer_sses->referrer == 'login' && Application_Model_Nowplaying::ShouldShowPopUp()
&& !Application_Model_Preference::GetSupportFeedback() && $user->isAdmin()){
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/nowplaying/register.js','text/javascript');
$form = new Application_Form_RegisterAirtime();
if ($request->isPost()) {
$values = $request->getPost();
if ($values["Publicise"] == '1' && $form->isValid($values)) {
Application_Model_Preference::SetHeadTitle($values["stnName"], $this->view);
Application_Model_Preference::SetPhone($values["Phone"]);
Application_Model_Preference::SetEmail($values["Email"]);
Application_Model_Preference::SetStationWebSite($values["StationWebSite"]);
Application_Model_Preference::SetPublicise($values["Publicise"]);
$form->Logo->receive();
$imagePath = $form->Logo->getFileName();
Application_Model_Preference::SetStationCountry($values["Country"]);
Application_Model_Preference::SetStationCity($values["City"]);
Application_Model_Preference::SetStationDescription($values["Description"]);
Application_Model_Preference::SetStationLogo($imagePath);
Application_Model_Preference::SetSupportFeedback($values["SupportFeedback"]);
// unset session
Zend_Session::namespaceUnset('referrer');
}else{
$logo = Application_Model_Preference::GetStationLogo();
if($logo){
$this->view->logoImg = $logo;
}
$this->view->dialog = $form;
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/nowplaying/register.js','text/javascript');
}
}else{
if($refer_sses->referrer == 'login' && Application_Model_Nowplaying::ShouldShowPopUp()
&& !Application_Model_Preference::GetSupportFeedback() && $user->isAdmin()){
$logo = Application_Model_Preference::GetStationLogo();
if($logo){
$this->view->logoImg = $logo;
}
$this->view->dialog = $form;
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/nowplaying/register.js','text/javascript');
}
}
}
@ -53,6 +91,59 @@ class NowplayingController extends Zend_Controller_Action
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/nowplaying/nowplayingdatagrid.js','text/javascript');
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/nowplaying/dayview.js','text/javascript');
}
/*public function registerAction(){
//$request = $this->getRequest();
//$baseUrl = $request->getBaseUrl();
//$this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/preferences.js','text/javascript');
$form = new Application_Form_RegisterAirtime();
/*if ($request->isPost()) {
$values = $request->getPost();
if ($values["Publicise"] == '1' && $form->isValid($values)) {
Application_Model_Preference::SetHeadTitle($values["stnName"], $this->view);
Application_Model_Preference::SetPhone($values["Phone"]);
Application_Model_Preference::SetEmail($values["Email"]);
Application_Model_Preference::SetStationWebSite($values["StationWebSite"]);
Application_Model_Preference::SetPublicise($values["Publicise"]);
$form->Logo->receive();
$imagePath = $form->Logo->getFileName();
Application_Model_Preference::SetStationCountry($values["Country"]);
Application_Model_Preference::SetStationCity($values["City"]);
Application_Model_Preference::SetStationDescription($values["Description"]);
Application_Model_Preference::SetStationLogo($imagePath);
Application_Model_Preference::SetSupportFeedback($values["SupportFeedback"]);
// unset session
Zend_Session::namespaceUnset('referrer');
}
}else
$logo = Application_Model_Preference::GetStationLogo();
if($logo){
$this->view->logoImg = $logo;
}
$this->view->dialog = $form->render($this->view);
//}
}*/
public function remindmeAction()
{
// unset session
Zend_Session::namespaceUnset('referrer');
$now = date("Y-m-d H:i:s");
Application_Model_Preference::SetRemindMeDate($now);
die();
}
public function donotshowpopupAction()
{
// unset session
Zend_Session::namespaceUnset('referrer');
die();
}
}

View file

@ -7,8 +7,8 @@ class PreferenceController extends Zend_Controller_Action
{
/* Initialize action controller here */
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('register', 'json')
->addActionContext('remindme', 'json')
$ajaxContext/*->addActionContext('register', 'json')
->addActionContext('remindme', 'json')*/
->addActionContext('server-browse', 'json')
->addActionContext('change-stor-directory', 'json')
->addActionContext('reload-watch-directory', 'json')
@ -68,61 +68,6 @@ class PreferenceController extends Zend_Controller_Action
$this->view->form = $form;
}
public function registerAction(){
$request = $this->getRequest();
$baseUrl = $request->getBaseUrl();
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/preferences.js','text/javascript');
$form = new Application_Form_RegisterAirtime();
if ($request->isPost()) {
$values = $request->getPost();
if ($values["Publicise"] == '1' && $form->isValid($values)) {
Application_Model_Preference::SetHeadTitle($values["stnName"], $this->view);
Application_Model_Preference::SetPhone($values["Phone"]);
Application_Model_Preference::SetEmail($values["Email"]);
Application_Model_Preference::SetStationWebSite($values["StationWebSite"]);
Application_Model_Preference::SetPublicise($values["Publicise"]);
$form->Logo->receive();
$imagePath = $form->Logo->getFileName();
Application_Model_Preference::SetStationCountry($values["Country"]);
Application_Model_Preference::SetStationCity($values["City"]);
Application_Model_Preference::SetStationDescription($values["Description"]);
Application_Model_Preference::SetStationLogo($imagePath);
}
Application_Model_Preference::SetSupportFeedback($values["SupportFeedback"]);
// unset session
Zend_Session::namespaceUnset('referrer');
$this->_redirect('Nowplaying');
}else{
$logo = Application_Model_Preference::GetStationLogo();
if($logo){
$this->view->logoImg = $logo;
}
$this->view->dialog = $form->render($this->view);
}
}
public function remindmeAction()
{
// unset session
Zend_Session::namespaceUnset('referrer');
$now = date("Y-m-d H:i:s");
Application_Model_Preference::SetRemindMeDate($now);
die();
}
public function donotshowpopupAction()
{
// unset session
Zend_Session::namespaceUnset('referrer');
die();
}
public function directoryConfigAction()
{
$request = $this->getRequest();

View file

@ -5,7 +5,7 @@ class Application_Form_RegisterAirtime extends Zend_Form
public function init()
{
$this->setAction('/Preference/register');
$this->setAction('/Nowplaying');
$this->setMethod('post');
$country_list = Application_Model_Preference::GetCountryList();
@ -95,14 +95,14 @@ class Application_Form_RegisterAirtime extends Zend_Form
$upload = new Zend_Form_Element_File('Logo');
$upload->setLabel('Station Logo:')
->setRequired(false)
->setDecorators(array('File'));
/*->addValidator('Count', false, 1)
->setDecorators(array('File'))
->addValidator('Count', false, 1)
->addValidator('Extension', false, 'jpg,png,gif')
->addValidator('ImageSize', false, array(
'minwidth' => 200,
'minheight' => 200,
'maxwidth' => 600,
'maxheight' => 600));*/
'maxheight' => 600));
$this->addElement($upload);
//enable support feedback

View file

@ -1,4 +1,4 @@
<div class="dialogPopup register-dialog" title="Register Airtime">
<div id="register_popup" class="dialogPopup register-dialog" title="Register Airtime" style="display: none;">
<form id="register-form" method="<?php echo $this->element->getMethod() ?>" action="<?php echo $this->element->getAction() ?>" enctype="multipart/form-data">
<fieldset>
<dl class="zend_form">

View file

@ -2,3 +2,4 @@
<span class="toggle-button-active end-button" id="now_view">Now View</span><span class="toggle-button" id="day_view">Day View</span>
</div>
<table cellpadding="0" cellspacing="0" border="0" class="datatable" id="nowplayingtable"></table>
<?php echo $this->dialog?>