diff --git a/airtime_mvc/application/configs/navigation.php b/airtime_mvc/application/configs/navigation.php index 4f2c3ea8b..1fc7dc059 100644 --- a/airtime_mvc/application/configs/navigation.php +++ b/airtime_mvc/application/configs/navigation.php @@ -58,6 +58,12 @@ $pages = array( 'module' => 'default', 'controller' => 'Preference', 'action' => 'directory-config' + ), + array( + 'label' => 'Support Settings', + 'module' => 'default', + 'controller' => 'Preference', + 'action' => 'support-setting' ) ) ), diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php index cf5d29b1b..433930d17 100644 --- a/airtime_mvc/application/controllers/PreferenceController.php +++ b/airtime_mvc/application/controllers/PreferenceController.php @@ -7,9 +7,7 @@ class PreferenceController extends Zend_Controller_Action { /* Initialize action controller here */ $ajaxContext = $this->_helper->getHelper('AjaxContext'); - $ajaxContext/*->addActionContext('register', 'json') - ->addActionContext('remindme', 'json')*/ - ->addActionContext('server-browse', 'json') + $ajaxContext->addActionContext('server-browse', 'json') ->addActionContext('change-stor-directory', 'json') ->addActionContext('reload-watch-directory', 'json') ->addActionContext('remove-watch-directory', 'json') @@ -30,8 +28,7 @@ class PreferenceController extends Zend_Controller_Action if ($request->isPost()) { if ($form->isValid($request->getPost())) { $values = $form->getValues(); - - Application_Model_Preference::SetHeadTitle($values["preferences_general"]["stationName"], $this->view); + Application_Model_Preference::SetDefaultFade($values["preferences_general"]["stationDefaultFade"]); Application_Model_Preference::SetStreamLabelFormat($values["preferences_general"]["streamFormat"]); Application_Model_Preference::SetAllow3rdPartyApi($values["preferences_general"]["thirdPartyApi"]); @@ -45,30 +42,51 @@ class PreferenceController extends Zend_Controller_Action Application_Model_Preference::SetSoundCloudLicense($values["preferences_soundcloud"]["SoundCloudLicense"]); - Application_Model_Preference::SetPhone($values["preferences_support"]["Phone"]); - Application_Model_Preference::SetEmail($values["preferences_support"]["Email"]); - Application_Model_Preference::SetStationWebSite($values["preferences_support"]["StationWebSite"]); - 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"]); - Application_Model_Preference::SetStationCity($values["preferences_support"]["City"]); - Application_Model_Preference::SetStationDescription($values["preferences_support"]["Description"]); - Application_Model_Preference::SetStationLogo($imagePath); - $this->view->statusMsg = "
Preferences updated.
"; } } - $logo = Application_Model_Preference::GetStationLogo(); - if($logo){ - $this->view->logoImg = $logo; - } $this->view->form = $form; } + public function supportSettingAction() + { + $request = $this->getRequest(); + $baseUrl = $request->getBaseUrl(); + + $this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/support-setting.js','text/javascript'); + $this->view->statusMsg = ""; + + $form = new Application_Form_SupportSettings(); + + if ($request->isPost()) { + if ($form->isValid($request->getPost())) { + $values = $form->getValues(); + + Application_Model_Preference::SetHeadTitle($values["stationName"], $this->view); + Application_Model_Preference::SetPhone($values["Phone"]); + Application_Model_Preference::SetEmail($values["Email"]); + Application_Model_Preference::SetStationWebSite($values["StationWebSite"]); + Application_Model_Preference::SetSupportFeedback($values["SupportFeedback"]); + 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); + + $this->view->statusMsg = "
Support setting updated.
"; + } + } + $logo = Application_Model_Preference::GetStationLogo(); + if($logo){ + $this->view->logoImg = $logo; + } + $this->view->form = $form; + } + public function directoryConfigAction() { $request = $this->getRequest(); diff --git a/airtime_mvc/application/forms/GeneralPreferences.php b/airtime_mvc/application/forms/GeneralPreferences.php index 3e5ba710e..181799ac8 100644 --- a/airtime_mvc/application/forms/GeneralPreferences.php +++ b/airtime_mvc/application/forms/GeneralPreferences.php @@ -9,19 +9,6 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm array('ViewScript', array('viewScript' => 'form/preferences_general.phtml')) )); - //Station name - $this->addElement('text', 'stationName', array( - 'class' => 'input_text', - 'label' => 'Station Name', - 'required' => true, - 'filters' => array('StringTrim'), - 'validators' => array('NotEmpty'), - 'value' => Application_Model_Preference::GetValue("station_name"), - 'decorators' => array( - 'ViewHelper' - ) - )); - $defaultFade = Application_Model_Preference::GetDefaultFade(); if($defaultFade == ""){ $defaultFade = '00:00:00.000000'; diff --git a/airtime_mvc/application/forms/Preferences.php b/airtime_mvc/application/forms/Preferences.php index 963a58717..0fa9f0b58 100644 --- a/airtime_mvc/application/forms/Preferences.php +++ b/airtime_mvc/application/forms/Preferences.php @@ -18,8 +18,8 @@ class Application_Form_Preferences extends Zend_Form $soundcloud_pref = new Application_Form_SoundcloudPreferences(); $this->addSubForm($soundcloud_pref, 'preferences_soundcloud'); - $support_pref = new Application_Form_SupportPreferences(); - $this->addSubForm($support_pref, 'preferences_support'); + /*$support_pref = new Application_Form_SupportPreferences(); + $this->addSubForm($support_pref, 'preferences_support');*/ $this->addElement('submit', 'submit', array( 'class' => 'ui-button ui-state-default right-floated', diff --git a/airtime_mvc/application/forms/SupportPreferences.php b/airtime_mvc/application/forms/SupportSettings.php similarity index 81% rename from airtime_mvc/application/forms/SupportPreferences.php rename to airtime_mvc/application/forms/SupportSettings.php index 62c6496cf..12bb20237 100644 --- a/airtime_mvc/application/forms/SupportPreferences.php +++ b/airtime_mvc/application/forms/SupportSettings.php @@ -1,6 +1,6 @@ setDecorators(array( - array('ViewScript', array('viewScript' => 'form/preferences_support.phtml')), - array('File', array('viewScript' => 'form/preferences_support.phtml', 'placement' => false))) + array('ViewScript', array('viewScript' => 'form/support-setting.phtml')), + array('File', array('viewScript' => 'form/support-setting.phtml', 'placement' => false))) ); + + //Station name + $this->addElement('text', 'stationName', array( + 'class' => 'input_text', + 'label' => 'Station Name', + 'required' => false, + 'filters' => array('StringTrim'), + 'value' => Application_Model_Preference::GetValue("station_name"), + 'decorators' => array( + 'ViewHelper' + ) + )); // Phone number $this->addElement('text', 'Phone', array( @@ -134,18 +146,26 @@ class Application_Form_SupportPreferences extends Zend_Form_SubForm $checkboxPrivacy->setLabel("By checking this box, I agree to Sourcefabric's privacy policy.") ->setDecorators(array('ViewHelper')); $this->addElement($checkboxPrivacy); + + // submit button + $submit = new Zend_Form_Element_Submit("submit"); + $submit->class = 'ui-button ui-state-default right-floated'; + $submit->setIgnore(true) + ->setLabel("Submit") + ->setDecorators(array('ViewHelper')); + $this->addElement($submit); } // overwriting isValid function public function isValid ($data) { - parent::isValid($data); + $isValid = parent::isValid($data); $checkPrivacy = $this->getElement('Privacy'); if($data["SupportFeedback"] == "1" && $data["Privacy"] != "1"){ $checkPrivacy->addError("You have to agree to privacy policy."); - return false; + $isValid = false; } - return true; + return $isValid; } } diff --git a/airtime_mvc/application/views/scripts/form/preferences.phtml b/airtime_mvc/application/views/scripts/form/preferences.phtml index f1a8be62b..d6d20ea00 100644 --- a/airtime_mvc/application/views/scripts/form/preferences.phtml +++ b/airtime_mvc/application/views/scripts/form/preferences.phtml @@ -9,11 +9,6 @@ element->getSubform('preferences_soundcloud') ?> -

Support Settings

- -
element->getElement('submit') ?>
diff --git a/airtime_mvc/application/views/scripts/form/preferences_general.phtml b/airtime_mvc/application/views/scripts/form/preferences_general.phtml index 21df5c566..3a59fe12b 100644 --- a/airtime_mvc/application/views/scripts/form/preferences_general.phtml +++ b/airtime_mvc/application/views/scripts/form/preferences_general.phtml @@ -1,21 +1,5 @@
- -
- -
-
- element->getElement('stationName') ?> - element->getElement('stationName')->hasErrors()) : ?> -
    - element->getElement('stationName')->getMessages() as $error): ?> -
  • - -
- -
diff --git a/airtime_mvc/application/views/scripts/form/preferences_support.phtml b/airtime_mvc/application/views/scripts/form/support-setting.phtml similarity index 89% rename from airtime_mvc/application/views/scripts/form/preferences_support.phtml rename to airtime_mvc/application/views/scripts/form/support-setting.phtml index d0e100f42..014ef23cc 100644 --- a/airtime_mvc/application/views/scripts/form/preferences_support.phtml +++ b/airtime_mvc/application/views/scripts/form/support-setting.phtml @@ -1,5 +1,19 @@
+
+ +
+
+ element->getElement('stationName') ?> + element->getElement('stationName')->hasErrors()) : ?> +
    + element->getElement('stationName')->getMessages() as $error): ?> +
  • + +
