diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php
index 23727b9f1..bcc1388dd 100644
--- a/airtime_mvc/application/controllers/PreferenceController.php
+++ b/airtime_mvc/application/controllers/PreferenceController.php
@@ -6,6 +6,9 @@ class PreferenceController extends Zend_Controller_Action
public function init()
{
/* Initialize action controller here */
+ $ajaxContext = $this->_helper->getHelper('AjaxContext');
+ $ajaxContext->addActionContext('register', 'json')
+ ->initContext();
}
public function indexAction()
@@ -16,6 +19,9 @@ class PreferenceController extends Zend_Controller_Action
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/preferences.js','text/javascript');
$this->view->statusMsg = "";
+ $this->view->registered = Application_Model_Preference::GetRegistered();
+ $this->view->supportFeedback = Application_Model_Preference::GetSupportFeedback();
+
$form = new Application_Form_Preferences();
if ($request->isPost()) {
@@ -35,14 +41,28 @@ class PreferenceController extends Zend_Controller_Action
Application_Model_Preference::SetSoundCloudTags($values["preferences_soundcloud"]["SoundCloudTags"]);
Application_Model_Preference::SetSoundCloudGenre($values["preferences_soundcloud"]["SoundCloudGenre"]);
Application_Model_Preference::SetSoundCloudTrackType($values["preferences_soundcloud"]["SoundCloudTrackType"]);
- Application_Model_Preference::SetSoundCloudLicense($values["preferences_soundcloud"]["SoundCloudLicense"]);
+ 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"]);
$this->view->statusMsg = "
Preferences updated.
";
}
}
-
$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();
+ $this->view->dialog = $form->render($this->view);
+ }
}
diff --git a/airtime_mvc/application/forms/Preferences.php b/airtime_mvc/application/forms/Preferences.php
index e329e48ff..4d46563ec 100644
--- a/airtime_mvc/application/forms/Preferences.php
+++ b/airtime_mvc/application/forms/Preferences.php
@@ -17,6 +17,9 @@ 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');
$this->addElement('submit', 'submit', array(
'class' => 'ui-button ui-state-default right-floated',
diff --git a/airtime_mvc/application/forms/RegisterAirtime.php b/airtime_mvc/application/forms/RegisterAirtime.php
new file mode 100644
index 000000000..843cce502
--- /dev/null
+++ b/airtime_mvc/application/forms/RegisterAirtime.php
@@ -0,0 +1,83 @@
+setDecorators(array(
+ array('ViewScript', array('viewScript' => 'form/register-dialog.phtml'))
+ ));
+
+ // checkbox for publicise
+ $this->addElement('checkbox', 'Publicise', array(
+ 'label' => 'Publicise my station on Sourcefabric.org',
+ 'required' => false,
+ 'value' => Application_Model_Preference::GetSupportFeedback(),
+ 'decorators' => array(
+ 'ViewHelper'
+ )
+ ));
+
+ // Station Name
+ $this->addElement('text', 'StationName', array(
+ 'label' => 'Station Name:',
+ 'required' => false,
+ 'class' => 'input_text',
+ 'value' => Application_Model_Preference::GetStationName(),
+ 'decorators' => array(
+ 'ViewHelper'
+ )
+ ));
+
+ // Station Web Site
+ $this->addElement('text', 'StationWebSite', array(
+ 'label' => 'Station Web Site:',
+ 'required' => false,
+ 'class' => 'input_text',
+ 'value' => Application_Model_Preference::GetStationWebSite(),
+ 'decorators' => array(
+ 'ViewHelper'
+ )
+ ));
+
+ // Phone number
+ $this->addElement('text', 'Phone', array(
+ 'class' => 'input_text',
+ 'label' => 'Phone:',
+ 'required' => false,
+ 'filters' => array('StringTrim'),
+ 'value' => Application_Model_Preference::GetPhone(),
+ 'decorators' => array(
+ 'ViewHelper'
+ )
+ ));
+
+ //Email
+ $this->addElement('text', 'Email', array(
+ 'class' => 'input_text',
+ 'label' => 'Email:',
+ 'required' => false,
+ 'filters' => array('StringTrim'),
+ 'value' => Application_Model_Preference::GetEmail(),
+ 'decorators' => array(
+ 'ViewHelper'
+ )
+ ));
+
+ // text area for sending detail
+ $this->addElement('textarea', 'SendInfo', array(
+ 'class' => 'textarea',
+ 'required' => false,
+ 'filters' => array('StringTrim'),
+ 'cols' => 48,
+ 'rows' => 20,
+ 'readonly' => true,
+ 'value' => Application_Model_Preference::GetSystemInfo(),
+ 'decorators' => array(
+ 'ViewHelper'
+ )
+ ));
+ }
+}
+
diff --git a/airtime_mvc/application/forms/SupportPreferences.php b/airtime_mvc/application/forms/SupportPreferences.php
new file mode 100644
index 000000000..745d432c4
--- /dev/null
+++ b/airtime_mvc/application/forms/SupportPreferences.php
@@ -0,0 +1,72 @@
+setDecorators(array(
+ array('ViewScript', array('viewScript' => 'form/preferences_support.phtml'))
+ ));
+
+ // Phone number
+ $this->addElement('text', 'Phone', array(
+ 'class' => 'input_text',
+ 'label' => 'Phone:',
+ 'required' => false,
+ 'filters' => array('StringTrim'),
+ 'value' => Application_Model_Preference::GetPhone(),
+ 'decorators' => array(
+ 'ViewHelper'
+ )
+ ));
+
+ //Email
+ $this->addElement('text', 'Email', array(
+ 'class' => 'input_text',
+ 'label' => 'Email:',
+ 'required' => false,
+ 'filters' => array('StringTrim'),
+ 'value' => Application_Model_Preference::GetEmail(),
+ 'decorators' => array(
+ 'ViewHelper'
+ )
+ ));
+
+ // Station Web Site
+ $this->addElement('text', 'StationWebSite', array(
+ 'label' => 'Station Web Site:',
+ 'required' => false,
+ 'class' => 'input_text',
+ 'value' => Application_Model_Preference::GetStationWebSite(),
+ 'decorators' => array(
+ 'ViewHelper'
+ )
+ ));
+
+ //enable support feedback
+ $this->addElement('checkbox', 'SupportFeedback', array(
+ 'label' => 'Support feedback enabled',
+ 'required' => false,
+ 'value' => Application_Model_Preference::GetSupportFeedback(),
+ 'decorators' => array(
+ 'ViewHelper'
+ )
+ ));
+
+ //add register button if not registered
+ if( !Application_Model_Preference::GetRegistered() ){
+ $this->addElement('submit', 'Register', array(
+ 'class' => 'ui-button ui-state-default',
+ 'ignore' => true,
+ 'label' => 'Register',
+ 'decorators' => array(
+ 'ViewHelper'
+ )
+ ));
+ }
+ }
+
+
+}
+
diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php
index 400e99d8a..5c754318f 100644
--- a/airtime_mvc/application/models/Preference.php
+++ b/airtime_mvc/application/models/Preference.php
@@ -188,6 +188,55 @@ class Application_Model_Preference
return $val;
}
}
-
+
+ public static function SetPhone($phone){
+ Application_Model_Preference::SetValue("phone", $phone);
+ }
+
+ public static function GetPhone(){
+ return Application_Model_Preference::GetValue("phone");
+ }
+
+ public static function SetEmail($email){
+ Application_Model_Preference::SetValue("email", $email);
+ }
+
+ public static function GetEmail(){
+ return Application_Model_Preference::GetValue("email");
+ }
+
+ public static function SetStationWebSite($site){
+ Application_Model_Preference::SetValue("station_website", $site);
+ }
+
+ public static function GetStationWebSite(){
+ return Application_Model_Preference::GetValue("station_website");
+ }
+
+ public static function SetSupportFeedback($feedback){
+ Application_Model_Preference::SetValue("support_feedback", $feedback);
+ }
+
+ public static function GetSupportFeedback(){
+ return Application_Model_Preference::GetValue("support_feedback");
+ }
+
+ public static function SetRegistered($registered){
+ Application_Model_Preference::SetValue("registered", $registered);
+ }
+
+ public static function GetRegistered(){
+ return Application_Model_Preference::GetValue("registered");
+ }
+
+ public static function GetSystemInfo(){
+ $output;
+ exec('airtime-check-system', $output);
+ $out = implode("\n", preg_replace('/\s+/', ' ', $output));
+
+ // Sever API
+ $out .= php_sapi_name();
+ return $out;
+ }
}
diff --git a/airtime_mvc/application/views/scripts/form/preferences.phtml b/airtime_mvc/application/views/scripts/form/preferences.phtml
index 88c87e5a6..7bb5fa5c0 100644
--- a/airtime_mvc/application/views/scripts/form/preferences.phtml
+++ b/airtime_mvc/application/views/scripts/form/preferences.phtml
@@ -6,6 +6,11 @@
element->getSubform('preferences_soundcloud') ?>
+
+
+
+ element->getSubform('preferences_support') ?>
+