From 5fd75d9eb768e893459fc928e77de4486bf46cf4 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Mon, 1 Oct 2012 15:30:02 +0100 Subject: [PATCH 001/437] CC-4507: Tweak CSS to make more room for metadata in Master Panel --- airtime_mvc/public/css/masterpanel.css | 4 ++-- airtime_mvc/public/css/styles.css | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/airtime_mvc/public/css/masterpanel.css b/airtime_mvc/public/css/masterpanel.css index f11bb3f4c..58aa8326f 100644 --- a/airtime_mvc/public/css/masterpanel.css +++ b/airtime_mvc/public/css/masterpanel.css @@ -312,7 +312,7 @@ margin-right:0; text-align:right !important; background-position:0 0; - padding: 0 14px 0 10px; + padding: 0 10px 0 10px; } .time-info-block li, .time-info-block li.time { text-align: right; @@ -351,4 +351,4 @@ background:#D40000 } -*/ \ No newline at end of file +*/ diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index 1fd84ac09..c8f04f897 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -180,11 +180,11 @@ select { color:#ff5d1a; } .now-playing-block { - width:30%; - padding-left:20px; + width:35%; + padding-left:10px; } .show-block { - width:18%; + width:30%; } .text-row { height:30px; @@ -259,7 +259,6 @@ select { } .time-info-block { padding:0 14px 0 2px; - background:url(images/masterpanel_spacer.png) no-repeat right 0; min-width:105px; } .time-info-block ul { From a1d650b3dcd6141c119302199444324d0e13a6e0 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Wed, 3 Oct 2012 18:26:22 +0200 Subject: [PATCH 002/437] CC-4486: Library -> Advanced Search: Alignment is off sometimes small CSS fix --- airtime_mvc/public/css/bootstrap.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airtime_mvc/public/css/bootstrap.css b/airtime_mvc/public/css/bootstrap.css index 792fc9d72..bf5466865 100644 --- a/airtime_mvc/public/css/bootstrap.css +++ b/airtime_mvc/public/css/bootstrap.css @@ -2688,7 +2688,7 @@ fieldset .btn-toolbar { box-sizing: border-box; } .form-horizontal .controls input[type="text"]:only-child { - width:90%; + width:85%; } From c5942f109adb9cb50bcbc044c75bdfed34a3f89b Mon Sep 17 00:00:00 2001 From: Daniel James Date: Mon, 8 Oct 2012 12:47:18 +0100 Subject: [PATCH 003/437] Reformat debian/control dependencies into alphabetical order --- debian/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/control b/debian/control index 6e9ae3dee..853ebc6d2 100644 --- a/debian/control +++ b/debian/control @@ -10,6 +10,7 @@ Package: airtime Architecture: all Pre-Depends: postgresql, python-virtualenv (>= 1.4.9) Depends: apache2, + coreutils (>= 7.5) | timeout, curl, ecasound, gzip (>= 1.3.12), @@ -36,13 +37,12 @@ Depends: apache2, php5-gd, php-pear, php5-pgsql, - python, pwgen, + python, rabbitmq-server, sudo, sysv-rc, tar (>= 1.22), - coreutils (>= 7.5) | timeout, unzip, vorbis-tools, zendframework | libzend-framework-php, From d32495d100ad3fda91de3f39abef6b54b9dac362 Mon Sep 17 00:00:00 2001 From: denise Date: Fri, 19 Oct 2012 11:09:34 -0400 Subject: [PATCH 004/437] CC-2184: Hardcoded CSS path should be relative path instead --- airtime_mvc/application/Bootstrap.php | 48 ++++- airtime_mvc/application/common/OsPath.php | 7 + .../controllers/AudiopreviewController.php | 16 +- .../controllers/DashboardController.php | 5 +- .../controllers/LibraryController.php | 23 +- .../controllers/LoginController.php | 14 +- .../controllers/PlayouthistoryController.php | 6 +- .../controllers/PluploadController.php | 3 +- .../controllers/PreferenceController.php | 24 ++- .../controllers/ScheduleController.php | 5 +- .../controllers/ShowbuilderController.php | 19 +- .../controllers/SystemstatusController.php | 3 +- .../controllers/UserController.php | 2 +- airtime_mvc/application/forms/EditAudioMD.php | 3 +- airtime_mvc/application/forms/Preferences.php | 4 +- .../application/layouts/scripts/layout.phtml | 3 +- airtime_mvc/application/models/Preference.php | 3 +- airtime_mvc/application/models/StoredFile.php | 12 +- .../views/scripts/dashboard/help.phtml | 2 +- .../views/scripts/form/add-show-when.phtml | 2 +- .../views/scripts/library/library.phtml | 5 +- .../views/scripts/preference/index.phtml | 3 +- .../scripts/preference/stream-setting.phtml | 3 +- .../scripts/preference/support-setting.phtml | 3 +- airtime_mvc/build/airtime.conf | 1 + airtime_mvc/public/.htaccess | 3 +- airtime_mvc/public/css/styles.css | 12 +- .../airtime/audiopreview/preview_jplayer.js | 11 +- .../public/js/airtime/common/common.js | 10 +- .../public/js/airtime/dashboard/dashboard.js | 8 +- .../public/js/airtime/library/library.js | 22 +- .../public/js/airtime/library/plupload.js | 9 +- airtime_mvc/public/js/airtime/library/spl.js | 198 +++++++++--------- .../public/js/airtime/nowplaying/register.js | 6 +- .../js/airtime/playouthistory/historytable.js | 6 +- .../js/airtime/preferences/musicdirs.js | 16 +- .../js/airtime/preferences/streamsetting.js | 10 +- .../public/js/airtime/schedule/add-show.js | 10 +- .../schedule/full-calendar-functions.js | 22 +- .../public/js/airtime/schedule/schedule.js | 13 +- .../public/js/airtime/showbuilder/builder.js | 16 +- .../js/airtime/showbuilder/main_builder.js | 6 +- .../public/js/airtime/status/status.js | 2 +- airtime_mvc/public/js/airtime/user/user.js | 6 +- python_apps/api_clients/api_client.cfg | 3 +- python_apps/api_clients/api_client.py | 89 +++----- utils/airtime-check-system.php | 9 +- 47 files changed, 366 insertions(+), 340 deletions(-) diff --git a/airtime_mvc/application/Bootstrap.php b/airtime_mvc/application/Bootstrap.php index c4c53ffa5..db868cff6 100644 --- a/airtime_mvc/application/Bootstrap.php +++ b/airtime_mvc/application/Bootstrap.php @@ -42,14 +42,34 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap $view = $this->getResource('view'); $view->doctype('XHTML1_STRICT'); } + + protected function _initGlobals() + { + $view = $this->getResource('view'); + $baseUrl = Application_Common_OsPath::getBaseDir(); + + $view->headScript()->appendScript("var baseUrl = '$baseUrl'"); + + $user = Application_Model_User::GetCurrentUser(); + if (!is_null($user)){ + $userType = $user->getType(); + } else { + $userType = ""; + } + $view->headScript()->appendScript("var userType = '$userType';"); + + } protected function _initHeadLink() { global $CC_CONFIG; $view = $this->getResource('view'); - $baseUrl = Zend_Controller_Front::getInstance()->getBaseUrl(); + $baseUrl = Application_Common_OsPath::getBaseDir(); + + $CC_CONFIG['base_dir'] = $baseUrl; + $view->headLink()->appendStylesheet($baseUrl.'/css/redmond/jquery-ui-1.8.8.custom.css?'.$CC_CONFIG['airtime_version']); $view->headLink()->appendStylesheet($baseUrl.'/css/pro_dropdown_3.css?'.$CC_CONFIG['airtime_version']); $view->headLink()->appendStylesheet($baseUrl.'/css/qtip/jquery.qtip.min.css?'.$CC_CONFIG['airtime_version']); @@ -63,17 +83,18 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap global $CC_CONFIG; $view = $this->getResource('view'); - $baseUrl = Zend_Controller_Front::getInstance()->getBaseUrl(); - - $view->headScript()->appendFile($baseUrl.'/js/libs/jquery-1.7.2.min.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); - $view->headScript()->appendFile($baseUrl.'/js/libs/jquery-ui-1.8.18.custom.min.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); - $view->headScript()->appendFile($baseUrl.'/js/libs/jquery.stickyPanel.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); - $view->headScript()->appendFile($baseUrl.'/js/qtip/jquery.qtip.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); + + $baseUrl = Application_Common_OsPath::getBaseDir(); + + $view->headScript()->appendFile($baseUrl.'/js/libs/jquery-1.7.2.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); + $view->headScript()->appendFile($baseUrl.'/js/libs/jquery-ui-1.8.18.custom.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); + $view->headScript()->appendFile($baseUrl.'/js/libs/jquery.stickyPanel.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); + $view->headScript()->appendFile($baseUrl.'/js/qtip/jquery.qtip.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $view->headScript()->appendFile($baseUrl.'/js/jplayer/jquery.jplayer.min.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); $view->headScript()->appendFile($baseUrl.'/js/sprintf/sprintf-0.7-beta1.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $view->headScript()->appendFile($baseUrl.'/js/bootstrap/bootstrap.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); - $view->headScript()->appendScript("var baseUrl='$baseUrl/'"); - + $view->headScript()->appendScript("var baseUrl='$baseUrl'"); + //scripts for now playing bar $view->headScript()->appendFile($baseUrl.'/js/airtime/dashboard/helperfunctions.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $view->headScript()->appendFile($baseUrl.'/js/airtime/dashboard/dashboard.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); @@ -96,6 +117,15 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap if (isset($CC_CONFIG['demo']) && $CC_CONFIG['demo'] == 1) { $view->headScript()->appendFile($baseUrl.'/js/libs/google-analytics.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); } + + if (Application_Model_Preference::GetPlanLevel() != "disabled" + && !($_SERVER['REQUEST_URI'] == $baseUrl.'/Dashboard/stream-player' || + strncmp($_SERVER['REQUEST_URI'], $baseUrl.'/audiopreview/audio-preview', strlen($baseUrl.'/audiopreview/audio-preview'))==0)) { + $client_id = Application_Model_Preference::GetClientId(); + $view->headScript()->appendScript("var livechat_client_id = '$client_id';"); + $view->headScript()->appendFile($baseUrl . '/js/airtime/common/livechat.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); + } + } protected function _initViewHelpers() diff --git a/airtime_mvc/application/common/OsPath.php b/airtime_mvc/application/common/OsPath.php index d9d9b6eff..029d96f03 100644 --- a/airtime_mvc/application/common/OsPath.php +++ b/airtime_mvc/application/common/OsPath.php @@ -63,4 +63,11 @@ class Application_Common_OsPath{ return join(DIRECTORY_SEPARATOR, $paths); } + + public static function getBaseDir() { + $baseUrl = dirname($_SERVER['SCRIPT_NAME']); + if (strcmp($baseUrl, '/') ==0) $baseUrl = ""; + + return $baseUrl; + } } diff --git a/airtime_mvc/application/controllers/AudiopreviewController.php b/airtime_mvc/application/controllers/AudiopreviewController.php index bd7505595..d5103335c 100644 --- a/airtime_mvc/application/controllers/AudiopreviewController.php +++ b/airtime_mvc/application/controllers/AudiopreviewController.php @@ -26,8 +26,7 @@ class AudiopreviewController extends Zend_Controller_Action $audioFileTitle = $this->_getParam('audioFileTitle'); $type = $this->_getParam('type'); - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + $baseUrl = Application_Common_OsPath::getBaseDir(); $this->view->headScript()->appendFile( $baseUrl.'/js/airtime/audiopreview/preview_jplayer.js?'.$CC_CONFIG['airtime_version'], @@ -79,8 +78,7 @@ class AudiopreviewController extends Zend_Controller_Action $playlistIndex = $this->_getParam('playlistIndex'); $playlistID = $this->_getParam('playlistID'); - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + $baseUrl = Application_Common_OsPath::getBaseDir(); $this->view->headScript()->appendFile($baseUrl.'/js/airtime/audiopreview/preview_jplayer.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/jplayer/jplayer.playlist.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); @@ -106,8 +104,7 @@ class AudiopreviewController extends Zend_Controller_Action $blockIndex = $this->_getParam('blockIndex'); $blockId = $this->_getParam('blockId'); - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + $baseUrl = Application_Common_OsPath::getBaseDir(); $this->view->headScript()->appendFile($baseUrl.'/js/airtime/audiopreview/preview_jplayer.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/jplayer/jplayer.playlist.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); @@ -232,8 +229,8 @@ class AudiopreviewController extends Zend_Controller_Action $showID = $this->_getParam('showID'); $showIndex = $this->_getParam('showIndex'); - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + $baseUrl = dirname($_SERVER['SCRIPT_NAME']); + if (strcmp($baseUrl, '/') ==0) $baseUrl = ""; $this->view->headScript()->appendFile($baseUrl.'/js/airtime/audiopreview/preview_jplayer.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/jplayer/jplayer.playlist.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); @@ -258,6 +255,7 @@ class AudiopreviewController extends Zend_Controller_Action */ public function getShowAction() { + global $CC_CONFIG; // disable the view and the layout $this->view->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); @@ -297,7 +295,7 @@ class AudiopreviewController extends Zend_Controller_Action throw new Exception("Unknown file type: $mime"); } - $elementMap['uri'] = "/api/get-media/file/".$track['item_id']; + $elementMap['uri'] = $CC_CONFIG["base_dir"]."/api/get-media/file/".$track['item_id']; } else { $elementMap['uri'] = $track['filepath']; } diff --git a/airtime_mvc/application/controllers/DashboardController.php b/airtime_mvc/application/controllers/DashboardController.php index 9609a1ef8..1e693b08f 100644 --- a/airtime_mvc/application/controllers/DashboardController.php +++ b/airtime_mvc/application/controllers/DashboardController.php @@ -98,8 +98,7 @@ class DashboardController extends Zend_Controller_Action { global $CC_CONFIG; - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + $baseUrl = Application_Common_OsPath::getBaseDir(); $this->view->headLink()->appendStylesheet($baseUrl.'/js/jplayer/skin/jplayer.blue.monday.css?'.$CC_CONFIG['airtime_version']); $this->_helper->layout->setLayout('bare'); @@ -108,7 +107,7 @@ class DashboardController extends Zend_Controller_Action if ($logo) { $this->view->logo = "data:image/png;base64,$logo"; } else { - $this->view->logo = "$baseUrl/css/images/airtime_logo_jp.png"; + $this->view->logo = $baseUrl."/css/images/airtime_logo_jp.png"; } } diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php index a1d0d245e..07c995f2f 100644 --- a/airtime_mvc/application/controllers/LibraryController.php +++ b/airtime_mvc/application/controllers/LibraryController.php @@ -26,7 +26,7 @@ class LibraryController extends Zend_Controller_Action global $CC_CONFIG; $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + $baseUrl = Application_Common_OsPath::getBaseDir(); $this->view->headScript()->appendFile($baseUrl.'/js/blockui/jquery.blockUI.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/contextmenu/jquery.contextMenu.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); @@ -142,12 +142,14 @@ class LibraryController extends Zend_Controller_Action public function contextMenuAction() { + global $CC_CONFIG; $id = $this->_getParam('id'); $type = $this->_getParam('type'); //playlist||timeline $screen = $this->_getParam('screen'); - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + + $baseUrl = Application_Common_OsPath::getBaseDir(); + $menu = array(); $userInfo = Zend_Auth::getInstance()->getStorage()->read(); @@ -182,8 +184,8 @@ class LibraryController extends Zend_Controller_Action } } if ($isAdminOrPM) { - $menu["del"] = array("name"=> "Delete", "icon" => "delete", "url" => "/library/delete"); - $menu["edit"] = array("name"=> "Edit Metadata", "icon" => "edit", "url" => "/library/edit-file-md/id/{$id}"); + $menu["del"] = array("name"=> "Delete", "icon" => "delete", "url" => $CC_CONFIG['base_dir']."/library/delete"); + $menu["edit"] = array("name"=> "Edit Metadata", "icon" => "edit", "url" => $CC_CONFIG['base_dir']."/library/edit-file-md/id/{$id}"); } $url = $file->getRelativeFileUrl($baseUrl).'/download/true'; @@ -208,8 +210,9 @@ class LibraryController extends Zend_Controller_Action $menu["edit"] = array("name"=> "Edit", "icon" => "edit"); } } + if ($isAdminOrPM || $obj->getCreatorId() == $user->getId()) { - $menu["del"] = array("name"=> "Delete", "icon" => "delete", "url" => "/library/delete"); + $menu["del"] = array("name"=> "Delete", "icon" => "delete", "url" => $CC_CONFIG['base_dir']."/library/delete"); } } elseif ($type == "stream") { @@ -224,9 +227,9 @@ class LibraryController extends Zend_Controller_Action } if ($isAdminOrPM || $obj->getCreatorId() == $user->getId()) { if ($screen == "playlist") { - $menu["edit"] = array("name"=> "Edit", "icon" => "edit", "url" => "/library/edit-file-md/id/{$id}"); - } - $menu["del"] = array("name"=> "Delete", "icon" => "delete", "url" => "/library/delete"); + $menu["edit"] = array("name"=> "Edit", "icon" => "edit", "url" => $CC_CONFIG['base_dir']."/library/edit-file-md/id/{$id}"); + } + $menu["del"] = array("name"=> "Delete", "icon" => "delete", "url" => $CC_CONFIG['base_dir']."/library/delete"); } } @@ -252,7 +255,7 @@ class LibraryController extends Zend_Controller_Action $text = "Upload to SoundCloud"; } - $menu["soundcloud"]["items"]["upload"] = array("name" => $text, "icon" => "soundcloud", "url" => "/library/upload-file-soundcloud/id/{$id}"); + $menu["soundcloud"]["items"]["upload"] = array("name" => $text, "icon" => "soundcloud", "url" => $CC_CONFIG['base_dir']."/library/upload-file-soundcloud/id/{$id}"); } if (empty($menu)) { diff --git a/airtime_mvc/application/controllers/LoginController.php b/airtime_mvc/application/controllers/LoginController.php index e3eeccca4..d4d66bf50 100644 --- a/airtime_mvc/application/controllers/LoginController.php +++ b/airtime_mvc/application/controllers/LoginController.php @@ -11,8 +11,12 @@ class LoginController extends Zend_Controller_Action public function indexAction() { global $CC_CONFIG; + + $request = $this->getRequest(); + + if (Zend_Auth::getInstance()->hasIdentity()) + { - if (Zend_Auth::getInstance()->hasIdentity()) { $this->_redirect('Showbuilder'); } @@ -20,8 +24,8 @@ class LoginController extends Zend_Controller_Action $this->_helper->layout->setLayout('login'); $error = false; - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + + $baseUrl = Application_Common_OsPath::getBaseDir(); $this->view->headScript()->appendFile($baseUrl.'/js/airtime/login/login.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); @@ -96,8 +100,8 @@ class LoginController extends Zend_Controller_Action { global $CC_CONFIG; - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + $baseUrl = Application_Common_OsPath::getBaseDir(); + $this->view->headScript()->appendFile($baseUrl.'/js/airtime/login/password-restore.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); if (!Application_Model_Preference::GetEnableSystemEmail()) { diff --git a/airtime_mvc/application/controllers/PlayouthistoryController.php b/airtime_mvc/application/controllers/PlayouthistoryController.php index 7a046da9b..39a518922 100644 --- a/airtime_mvc/application/controllers/PlayouthistoryController.php +++ b/airtime_mvc/application/controllers/PlayouthistoryController.php @@ -8,14 +8,15 @@ class PlayouthistoryController extends Zend_Controller_Action $ajaxContext ->addActionContext('playout-history-feed', 'json') ->initContext(); - } + } public function indexAction() { global $CC_CONFIG; $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + + $baseUrl = Application_Common_OsPath::getBaseDir(); //default time is the last 24 hours. $now = time(); @@ -81,4 +82,5 @@ class PlayouthistoryController extends Zend_Controller_Action $this->view->iTotalRecords = $r["iTotalRecords"]; $this->view->history = $r["history"]; } + } diff --git a/airtime_mvc/application/controllers/PluploadController.php b/airtime_mvc/application/controllers/PluploadController.php index 271cda4e9..64de111d2 100644 --- a/airtime_mvc/application/controllers/PluploadController.php +++ b/airtime_mvc/application/controllers/PluploadController.php @@ -15,8 +15,7 @@ class PluploadController extends Zend_Controller_Action { global $CC_CONFIG; - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + $baseUrl = Application_Common_OsPath::getBaseDir(); $this->view->headScript()->appendFile($baseUrl.'/js/plupload/plupload.full.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/plupload/jquery.plupload.queue.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php index 49ce2a4a1..91a0021f4 100644 --- a/airtime_mvc/application/controllers/PreferenceController.php +++ b/airtime_mvc/application/controllers/PreferenceController.php @@ -21,11 +21,12 @@ class PreferenceController extends Zend_Controller_Action public function indexAction() { global $CC_CONFIG; - - $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true; - + $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + + $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true; + + $baseUrl = Application_Common_OsPath::getBaseDir(); $this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/preferences.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->statusMsg = ""; @@ -72,9 +73,11 @@ class PreferenceController extends Zend_Controller_Action public function supportSettingAction() { global $CC_CONFIG; - + $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + + $baseUrl = Application_Common_OsPath::getBaseDir(); + Logging::info($baseUrl); $this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/support-setting.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->statusMsg = ""; @@ -133,9 +136,9 @@ class PreferenceController extends Zend_Controller_Action { global $CC_CONFIG; - if (Application_Model_Preference::GetPlanLevel() == 'disabled') { - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + if(Application_Model_Preference::GetPlanLevel() == 'disabled'){ + + $baseUrl = Application_Common_OsPath::getBaseDir(); $this->view->headScript()->appendFile($baseUrl.'/js/serverbrowse/serverbrowser.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/musicdirs.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); @@ -151,7 +154,8 @@ class PreferenceController extends Zend_Controller_Action global $CC_CONFIG; $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + + $baseUrl = Application_Common_OsPath::getBaseDir(); $this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/streamsetting.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); diff --git a/airtime_mvc/application/controllers/ScheduleController.php b/airtime_mvc/application/controllers/ScheduleController.php index adf84380e..a8b5b557c 100644 --- a/airtime_mvc/application/controllers/ScheduleController.php +++ b/airtime_mvc/application/controllers/ScheduleController.php @@ -784,7 +784,10 @@ class ScheduleController extends Zend_Controller_Action if ($success) { $scheduler = new Application_Model_Scheduler(); - $scheduler->removeGaps($data['add_show_instance_id']); + $showInstances = CcShowInstancesQuery::create()->filterByDbShowId($data['add_show_id'])->find(); + foreach ($showInstances as $si) { + $scheduler->removeGaps($si->getDbId()); + } $this->view->addNewShow = true; $this->view->newForm = $this->view->render('schedule/add-show-form.phtml'); } else { diff --git a/airtime_mvc/application/controllers/ShowbuilderController.php b/airtime_mvc/application/controllers/ShowbuilderController.php index 23c3fd55b..9c4b8e750 100644 --- a/airtime_mvc/application/controllers/ShowbuilderController.php +++ b/airtime_mvc/application/controllers/ShowbuilderController.php @@ -18,12 +18,14 @@ class ShowbuilderController extends Zend_Controller_Action public function indexAction() { + global $CC_CONFIG; - + $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); - $user = Application_Model_User::getCurrentUser(); - + + $baseUrl = Application_Common_OsPath::getBaseDir(); + + $user = Application_Model_User::GetCurrentUser(); $userType = $user->getType(); $this->view->headScript()->appendScript("localStorage.setItem( 'user-type', '$userType' );"); @@ -42,7 +44,7 @@ class ShowbuilderController extends Zend_Controller_Action } else { $this->view->headScript()->appendScript("localStorage.setItem( 'datatables-timeline', '' );"); } - + $this->view->headScript()->appendFile($baseUrl.'/js/contextmenu/jquery.contextMenu.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/datatables/js/jquery.dataTables.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/datatables/plugin/dataTables.pluginAPI.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); @@ -62,8 +64,7 @@ class ShowbuilderController extends Zend_Controller_Action $this->view->headLink()->appendStylesheet($baseUrl.'/css/datatables/css/ColVis.css?'.$CC_CONFIG['airtime_version']); $this->view->headLink()->appendStylesheet($baseUrl.'/css/datatables/css/ColReorder.css?'.$CC_CONFIG['airtime_version']); - $this->view->headScript()->appendFile($this->view->baseUrl('/js/airtime/library/events/library_showbuilder.js?'.$CC_CONFIG['airtime_version']),'text/javascript'); - + $this->view->headScript()->appendFile($baseUrl.'/js/airtime/library/events/library_showbuilder.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $refer_sses = new Zend_Session_Namespace('referrer'); if ($request->isPost()) { @@ -173,6 +174,8 @@ class ShowbuilderController extends Zend_Controller_Action public function contextMenuAction() { + global $CC_CONFIG; + $id = $this->_getParam('id'); $now = floatval(microtime(true)); @@ -192,7 +195,7 @@ class ShowbuilderController extends Zend_Controller_Action if ($now < floatval($item->getDbEnds("U.u")) && $user->canSchedule($instance->getDbShowId())) { //remove/truncate the item from the schedule - $menu["del"] = array("name"=> "Delete", "icon" => "delete", "url" => "/showbuilder/schedule-remove"); + $menu["del"] = array("name"=> "Delete", "icon" => "delete", "url" => $CC_CONFIG['base_dir']."/showbuilder/schedule-remove"); } $this->view->items = $menu; diff --git a/airtime_mvc/application/controllers/SystemstatusController.php b/airtime_mvc/application/controllers/SystemstatusController.php index aa2400f41..6032128f9 100644 --- a/airtime_mvc/application/controllers/SystemstatusController.php +++ b/airtime_mvc/application/controllers/SystemstatusController.php @@ -6,8 +6,7 @@ class SystemstatusController extends Zend_Controller_Action { global $CC_CONFIG; - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + $baseUrl = Application_Common_OsPath::getBaseDir(); $this->view->headScript()->appendFile($baseUrl.'/js/airtime/status/status.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); } diff --git a/airtime_mvc/application/controllers/UserController.php b/airtime_mvc/application/controllers/UserController.php index 9c09ceecb..4447f0acc 100644 --- a/airtime_mvc/application/controllers/UserController.php +++ b/airtime_mvc/application/controllers/UserController.php @@ -18,7 +18,7 @@ class UserController extends Zend_Controller_Action global $CC_CONFIG; $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + $baseUrl = Application_Common_OsPath::getBaseDir(); $js_files = array( '/js/datatables/js/jquery.dataTables.js?', diff --git a/airtime_mvc/application/forms/EditAudioMD.php b/airtime_mvc/application/forms/EditAudioMD.php index ba7b1c4ef..e067b00a0 100644 --- a/airtime_mvc/application/forms/EditAudioMD.php +++ b/airtime_mvc/application/forms/EditAudioMD.php @@ -4,6 +4,7 @@ class Application_Form_EditAudioMD extends Zend_Form { public function init() { + global $CC_CONFIG; // Set the method for the display form to POST $this->setMethod('post'); @@ -137,7 +138,7 @@ class Application_Form_EditAudioMD extends Zend_Form 'ignore' => true, 'class' => 'btn md-cancel', 'label' => 'Cancel', - 'onclick' => 'javascript:document.location.href = "/Library"', + 'onclick' => 'javascript:document.location.href="'.$CC_CONFIG['base_dir'].'/Library"', 'decorators' => array( 'ViewHelper' ) diff --git a/airtime_mvc/application/forms/Preferences.php b/airtime_mvc/application/forms/Preferences.php index 878abe7f9..125cca392 100644 --- a/airtime_mvc/application/forms/Preferences.php +++ b/airtime_mvc/application/forms/Preferences.php @@ -6,7 +6,9 @@ class Application_Form_Preferences extends Zend_Form public function init() { - $this->setAction('/Preference'); + global $CC_CONFIG; + + $this->setAction($CC_CONFIG['base_dir'] . '/Preference'); $this->setMethod('post'); $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true; diff --git a/airtime_mvc/application/layouts/scripts/layout.phtml b/airtime_mvc/application/layouts/scripts/layout.phtml index de43830b4..90e13246c 100644 --- a/airtime_mvc/application/layouts/scripts/layout.phtml +++ b/airtime_mvc/application/layouts/scripts/layout.phtml @@ -6,6 +6,7 @@ headScript() ?> headLink() ?> google_analytics)?$this->google_analytics:"" ?> + @@ -22,7 +23,7 @@ $this->navigation()->menu()->setPartial($partial); ?>
diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index 8f08e385e..0cd058d41 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -500,6 +500,7 @@ class Application_Model_Preference } else { $outputArray['NUM_SOUNDCLOUD_TRACKS_UPLOADED'] = NULL; } + $outputArray['STATION_NAME'] = self::GetStationName(); $outputArray['PHONE'] = self::GetPhone(); $outputArray['EMAIL'] = self::GetEmail(); @@ -513,7 +514,7 @@ class Application_Model_Preference $url = $systemInfoArray["AIRTIME_VERSION_URL"]; $index = strpos($url,'/api/'); $url = substr($url, 0, $index); - + $headerInfo = get_headers(trim($url),1); $outputArray['WEB_SERVER'] = $headerInfo['Server'][0]; } diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index cd75da2d1..2529bd34e 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -599,6 +599,7 @@ SQL; return $res; } + public static function getLibraryColumns() { return array("id", "track_title", "artist_name", "album_title", @@ -609,9 +610,10 @@ SQL; "conductor", "replay_gain", "lptime" ); } - public static function searchLibraryFiles($datatables) { + global $CC_CONFIG; + $con = Propel::getConnection(CcFilesPeer::DATABASE_NAME); $displayColumns = self::getLibraryColumns(); @@ -766,14 +768,14 @@ SQL; // ugly if ($type == "au") { $row['audioFile'] = $row['id'].".".pathinfo($row['filepath'], PATHINFO_EXTENSION); - $row['image'] = ''; + $row['image'] = ''; } elseif ($type == "pl") { - $row['image'] = ''; + $row['image'] = ''; } elseif ($type == "st") { $row['audioFile'] = $row['id']; - $row['image'] = ''; + $row['image'] = ''; } elseif ($type == "bl") { - $row['image'] = ''; + $row['image'] = ''; } } diff --git a/airtime_mvc/application/views/scripts/dashboard/help.phtml b/airtime_mvc/application/views/scripts/dashboard/help.phtml index 0ac5f80dc..3e5d68553 100644 --- a/airtime_mvc/application/views/scripts/dashboard/help.phtml +++ b/airtime_mvc/application/views/scripts/dashboard/help.phtml @@ -1,4 +1,4 @@ - +

Welcome to Airtime!

Here's how you can get started using Airtime to automate your broadcasts:

diff --git a/airtime_mvc/application/views/scripts/form/add-show-when.phtml b/airtime_mvc/application/views/scripts/form/add-show-when.phtml index 48a420758..3a4d3f99d 100644 --- a/airtime_mvc/application/views/scripts/form/add-show-when.phtml +++ b/airtime_mvc/application/views/scripts/form/add-show-when.phtml @@ -46,7 +46,7 @@
element->getElement('add_show_duration') ?> - +
element->getElement('add_show_duration')->hasErrors()){ ?>
diff --git a/airtime_mvc/application/views/scripts/dashboard/about.phtml b/airtime_mvc/application/views/scripts/dashboard/about.phtml index b2ce0cb38..5a5ac1ace 100644 --- a/airtime_mvc/application/views/scripts/dashboard/about.phtml +++ b/airtime_mvc/application/views/scripts/dashboard/about.phtml @@ -1,8 +1,8 @@
-

About

+

-Airtime airtime_version ?>, the open radio software for scheduling and remote station management.
-© 2012 Sourcefabric o.p.s. Airtime is distributed under the GNU GPL v.3 + airtime_version ?>, the open radio software for scheduling and remote station management.
+© 2012 o.p.s. Airtime is distributed under the GNU GPL v.3


diff --git a/airtime_mvc/application/views/scripts/dashboard/help.phtml b/airtime_mvc/application/views/scripts/dashboard/help.phtml index 3e5d68553..425d04568 100644 --- a/airtime_mvc/application/views/scripts/dashboard/help.phtml +++ b/airtime_mvc/application/views/scripts/dashboard/help.phtml @@ -10,6 +10,6 @@
  • Select your media from the left pane and drag them to your show in the right pane.
  • Then you're good to go!
    -For more detailed help, read the user manual.

    +For more detailed help, read the .

    diff --git a/airtime_mvc/application/views/scripts/dashboard/index.phtml b/airtime_mvc/application/views/scripts/dashboard/index.phtml index e5b885fc7..abb67f7f4 100644 --- a/airtime_mvc/application/views/scripts/dashboard/index.phtml +++ b/airtime_mvc/application/views/scripts/dashboard/index.phtml @@ -1 +1 @@ -

    View script for controller Dashboard and script/action name index
    \ No newline at end of file +

    View script for controller and script/action name index
    diff --git a/airtime_mvc/application/views/scripts/dashboard/stream-player.phtml b/airtime_mvc/application/views/scripts/dashboard/stream-player.phtml index ce4faa068..dbf5d052e 100644 --- a/airtime_mvc/application/views/scripts/dashboard/stream-player.phtml +++ b/airtime_mvc/application/views/scripts/dashboard/stream-player.phtml @@ -1,5 +1,5 @@ diff --git a/airtime_mvc/application/views/scripts/dashboard/about.phtml b/airtime_mvc/application/views/scripts/dashboard/about.phtml index 12f355d4f..a844ec398 100644 --- a/airtime_mvc/application/views/scripts/dashboard/about.phtml +++ b/airtime_mvc/application/views/scripts/dashboard/about.phtml @@ -1,8 +1,21 @@

    -airtime_version ?>
    -© 2012 GNU GPL v.3 +", + "", + $this->airtime_version, + "
    ") +?> +
    © 2012 +", + "", + "", + "") +?>


    diff --git a/airtime_mvc/application/views/scripts/dashboard/help.phtml b/airtime_mvc/application/views/scripts/dashboard/help.phtml index ffa080e47..66857c7cd 100644 --- a/airtime_mvc/application/views/scripts/dashboard/help.phtml +++ b/airtime_mvc/application/views/scripts/dashboard/help.phtml @@ -1,15 +1,17 @@
    -

    Welcome to Airtime!

    -

    Here's how you can get started using Airtime to automate your broadcasts:

    +

    +

      -
    1. Begin by adding your files to the library using the "Add Media" menu button. You can drag and drop your files to this window too.
    2. -
    3. Create a show by going to "Calendar" in the menu bar, and then clicking the "+ Show" icon. This can be either a one-time or repeating show. Only admins and program managers can add shows.
    4. -
    5. Add media to the show by going to your show in the Schedule calendar, left-clicking on it and selecting "Add / Remove Content".
    6. -
    7. +
    8. +
    9. +
    10. .
    11. +
    -

    Then you're good to go!
    -For more detailed help, read the

    +


    +", + "") ?>

    diff --git a/airtime_mvc/application/views/scripts/dashboard/index.phtml b/airtime_mvc/application/views/scripts/dashboard/index.phtml index 4b4a74137..e69de29bb 100644 --- a/airtime_mvc/application/views/scripts/dashboard/index.phtml +++ b/airtime_mvc/application/views/scripts/dashboard/index.phtml @@ -1 +0,0 @@ -

    diff --git a/airtime_mvc/application/views/scripts/error/denied.phtml b/airtime_mvc/application/views/scripts/error/denied.phtml index 6217eb227..e69de29bb 100644 --- a/airtime_mvc/application/views/scripts/error/denied.phtml +++ b/airtime_mvc/application/views/scripts/error/denied.phtml @@ -1 +0,0 @@ -

    diff --git a/airtime_mvc/application/views/scripts/error/error.phtml b/airtime_mvc/application/views/scripts/error/error.phtml index a58862e11..07326ad50 100644 --- a/airtime_mvc/application/views/scripts/error/error.phtml +++ b/airtime_mvc/application/views/scripts/error/error.phtml @@ -7,8 +7,8 @@
    -

    Page not found!

    -

    Looks like the page you were looking for doesn't exist!

    +

    +

    diff --git a/airtime_mvc/application/views/scripts/form/daterange.phtml b/airtime_mvc/application/views/scripts/form/daterange.phtml index 3d3f4bb63..b3435e284 100644 --- a/airtime_mvc/application/views/scripts/form/daterange.phtml +++ b/airtime_mvc/application/views/scripts/form/daterange.phtml @@ -3,7 +3,7 @@ element->getElement('his_time_start') ?> element->getElement('his_date_end') ?> element->getElement('his_time_end') ?> -
    +
    ">
    \ No newline at end of file diff --git a/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml b/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml index 46c394ce3..e21347cb3 100644 --- a/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml +++ b/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml @@ -105,7 +105,8 @@
    -
    @@ -148,7 +149,8 @@
    -
    diff --git a/airtime_mvc/application/views/scripts/form/preferences_soundcloud.phtml b/airtime_mvc/application/views/scripts/form/preferences_soundcloud.phtml index 20bcc92c9..30efe4b0b 100644 --- a/airtime_mvc/application/views/scripts/form/preferences_soundcloud.phtml +++ b/airtime_mvc/application/views/scripts/form/preferences_soundcloud.phtml @@ -41,7 +41,7 @@
    @@ -56,7 +56,7 @@
    diff --git a/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml b/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml index bbbda42d6..234047161 100644 --- a/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml +++ b/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml @@ -40,8 +40,8 @@
    getExistsFlag())?"":""?>getDirectory();?> - - + class="ui-icon ui-icon-refresh"> + " class="ui-icon ui-icon-close">
    diff --git a/airtime_mvc/application/views/scripts/form/register-dialog.phtml b/airtime_mvc/application/views/scripts/form/register-dialog.phtml index 287cc4fc2..a6ee40f6d 100644 --- a/airtime_mvc/application/views/scripts/form/register-dialog.phtml +++ b/airtime_mvc/application/views/scripts/form/register-dialog.phtml @@ -3,11 +3,10 @@
    - Help Airtime improve by letting us know how you are using it. This info - will be collected regularly in order to enhance your user experience. -

    - Click "Yes, help Airtime" and we'll make sure the features you use are - constantly improving. +
    ") ?>
    - Click the box below to advertise your station on - . - In order to promote your station, "Send support feedback" must be enabled. This data will be collected in addition to the support feedback. + ", + "")?>
    diff --git a/airtime_mvc/application/views/scripts/dashboard/about.phtml b/airtime_mvc/application/views/scripts/dashboard/about.phtml index 12f355d4f..a844ec398 100644 --- a/airtime_mvc/application/views/scripts/dashboard/about.phtml +++ b/airtime_mvc/application/views/scripts/dashboard/about.phtml @@ -1,8 +1,21 @@

    -airtime_version ?>
    -© 2012 GNU GPL v.3 +", + "", + $this->airtime_version, + "
    ") +?> +
    © 2012 +", + "", + "", + "") +?>


    diff --git a/airtime_mvc/application/views/scripts/dashboard/help.phtml b/airtime_mvc/application/views/scripts/dashboard/help.phtml index ffa080e47..66857c7cd 100644 --- a/airtime_mvc/application/views/scripts/dashboard/help.phtml +++ b/airtime_mvc/application/views/scripts/dashboard/help.phtml @@ -1,15 +1,17 @@
    -

    Welcome to Airtime!

    -

    Here's how you can get started using Airtime to automate your broadcasts:

    +

    +

      -
    1. Begin by adding your files to the library using the "Add Media" menu button. You can drag and drop your files to this window too.
    2. -
    3. Create a show by going to "Calendar" in the menu bar, and then clicking the "+ Show" icon. This can be either a one-time or repeating show. Only admins and program managers can add shows.
    4. -
    5. Add media to the show by going to your show in the Schedule calendar, left-clicking on it and selecting "Add / Remove Content".
    6. -
    7. +
    8. +
    9. +
    10. .
    11. +
    -

    Then you're good to go!
    -For more detailed help, read the

    +


    +", + "") ?>

    diff --git a/airtime_mvc/application/views/scripts/dashboard/index.phtml b/airtime_mvc/application/views/scripts/dashboard/index.phtml index 4b4a74137..e69de29bb 100644 --- a/airtime_mvc/application/views/scripts/dashboard/index.phtml +++ b/airtime_mvc/application/views/scripts/dashboard/index.phtml @@ -1 +0,0 @@ -

    diff --git a/airtime_mvc/application/views/scripts/error/denied.phtml b/airtime_mvc/application/views/scripts/error/denied.phtml index 6217eb227..e69de29bb 100644 --- a/airtime_mvc/application/views/scripts/error/denied.phtml +++ b/airtime_mvc/application/views/scripts/error/denied.phtml @@ -1 +0,0 @@ -

    diff --git a/airtime_mvc/application/views/scripts/error/error.phtml b/airtime_mvc/application/views/scripts/error/error.phtml index a58862e11..07326ad50 100644 --- a/airtime_mvc/application/views/scripts/error/error.phtml +++ b/airtime_mvc/application/views/scripts/error/error.phtml @@ -7,8 +7,8 @@
    -

    Page not found!

    -

    Looks like the page you were looking for doesn't exist!

    +

    +

    diff --git a/airtime_mvc/application/views/scripts/form/daterange.phtml b/airtime_mvc/application/views/scripts/form/daterange.phtml index 3d3f4bb63..b3435e284 100644 --- a/airtime_mvc/application/views/scripts/form/daterange.phtml +++ b/airtime_mvc/application/views/scripts/form/daterange.phtml @@ -3,7 +3,7 @@ element->getElement('his_time_start') ?> element->getElement('his_date_end') ?> element->getElement('his_time_end') ?> -
    +
    ">
    \ No newline at end of file diff --git a/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml b/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml index 46c394ce3..e21347cb3 100644 --- a/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml +++ b/airtime_mvc/application/views/scripts/form/preferences_livestream.phtml @@ -105,7 +105,8 @@
    -
    @@ -148,7 +149,8 @@
    -
    diff --git a/airtime_mvc/application/views/scripts/form/preferences_soundcloud.phtml b/airtime_mvc/application/views/scripts/form/preferences_soundcloud.phtml index 20bcc92c9..30efe4b0b 100644 --- a/airtime_mvc/application/views/scripts/form/preferences_soundcloud.phtml +++ b/airtime_mvc/application/views/scripts/form/preferences_soundcloud.phtml @@ -41,7 +41,7 @@
    @@ -56,7 +56,7 @@
    diff --git a/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml b/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml index bbbda42d6..234047161 100644 --- a/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml +++ b/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml @@ -40,8 +40,8 @@
    getExistsFlag())?"":""?>getDirectory();?> - - + class="ui-icon ui-icon-refresh"> + " class="ui-icon ui-icon-close">
    diff --git a/airtime_mvc/application/views/scripts/form/register-dialog.phtml b/airtime_mvc/application/views/scripts/form/register-dialog.phtml index 287cc4fc2..a6ee40f6d 100644 --- a/airtime_mvc/application/views/scripts/form/register-dialog.phtml +++ b/airtime_mvc/application/views/scripts/form/register-dialog.phtml @@ -3,11 +3,10 @@
    - Help Airtime improve by letting us know how you are using it. This info - will be collected regularly in order to enhance your user experience. -

    - Click "Yes, help Airtime" and we'll make sure the features you use are - constantly improving. +
    ") ?>
    - Click the box below to advertise your station on - . - In order to promote your station, "Send support feedback" must be enabled. This data will be collected in addition to the support feedback. + ", + "")?>
    From 5df867d1428fa6b3babd118fc6d40d4dd1f4a0ae Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Thu, 3 Jan 2013 15:05:31 -0500 Subject: [PATCH 331/437] remove whitespace --- python_apps/media-monitor2/media/metadata/process.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python_apps/media-monitor2/media/metadata/process.py b/python_apps/media-monitor2/media/metadata/process.py index 38e036175..ccaa1f41c 100644 --- a/python_apps/media-monitor2/media/metadata/process.py +++ b/python_apps/media-monitor2/media/metadata/process.py @@ -169,7 +169,7 @@ def normalize_mutagen(path): md['sample_rate'] = getattr(m.info, 'sample_rate', 0) md['mime'] = m.mime[0] if len(m.mime) > 0 else u'' md['path'] = normpath(path) - + # silence detect(set default queue in and out) try: command = ['silan', '-f', 'JSON', md['path']] @@ -181,7 +181,7 @@ def normalize_mutagen(path): except Exception: logger = logging.getLogger() logger.info('silan is missing') - + if 'title' not in md: md['title'] = u'' return md From e2c87ed8b6d88b6daaf836c81c621ec84f29a730 Mon Sep 17 00:00:00 2001 From: denise Date: Thu, 3 Jan 2013 16:19:02 -0500 Subject: [PATCH 332/437] CC-4781: Store localization settings on a per-user basis -done --- airtime_mvc/application/Bootstrap.php | 8 ++- .../controllers/UserController.php | 6 +++ airtime_mvc/application/forms/EditUser.php | 6 +++ airtime_mvc/application/models/Preference.php | 49 ++++++++++++++++--- .../views/scripts/form/edit-user.phtml | 14 ++++++ airtime_mvc/build/sql/defaultdata.sql | 2 + .../public/js/airtime/dashboard/dashboard.js | 4 +- 7 files changed, 80 insertions(+), 9 deletions(-) diff --git a/airtime_mvc/application/Bootstrap.php b/airtime_mvc/application/Bootstrap.php index 62679c8b0..ee3bb7096 100644 --- a/airtime_mvc/application/Bootstrap.php +++ b/airtime_mvc/application/Bootstrap.php @@ -34,7 +34,13 @@ $front->registerPlugin(new RabbitMqPlugin()); //localization configuration $codeset = 'UTF-8'; -$lang = Application_Model_Preference::GetLocale().'.'.$codeset; +$auth = Zend_Auth::getInstance(); +if ($auth->hasIdentity()) { + $id = $auth->getIdentity()->id; + $lang = Application_Model_Preference::GetCurrentUserLocale($id).'.'.$codeset; +} else { + $lang = Application_Model_Preference::GetLocale().'.'.$codeset; +} putenv("LC_ALL=$lang"); putenv("LANG=$lang"); diff --git a/airtime_mvc/application/controllers/UserController.php b/airtime_mvc/application/controllers/UserController.php index d5ee57e2f..e2f6fcfae 100644 --- a/airtime_mvc/application/controllers/UserController.php +++ b/airtime_mvc/application/controllers/UserController.php @@ -72,6 +72,11 @@ class UserController extends Zend_Controller_Action $user->setJabber($formData['jabber']); $user->save(); + // Language settings are saved on a per-user basis + // By default, the general language setting on preferences + // page is what gets assigned. + Application_Model_Preference::SetUserLocale($user->getId()); + $form->reset(); $this->view->form = $form; @@ -150,6 +155,7 @@ class UserController extends Zend_Controller_Action $user->setSkype($formData['cu_skype']); $user->setJabber($formData['cu_jabber']); $user->save(); + Application_Model_Preference::SetUserLocale($user->getId(), $formData['cu_locale']); $this->view->successMessage = "
    "._("User updated successfully!")."
    "; } $this->view->form = $form; diff --git a/airtime_mvc/application/forms/EditUser.php b/airtime_mvc/application/forms/EditUser.php index b4906b9e7..0932a03eb 100644 --- a/airtime_mvc/application/forms/EditUser.php +++ b/airtime_mvc/application/forms/EditUser.php @@ -96,6 +96,12 @@ class Application_Form_EditUser extends Zend_Form $jabber->setDecorators(array('viewHelper')); $this->addElement($jabber); + $locale = new Zend_Form_Element_Select("cu_locale"); + $locale->setLabel(_("Language")); + $locale->setMultiOptions(Application_Model_Locale::getLocales()); + $locale->setValue(Application_Model_Preference::GetUserLocale($currentUser->getId())); + $locale->setDecorators(array('ViewHelper')); + $this->addElement($locale); /* $saveBtn = new Zend_Form_Element_Button('cu_save_user'); $saveBtn->setAttrib('class', 'btn btn-small right-floated'); diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index 326ab6bea..eef140cca 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -3,7 +3,12 @@ class Application_Model_Preference { - private static function setValue($key, $value, $isUserValue = false) + /** + * + * @param integer $userId is not null when we are setting a locale for a specific user + * @param boolean $isUserValue is true when we are setting a value for the current user + */ + private static function setValue($key, $value, $isUserValue = false, $userId = null) { try { //called from a daemon process @@ -22,9 +27,12 @@ class Application_Model_Preference $paramMap[':key'] = $key; //For user specific preference, check if id matches as well - if ($isUserValue) { + if ($isUserValue && is_null($userId)) { $sql .= " AND subjid = :id"; $paramMap[':id'] = $id; + } else if (!is_null($userId)) { + $sql .= " AND subjid= :id"; + $paramMap[':id'] = $userId; } $result = Application_Common_Database::prepareAndExecute($sql, $paramMap, 'column'); @@ -42,7 +50,11 @@ class Application_Model_Preference $sql = "UPDATE cc_pref" . " SET valstr = :value" . " WHERE keystr = :key AND subjid = :id"; - $paramMap[':id'] = $id; + if (is_null($userId)) { + $paramMap[':id'] = $id; + } else { + $paramMap[':id'] = $userId; + } } } else { // result not found @@ -54,7 +66,11 @@ class Application_Model_Preference // user pref $sql = "INSERT INTO cc_pref (subjid, keystr, valstr)" ." VALUES (:id, :key, :value)"; - $paramMap[':id'] = $id; + if (is_null($userId)) { + $paramMap[':id'] = $id; + } else { + $paramMap[':id'] = $userId; + } } } $paramMap[':key'] = $key; @@ -428,16 +444,37 @@ class Application_Model_Preference { return self::getValue("timezone"); } - + + // This is the language setting on preferences page public static function SetLocale($locale) { self::setValue("locale", $locale); } - + public static function GetLocale() { return self::getValue("locale"); } + + public static function GetCurrentUserLocale($id) + { + return self::getValue("user_".$id."_locale", true); + } + + public static function SetUserLocale($userId, $locale = null) + { + // When a new user is created they will get the default locale + // setting which the admin sets on preferences page + if (is_null($locale)) { + $locale = self::GetLocale(); + } + self::setValue("user_".$userId."_locale", $locale, true, $userId); + } + + public static function GetUserLocale($userId) + { + return self::getValue("user_".$userId."_locale"); + } public static function SetStationLogo($imagePath) { diff --git a/airtime_mvc/application/views/scripts/form/edit-user.phtml b/airtime_mvc/application/views/scripts/form/edit-user.phtml index 927fd8a6d..3f0be44c3 100644 --- a/airtime_mvc/application/views/scripts/form/edit-user.phtml +++ b/airtime_mvc/application/views/scripts/form/edit-user.phtml @@ -114,6 +114,20 @@ +
    + +
    +
    + element->getElement('cu_locale') ?> + element->getElement('cu_locale')->hasErrors()) : ?> +
      + element->getElement('cu_locale')->getMessages() as $error): ?> +
    • + +
    + +
    diff --git a/airtime_mvc/build/sql/defaultdata.sql b/airtime_mvc/build/sql/defaultdata.sql index 704fcbb81..6e2a1d259 100644 --- a/airtime_mvc/build/sql/defaultdata.sql +++ b/airtime_mvc/build/sql/defaultdata.sql @@ -313,6 +313,8 @@ INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('s3_channels', 'ste -- added in 2.3 INSERT INTO cc_pref("keystr", "valstr") VALUES('locale', 'en_CA'); +INSERT INTO cc_pref("subjid", "keystr", "valstr") VALUES(1, 'user_1_locale', 'en_CA'); + INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('zh_CN', 'Chinese'); INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('en_CA', 'English'); INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('en_US', 'English - US'); diff --git a/airtime_mvc/public/js/airtime/dashboard/dashboard.js b/airtime_mvc/public/js/airtime/dashboard/dashboard.js index 7f86f705d..78f37be8c 100644 --- a/airtime_mvc/public/js/airtime/dashboard/dashboard.js +++ b/airtime_mvc/public/js/airtime/dashboard/dashboard.js @@ -460,7 +460,7 @@ $(document).ready(function() { clearTimeout(timer); }); - $('.tipsy').live('mouseout', function() { + $('.tipsy').live('blur', function() { timer = setTimeout("$('#current-user').tipsy('hide')", 500); }); @@ -488,7 +488,7 @@ $(document).ready(function() { }); - $('#current-user').bind('mouseout', function() { + $('#current-user').bind('blur', function() { timer = setTimeout("$('#current-user').tipsy('hide')", 500); }); From 7ea649e063bdb0f5d99761fe65c5a710fd849138 Mon Sep 17 00:00:00 2001 From: denise Date: Thu, 3 Jan 2013 16:27:05 -0500 Subject: [PATCH 333/437] CC-4783: Username on the edit user form should be readonly -done --- airtime_mvc/application/forms/EditUser.php | 1 + 1 file changed, 1 insertion(+) diff --git a/airtime_mvc/application/forms/EditUser.php b/airtime_mvc/application/forms/EditUser.php index 0932a03eb..c775eb023 100644 --- a/airtime_mvc/application/forms/EditUser.php +++ b/airtime_mvc/application/forms/EditUser.php @@ -29,6 +29,7 @@ class Application_Form_EditUser extends Zend_Form $login->setLabel(_('Username:')); $login->setValue($userData["login"]); $login->setAttrib('class', 'input_text'); + $login->setAttrib('readonly', 'readonly'); $login->setRequired(true); $login->addValidator($notEmptyValidator); $login->addFilter('StringTrim'); From 64116c7bff3a25a34d4b8cd9afc570eb0e919bdc Mon Sep 17 00:00:00 2001 From: denise Date: Thu, 3 Jan 2013 16:56:04 -0500 Subject: [PATCH 334/437] CC-4779: Library -> Metadata tooltip -> Some words get wrapped in different languages -fixed --- .../views/scripts/library/get-file-metadata.ajax.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml b/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml index 0ab387ca1..4b1a38839 100644 --- a/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml +++ b/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml @@ -18,7 +18,7 @@ md["MDATA_KEY_ISRC"]);?> md["MDATA_KEY_URL"]);?> md["MDATA_KEY_LANGUAGE"]);?> - md["MDATA_KEY_FILEPATH"]);?> +md["MDATA_KEY_FILEPATH"]);?> From ae7b6fe09212ff018ffd73ff0d7bd76107b4eadb Mon Sep 17 00:00:00 2001 From: James Date: Thu, 3 Jan 2013 17:58:50 -0500 Subject: [PATCH 335/437] CC-4732: Ask for admin username + password in Stream Settings page - done --- .../forms/StreamSettingSubForm.php | 24 +++++++++++++++ .../application/models/StreamSetting.php | 18 ++++++++++- .../scripts/form/stream-setting-form.phtml | 30 ++++++++++++++++++- airtime_mvc/build/sql/defaultdata.sql | 6 ++++ airtime_mvc/public/css/styles.css | 3 +- .../js/airtime/preferences/streamsetting.js | 21 +++++++++++++ python_apps/pypo/listenerstat.py | 7 ++--- python_apps/pypo/pypofetch.py | 22 -------------- 8 files changed, 101 insertions(+), 30 deletions(-) diff --git a/airtime_mvc/application/forms/StreamSettingSubForm.php b/airtime_mvc/application/forms/StreamSettingSubForm.php index c5d8a19b2..cb03ec83b 100644 --- a/airtime_mvc/application/forms/StreamSettingSubForm.php +++ b/airtime_mvc/application/forms/StreamSettingSubForm.php @@ -190,6 +190,30 @@ class Application_Form_StreamSettingSubForm extends Zend_Form_SubForm } $user->setAttrib('alt', 'regular_text'); $this->addElement($user); + + $adminUser = new Zend_Form_Element_Text('admin_user'); + $adminUser->setLabel(_("Admin User")) + ->setValue(Application_Model_StreamSetting::getAdminUser($prefix)) + ->setValidators(array( + array('regex', false, array('/^[^ &<>]+$/', 'messages' => _('Invalid character entered'))))) + ->setDecorators(array('ViewHelper')); + if ($disable_all) { + $adminUser->setAttrib("disabled", "disabled"); + } + $adminUser->setAttrib('alt', 'regular_text'); + $this->addElement($adminUser); + + $adminPass = new Zend_Form_Element_Text('admin_pass'); + $adminPass->setLabel(_("Admin Password")) + ->setValue(Application_Model_StreamSetting::getAdminPass($prefix)) + ->setValidators(array( + array('regex', false, array('/^[^ &<>]+$/', 'messages' => _('Invalid character entered'))))) + ->setDecorators(array('ViewHelper')); + if ($disable_all) { + $adminPass->setAttrib("disabled", "disabled"); + } + $adminPass->setAttrib('alt', 'regular_text'); + $this->addElement($adminPass); $liquidsopa_error_msg = '

    '._('Getting information from the server...').'

    '; diff --git a/airtime_mvc/application/models/StreamSetting.php b/airtime_mvc/application/models/StreamSetting.php index f1b1e372c..8fc29ba4f 100644 --- a/airtime_mvc/application/models/StreamSetting.php +++ b/airtime_mvc/application/models/StreamSetting.php @@ -163,7 +163,7 @@ class Application_Model_StreamSetting $con = Propel::getConnection(); $sql = "SELECT *" ." FROM cc_stream_setting" - ." WHERE keyname not like '%_error'"; + ." WHERE keyname not like '%_error' AND keyname not like '%_admin_%'"; $rows = $con->query($sql)->fetchAll(); @@ -433,4 +433,20 @@ class Application_Model_StreamSetting { return self::getValue("dj_live_stream_mp"); } + + public static function getAdminUser($stream){ + return self::getValue($stream."_admin_user"); + } + + public static function setAdminUser($stream, $v){ + self::setValue($stream."_admin_user", $v, "string"); + } + + public static function getAdminPass($stream){ + return self::getValue($stream."_admin_pass"); + } + + public static function setAdminPass($stream, $v){ + self::setValue($stream."_admin_pass", $v, "string"); + } } 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 56345b839..3ed9345de 100644 --- a/airtime_mvc/application/views/scripts/form/stream-setting-form.phtml +++ b/airtime_mvc/application/views/scripts/form/stream-setting-form.phtml @@ -1,4 +1,4 @@ - stream_number; ?>

    ">stream_number?>

    @@ -104,6 +104,34 @@ +
    + +
    +
    + element->getElement('admin_user')?> + element->getElement('admin_user')->hasErrors()) : ?> +
      + element->getElement('admin_user')->getMessages() as $error): ?> +
    • + +
    + +
    +
    + +
    +
    + element->getElement('admin_pass')?> + element->getElement('admin_pass')->hasErrors()) : ?> +
      + element->getElement('admin_pass')->getMessages() as $error): ?> +
    • + +
    + +
    diff --git a/airtime_mvc/build/sql/defaultdata.sql b/airtime_mvc/build/sql/defaultdata.sql index 704fcbb81..bd1c64939 100644 --- a/airtime_mvc/build/sql/defaultdata.sql +++ b/airtime_mvc/build/sql/defaultdata.sql @@ -25,6 +25,8 @@ INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_host', '1 INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_port', '8000', 'integer'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_user', '', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_pass', 'hackme', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_admin_user', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_admin_pass', '', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_mount', 'airtime_128', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_url', 'http://airtime.sourcefabric.org', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_description', 'Airtime Radio! Stream #1', 'string'); @@ -38,6 +40,8 @@ INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_host', '' INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_port', '', 'integer'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_user', '', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_pass', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_admin_user', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_admin_pass', '', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_mount', '', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_url', '', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_description', '', 'string'); @@ -51,6 +55,8 @@ INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_host', '' INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_port', '', 'integer'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_user', '', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_pass', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_admin_user', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_admin_pass', '', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_mount', '', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_url', '', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_description', '', 'string'); diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index 60145e306..4c2ecc8f2 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -109,7 +109,8 @@ select { } .airtime_auth_help_icon, .custom_auth_help_icon, .stream_username_help_icon, -.playlist_type_help_icon, .master_username_help_icon, .repeat_tracks_help_icon{ +.playlist_type_help_icon, .master_username_help_icon, .repeat_tracks_help_icon, +.admin_username_help_icon { cursor: help; position: relative; display:inline-block; zoom:1; diff --git a/airtime_mvc/public/js/airtime/preferences/streamsetting.js b/airtime_mvc/public/js/airtime/preferences/streamsetting.js index 28dd07db1..7fa712a58 100644 --- a/airtime_mvc/public/js/airtime/preferences/streamsetting.js +++ b/airtime_mvc/public/js/airtime/preferences/streamsetting.js @@ -355,6 +355,27 @@ function setupEventListeners() { }, }) + $(".admin_username_help_icon").qtip({ + content: { + text: $.i18n._("This admin username and password for Icecast to get listener statistics.") + }, + 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" + }, + }) + $(".master_username_help_icon").qtip({ content: { text: $.i18n._("If your live streaming client does not ask for a username, this field should be 'source'.") diff --git a/python_apps/pypo/listenerstat.py b/python_apps/pypo/listenerstat.py index 431f05e98..10efbc586 100644 --- a/python_apps/pypo/listenerstat.py +++ b/python_apps/pypo/listenerstat.py @@ -31,7 +31,7 @@ class ListenerStat(Thread): def get_icecast_xml(self, ip): - encoded = base64.b64encode("%(admin_user)s:%(admin_password)s" % ip) + encoded = base64.b64encode("%(admin_user)s:%(admin_pass)s" % ip) header = {"Authorization":"Basic %s" % encoded} self.logger.debug(ip) @@ -78,8 +78,6 @@ class ListenerStat(Thread): #streams are the same server, we will still initiate 3 separate #connections for k, v in stream_parameters.items(): - v["admin_user"] = "admin" - v["admin_password"] = "hackme" if v["enable"] == 'true': stats.append(self.get_icecast_stats(v)) #stats.append(get_shoutcast_stats(ip)) @@ -103,8 +101,7 @@ class ListenerStat(Thread): self.push_stream_stats(stats) except Exception, e: - top = traceback.format_exc() - self.logger.error('Exception: %s', top) + self.logger.error('Exception: %s', e) time.sleep(120) diff --git a/python_apps/pypo/pypofetch.py b/python_apps/pypo/pypofetch.py index 2641b5c61..37c8d2f6c 100644 --- a/python_apps/pypo/pypofetch.py +++ b/python_apps/pypo/pypofetch.py @@ -188,28 +188,6 @@ class PypoFetch(Thread): self.update_liquidsoap_station_name(info['station_name']) self.update_liquidsoap_transition_fade(info['transition_fade']) - def write_liquidsoap_config(self, setting): - fh = open('/etc/airtime/liquidsoap.cfg', 'w') - self.logger.info("Rewriting liquidsoap.cfg...") - fh.write("################################################\n") - fh.write("# THIS FILE IS AUTO GENERATED. DO NOT CHANGE!! #\n") - fh.write("################################################\n") - for k, d in setting: - buffer_str = d[u'keyname'] + " = " - if d[u'type'] == 'string': - temp = d[u'value'] - buffer_str += '"%s"' % temp - else: - temp = d[u'value'] - if temp == "": - temp = "0" - buffer_str += temp - - buffer_str += "\n" - fh.write(api_client.encode_to(buffer_str)) - fh.write("log_file = \"/var/log/airtime/pypo-liquidsoap/