From faba5aec57e897994d13f4536b5c1ad073b38f5c Mon Sep 17 00:00:00 2001 From: james Date: Thu, 13 Oct 2011 14:20:08 -0400 Subject: [PATCH] CC-2745: Show status of liquidsoap/icecast connection on Stream Settings page - commit w/o design --- .../controllers/PreferenceController.php | 15 +++++++++++ .../forms/StreamSettingSubForm.php | 6 +++-- .../application/models/StreamSetting.php | 18 ++++++++++++- .../scripts/form/stream-setting-form.phtml | 6 +++++ .../js/airtime/preferences/streamsetting.js | 25 ++++++++++++++++++- 5 files changed, 66 insertions(+), 4 deletions(-) diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php index d1d134218..cc9080e53 100644 --- a/airtime_mvc/application/controllers/PreferenceController.php +++ b/airtime_mvc/application/controllers/PreferenceController.php @@ -13,6 +13,7 @@ class PreferenceController extends Zend_Controller_Action ->addActionContext('remove-watch-directory', 'json') ->addActionContext('is-import-in-progress', 'json') ->addActionContext('change-stream-setting', 'json') + ->addActionContext('get-liquidsoap-status', 'json') ->initContext(); } @@ -284,6 +285,20 @@ class PreferenceController extends Zend_Controller_Action } die(json_encode($res)); } + + public function getLiquidsoapStatusAction(){ + $out = array(); + $num_of_stream = intval(Application_Model_Preference::GetNumOfStreams()); + for($i=1; $i<=$num_of_stream; $i++){ + $status = Application_Model_StreamSetting::getLiquidsoapError($i); + $status = $status == ''?"OK":$status; + if(!Application_Model_StreamSetting::getStreamEnabled($i)){ + $status = "N/A"; + } + $out[] = array("id"=>$i, "status"=>$status); + } + die(json_encode($out)); + } } diff --git a/airtime_mvc/application/forms/StreamSettingSubForm.php b/airtime_mvc/application/forms/StreamSettingSubForm.php index c8398d806..70e28a7ba 100644 --- a/airtime_mvc/application/forms/StreamSettingSubForm.php +++ b/airtime_mvc/application/forms/StreamSettingSubForm.php @@ -154,9 +154,11 @@ class Application_Form_StreamSettingSubForm extends Zend_Form_SubForm{ $user->setAttrib("disabled", "disabled"); } $this->addElement($user); - + + $liquidsopa_error_msg = "Getting infomation from the server.."; + $this->setDecorators(array( - array('ViewScript', array('viewScript' => 'form/stream-setting-form.phtml', "stream_number"=>$stream_number)) + array('ViewScript', array('viewScript' => 'form/stream-setting-form.phtml', "stream_number"=>$stream_number, "liquidsoap_error_msg"=>$liquidsopa_error_msg)) )); } diff --git a/airtime_mvc/application/models/StreamSetting.php b/airtime_mvc/application/models/StreamSetting.php index 7d5c20cdd..aeedeb0c7 100644 --- a/airtime_mvc/application/models/StreamSetting.php +++ b/airtime_mvc/application/models/StreamSetting.php @@ -99,9 +99,25 @@ class Application_Model_StreamSetting { $keyname = "s".$stream_id."_liquidsoap_error"; $sql = "SELECT value FROM cc_stream_setting" - ." WHERE keyname = '$key'"; + ." WHERE keyname = '$keyname'"; $result = $CC_DBC->GetOne($sql); return $result; } + + public static function getStreamEnabled($stream_id){ + global $CC_DBC; + + $keyname = "s".$stream_id."_ouput"; + $sql = "SELECT value FROM cc_stream_setting" + ." WHERE keyname = '$keyname'"; + $result = $CC_DBC->GetOne($sql); + if($result == 'disabled'){ + $result = false; + }else{ + $result = true; + } + + return $result; + } } diff --git a/airtime_mvc/application/views/scripts/form/stream-setting-form.phtml b/airtime_mvc/application/views/scripts/form/stream-setting-form.phtml index 66c12949b..07f8bf9bc 100644 --- a/airtime_mvc/application/views/scripts/form/stream-setting-form.phtml +++ b/airtime_mvc/application/views/scripts/form/stream-setting-form.phtml @@ -5,6 +5,12 @@
stream_number != '1'?'style="display: none;':''?> id="-config">
+
+ +
+
+ liquidsoap_error_msg?> +
diff --git a/airtime_mvc/public/js/airtime/preferences/streamsetting.js b/airtime_mvc/public/js/airtime/preferences/streamsetting.js index fab7d5b13..a97df38ca 100644 --- a/airtime_mvc/public/js/airtime/preferences/streamsetting.js +++ b/airtime_mvc/public/js/airtime/preferences/streamsetting.js @@ -69,6 +69,29 @@ function showForIcecast(ele){ div.find("select[id$=data-type]").find("option[value='ogg']").attr("disabled",""); } +function checkLiquidsoapStatus(){ + var url = '/Preference/get-liquidsoap-status/format/json'; + var id = $(this).attr("id"); + $.post(url, function(json){ + var json_obj = jQuery.parseJSON(json); + for(var i=0;i