SAAS-247: Stream settings wipes out master/show source settings if is a SAAS instance
-fixed
This commit is contained in:
parent
931246907f
commit
f23582612a
|
@ -6,7 +6,7 @@ class PreferenceController extends Zend_Controller_Action
|
||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
/* Initialize action controller here */
|
/* Initialize action controller here */
|
||||||
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
||||||
$ajaxContext->addActionContext('server-browse', 'json')
|
$ajaxContext->addActionContext('server-browse', 'json')
|
||||||
->addActionContext('change-stor-directory', 'json')
|
->addActionContext('change-stor-directory', 'json')
|
||||||
->addActionContext('reload-watch-directory', 'json')
|
->addActionContext('reload-watch-directory', 'json')
|
||||||
|
@ -144,6 +144,8 @@ class PreferenceController extends Zend_Controller_Action
|
||||||
|
|
||||||
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/streamsetting.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/streamsetting.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
|
|
||||||
|
$isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true;
|
||||||
|
|
||||||
// get current settings
|
// get current settings
|
||||||
$temp = Application_Model_StreamSetting::getStreamSetting();
|
$temp = Application_Model_StreamSetting::getStreamSetting();
|
||||||
$setting = array();
|
$setting = array();
|
||||||
|
@ -197,13 +199,12 @@ class PreferenceController extends Zend_Controller_Action
|
||||||
$values = $post_data;
|
$values = $post_data;
|
||||||
|
|
||||||
if($form->isValid($post_data)){
|
if($form->isValid($post_data)){
|
||||||
if(Application_Model_Preference::GetPlanLevel() == 'disabled'){
|
if (!$isSaas) {
|
||||||
$values['output_sound_device'] = $form->getValue('output_sound_device');
|
$values['output_sound_device'] = $form->getValue('output_sound_device');
|
||||||
|
$values['output_sound_device_type'] = $form->getValue('output_sound_device_type');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$values['icecast_vorbis_metadata'] = $form->getValue('icecast_vorbis_metadata');
|
$values['icecast_vorbis_metadata'] = $form->getValue('icecast_vorbis_metadata');
|
||||||
$values['output_sound_device_type'] = $form->getValue('output_sound_device_type');
|
|
||||||
$values['streamFormat'] = $form->getValue('streamFormat');
|
$values['streamFormat'] = $form->getValue('streamFormat');
|
||||||
|
|
||||||
Application_Model_StreamSetting::setStreamSetting($values);
|
Application_Model_StreamSetting::setStreamSetting($values);
|
||||||
|
@ -214,17 +215,19 @@ class PreferenceController extends Zend_Controller_Action
|
||||||
Application_Model_Preference::SetLiveSteamMasterPassword($values["master_password"]);
|
Application_Model_Preference::SetLiveSteamMasterPassword($values["master_password"]);
|
||||||
Application_Model_Preference::SetDefaultTransitionFade($values["transition_fade"]);
|
Application_Model_Preference::SetDefaultTransitionFade($values["transition_fade"]);
|
||||||
|
|
||||||
$master_connection_url = "http://".$_SERVER['SERVER_NAME'].":".$values["master_harbor_input_port"]."/".$values["master_harbor_input_mount_point"];
|
if (!$isSaas) {
|
||||||
$live_connection_url = "http://".$_SERVER['SERVER_NAME'].":".$values["dj_harbor_input_port"]."/".$values["dj_harbor_input_mount_point"];
|
$master_connection_url = "http://".$_SERVER['SERVER_NAME'].":".$values["master_harbor_input_port"]."/".$values["master_harbor_input_mount_point"];
|
||||||
|
$live_connection_url = "http://".$_SERVER['SERVER_NAME'].":".$values["dj_harbor_input_port"]."/".$values["dj_harbor_input_mount_point"];
|
||||||
|
|
||||||
Application_Model_Preference::SetMasterDJSourceConnectionURL($master_connection_url);
|
Application_Model_Preference::SetMasterDJSourceConnectionURL($master_connection_url);
|
||||||
Application_Model_Preference::SetLiveDJSourceConnectionURL($live_connection_url);
|
Application_Model_Preference::SetLiveDJSourceConnectionURL($live_connection_url);
|
||||||
|
|
||||||
// extra info that goes into cc_stream_setting
|
// extra info that goes into cc_stream_setting
|
||||||
Application_Model_StreamSetting::SetMasterLiveSteamPort($values["master_harbor_input_port"]);
|
Application_Model_StreamSetting::SetMasterLiveSteamPort($values["master_harbor_input_port"]);
|
||||||
Application_Model_StreamSetting::SetMasterLiveSteamMountPoint($values["master_harbor_input_mount_point"]);
|
Application_Model_StreamSetting::SetMasterLiveSteamMountPoint($values["master_harbor_input_mount_point"]);
|
||||||
Application_Model_StreamSetting::SetDJLiveSteamPort($values["dj_harbor_input_port"]);
|
Application_Model_StreamSetting::SetDJLiveSteamPort($values["dj_harbor_input_port"]);
|
||||||
Application_Model_StreamSetting::SetDJLiveSteamMountPoint($values["dj_harbor_input_mount_point"]);
|
Application_Model_StreamSetting::SetDJLiveSteamMountPoint($values["dj_harbor_input_mount_point"]);
|
||||||
|
}
|
||||||
|
|
||||||
// store stream update timestamp
|
// store stream update timestamp
|
||||||
Application_Model_Preference::SetStreamUpdateTimestamp();
|
Application_Model_Preference::SetStreamUpdateTimestamp();
|
||||||
|
|
|
@ -5,6 +5,7 @@ class Application_Form_LiveStreamingPreferences extends Zend_Form_SubForm
|
||||||
|
|
||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
|
$isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true;
|
||||||
$defaultFade = Application_Model_Preference::GetDefaultTransitionFade();
|
$defaultFade = Application_Model_Preference::GetDefaultTransitionFade();
|
||||||
if($defaultFade == ""){
|
if($defaultFade == ""){
|
||||||
$defaultFade = '00.000000';
|
$defaultFade = '00.000000';
|
||||||
|
@ -42,42 +43,44 @@ class Application_Form_LiveStreamingPreferences extends Zend_Form_SubForm
|
||||||
$this->addElement($master_password);
|
$this->addElement($master_password);
|
||||||
|
|
||||||
//liquidsoap harbor.input port
|
//liquidsoap harbor.input port
|
||||||
$m_port = Application_Model_StreamSetting::GetMasterLiveSteamPort();
|
if (!$isSaas) {
|
||||||
$master_dj_port = new Zend_Form_Element_Text('master_harbor_input_port');
|
$m_port = Application_Model_StreamSetting::GetMasterLiveSteamPort();
|
||||||
$master_dj_port->setLabel("Master Source Port")
|
$master_dj_port = new Zend_Form_Element_Text('master_harbor_input_port');
|
||||||
->setValue($m_port)
|
$master_dj_port->setLabel("Master Source Port")
|
||||||
->setValidators(array(new Zend_Validate_Between(array('min'=>1024, 'max'=>49151))))
|
->setValue($m_port)
|
||||||
->addValidator('regex', false, array('pattern'=>'/^[0-9]+$/', 'messages'=>array('regexNotMatch'=>'Only numbers are allowed.')))
|
->setValidators(array(new Zend_Validate_Between(array('min'=>1024, 'max'=>49151))))
|
||||||
->setDecorators(array('ViewHelper'));
|
->addValidator('regex', false, array('pattern'=>'/^[0-9]+$/', 'messages'=>array('regexNotMatch'=>'Only numbers are allowed.')))
|
||||||
$this->addElement($master_dj_port);
|
->setDecorators(array('ViewHelper'));
|
||||||
|
$this->addElement($master_dj_port);
|
||||||
|
|
||||||
$m_mount = Application_Model_StreamSetting::GetMasterLiveSteamMountPoint();
|
$m_mount = Application_Model_StreamSetting::GetMasterLiveSteamMountPoint();
|
||||||
$master_dj_mount = new Zend_Form_Element_Text('master_harbor_input_mount_point');
|
$master_dj_mount = new Zend_Form_Element_Text('master_harbor_input_mount_point');
|
||||||
$master_dj_mount->setLabel("Master Source Mount Point")
|
$master_dj_mount->setLabel("Master Source Mount Point")
|
||||||
->setValue($m_mount)
|
->setValue($m_mount)
|
||||||
->setValidators(array(
|
->setValidators(array(
|
||||||
array('regex', false, array('/^[^ &<>]+$/', 'messages' => 'Invalid character entered'))))
|
array('regex', false, array('/^[^ &<>]+$/', 'messages' => 'Invalid character entered'))))
|
||||||
->setDecorators(array('ViewHelper'));
|
->setDecorators(array('ViewHelper'));
|
||||||
$this->addElement($master_dj_mount);
|
$this->addElement($master_dj_mount);
|
||||||
|
|
||||||
//liquidsoap harbor.input port
|
//liquidsoap harbor.input port
|
||||||
$l_port = Application_Model_StreamSetting::GetDJLiveSteamPort();
|
$l_port = Application_Model_StreamSetting::GetDJLiveSteamPort();
|
||||||
$live_dj_port = new Zend_Form_Element_Text('dj_harbor_input_port');
|
$live_dj_port = new Zend_Form_Element_Text('dj_harbor_input_port');
|
||||||
$live_dj_port->setLabel("Show Source Port")
|
$live_dj_port->setLabel("Show Source Port")
|
||||||
->setValue($l_port)
|
->setValue($l_port)
|
||||||
->setValidators(array(new Zend_Validate_Between(array('min'=>1024, 'max'=>49151))))
|
->setValidators(array(new Zend_Validate_Between(array('min'=>1024, 'max'=>49151))))
|
||||||
->addValidator('regex', false, array('pattern'=>'/^[0-9]+$/', 'messages'=>array('regexNotMatch'=>'Only numbers are allowed.')))
|
->addValidator('regex', false, array('pattern'=>'/^[0-9]+$/', 'messages'=>array('regexNotMatch'=>'Only numbers are allowed.')))
|
||||||
->setDecorators(array('ViewHelper'));
|
->setDecorators(array('ViewHelper'));
|
||||||
$this->addElement($live_dj_port);
|
$this->addElement($live_dj_port);
|
||||||
|
|
||||||
$l_mount = Application_Model_StreamSetting::GetDJLiveSteamMountPoint();
|
$l_mount = Application_Model_StreamSetting::GetDJLiveSteamMountPoint();
|
||||||
$live_dj_mount = new Zend_Form_Element_Text('dj_harbor_input_mount_point');
|
$live_dj_mount = new Zend_Form_Element_Text('dj_harbor_input_mount_point');
|
||||||
$live_dj_mount->setLabel("Show Source Mount Point")
|
$live_dj_mount->setLabel("Show Source Mount Point")
|
||||||
->setValue($l_mount)
|
->setValue($l_mount)
|
||||||
->setValidators(array(
|
->setValidators(array(
|
||||||
array('regex', false, array('/^[^ &<>]+$/', 'messages' => 'Invalid character entered'))))
|
array('regex', false, array('/^[^ &<>]+$/', 'messages' => 'Invalid character entered'))))
|
||||||
->setDecorators(array('ViewHelper'));
|
->setDecorators(array('ViewHelper'));
|
||||||
$this->addElement($live_dj_mount);
|
$this->addElement($live_dj_mount);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateVariables(){
|
public function updateVariables(){
|
||||||
|
@ -106,45 +109,47 @@ class Application_Form_LiveStreamingPreferences extends Zend_Form_SubForm
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isValid($data){
|
public function isValid($data){
|
||||||
|
$isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true;
|
||||||
$isValid = parent::isValid($data);
|
$isValid = parent::isValid($data);
|
||||||
|
if (!$isSaas) {
|
||||||
|
$master_harbor_input_port = $data['master_harbor_input_port'];
|
||||||
|
$dj_harbor_input_port = $data['dj_harbor_input_port'];
|
||||||
|
|
||||||
$master_harbor_input_port = $data['master_harbor_input_port'];
|
if($master_harbor_input_port == $dj_harbor_input_port && $master_harbor_input_port != ""){
|
||||||
$dj_harbor_input_port = $data['dj_harbor_input_port'];
|
$element = $this->getElement("dj_harbor_input_port");
|
||||||
|
$element->addError("You cannot use same port as Master DJ port.");
|
||||||
if($master_harbor_input_port == $dj_harbor_input_port && $master_harbor_input_port != ""){
|
|
||||||
$element = $this->getElement("dj_harbor_input_port");
|
|
||||||
$element->addError("You cannot use same port as Master DJ port.");
|
|
||||||
}
|
|
||||||
if($master_harbor_input_port != ""){
|
|
||||||
if(is_numeric($master_harbor_input_port)){
|
|
||||||
if($master_harbor_input_port != Application_Model_StreamSetting::GetMasterLiveSteamPort()){
|
|
||||||
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
|
|
||||||
$res = socket_bind($sock, 0, $master_harbor_input_port);
|
|
||||||
if(!$res){
|
|
||||||
$element = $this->getElement("master_harbor_input_port");
|
|
||||||
$element->addError("Port '$master_harbor_input_port' is not available.");
|
|
||||||
$isValid = false;
|
|
||||||
}
|
|
||||||
socket_close($sock);
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
$isValid = false;
|
|
||||||
}
|
}
|
||||||
}
|
if($master_harbor_input_port != ""){
|
||||||
if($dj_harbor_input_port != ""){
|
if(is_numeric($master_harbor_input_port)){
|
||||||
if(is_numeric($dj_harbor_input_port)){
|
if($master_harbor_input_port != Application_Model_StreamSetting::GetMasterLiveSteamPort()){
|
||||||
if($dj_harbor_input_port != Application_Model_StreamSetting::GetDJLiveSteamPort()){
|
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
|
||||||
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
|
$res = socket_bind($sock, 0, $master_harbor_input_port);
|
||||||
$res = socket_bind($sock, 0, $dj_harbor_input_port);
|
if(!$res){
|
||||||
if(!$res){
|
$element = $this->getElement("master_harbor_input_port");
|
||||||
$element = $this->getElement("dj_harbor_input_port");
|
$element->addError("Port '$master_harbor_input_port' is not available.");
|
||||||
$element->addError("Port '$dj_harbor_input_port' is not available.");
|
$isValid = false;
|
||||||
$isValid = false;
|
}
|
||||||
|
socket_close($sock);
|
||||||
}
|
}
|
||||||
socket_close($sock);
|
}else{
|
||||||
|
$isValid = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if($dj_harbor_input_port != ""){
|
||||||
|
if(is_numeric($dj_harbor_input_port)){
|
||||||
|
if($dj_harbor_input_port != Application_Model_StreamSetting::GetDJLiveSteamPort()){
|
||||||
|
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
|
||||||
|
$res = socket_bind($sock, 0, $dj_harbor_input_port);
|
||||||
|
if(!$res){
|
||||||
|
$element = $this->getElement("dj_harbor_input_port");
|
||||||
|
$element->addError("Port '$dj_harbor_input_port' is not available.");
|
||||||
|
$isValid = false;
|
||||||
|
}
|
||||||
|
socket_close($sock);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$isValid = false;
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
$isValid = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $isValid;
|
return $isValid;
|
||||||
|
|
Loading…
Reference in New Issue