+ +
Help Airtime improve by letting us know you are using it. This info will be collected regularly in order to improve your user experience.
@@ -30,10 +44,10 @@ -
-
-

Note: In order to promote your station, "Send support feedback" must be enabled

- +

Note: In order to promote your station, "Send support feedback" must be enabled

+
+
\ No newline at end of file diff --git a/airtime_mvc/application/views/scripts/preference/support-setting.phtml b/airtime_mvc/application/views/scripts/preference/support-setting.phtml new file mode 100644 index 000000000..85176345b --- /dev/null +++ b/airtime_mvc/application/views/scripts/preference/support-setting.phtml @@ -0,0 +1,12 @@ +
+

Support Setting

+
+
+ statusMsg ?> + form ?> +
+
+ form->getElement('submit') ?> +
+
+
diff --git a/airtime_mvc/public/js/airtime/preferences/preferences.js b/airtime_mvc/public/js/airtime/preferences/preferences.js index 8a77bb68a..d1d2585be 100644 --- a/airtime_mvc/public/js/airtime/preferences/preferences.js +++ b/airtime_mvc/public/js/airtime/preferences/preferences.js @@ -4,39 +4,9 @@ function showErrorSections() { $("#soundcloud-settings").show(); $(window).scrollTop($("soundcloud-settings .errors").position().top); } - if($("#support-settings .errors").length > 0) { - $("#support-settings").show(); - $(window).scrollTop($("#support-settings .errors").position().top); - } -} - -function resizeImg(ele){ - var img = $(ele); - - var width = ele.width; - var height = ele.height; - - // resize img proportionaly - if( width > height && width > 450){ - var ratio = 450/width; - img.css("width", "450px"); - var newHeight = height * ratio; - img.css("height", newHeight ); - - }else if( width < height && height > 450){ - var ratio = 450/height; - img.css("height", "450px"); - var newWidth = width * ratio; - img.css("width", newWidth ); - }else if( width == height && width > 450){ - img.css("height", "450px"); - img.css("width", "450px" ); - } - } $(document).ready(function() { - var form = $("form"); $('.collapsible-header').live('click',function() { $(this).next().toggle('fast'); @@ -44,36 +14,5 @@ $(document).ready(function() { return false; }).next().hide(); - $("#SupportFeedback").click( function(){ - var pub = $("#Publicise"); - if( !$(this).is(':checked') ){ - pub.removeAttr("checked"); - pub.attr("disabled", true); - }else{ - pub.removeAttr("disabled"); - } - }); - - var promote = $("#Publicise"); - if(!$("#SupportFeedback").is(':checked')){ - promote.removeAttr("checked"); - promote.attr("disabled", true); - } - promote.live('click', function(){ - if($(this).is(':checked')){ - $("#public-info").show(); - }else{ - $("#public-info").hide(); - } - }); - if( promote.is(":checked")){ - $("#public-info").show(); - } - showErrorSections(); - - $('.toggle legend').click(function() { - $('.toggle').toggleClass('closed'); - return false; - }); }); diff --git a/airtime_mvc/public/js/airtime/preferences/support-setting.js b/airtime_mvc/public/js/airtime/preferences/support-setting.js new file mode 100644 index 000000000..d22ee962c --- /dev/null +++ b/airtime_mvc/public/js/airtime/preferences/support-setting.js @@ -0,0 +1,73 @@ +function showErrorSections() { + + if($("soundcloud-settings .errors").length > 0) { + $("#soundcloud-settings").show(); + $(window).scrollTop($("soundcloud-settings .errors").position().top); + } + if($("#support-settings .errors").length > 0) { + $("#support-settings").show(); + $(window).scrollTop($("#support-settings .errors").position().top); + } +} + +function resizeImg(ele){ + var img = $(ele); + + var width = ele.width; + var height = ele.height; + + // resize img proportionaly + if( width > height && width > 450){ + var ratio = 450/width; + img.css("width", "450px"); + var newHeight = height * ratio; + img.css("height", newHeight ); + + }else if( width < height && height > 450){ + var ratio = 450/height; + img.css("height", "450px"); + var newWidth = width * ratio; + img.css("width", newWidth ); + }else if( width == height && width > 450){ + img.css("height", "450px"); + img.css("width", "450px" ); + } + +} + +$(document).ready(function() { + var form = $("form"); + + $("#SupportFeedback").click( function(){ + var pub = $("#Publicise"); + if( !$(this).is(':checked') ){ + pub.removeAttr("checked"); + pub.attr("disabled", true); + }else{ + pub.removeAttr("disabled"); + } + }); + + var promote = $("#Publicise"); + if(!$("#SupportFeedback").is(':checked')){ + promote.removeAttr("checked"); + promote.attr("disabled", true); + } + promote.live('click', function(){ + if($(this).is(':checked')){ + $("#public-info").show(); + }else{ + $("#public-info").hide(); + } + }); + if( promote.is(":checked")){ + $("#public-info").show(); + } + + showErrorSections(); + + $('.toggle legend').click(function() { + $('.toggle').toggleClass('closed'); + return false; + }); +});