From 883cacd22063f8a95ea52db5caba90dbcef07b1d Mon Sep 17 00:00:00 2001 From: james Date: Tue, 5 Jul 2011 14:21:32 -0400 Subject: [PATCH 1/2] CC-2509:Phone Home stat: not able to upload logo via popup - fixed --- airtime_mvc/application/controllers/PreferenceController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php index 72769bc7d..ec411be1d 100644 --- a/airtime_mvc/application/controllers/PreferenceController.php +++ b/airtime_mvc/application/controllers/PreferenceController.php @@ -50,6 +50,7 @@ class PreferenceController extends Zend_Controller_Action Application_Model_Preference::SetSupportFeedback($values["preferences_support"]["SupportFeedback"]); Application_Model_Preference::SetPublicise($values["preferences_support"]["Publicise"]); + $form->getSubForm('preferences_support')->Logo->receive(); $imagePath = $form->getSubForm('preferences_support')->Logo->getFileName(); Application_Model_Preference::SetStationCountry($values["preferences_support"]["Country"]); @@ -83,7 +84,8 @@ class PreferenceController extends Zend_Controller_Action 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"]); From daf6f9963f90b60abd69477aa3fa05a9661ffca9 Mon Sep 17 00:00:00 2001 From: james Date: Tue, 5 Jul 2011 15:53:50 -0400 Subject: [PATCH 2/2] 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. --- .../controllers/NowplayingController.php | 99 +++++++++++++- .../controllers/PreferenceController.php | 59 +------- .../application/forms/RegisterAirtime.php | 8 +- .../views/scripts/form/register-dialog.phtml | 2 +- .../views/scripts/nowplaying/index.phtml | 1 + .../public/js/airtime/nowplaying/register.js | 129 +++++++----------- 6 files changed, 155 insertions(+), 143 deletions(-) diff --git a/airtime_mvc/application/controllers/NowplayingController.php b/airtime_mvc/application/controllers/NowplayingController.php index dac297494..fec31924c 100644 --- a/airtime_mvc/application/controllers/NowplayingController.php +++ b/airtime_mvc/application/controllers/NowplayingController.php @@ -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(); + } } diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php index ec411be1d..df9eeffc1 100644 --- a/airtime_mvc/application/controllers/PreferenceController.php +++ b/airtime_mvc/application/controllers/PreferenceController.php @@ -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(); diff --git a/airtime_mvc/application/forms/RegisterAirtime.php b/airtime_mvc/application/forms/RegisterAirtime.php index 47f41a924..6fdc0c08b 100644 --- a/airtime_mvc/application/forms/RegisterAirtime.php +++ b/airtime_mvc/application/forms/RegisterAirtime.php @@ -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 diff --git a/airtime_mvc/application/views/scripts/form/register-dialog.phtml b/airtime_mvc/application/views/scripts/form/register-dialog.phtml index 6a7bca704..ce5baad7a 100644 --- a/airtime_mvc/application/views/scripts/form/register-dialog.phtml +++ b/airtime_mvc/application/views/scripts/form/register-dialog.phtml @@ -1,4 +1,4 @@ -
+
+dialog?> diff --git a/airtime_mvc/public/js/airtime/nowplaying/register.js b/airtime_mvc/public/js/airtime/nowplaying/register.js index cbbb95d0e..37cd98357 100644 --- a/airtime_mvc/public/js/airtime/nowplaying/register.js +++ b/airtime_mvc/public/js/airtime/nowplaying/register.js @@ -1,60 +1,51 @@ $(document).ready(function(){ - var dialogGlob; - - function doNotShowPopup(){ - $.get("/Preference/donotshowpopup"); - } - - $.get("/Preference/register", {format:"json"}, function(json){ - var dialog = $(json.dialog); - dialogGlob = dialog; - - dialog.dialog({ - autoOpen: false, - width: 500, - resizable: false, - modal: true, - position:['center',50], - close: doNotShowPopup, - buttons: [ - { - id: "remind_me", - text: "Remind me in 1 week", - click: function() { - var url = '/Preference/remindme'; - $.ajax({ - url: url, - }); - $(this).dialog("close"); - } - }, - { - id: "help_airtime", - text: "Yes, help Airtime", - click: function() { - if($("#Publicise").is(':checked')){ - if(validateFields()){ - $("#register-form").submit(); - } - }else{ - $("#register-form").submit(); - } - } - } - ] - }); - - var button = $("#help_airtime"); - button.attr('disabled', 'disabled').addClass('ui-state-disabled'); - dialog.dialog('open'); - }) + + function doNotShowPopup(){ + $.get("/Nowplaying/donotshowpopup"); + } + + var dialog = $("#register_popup"); + + dialog.dialog({ + autoOpen: false, + width: 500, + resizable: false, + modal: true, + position:['center',50], + close: doNotShowPopup, + buttons: [ + { + id: "remind_me", + text: "Remind me in 1 week", + click: function() { + var url = '/Nowplaying/remindme'; + $.ajax({ + url: url, + }); + $(this).dialog("close"); + } + }, + { + id: "help_airtime", + text: "Yes, help Airtime", + click: function() { + $("#register-form").submit(); + } + } + ] + }); + + var button = $("#help_airtime"); + button.attr('disabled', 'disabled').addClass('ui-state-disabled'); + dialog.dialog('open'); + $('.collapsible-header').live('click',function() { $(this).next().toggle('fast'); $(this).toggleClass("close"); return false; }).next().hide(); - + $("#SupportFeedback").live('click', function(){ var pub = $("#Publicise"); var privacy = $("#Privacy"); @@ -72,13 +63,17 @@ $(document).ready(function(){ } }); - $("#Publicise").live('click', function(){ + var promote = $("#Publicise"); + promote.live('click', function(){ if($(this).is(':checked')){ $("#public-info").show(); }else{ $("#public-info").hide(); } }); + if( promote.is(":checked")){ + $("#public-info").show(); + } $("#Privacy").live('click', function(){ var support = $("#SupportFeedback"); @@ -90,6 +85,12 @@ $(document).ready(function(){ } }); + if($("#SupportFeedback").is(':checked') && $("#Privacy").is(':checked')){ + button.removeAttr('disabled').removeClass('ui-state-disabled'); + }else{ + button.attr('disabled', 'disabled' ).addClass('ui-state-disabled'); + } + $("#link_to_whos_using").live('click', function(){ window.open("http://sourcefabric.org/en/products/airtime_whosusing"); }); @@ -103,32 +104,6 @@ $(document).ready(function(){ return false; }); }); - -function validateFields(){ - var stnName = $("#stnName"); - - var errors = new Array(); - - errors[0] = displayError(stnName); - - for( e in errors ){ - if(errors[e]){ - return false; - } - } - return true; -} - -function displayError(ele){ - var errorMsg = "Value is required and can't be empty"; - - ele.parent().find("ul").remove(); - if($.trim(ele.val()) == ''){ - ele.parent().append("
  • "+errorMsg+"
"); - return true; - } - return false; -} function resizeImg(ele){