diff --git a/VERSION b/VERSION index aa0e5423d..ffaf49cf9 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ PRODUCT_ID=Airtime -PRODUCT_RELEASE=2.0.0-beta1 +PRODUCT_RELEASE=2.0.0 diff --git a/airtime_mvc/application/controllers/ScheduleController.php b/airtime_mvc/application/controllers/ScheduleController.php index 84ab1641a..cb034d758 100644 --- a/airtime_mvc/application/controllers/ScheduleController.php +++ b/airtime_mvc/application/controllers/ScheduleController.php @@ -141,15 +141,19 @@ class ScheduleController extends Zend_Controller_Action $userInfo = Zend_Auth::getInstance()->getStorage()->read(); $user = new Application_Model_User($userInfo->id); - if($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { - try{ + if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { + + try { $showInstance = new Application_Model_ShowInstance($showInstanceId); - }catch(Exception $e){ + } + catch(Exception $e){ $this->view->show_error = true; return false; } $showInstance->delete(); + + $this->view->show_id = $showInstance->getShowId(); } } @@ -801,15 +805,18 @@ class ScheduleController extends Zend_Controller_Action if($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { $showInstanceId = $this->_getParam('id'); - try{ + try { $showInstance = new Application_Model_ShowInstance($showInstanceId); - }catch(Exception $e){ + } + catch(Exception $e){ $this->view->show_error = true; return false; } $show = new Application_Model_Show($showInstance->getShowId()); $show->cancelShow($showInstance->getShowInstanceStart()); + + $this->view->show_id = $showInstance->getShowId(); } } diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index cc95e7fe3..71da9b665 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -368,6 +368,7 @@ class Application_Model_Preference $outputArray['STATION_COUNTRY'] = self::GetStationCountry(); $outputArray['STATION_CITY'] = self::GetStationCity(); $outputArray['STATION_DESCRIPTION'] = self::GetStationDescription(); + // get web server info if(isset($systemInfoArray["AIRTIME_VERSION_URL"])){ @@ -387,6 +388,8 @@ class Application_Model_Preference $outputArray['UNIQUE_ID'] = self::GetUniqueId(); $outputArray['SAAS'] = self::GetPlanLevel(); $outputArray['INSTALL_METHOD'] = self::GetInstallMethod(); + $outputArray['NUM_OF_STREAMS'] = self::GetNumOfStreams(); + $outputArray['STREAM_INFO'] = Application_Model_StreamSetting::getStreamInfoForDataCollection(); $outputArray = array_merge($systemInfoArray, $outputArray); @@ -396,7 +399,16 @@ class Application_Model_Preference continue; } if($out != ''){ - $outputString .= $key.' : '.$out."\n"; + if($key == "STREAM_INFO"){ + $outputString .= $key." :\n"; + foreach($out as $s_info){ + foreach($s_info as $k => $v){ + $outputString .= "\t".strtoupper($k)." : ".$v."\n"; + } + } + }else{ + $outputString .= $key.' : '.$out."\n"; + } } } if($returnArray){ diff --git a/airtime_mvc/application/models/StreamSetting.php b/airtime_mvc/application/models/StreamSetting.php index f2731141e..1e4d77956 100644 --- a/airtime_mvc/application/models/StreamSetting.php +++ b/airtime_mvc/application/models/StreamSetting.php @@ -164,4 +164,31 @@ class Application_Model_StreamSetting { } return $result; } + + /* + * Only returns info that is needed for data collection + * returns array('s1'=>array(keyname=>value)) + */ + public static function getStreamInfoForDataCollection(){ + global $CC_DBC; + + $out = array(); + $enabled_stream = self::getEnabledStreamIds(); + + foreach($enabled_stream as $stream){ + $keys = "'".$stream."_output', "."'".$stream."_type', "."'".$stream."_bitrate', "."'".$stream."_host'"; + + $sql = "SELECT keyname, value FROM cc_stream_setting" + ." WHERE keyname IN ($keys)"; + + $rows = $CC_DBC->getAll($sql); + $info = array(); + foreach($rows as $r){ + $temp = explode("_", $r['keyname']); + $info[$temp[1]] = $r['value']; + $out[$stream] = $info; + } + } + return $out; + } } diff --git a/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js b/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js index 7910f498f..a7640eb5e 100644 --- a/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js +++ b/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js @@ -8,6 +8,14 @@ function scheduleRefetchEvents(json) { if(json.show_error == true){ alert("The show instance doesn't exist anymore!") } + if(json.show_id) { + var dialog_id = parseInt($("#add_show_id").val(), 10); + + //if you've deleted the show you are currently editing, close the add show dialog. + if (dialog_id === json.show_id) { + $("#add-show-close").click(); + } + } $("#schedule_calendar").fullCalendar( 'refetchEvents' ); } diff --git a/install_minimal/include/airtime-constants.php b/install_minimal/include/airtime-constants.php index bc6f9ccbf..06d7e180c 100644 --- a/install_minimal/include/airtime-constants.php +++ b/install_minimal/include/airtime-constants.php @@ -1,3 +1,3 @@ <?php -define('AIRTIME_VERSION', '2.0.0-beta1'); +define('AIRTIME_VERSION', '2.0.0'); diff --git a/install_minimal/upgrades/airtime-2.0.0/media-monitor.cfg.200 b/install_minimal/upgrades/airtime-2.0.0/media-monitor.cfg.200 index 066c42b31..44819833b 100644 --- a/install_minimal/upgrades/airtime-2.0.0/media-monitor.cfg.200 +++ b/install_minimal/upgrades/airtime-2.0.0/media-monitor.cfg.200 @@ -13,6 +13,7 @@ log_dir = '/var/log/airtime/media-monitor' rabbitmq_host = 'localhost' rabbitmq_user = 'guest' rabbitmq_password = 'guest' +rabbitmq_vhost = '/' ############################################ # Media-Monitor preferences # diff --git a/install_minimal/upgrades/airtime-2.0.0/pypo.cfg.200 b/install_minimal/upgrades/airtime-2.0.0/pypo.cfg.200 index 352d234d0..3280ba540 100644 --- a/install_minimal/upgrades/airtime-2.0.0/pypo.cfg.200 +++ b/install_minimal/upgrades/airtime-2.0.0/pypo.cfg.200 @@ -39,6 +39,7 @@ ls_port = '1234' rabbitmq_host = 'localhost' rabbitmq_user = 'guest' rabbitmq_password = 'guest' +rabbitmq_vhost = '/' ############################################ # pypo preferences # diff --git a/install_minimal/upgrades/airtime-2.0.0/recorder.cfg.200 b/install_minimal/upgrades/airtime-2.0.0/recorder.cfg.200 index 762c01da3..d6005bf0a 100644 --- a/install_minimal/upgrades/airtime-2.0.0/recorder.cfg.200 +++ b/install_minimal/upgrades/airtime-2.0.0/recorder.cfg.200 @@ -15,6 +15,7 @@ log_dir = '/var/log/airtime/show-recorder' rabbitmq_host = 'localhost' rabbitmq_user = 'guest' rabbitmq_password = 'guest' +rabbitmq_vhost = '/' ############################################ # Recorded Audio settings # diff --git a/python_apps/api_clients/api_client.py b/python_apps/api_clients/api_client.py index f899a5b83..22b13fdcb 100755 --- a/python_apps/api_clients/api_client.py +++ b/python_apps/api_clients/api_client.py @@ -21,7 +21,7 @@ from urlparse import urlparse import base64 from configobj import ConfigObj -AIRTIME_VERSION = "2.0.0-beta1" +AIRTIME_VERSION = "2.0.0" def api_client_factory(config): logger = logging.getLogger() diff --git a/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py b/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py index 1f75f0bba..b93ff3c24 100644 --- a/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py +++ b/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py @@ -39,7 +39,7 @@ class AirtimeNotifier(Notifier): try: schedule_exchange = Exchange("airtime-media-monitor", "direct", durable=True, auto_delete=True) schedule_queue = Queue("media-monitor", exchange=schedule_exchange, key="filesystem") - self.connection = BrokerConnection(self.config.cfg["rabbitmq_host"], self.config.cfg["rabbitmq_user"], self.config.cfg["rabbitmq_password"], "/") + self.connection = BrokerConnection(self.config.cfg["rabbitmq_host"], self.config.cfg["rabbitmq_user"], self.config.cfg["rabbitmq_password"], self.config.cfg["rabbitmq_vhost"]) channel = self.connection.channel() consumer = Consumer(channel, schedule_queue) consumer.register_callback(self.handle_message) diff --git a/python_apps/media-monitor/media-monitor.cfg b/python_apps/media-monitor/media-monitor.cfg index 066c42b31..44819833b 100644 --- a/python_apps/media-monitor/media-monitor.cfg +++ b/python_apps/media-monitor/media-monitor.cfg @@ -13,6 +13,7 @@ log_dir = '/var/log/airtime/media-monitor' rabbitmq_host = 'localhost' rabbitmq_user = 'guest' rabbitmq_password = 'guest' +rabbitmq_vhost = '/' ############################################ # Media-Monitor preferences # diff --git a/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg b/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg index 13b23a87f..d76e3af3d 100644 --- a/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg +++ b/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg @@ -38,6 +38,9 @@ s3_host = "127.0.0.1" s1_port = 8000 s2_port = 8000 s3_port = 8000 +s1_user = "" +s2_user = "" +s3_user = "" s1_pass = "hackme" s2_pass = "hackme" s3_pass = "hackme" diff --git a/python_apps/pypo/pypo.cfg b/python_apps/pypo/pypo.cfg index 352d234d0..3280ba540 100644 --- a/python_apps/pypo/pypo.cfg +++ b/python_apps/pypo/pypo.cfg @@ -39,6 +39,7 @@ ls_port = '1234' rabbitmq_host = 'localhost' rabbitmq_user = 'guest' rabbitmq_password = 'guest' +rabbitmq_vhost = '/' ############################################ # pypo preferences # diff --git a/python_apps/pypo/pypofetch.py b/python_apps/pypo/pypofetch.py index c0dffd9eb..a34ac756e 100644 --- a/python_apps/pypo/pypofetch.py +++ b/python_apps/pypo/pypofetch.py @@ -57,7 +57,7 @@ class PypoFetch(Thread): try: schedule_exchange = Exchange("airtime-pypo", "direct", durable=True, auto_delete=True) schedule_queue = Queue("pypo-fetch", exchange=schedule_exchange, key="foo") - self.connection = BrokerConnection(config["rabbitmq_host"], config["rabbitmq_user"], config["rabbitmq_password"], "/") + self.connection = BrokerConnection(config["rabbitmq_host"], config["rabbitmq_user"], config["rabbitmq_password"], config["rabbitmq_vhost"]) channel = self.connection.channel() consumer = Consumer(channel, schedule_queue) consumer.register_callback(self.handle_message) diff --git a/python_apps/show-recorder/recorder.cfg b/python_apps/show-recorder/recorder.cfg index 762c01da3..d6005bf0a 100644 --- a/python_apps/show-recorder/recorder.cfg +++ b/python_apps/show-recorder/recorder.cfg @@ -15,6 +15,7 @@ log_dir = '/var/log/airtime/show-recorder' rabbitmq_host = 'localhost' rabbitmq_user = 'guest' rabbitmq_password = 'guest' +rabbitmq_vhost = '/' ############################################ # Recorded Audio settings # diff --git a/python_apps/show-recorder/recorder.py b/python_apps/show-recorder/recorder.py index e01e496f9..7cf7e0ab9 100644 --- a/python_apps/show-recorder/recorder.py +++ b/python_apps/show-recorder/recorder.py @@ -183,7 +183,7 @@ class CommandListener(): try: schedule_exchange = Exchange("airtime-show-recorder", "direct", durable=True, auto_delete=True) schedule_queue = Queue("recorder-fetch", exchange=schedule_exchange, key="foo") - self.connection = BrokerConnection(config["rabbitmq_host"], config["rabbitmq_user"], config["rabbitmq_password"], "/") + self.connection = BrokerConnection(config["rabbitmq_host"], config["rabbitmq_user"], config["rabbitmq_password"], config["rabbitmq_vhost"]) channel = self.connection.channel() consumer = Consumer(channel, schedule_queue) consumer.register_callback(self.handle_message) diff --git a/utils/phone_home_stat.php b/utils/phone_home_stat.php index 6b3d8ecde..a230f31ad 100644 --- a/utils/phone_home_stat.php +++ b/utils/phone_home_stat.php @@ -36,6 +36,7 @@ require_once($CC_CONFIG['phpDir'].'/application/models/Schedule.php'); require_once($CC_CONFIG['phpDir'].'/application/models/Show.php'); require_once($CC_CONFIG['phpDir'].'/application/models/ShowInstance.php'); require_once($CC_CONFIG['phpDir'].'/application/models/Preference.php'); +require_once($CC_CONFIG['phpDir'].'/application/models/StreamSetting.php'); //Pear classes. set_include_path($CC_CONFIG['phpDir'].'/library/pear' . PATH_SEPARATOR . get_include_path());