diff --git a/airtime_mvc/application/controllers/ApiController.php b/airtime_mvc/application/controllers/ApiController.php index 1e9ea7313..296cfcdaf 100644 --- a/airtime_mvc/application/controllers/ApiController.php +++ b/airtime_mvc/application/controllers/ApiController.php @@ -814,6 +814,12 @@ class ApiController extends Zend_Controller_Action Application_Model_Preference::SetSourceSwitchStatus($sourcename, "off"); Application_Model_LiveLog::SetEndTime($sourcename == 'scheduled_play'?'S':'L', new DateTime("now", new DateTimeZone('UTC'))); + }elseif($status == "true" && Application_Model_Preference::GetAutoSwitch()){ + $data = array("sourcename"=>$sourcename, "status"=>"on"); + Application_Model_RabbitMq::SendMessageToPypo("switch_source", $data); + Application_Model_Preference::SetSourceSwitchStatus($sourcename, "on"); + Application_Model_LiveLog::SetNewLogTime($sourcename == 'scheduled_play'?'S':'L', + new DateTime("now", new DateTimeZone('UTC'))); } Application_Model_Preference::SetSourceStatus($sourcename, $status); } diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php index 0e0972cc7..512c5c30d 100644 --- a/airtime_mvc/application/controllers/PreferenceController.php +++ b/airtime_mvc/application/controllers/PreferenceController.php @@ -215,6 +215,7 @@ class PreferenceController extends Zend_Controller_Action Application_Model_Preference::SetLiveSteamMasterPassword($values["master_password"]); Application_Model_Preference::SetDefaultTransitionFade($values["transition_fade"]); Application_Model_Preference::SetAutoTransition($values["auto_transition"]); + Application_Model_Preference::SetAutoSwitch($values["auto_switch"]); if (!$isSaas) { if (!Application_Model_Preference::GetMasterDjConnectionUrlOverride()) { diff --git a/airtime_mvc/application/forms/LiveStreamingPreferences.php b/airtime_mvc/application/forms/LiveStreamingPreferences.php index cbedf9547..8a4e1a674 100644 --- a/airtime_mvc/application/forms/LiveStreamingPreferences.php +++ b/airtime_mvc/application/forms/LiveStreamingPreferences.php @@ -15,13 +15,20 @@ class Application_Form_LiveStreamingPreferences extends Zend_Form_SubForm $defaultFade = '00.000000'; } - // automatic switch off + // automatic trasition on source disconnection $auto_transition = new Zend_Form_Element_Checkbox("auto_transition"); - $auto_transition->setLabel("Auto Source Transition") + $auto_transition->setLabel("Auto Switch Off") ->setValue(Application_Model_Preference::GetAutoTransition()) ->setDecorators(array('ViewHelper')); $this->addElement($auto_transition); + // automatic switch on upon source connection + $auto_switch = new Zend_Form_Element_Checkbox("auto_switch"); + $auto_switch->setLabel("Auto Switch On") + ->setValue(Application_Model_Preference::GetAutoSwitch()) + ->setDecorators(array('ViewHelper')); + $this->addElement($auto_switch); + // Default transition fade $transition_fade = new Zend_Form_Element_Text("transition_fade"); $transition_fade->setLabel("Switch Transition Fade (s)") diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index 6dd902807..81d449ee6 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -877,6 +877,14 @@ class Application_Model_Preference return self::GetValue("auto_transition"); } + public static function SetAutoSwitch($value){ + self::SetValue("auto_switch", $value, false); + } + + public static function GetAutoSwitch(){ + return self::GetValue("auto_switch"); + } + public static function SetEnableSystemEmail($upload) { self::SetValue("enable_system_email", $upload); } diff --git a/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml b/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml index dcd56fee5..00221bf4e 100644 --- a/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml +++ b/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml @@ -17,6 +17,22 @@ +
+ +
+
+ element->getElement('auto_switch') ?> + element->getElement('auto_switch')->hasErrors()) : ?> + + +
diff --git a/airtime_mvc/public/js/airtime/preferences/streamsetting.js b/airtime_mvc/public/js/airtime/preferences/streamsetting.js index 3ecf3eff6..8b65350cd 100644 --- a/airtime_mvc/public/js/airtime/preferences/streamsetting.js +++ b/airtime_mvc/public/js/airtime/preferences/streamsetting.js @@ -292,7 +292,28 @@ $(document).ready(function() { $("#auto_transition_help").qtip({ content: { - text: "Check this box to allow automatic transitions between sources. If enabled, Airtime will fallback to the next available source upon current (Master or Show) source failure. The fallback hierarchy is Master Source > Show Source > Scheduled Play." + text: "Check this box to automatically switch off Master/Show source upon source disconnection." + }, + hide: { + delay: 500, + fixed: true + }, + style: { + border: { + width: 0, + radius: 4 + }, + classes: "ui-tooltip-dark ui-tooltip-rounded" + }, + position: { + my: "left bottom", + at: "right center" + }, + }) + + $("#auto_switch_help").qtip({ + content: { + text: "Check this box to automatically switch on Master/Show source upon source disconnection." }, hide: { delay: 500,