Merge branch 'devel' of dev.sourcefabric.org:airtime into devel

This commit is contained in:
Martin Konecny 2013-01-09 15:52:45 -05:00
commit a5e7c0197f
106 changed files with 8649 additions and 1389 deletions

View File

@ -10,6 +10,7 @@ require_once 'Preference.php';
require_once "DateHelper.php"; require_once "DateHelper.php";
require_once "OsPath.php"; require_once "OsPath.php";
require_once "Database.php"; require_once "Database.php";
require_once "Timezone.php";
require_once __DIR__.'/forms/helpers/ValidationTypes.php'; require_once __DIR__.'/forms/helpers/ValidationTypes.php';
require_once __DIR__.'/controllers/plugins/RabbitMqPlugin.php'; require_once __DIR__.'/controllers/plugins/RabbitMqPlugin.php';

View File

@ -0,0 +1,31 @@
<?php
class Application_Common_Timezone
{
public static function getTimezones()
{
$regions = array(
'Africa' => DateTimeZone::AFRICA,
'America' => DateTimeZone::AMERICA,
'Antarctica' => DateTimeZone::ANTARCTICA,
'Arctic' => DateTimeZone::ARCTIC,
'Asia' => DateTimeZone::ASIA,
'Atlantic' => DateTimeZone::ATLANTIC,
'Australia' => DateTimeZone::AUSTRALIA,
'Europe' => DateTimeZone::EUROPE,
'Indian' => DateTimeZone::INDIAN,
'Pacific' => DateTimeZone::PACIFIC
);
$tzlist = array();
foreach ($regions as $name => $mask) {
$ids = DateTimeZone::listIdentifiers($mask);
foreach ($ids as $id) {
$tzlist[$id] = str_replace("_", " ", $id);
}
}
return $tzlist;
}
}

View File

@ -32,6 +32,8 @@ define('MDATA_KEY_CONDUCTOR' , 'conductor');
define('MDATA_KEY_LANGUAGE' , 'language'); define('MDATA_KEY_LANGUAGE' , 'language');
define('MDATA_KEY_REPLAYGAIN' , 'replay_gain'); define('MDATA_KEY_REPLAYGAIN' , 'replay_gain');
define('MDATA_KEY_OWNER_ID' , 'owner_id'); define('MDATA_KEY_OWNER_ID' , 'owner_id');
define('MDATA_KEY_CUE_IN' , 'cuein');
define('MDATA_KEY_CUE_OUT' , 'cueout');
define('UI_MDATA_VALUE_FORMAT_FILE' , 'File'); define('UI_MDATA_VALUE_FORMAT_FILE' , 'File');
define('UI_MDATA_VALUE_FORMAT_STREAM' , 'live stream'); define('UI_MDATA_VALUE_FORMAT_STREAM' , 'live stream');

View File

@ -42,6 +42,7 @@ class ApiController extends Zend_Controller_Action
->addActionContext('notify-webstream-data' , 'json') ->addActionContext('notify-webstream-data' , 'json')
->addActionContext('get-stream-parameters' , 'json') ->addActionContext('get-stream-parameters' , 'json')
->addActionContext('push-stream-stats' , 'json') ->addActionContext('push-stream-stats' , 'json')
->addActionContext('update-stream-setting-table' , 'json')
->initContext(); ->initContext();
} }
@ -490,6 +491,7 @@ class ApiController extends Zend_Controller_Action
// If the file already exists we will update and make sure that // If the file already exists we will update and make sure that
// it's marked as 'exists'. // it's marked as 'exists'.
$file->setFileExistsFlag(true); $file->setFileExistsFlag(true);
$file->setFileHiddenFlag(false);
$file->setMetadata($md); $file->setMetadata($md);
} }
if ($md['is_record'] != 0) { if ($md['is_record'] != 0) {
@ -929,7 +931,7 @@ class ApiController extends Zend_Controller_Action
$data_arr = json_decode($data); $data_arr = json_decode($data);
if (!is_null($media_id)) { if (!is_null($media_id)) {
if (isset($data_arr->title) && if (isset($data_arr->title) &&
strlen($data_arr->title) < 1024) { strlen($data_arr->title) < 1024) {
$previous_metadata = CcWebstreamMetadataQuery::create() $previous_metadata = CcWebstreamMetadataQuery::create()
@ -965,7 +967,7 @@ class ApiController extends Zend_Controller_Action
$streams = array("s1", "s2", "s3"); $streams = array("s1", "s2", "s3");
$stream_params = array(); $stream_params = array();
foreach ($streams as $s) { foreach ($streams as $s) {
$stream_params[$s] = $stream_params[$s] =
Application_Model_StreamSetting::getStreamDataNormalized($s); Application_Model_StreamSetting::getStreamDataNormalized($s);
} }
$this->view->stream_params = $stream_params; $this->view->stream_params = $stream_params;
@ -978,5 +980,14 @@ class ApiController extends Zend_Controller_Action
Application_Model_ListenerStat::insertDataPoints($data); Application_Model_ListenerStat::insertDataPoints($data);
$this->view->data = $data; $this->view->data = $data;
} }
public function updateStreamSettingTableAction() {
$request = $this->getRequest();
$data = json_decode($request->getParam("data"), true);
foreach ($data as $k=>$v) {
Application_Model_StreamSetting::SetListenerStatError($k, $v);
}
}
} }

View File

@ -12,6 +12,7 @@ class LibraryController extends Zend_Controller_Action
$ajaxContext = $this->_helper->getHelper('AjaxContext'); $ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('contents-feed', 'json') $ajaxContext->addActionContext('contents-feed', 'json')
->addActionContext('delete', 'json') ->addActionContext('delete', 'json')
->addActionContext('duplicate', 'json')
->addActionContext('delete-group', 'json') ->addActionContext('delete-group', 'json')
->addActionContext('context-menu', 'json') ->addActionContext('context-menu', 'json')
->addActionContext('get-file-metadata', 'html') ->addActionContext('get-file-metadata', 'html')
@ -194,6 +195,7 @@ class LibraryController extends Zend_Controller_Action
} elseif ($type === "playlist" || $type === "block") { } elseif ($type === "playlist" || $type === "block") {
if ($type === 'playlist') { if ($type === 'playlist') {
$obj = new Application_Model_Playlist($id); $obj = new Application_Model_Playlist($id);
$menu["duplicate"] = array("name" => _("Duplicate Playlist"), "icon" => "edit", "url" => $baseUrl."/library/duplicate");
} elseif ($type === 'block') { } elseif ($type === 'block') {
$obj = new Application_Model_Block($id); $obj = new Application_Model_Block($id);
if (!$obj->isStatic()) { if (!$obj->isStatic()) {
@ -216,9 +218,11 @@ class LibraryController extends Zend_Controller_Action
$menu["del"] = array("name"=> _("Delete"), "icon" => "delete", "url" => $baseUrl."/library/delete"); $menu["del"] = array("name"=> _("Delete"), "icon" => "delete", "url" => $baseUrl."/library/delete");
} }
} elseif ($type == "stream") { } elseif ($type == "stream") {
$webstream = CcWebstreamQuery::create()->findPK($id); $webstream = CcWebstreamQuery::create()->findPK($id);
$obj = new Application_Model_Webstream($webstream); $obj = new Application_Model_Webstream($webstream);
$menu["play"]["mime"] = $webstream->getDbMime();
if (isset($obj_sess->id) && $screen == "playlist") { if (isset($obj_sess->id) && $screen == "playlist") {
if ($isAdminOrPM || $obj->getCreatorId() == $user->getId()) { if ($isAdminOrPM || $obj->getCreatorId() == $user->getId()) {
if ($obj_sess->type === "playlist") { if ($obj_sess->type === "playlist") {
@ -339,6 +343,37 @@ class LibraryController extends Zend_Controller_Action
$this->view->message = $message; $this->view->message = $message;
} }
} }
// duplicate playlist
public function duplicateAction(){
$params = $this->getRequest()->getParams();
$id = $params['id'];
$originalPl = new Application_Model_Playlist($id);
$newPl = new Application_Model_Playlist();
$contents = $originalPl->getContents();
foreach ($contents as &$c) {
if ($c['type'] == '0') {
$c[1] = 'audioclip';
} else if ($c['type'] == '2') {
$c[1] = 'block';
} else if ($c['type'] == '1') {
$c[1] = 'stream';
}
$c[0] = $c['item_id'];
}
$newPl->addAudioClips($contents, null, 'begining');
$newPl->setCreator(Application_Model_User::getCurrentUser()->getId());
$newPl->setDescription($originalPl->getDescription());
list($plFadeIn, ) = $originalPl->getFadeInfo(0);
list(, $plFadeOut) = $originalPl->getFadeInfo($originalPl->getSize()-1);
$newPl->setfades($plFadeIn, $plFadeOut);
$newPl->setName("Copy of ".$originalPl->getName());
}
public function contentsFeedAction() public function contentsFeedAction()
{ {

View File

@ -47,6 +47,15 @@ class ListenerstatController extends Zend_Controller_Action
'his_time_end' => $end->format("H:i") 'his_time_end' => $end->format("H:i")
)); ));
$errorStatus = Application_Model_StreamSetting::GetAllListenerStatErrors();
Logging::info($errorStatus);
$out = array();
foreach ($errorStatus as $v) {
$key = explode('_listener_stat_error', $v['keyname']);
$out[$key[0]] = $v['value'];
}
$this->view->errorStatus = $out;
$this->view->date_form = $form; $this->view->date_form = $form;
} }

View File

@ -4,9 +4,9 @@ class LocaleController extends Zend_Controller_Action
{ {
public function init() public function init()
{ {
$ajaxContext = $this->_helper->getHelper('AjaxContext'); $ajaxContext = $this->_helper->getHelper("AjaxContext");
$ajaxContext->addActionContext('general-translation-table', 'json') $ajaxContext->addActionContext("general-translation-table", "json")
->addActionContext('datatables-translation-table', 'json') ->addActionContext("datatables-translation-table", "json")
->initContext(); ->initContext();
} }
@ -20,10 +20,10 @@ class LocaleController extends Zend_Controller_Action
$locale = Application_Model_Preference::GetLocale(); $locale = Application_Model_Preference::GetLocale();
echo "var datatables_dict =" . echo "var datatables_dict =" .
file_get_contents(Application_Common_OsPath::join( file_get_contents(Application_Common_OsPath::join(
$_SERVER['DOCUMENT_ROOT'], $_SERVER["DOCUMENT_ROOT"],
$baseUrl, $baseUrl,
'/js/datatables/i18n/', "/js/datatables/i18n/",
$locale.'.txt') $locale.".txt")
); );
} }
@ -57,6 +57,7 @@ class LocaleController extends Zend_Controller_Action
//"Adding 1 Item" => _("Adding 1 Item"), //"Adding 1 Item" => _("Adding 1 Item"),
//"Adding %s Items" => _("Adding %s Items"), //"Adding %s Items" => _("Adding %s Items"),
//library/library.js //library/library.js
"Edit Metadata" => _("Edit Metadata"),
"Add to selected show" => _("Add to selected show"), "Add to selected show" => _("Add to selected show"),
"Select" => _("Select"), "Select" => _("Select"),
"Select this page" => _("Select this page"), "Select this page" => _("Select this page"),
@ -154,6 +155,7 @@ class LocaleController extends Zend_Controller_Action
"Composer" => _("Composer"), "Composer" => _("Composer"),
"Copyright" => _("Copyright"), "Copyright" => _("Copyright"),
"All" => _("All"), "All" => _("All"),
"Copied %s row%s to the clipboard" => _("Copied %s row%s to the clipboard"),
//preferences/musicdirs.js //preferences/musicdirs.js
"Choose Storage Folder" => _("Choose Storage Folder"), "Choose Storage Folder" => _("Choose Storage Folder"),
"Choose Folder to Watch" => _("Choose Folder to Watch"), "Choose Folder to Watch" => _("Choose Folder to Watch"),
@ -178,6 +180,7 @@ class LocaleController extends Zend_Controller_Action
"If your live streaming client does not ask for a username, this field should be 'source'." => _("If your live streaming client does not ask for a username, this field should be 'source'."), "If your live streaming client does not ask for a username, this field should be 'source'." => _("If your live streaming client does not ask for a username, this field should be 'source'."),
"If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted." "If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted."
=> _("If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted."), => _("If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted."),
"This is the admin username and password for Icecast/SHOUTcast to get listener statistics." => _("This is the admin username and password for Icecast/SHOUTcast to get listener statistics."),
//preferences/support-setting.js //preferences/support-setting.js
"Image must be one of jpg, jpeg, png, or gif" => _("Image must be one of jpg, jpeg, png, or gif"), "Image must be one of jpg, jpeg, png, or gif" => _("Image must be one of jpg, jpeg, png, or gif"),
//schedule/add-show.js //schedule/add-show.js
@ -206,7 +209,7 @@ class LocaleController extends Zend_Controller_Action
//"Error msg: " => _("Error msg: "), //"Error msg: " => _("Error msg: "),
"This show has no scheduled content." => _("This show has no scheduled content."), "This show has no scheduled content." => _("This show has no scheduled content."),
//already in schedule/add-show.js //already in schedule/add-show.js
//"The show instance doesn't exist anymore!" => _("The show instance doesn't exist anymore!"), //"The show instance doesn"t exist anymore!" => _("The show instance doesn"t exist anymore!"),
//schedule/schedule.js //schedule/schedule.js
"January" => _("January"), "January" => _("January"),
"February" => _("February"), "February" => _("February"),
@ -256,7 +259,7 @@ class LocaleController extends Zend_Controller_Action
"Ok" => _("Ok"), "Ok" => _("Ok"),
"Contents of Show" => _("Contents of Show"), "Contents of Show" => _("Contents of Show"),
//already in schedule/add-show.js //already in schedule/add-show.js
//"The show instance doesn't exist anymore!" => _("The show instance doesn't exist anymore!"), //"The show instance doesn"t exist anymore!" => _("The show instance doesn"t exist anymore!"),
"Remove all content?" => _("Remove all content?"), "Remove all content?" => _("Remove all content?"),
//showbuilder/builder.js //showbuilder/builder.js
"Delete selected item(s)?" => _("Delete selected item(s)?"), "Delete selected item(s)?" => _("Delete selected item(s)?"),
@ -276,8 +279,8 @@ class LocaleController extends Zend_Controller_Action
"Recording From Line In" => _("Recording From Line In"), "Recording From Line In" => _("Recording From Line In"),
"Track preview" => _("Track preview"), "Track preview" => _("Track preview"),
//already in library/spl.js //already in library/spl.js
//"Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore." //"Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn"t "watched" anymore."
//=> _("Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."), //=> _("Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn"t "watched" anymore."),
"Cannot schedule outside a show." => _("Cannot schedule outside a show."), "Cannot schedule outside a show." => _("Cannot schedule outside a show."),
"Moving 1 Item" => _("Moving 1 Item"), "Moving 1 Item" => _("Moving 1 Item"),
"Moving %s Items" => _("Moving %s Items"), "Moving %s Items" => _("Moving %s Items"),
@ -348,8 +351,37 @@ class LocaleController extends Zend_Controller_Action
//timepicker //timepicker
"Hour" => _("Hour"), "Hour" => _("Hour"),
"Minute" => _("Minute"), "Minute" => _("Minute"),
"Done" => _("Done") "Done" => _("Done"),
//plupload ships with translation files but a lot are incomplete
//so we will keep them here to prevent incomplete translations
"Select files" => _("Select files"),
"Add files to the upload queue and click the start button." => _("Add files to the upload queue and click the start button."),
"Filename" => _("Add files to the upload queue and click the start button."),
"Status" => _("Status"),
"Size" => _("Status"),
"Add Files" => _("Add Files"),
"Stop Upload" => _("Stop Upload"),
"Start upload" => _("Start upload"),
"Add files" => _("Add files"),
"Uploaded %d/%d files"=> _("Uploaded %d/%d files"),
"N/A" => _("N/A"),
"Drag files here." => _("Drag files here."),
"File extension error." => _("File extension error."),
"File size error." => _("File size error."),
"File count error." => _("File count error."),
"Init error." => _("Init error."),
"HTTP Error." => _("HTTP Error."),
"Security error." => _("Security error."),
"Generic error." => _("Generic error."),
"IO error." => _("IO error."),
"File: %s" => _("File: %s"),
"Close" => _("Close"),
"%d files queued" => _("%d files queued"),
"File: %f, size: %s, max file size: %m" => _("File: %f, size: %s, max file size: %m"),
"Upload URL might be wrong or doesn't exist" => _("Upload URL might be wrong or doesn't exist"),
"Error: File too large: " => _("Error: File too large: "),
"Error: Invalid file extension: " => _("Error: Invalid file extension: ")
); );
$this->view->layout()->disableLayout(); $this->view->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true); $this->_helper->viewRenderer->setNoRender(true);

View File

@ -44,8 +44,8 @@ class PreferenceController extends Zend_Controller_Action
Application_Model_Preference::SetHeadTitle($values["stationName"], $this->view); Application_Model_Preference::SetHeadTitle($values["stationName"], $this->view);
Application_Model_Preference::SetDefaultFade($values["stationDefaultFade"]); Application_Model_Preference::SetDefaultFade($values["stationDefaultFade"]);
Application_Model_Preference::SetAllow3rdPartyApi($values["thirdPartyApi"]); Application_Model_Preference::SetAllow3rdPartyApi($values["thirdPartyApi"]);
Application_Model_Preference::SetLocale($values["locale"]); Application_Model_Preference::SetDefaultLocale($values["locale"]);
Application_Model_Preference::SetTimezone($values["timezone"]); Application_Model_Preference::SetDefaultTimezone($values["timezone"]);
Application_Model_Preference::SetWeekStartDay($values["weekStartDay"]); Application_Model_Preference::SetWeekStartDay($values["weekStartDay"]);
Application_Model_Preference::SetEnableSystemEmail($values["enableSystemEmail"]); Application_Model_Preference::SetEnableSystemEmail($values["enableSystemEmail"]);
@ -66,7 +66,6 @@ class PreferenceController extends Zend_Controller_Action
Application_Model_Preference::SetSoundCloudGenre($values["SoundCloudGenre"]); Application_Model_Preference::SetSoundCloudGenre($values["SoundCloudGenre"]);
Application_Model_Preference::SetSoundCloudTrackType($values["SoundCloudTrackType"]); Application_Model_Preference::SetSoundCloudTrackType($values["SoundCloudTrackType"]);
Application_Model_Preference::SetSoundCloudLicense($values["SoundCloudLicense"]); Application_Model_Preference::SetSoundCloudLicense($values["SoundCloudLicense"]);
Application_Model_Preference::setReplayGainModifier($values["replayGainModifier"]);
$this->view->statusMsg = "<div class='success'>". _("Preferences updated.")."</div>"; $this->view->statusMsg = "<div class='success'>". _("Preferences updated.")."</div>";
$this->view->form = $form; $this->view->form = $form;
@ -256,6 +255,7 @@ class PreferenceController extends Zend_Controller_Action
Application_Model_Preference::SetDefaultTransitionFade($values["transition_fade"]); Application_Model_Preference::SetDefaultTransitionFade($values["transition_fade"]);
Application_Model_Preference::SetAutoTransition($values["auto_transition"]); Application_Model_Preference::SetAutoTransition($values["auto_transition"]);
Application_Model_Preference::SetAutoSwitch($values["auto_switch"]); Application_Model_Preference::SetAutoSwitch($values["auto_switch"]);
Application_Model_Preference::setReplayGainModifier($values["replayGainModifier"]);
if (!Application_Model_Preference::GetMasterDjConnectionUrlOverride()) { if (!Application_Model_Preference::GetMasterDjConnectionUrlOverride()) {
$master_connection_url = "http://".$_SERVER['SERVER_NAME'].":".$values["master_harbor_input_port"]."/".$values["master_harbor_input_mount_point"]; $master_connection_url = "http://".$_SERVER['SERVER_NAME'].":".$values["master_harbor_input_port"]."/".$values["master_harbor_input_mount_point"];
@ -284,6 +284,7 @@ class PreferenceController extends Zend_Controller_Action
Application_Model_StreamSetting::setMasterLiveStreamMountPoint($values["master_harbor_input_mount_point"]); Application_Model_StreamSetting::setMasterLiveStreamMountPoint($values["master_harbor_input_mount_point"]);
Application_Model_StreamSetting::setDjLiveStreamPort($values["dj_harbor_input_port"]); Application_Model_StreamSetting::setDjLiveStreamPort($values["dj_harbor_input_port"]);
Application_Model_StreamSetting::setDjLiveStreamMountPoint($values["dj_harbor_input_mount_point"]); Application_Model_StreamSetting::setDjLiveStreamMountPoint($values["dj_harbor_input_mount_point"]);
Application_Model_StreamSetting::setOffAirMeta($values['offAirMeta']);
// store stream update timestamp // store stream update timestamp
Application_Model_Preference::SetStreamUpdateTimestamp(); Application_Model_Preference::SetStreamUpdateTimestamp();

View File

@ -56,9 +56,11 @@ class UserController extends Zend_Controller_Action
die(json_encode(array("valid"=>"false", "html"=>$this->view->render('user/add-user.phtml')))); die(json_encode(array("valid"=>"false", "html"=>$this->view->render('user/add-user.phtml'))));
} elseif ($form->validateLogin($formData)) { } elseif ($form->validateLogin($formData)) {
$user = new Application_Model_User($formData['user_id']); $user = new Application_Model_User($formData['user_id']);
if (empty($formData['user_id'])) {
$user->setLogin($formData['login']);
}
$user->setFirstName($formData['first_name']); $user->setFirstName($formData['first_name']);
$user->setLastName($formData['last_name']); $user->setLastName($formData['last_name']);
$user->setLogin($formData['login']);
// We don't allow 6 x's as a password. // We don't allow 6 x's as a password.
// The reason is because we that as a password placeholder // The reason is because we that as a password placeholder
// on the client side. // on the client side.
@ -72,6 +74,12 @@ class UserController extends Zend_Controller_Action
$user->setJabber($formData['jabber']); $user->setJabber($formData['jabber']);
$user->save(); $user->save();
// Language and timezone settings are saved on a per-user basis
// By default, the default language, and timezone setting on
// preferences page is what gets assigned.
Application_Model_Preference::SetUserLocale($user->getId());
Application_Model_Preference::SetUserTimezone($user->getId());
$form->reset(); $form->reset();
$this->view->form = $form; $this->view->form = $form;
@ -138,7 +146,6 @@ class UserController extends Zend_Controller_Action
$user = new Application_Model_User($formData['cu_user_id']); $user = new Application_Model_User($formData['cu_user_id']);
$user->setFirstName($formData['cu_first_name']); $user->setFirstName($formData['cu_first_name']);
$user->setLastName($formData['cu_last_name']); $user->setLastName($formData['cu_last_name']);
$user->setLogin($formData['cu_login']);
// We don't allow 6 x's as a password. // We don't allow 6 x's as a password.
// The reason is because we use that as a password placeholder // The reason is because we use that as a password placeholder
// on the client side. // on the client side.
@ -150,6 +157,8 @@ class UserController extends Zend_Controller_Action
$user->setSkype($formData['cu_skype']); $user->setSkype($formData['cu_skype']);
$user->setJabber($formData['cu_jabber']); $user->setJabber($formData['cu_jabber']);
$user->save(); $user->save();
Application_Model_Preference::SetUserLocale($user->getId(), $formData['cu_locale']);
Application_Model_Preference::SetUserTimezone($user->getId(), $formData['cu_timezone']);
$this->view->successMessage = "<div class='success'>"._("User updated successfully!")."</div>"; $this->view->successMessage = "<div class='success'>"._("User updated successfully!")."</div>";
} }
$this->view->form = $form; $this->view->form = $form;

View File

@ -152,7 +152,10 @@ class Zend_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract
$resourceName .= $controller; $resourceName .= $controller;
/** Check if the controller/action can be accessed by the current user */ /** Check if the controller/action can be accessed by the current user */
if (!$this->getAcl()->isAllowed($this->_roleName, $resourceName, $request->getActionName())) { if (!$this->getAcl()->has($resourceName)
|| !$this->getAcl()->isAllowed($this->_roleName,
$resourceName,
$request->getActionName())) {
/** Redirect to access denied page */ /** Redirect to access denied page */
$this->denyAccess(); $this->denyAccess();
} }

View File

@ -12,7 +12,8 @@ class Application_Form_EditUser extends Zend_Form
* */ * */
$currentUser = Application_Model_User::getCurrentUser(); $currentUser = Application_Model_User::getCurrentUser();
$userData = Application_Model_User::GetUserData($currentUser->getId()); $currentUserId = $currentUser->getId();
$userData = Application_Model_User::GetUserData($currentUserId);
$notEmptyValidator = Application_Form_Helper_ValidationTypes::overrideNotEmptyValidator(); $notEmptyValidator = Application_Form_Helper_ValidationTypes::overrideNotEmptyValidator();
$emailValidator = Application_Form_Helper_ValidationTypes::overrideEmailAddressValidator(); $emailValidator = Application_Form_Helper_ValidationTypes::overrideEmailAddressValidator();
@ -29,6 +30,7 @@ class Application_Form_EditUser extends Zend_Form
$login->setLabel(_('Username:')); $login->setLabel(_('Username:'));
$login->setValue($userData["login"]); $login->setValue($userData["login"]);
$login->setAttrib('class', 'input_text'); $login->setAttrib('class', 'input_text');
$login->setAttrib('readonly', 'readonly');
$login->setRequired(true); $login->setRequired(true);
$login->addValidator($notEmptyValidator); $login->addValidator($notEmptyValidator);
$login->addFilter('StringTrim'); $login->addFilter('StringTrim');
@ -96,14 +98,19 @@ class Application_Form_EditUser extends Zend_Form
$jabber->setDecorators(array('viewHelper')); $jabber->setDecorators(array('viewHelper'));
$this->addElement($jabber); $this->addElement($jabber);
/* $locale = new Zend_Form_Element_Select("cu_locale");
$saveBtn = new Zend_Form_Element_Button('cu_save_user'); $locale->setLabel(_("Language:"));
$saveBtn->setAttrib('class', 'btn btn-small right-floated'); $locale->setMultiOptions(Application_Model_Locale::getLocales());
$saveBtn->setIgnore(true); $locale->setValue(Application_Model_Preference::GetUserLocale($currentUserId));
$saveBtn->setLabel(_('Save')); $locale->setDecorators(array('ViewHelper'));
$saveBtn->setDecorators(array('viewHelper')); $this->addElement($locale);
$this->addElement($saveBtn);
*/ $timezone = new Zend_Form_Element_Select("cu_timezone");
$timezone->setLabel(_("Timezone:"));
$timezone->setMultiOptions(Application_Common_Timezone::getTimezones());
$timezone->setValue(Application_Model_Preference::GetUserTimezone($currentUserId));
$timezone->setDecorators(array('ViewHelper'));
$this->addElement($timezone);
} }
public function validateLogin($p_login, $p_userId) { public function validateLogin($p_login, $p_userId) {

View File

@ -51,19 +51,19 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm
$third_party_api->setValue(Application_Model_Preference::GetAllow3rdPartyApi()); $third_party_api->setValue(Application_Model_Preference::GetAllow3rdPartyApi());
$third_party_api->setDecorators(array('ViewHelper')); $third_party_api->setDecorators(array('ViewHelper'));
$this->addElement($third_party_api); $this->addElement($third_party_api);
$locale = new Zend_Form_Element_Select("locale"); $locale = new Zend_Form_Element_Select("locale");
$locale->setLabel(_("Language")); $locale->setLabel(_("Default Interface Language"));
$locale->setMultiOptions(Application_Model_Locale::getLocales()); $locale->setMultiOptions(Application_Model_Locale::getLocales());
$locale->setValue(Application_Model_Preference::GetLocale()); $locale->setValue(Application_Model_Preference::GetDefaultLocale());
$locale->setDecorators(array('ViewHelper')); $locale->setDecorators(array('ViewHelper'));
$this->addElement($locale); $this->addElement($locale);
/* Form Element for setting the Timezone */ /* Form Element for setting the Timezone */
$timezone = new Zend_Form_Element_Select("timezone"); $timezone = new Zend_Form_Element_Select("timezone");
$timezone->setLabel(_("Timezone")); $timezone->setLabel(_("Default Interface Timezone"));
$timezone->setMultiOptions($this->getTimezones()); $timezone->setMultiOptions(Application_Common_Timezone::getTimezones());
$timezone->setValue(Application_Model_Preference::GetTimezone()); $timezone->setValue(Application_Model_Preference::GetDefaultTimezone());
$timezone->setDecorators(array('ViewHelper')); $timezone->setDecorators(array('ViewHelper'));
$this->addElement($timezone); $this->addElement($timezone);
@ -74,40 +74,6 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm
$week_start_day->setValue(Application_Model_Preference::GetWeekStartDay()); $week_start_day->setValue(Application_Model_Preference::GetWeekStartDay());
$week_start_day->setDecorators(array('ViewHelper')); $week_start_day->setDecorators(array('ViewHelper'));
$this->addElement($week_start_day); $this->addElement($week_start_day);
$replay_gain = new Zend_Form_Element_Hidden("replayGainModifier");
$replay_gain->setLabel(_("Replay Gain Modifier"))
->setValue(Application_Model_Preference::getReplayGainModifier())
->setAttribs(array('style' => "border: 0; color: #f6931f; font-weight: bold;"))
->setDecorators(array('ViewHelper'));
$this->addElement($replay_gain);
}
private function getTimezones()
{
$regions = array(
'Africa' => DateTimeZone::AFRICA,
'America' => DateTimeZone::AMERICA,
'Antarctica' => DateTimeZone::ANTARCTICA,
'Arctic' => DateTimeZone::ARCTIC,
'Asia' => DateTimeZone::ASIA,
'Atlantic' => DateTimeZone::ATLANTIC,
'Australia' => DateTimeZone::AUSTRALIA,
'Europe' => DateTimeZone::EUROPE,
'Indian' => DateTimeZone::INDIAN,
'Pacific' => DateTimeZone::PACIFIC
);
$tzlist = array();
foreach ($regions as $name => $mask) {
$ids = DateTimeZone::listIdentifiers($mask);
foreach ($ids as $id) {
$tzlist[$id] = str_replace("_", " ", $id);
}
}
return $tzlist;
} }
private function getWeekStartDays() private function getWeekStartDays()

View File

@ -58,6 +58,19 @@ class Application_Form_StreamSetting extends Zend_Form
$stream_format->setValue(Application_Model_Preference::GetStreamLabelFormat()); $stream_format->setValue(Application_Model_Preference::GetStreamLabelFormat());
$stream_format->setDecorators(array('ViewHelper')); $stream_format->setDecorators(array('ViewHelper'));
$this->addElement($stream_format); $this->addElement($stream_format);
$offAirMeta = new Zend_Form_Element_Text('offAirMeta');
$offAirMeta->setLabel(_('Off Air Meatadata'))
->setValue(Application_Model_StreamSetting::getOffAirMeta())
->setDecorators(array('ViewHelper'));
$this->addElement($offAirMeta);
$replay_gain = new Zend_Form_Element_Hidden("replayGainModifier");
$replay_gain->setLabel(_("Replay Gain Modifier"))
->setValue(Application_Model_Preference::getReplayGainModifier())
->setAttribs(array('style' => "border: 0; color: #f6931f; font-weight: bold;"))
->setDecorators(array('ViewHelper'));
$this->addElement($replay_gain);
} }
public function isValid($data) public function isValid($data)

View File

@ -190,6 +190,30 @@ class Application_Form_StreamSettingSubForm extends Zend_Form_SubForm
} }
$user->setAttrib('alt', 'regular_text'); $user->setAttrib('alt', 'regular_text');
$this->addElement($user); $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 = '<div class="stream-status status-info"><h3>'._('Getting information from the server...').'</h3></div>'; $liquidsopa_error_msg = '<div class="stream-status status-info"><h3>'._('Getting information from the server...').'</h3></div>';

View File

@ -3,8 +3,8 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo _("Audio Player")?></title> <title><?php echo _("Audio Player")?></title>
<?php echo $this->headScript() ?>
<?php echo $this->headLink() ?> <?php echo $this->headLink() ?>
<?php echo $this->headScript() ?>
<?php echo isset($this->google_analytics)?$this->google_analytics:"" ?> <?php echo isset($this->google_analytics)?$this->google_analytics:"" ?>
</head> </head>
<body> <body>

View File

@ -3,8 +3,8 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo _("Live stream") ?></title> <title><?php echo _("Live stream") ?></title>
<?php echo $this->headScript() ?>
<?php echo $this->headLink() ?> <?php echo $this->headLink() ?>
<?php echo $this->headScript() ?>
<?php echo isset($this->google_analytics)?$this->google_analytics:"" ?> <?php echo isset($this->google_analytics)?$this->google_analytics:"" ?>
</head> </head>
<body> <body>

View File

@ -3,8 +3,8 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php echo $this->headTitle() ?> <?php echo $this->headTitle() ?>
<?php echo $this->headScript() ?>
<?php echo $this->headLink() ?> <?php echo $this->headLink() ?>
<?php echo $this->headScript() ?>
<?php echo isset($this->google_analytics)?$this->google_analytics:"" ?> <?php echo isset($this->google_analytics)?$this->google_analytics:"" ?>
<?php $baseUrl = Application_Common_OsPath::getBaseDir(); ?> <?php $baseUrl = Application_Common_OsPath::getBaseDir(); ?>
</head> </head>
@ -24,7 +24,7 @@
<div class="personal-block solo"> <div class="personal-block solo">
<ul> <ul>
<li> <li>
<a id="current-user" href="#"><span class="name"><?php echo $this->loggedInAs()?></span></a> | <a href=<?php echo $baseUrl . "/Login/logout"?>><?php echo _("Logout")?></a> <a id="current-user" href=<?php echo $baseUrl . "/User/edit-user"?>><span class="name"><?php echo $this->loggedInAs()?></span></a> | <a href=<?php echo $baseUrl . "/Login/logout"?>><?php echo _("Logout")?></a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -3,8 +3,8 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php echo $this->headTitle() ?> <?php echo $this->headTitle() ?>
<?php echo $this->headScript() ?>
<?php echo $this->headLink() ?> <?php echo $this->headLink() ?>
<?php echo $this->headScript() ?>
<?php echo isset($this->google_analytics)?$this->google_analytics:"" ?> <?php echo isset($this->google_analytics)?$this->google_analytics:"" ?>
</head> </head>
<body> <body>

View File

@ -400,7 +400,8 @@ SQL;
$entry["id"] = $file->getDbId(); $entry["id"] = $file->getDbId();
$entry["pos"] = $pos; $entry["pos"] = $pos;
$entry["cliplength"] = $file->getDbLength(); $entry["cliplength"] = $file->getDbLength();
$entry["cueout"] = $file->getDbLength(); $entry["cueout"] = $file->getDbCueout();
$entry["cuein"] = $file->getDbCuein();
return $entry; return $entry;
} else { } else {

View File

@ -395,7 +395,10 @@ SQL;
$entry["id"] = $obj->getDbId(); $entry["id"] = $obj->getDbId();
$entry["pos"] = $pos; $entry["pos"] = $pos;
$entry["cliplength"] = $obj->getDbLength(); $entry["cliplength"] = $obj->getDbLength();
$entry["cueout"] = $obj->getDbLength(); if ($obj instanceof CcFiles && $obj) {
$entry["cuein"] = $obj->getDbCuein();
$entry["cueout"] = $obj->getDbCueout();
}
$entry["ftype"] = $objType; $entry["ftype"] = $objType;
} }
@ -635,7 +638,7 @@ SQL;
//setting it to nonNull for checks down below //setting it to nonNull for checks down below
$fadeIn = $fadeIn?'00:00:'.$fadeIn:$fadeIn; $fadeIn = $fadeIn?'00:00:'.$fadeIn:$fadeIn;
$fadeOut = $fadeOut?'00:00:'.$fadeOut:$fadeOut; $fadeOut = $fadeOut?'00:00:'.$fadeOut:$fadeOut;
$this->con->beginTransaction(); $this->con->beginTransaction();
try { try {
@ -646,7 +649,6 @@ SQL;
} }
$clipLength = $row->getDbCliplength(); $clipLength = $row->getDbCliplength();
if (!is_null($fadeIn)) { if (!is_null($fadeIn)) {
$sql = "SELECT :fadein::INTERVAL > INTERVAL '{$clipLength}'"; $sql = "SELECT :fadein::INTERVAL > INTERVAL '{$clipLength}'";
@ -665,11 +667,9 @@ SQL;
} }
$row->setDbFadeout($fadeOut); $row->setDbFadeout($fadeOut);
} }
$row->save($this->con);
$this->pl->setDbMtime(new DateTime("now", new DateTimeZone("UTC"))); $this->pl->setDbMtime(new DateTime("now", new DateTimeZone("UTC")));
$this->pl->save($this->con); $this->pl->save($this->con);
$this->con->commit(); $this->con->commit();
} catch (Exception $e) { } catch (Exception $e) {
$this->con->rollback(); $this->con->rollback();
@ -690,7 +690,6 @@ SQL;
$this->changeFadeInfo($row->getDbId(), $fadein, null); $this->changeFadeInfo($row->getDbId(), $fadein, null);
} }
if (isset($fadeout)) { if (isset($fadeout)) {
Logging::info("Setting playlist fade out {$fadeout}"); Logging::info("Setting playlist fade out {$fadeout}");
$row = CcPlaylistcontentsQuery::create() $row = CcPlaylistcontentsQuery::create()

View File

@ -3,7 +3,12 @@
class Application_Model_Preference 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 { try {
//called from a daemon process //called from a daemon process
@ -22,9 +27,12 @@ class Application_Model_Preference
$paramMap[':key'] = $key; $paramMap[':key'] = $key;
//For user specific preference, check if id matches as well //For user specific preference, check if id matches as well
if ($isUserValue) { if ($isUserValue && is_null($userId)) {
$sql .= " AND subjid = :id"; $sql .= " AND subjid = :id";
$paramMap[':id'] = $id; $paramMap[':id'] = $id;
} else if (!is_null($userId)) {
$sql .= " AND subjid= :id";
$paramMap[':id'] = $userId;
} }
$result = Application_Common_Database::prepareAndExecute($sql, $paramMap, 'column'); $result = Application_Common_Database::prepareAndExecute($sql, $paramMap, 'column');
@ -42,7 +50,11 @@ class Application_Model_Preference
$sql = "UPDATE cc_pref" $sql = "UPDATE cc_pref"
. " SET valstr = :value" . " SET valstr = :value"
. " WHERE keystr = :key AND subjid = :id"; . " WHERE keystr = :key AND subjid = :id";
$paramMap[':id'] = $id; if (is_null($userId)) {
$paramMap[':id'] = $id;
} else {
$paramMap[':id'] = $userId;
}
} }
} else { } else {
// result not found // result not found
@ -54,7 +66,11 @@ class Application_Model_Preference
// user pref // user pref
$sql = "INSERT INTO cc_pref (subjid, keystr, valstr)" $sql = "INSERT INTO cc_pref (subjid, keystr, valstr)"
." VALUES (:id, :key, :value)"; ." VALUES (:id, :key, :value)";
$paramMap[':id'] = $id; if (is_null($userId)) {
$paramMap[':id'] = $id;
} else {
$paramMap[':id'] = $userId;
}
} }
} }
$paramMap[':key'] = $key; $paramMap[':key'] = $key;
@ -418,27 +434,80 @@ class Application_Model_Preference
return self::getValue("description"); return self::getValue("description");
} }
public static function SetTimezone($timezone) public static function SetDefaultTimezone($timezone)
{ {
self::setValue("timezone", $timezone); self::setValue("timezone", $timezone);
date_default_timezone_set($timezone); date_default_timezone_set($timezone);
} }
public static function GetTimezone() public static function GetDefaultTimezone()
{ {
return self::getValue("timezone"); return self::getValue("timezone");
} }
public static function SetLocale($locale) public static function SetUserTimezone($userId, $timezone = null)
{
// When a new user is created they will get the default timezone
// setting which the admin sets on preferences page
if (is_null($timezone)) {
$timezone = self::GetDefaultTimezone();
}
self::setValue("user_".$userId."_timezone", $timezone, true, $userId);
}
public static function GetUserTimezone($id)
{
return self::getValue("user_".$id."_timezone", true);
}
public static function GetTimezone()
{
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$id = $auth->getIdentity()->id;
return self::GetUserTimezone($id);
} else {
return self::GetDefaultTimezone();
}
}
// This is the language setting on preferences page
public static function SetDefaultLocale($locale)
{ {
self::setValue("locale", $locale); self::setValue("locale", $locale);
} }
public static function GetLocale() public static function GetDefaultLocale()
{ {
return self::getValue("locale"); return self::getValue("locale");
} }
public static function GetUserLocale($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::GetDefaultLocale();
}
self::setValue("user_".$userId."_locale", $locale, true, $userId);
}
public static function GetLocale()
{
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$id = $auth->getIdentity()->id;
return self::GetUserLocale($id);
} else {
return self::GetDefaultLocale();
}
}
public static function SetStationLogo($imagePath) public static function SetStationLogo($imagePath)
{ {
if (!empty($imagePath)) { if (!empty($imagePath)) {

View File

@ -143,7 +143,8 @@ class Application_Model_Scheduler
$data = $this->fileInfo; $data = $this->fileInfo;
$data["id"] = $id; $data["id"] = $id;
$data["cliplength"] = $file->getDbLength(); $data["cliplength"] = $file->getDbLength();
$data["cueout"] = $file->getDbLength(); $data["cuein"] = $file->getDbCuein();
$data["cueout"] = $file->getDbCueout();
$defaultFade = Application_Model_Preference::GetDefaultFade(); $defaultFade = Application_Model_Preference::GetDefaultFade();
if (isset($defaultFade)) { if (isset($defaultFade)) {

View File

@ -1801,6 +1801,8 @@ SQL;
$options["show_empty"] = (array_key_exists($show['instance_id'], $options["show_empty"] = (array_key_exists($show['instance_id'],
$content_count)) ? 0 : 1; $content_count)) ? 0 : 1;
$options["show_partial_filled"] = $showInstance->showPartialFilled();
$events[] = &self::makeFullCalendarEvent($show, $options, $events[] = &self::makeFullCalendarEvent($show, $options,
$startsDT, $endsDT, $startsEpochStr, $endsEpochStr); $startsDT, $endsDT, $startsEpochStr, $endsEpochStr);

View File

@ -687,6 +687,22 @@ SQL;
} }
public function showPartialFilled()
{
$sql = <<<SQL
SELECT time_filled > '00:00:00'
AND time_filled < ends - starts
AND file_id IS null AS partial_filled
FROM cc_show_instances
WHERE id = :instance_id
SQL;
$res = Application_Common_Database::prepareAndExecute($sql,
array(':instance_id' => $this->_instanceId), 'all');
return $res[0]["partial_filled"];
}
public function showEmpty() public function showEmpty()
{ {
$sql = <<<SQL $sql = <<<SQL

View File

@ -48,7 +48,9 @@ class Application_Model_StoredFile
"language" => "DbLanguage", "language" => "DbLanguage",
"replay_gain" => "DbReplayGain", "replay_gain" => "DbReplayGain",
"directory" => "DbDirectory", "directory" => "DbDirectory",
"owner_id" => "DbOwnerId" "owner_id" => "DbOwnerId",
"cuein" => "DbCueIn",
"cueout" => "DbCueOut",
); );
public function getId() public function getId()
@ -438,7 +440,7 @@ SQL;
return "flac"; return "flac";
} elseif ($mime == "audio/mp4") { } elseif ($mime == "audio/mp4") {
return "mp4"; return "mp4";
} else { } else {
throw new Exception("Unknown $mime"); throw new Exception("Unknown $mime");
} }
} }
@ -559,10 +561,10 @@ SQL;
public static function Recall($p_id=null, $p_gunid=null, $p_md5sum=null, public static function Recall($p_id=null, $p_gunid=null, $p_md5sum=null,
$p_filepath=null) { $p_filepath=null) {
if( isset($p_id ) ) { if( isset($p_id ) ) {
$f = CcFilesQuery::create()->findPK(intval($p_id)); $f = CcFilesQuery::create()->findPK(intval($p_id));
return is_null($f) ? null : self::createWithFile($f); return is_null($f) ? null : self::createWithFile($f);
} elseif ( isset($p_gunid) ) { } elseif ( isset($p_gunid) ) {
throw new Exception("You should never use gunid ($gunid) anymore"); throw new Exception("You should never use gunid ($gunid) anymore");
} elseif ( isset($p_md5sum) ) { } elseif ( isset($p_md5sum) ) {
throw new Exception("Searching by md5($p_md5sum) is disabled"); throw new Exception("Searching by md5($p_md5sum) is disabled");
@ -709,6 +711,11 @@ SQL;
$blSelect[] = "NULL::VARCHAR AS ".$key; $blSelect[] = "NULL::VARCHAR AS ".$key;
$fileSelect[] = $key; $fileSelect[] = $key;
$streamSelect[] = "url AS ".$key; $streamSelect[] = "url AS ".$key;
} else if ($key == "mime") {
$plSelect[] = "NULL::VARCHAR AS ".$key;
$blSelect[] = "NULL::VARCHAR AS ".$key;
$fileSelect[] = $key;
$streamSelect[] = $key;
} else { } else {
$plSelect[] = "NULL::text AS ".$key; $plSelect[] = "NULL::text AS ".$key;
$blSelect[] = "NULL::text AS ".$key; $blSelect[] = "NULL::text AS ".$key;
@ -790,7 +797,7 @@ SQL;
//generalized within the project access to zend view methods //generalized within the project access to zend view methods
//to access url helpers is needed. //to access url helpers is needed.
// TODO : why is there inline html here? breaks abstraction and is // TODO : why is there inline html here? breaks abstraction and is
// ugly // ugly
if ($type == "au") { if ($type == "au") {
$row['audioFile'] = $row['id'].".".pathinfo($row['filepath'], PATHINFO_EXTENSION); $row['audioFile'] = $row['id'].".".pathinfo($row['filepath'], PATHINFO_EXTENSION);
@ -1038,7 +1045,7 @@ SQL;
$sql = <<<SQL $sql = <<<SQL
SELECT filepath AS fp SELECT filepath AS fp
FROM CC_FILES AS f FROM CC_FILES AS f
WHERE f.directory = :dir_id WHERE f.directory = :dir_id
SQL; SQL;
# TODO : the option $all is deprecated now and is always true. # TODO : the option $all is deprecated now and is always true.
@ -1177,6 +1184,11 @@ SQL;
$this->_file->setDbFileExists($flag) $this->_file->setDbFileExists($flag)
->save(); ->save();
} }
public function setFileHiddenFlag($flag)
{
$this->_file->setDbHidden($flag)
->save();
}
public function setSoundCloudUploadTime($time) public function setSoundCloudUploadTime($time)
{ {
$this->_file->setDbSoundCloundUploadTime($time) $this->_file->setDbSoundCloundUploadTime($time)
@ -1185,7 +1197,7 @@ SQL;
// This method seems to be unsued everywhere so I've commented it out // This method seems to be unsued everywhere so I've commented it out
// If it's absence does not have any effect then it will be completely // If it's absence does not have any effect then it will be completely
// removed soon // removed soon
//public function getFileExistsFlag() //public function getFileExistsFlag()
//{ //{

View File

@ -163,7 +163,7 @@ class Application_Model_StreamSetting
$con = Propel::getConnection(); $con = Propel::getConnection();
$sql = "SELECT *" $sql = "SELECT *"
." FROM cc_stream_setting" ." FROM cc_stream_setting"
." WHERE keyname not like '%_error'"; ." WHERE keyname not like '%_error' AND keyname not like '%_admin_%'";
$rows = $con->query($sql)->fetchAll(); $rows = $con->query($sql)->fetchAll();
@ -433,4 +433,37 @@ class Application_Model_StreamSetting
{ {
return self::getValue("dj_live_stream_mp"); 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");
}
public static function getOffAirMeta(){
return self::getValue("off_air_meta");
}
public static function setOffAirMeta($offAirMeta){
self::setValue("off_air_meta", $offAirMeta, "string");
}
public static function GetAllListenerStatErrors(){
$sql = "SELECT * FROM cc_stream_setting WHERE keyname like :p1";
return Application_Common_Database::prepareAndExecute($sql, array(':p1'=>'%_listener_stat_error'));
}
public static function SetListenerStatError($key, $v) {
self::setValue($key, $v, 'string');
}
} }

View File

@ -68,7 +68,8 @@ class CcPlaylistcontents extends BaseCcPlaylistcontents {
$this->fadein = $dt->format('H:i:s').".".$microsecond; $this->fadein = $dt->format('H:i:s').".".$microsecond;
} }
$this->modifiedColumns[] = CcPlaylistcontentsPeer::FADEIN; $this->modifiedColumns[] = CcPlaylistcontentsPeer::FADEIN;
$this->save();
return $this; return $this;
} // setDbFadein() } // setDbFadein()
@ -105,7 +106,8 @@ class CcPlaylistcontents extends BaseCcPlaylistcontents {
$this->fadeout = $dt->format('H:i:s').".".$microsecond; $this->fadeout = $dt->format('H:i:s').".".$microsecond;
} }
$this->modifiedColumns[] = CcPlaylistcontentsPeer::FADEOUT; $this->modifiedColumns[] = CcPlaylistcontentsPeer::FADEOUT;
$this->save();
return $this; return $this;
} // setDbFadeout() } // setDbFadeout()

View File

@ -102,6 +102,8 @@ class CcFilesTableMap extends TableMap {
$this->addColumn('SOUNDCLOUD_UPLOAD_TIME', 'DbSoundCloundUploadTime', 'TIMESTAMP', false, 6, null); $this->addColumn('SOUNDCLOUD_UPLOAD_TIME', 'DbSoundCloundUploadTime', 'TIMESTAMP', false, 6, null);
$this->addColumn('REPLAY_GAIN', 'DbReplayGain', 'NUMERIC', false, null, null); $this->addColumn('REPLAY_GAIN', 'DbReplayGain', 'NUMERIC', false, null, null);
$this->addForeignKey('OWNER_ID', 'DbOwnerId', 'INTEGER', 'cc_subjs', 'ID', false, null, null); $this->addForeignKey('OWNER_ID', 'DbOwnerId', 'INTEGER', 'cc_subjs', 'ID', false, null, null);
$this->addColumn('CUEIN', 'DbCuein', 'VARCHAR', false, null, '00:00:00');
$this->addColumn('CUEOUT', 'DbCueout', 'VARCHAR', false, null, '00:00:00');
$this->addColumn('HIDDEN', 'DbHidden', 'BOOLEAN', false, null, false); $this->addColumn('HIDDEN', 'DbHidden', 'BOOLEAN', false, null, false);
// validators // validators
} // initialize() } // initialize()

View File

@ -416,6 +416,20 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
*/ */
protected $owner_id; protected $owner_id;
/**
* The value for the cuein field.
* Note: this column has a database default value of: '00:00:00'
* @var string
*/
protected $cuein;
/**
* The value for the cueout field.
* Note: this column has a database default value of: '00:00:00'
* @var string
*/
protected $cueout;
/** /**
* The value for the hidden field. * The value for the hidden field.
* Note: this column has a database default value of: false * Note: this column has a database default value of: false
@ -488,6 +502,8 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$this->currentlyaccessing = 0; $this->currentlyaccessing = 0;
$this->length = '00:00:00'; $this->length = '00:00:00';
$this->file_exists = true; $this->file_exists = true;
$this->cuein = '00:00:00';
$this->cueout = '00:00:00';
$this->hidden = false; $this->hidden = false;
} }
@ -1233,6 +1249,26 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
return $this->owner_id; return $this->owner_id;
} }
/**
* Get the [cuein] column value.
*
* @return string
*/
public function getDbCuein()
{
return $this->cuein;
}
/**
* Get the [cueout] column value.
*
* @return string
*/
public function getDbCueout()
{
return $this->cueout;
}
/** /**
* Get the [hidden] column value. * Get the [hidden] column value.
* *
@ -2651,6 +2687,46 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
return $this; return $this;
} // setDbOwnerId() } // setDbOwnerId()
/**
* Set the value of [cuein] column.
*
* @param string $v new value
* @return CcFiles The current object (for fluent API support)
*/
public function setDbCuein($v)
{
if ($v !== null) {
$v = (string) $v;
}
if ($this->cuein !== $v || $this->isNew()) {
$this->cuein = $v;
$this->modifiedColumns[] = CcFilesPeer::CUEIN;
}
return $this;
} // setDbCuein()
/**
* Set the value of [cueout] column.
*
* @param string $v new value
* @return CcFiles The current object (for fluent API support)
*/
public function setDbCueout($v)
{
if ($v !== null) {
$v = (string) $v;
}
if ($this->cueout !== $v || $this->isNew()) {
$this->cueout = $v;
$this->modifiedColumns[] = CcFilesPeer::CUEOUT;
}
return $this;
} // setDbCueout()
/** /**
* Set the value of [hidden] column. * Set the value of [hidden] column.
* *
@ -2713,6 +2789,14 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
return false; return false;
} }
if ($this->cuein !== '00:00:00') {
return false;
}
if ($this->cueout !== '00:00:00') {
return false;
}
if ($this->hidden !== false) { if ($this->hidden !== false) {
return false; return false;
} }
@ -2803,7 +2887,9 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$this->soundcloud_upload_time = ($row[$startcol + 61] !== null) ? (string) $row[$startcol + 61] : null; $this->soundcloud_upload_time = ($row[$startcol + 61] !== null) ? (string) $row[$startcol + 61] : null;
$this->replay_gain = ($row[$startcol + 62] !== null) ? (string) $row[$startcol + 62] : null; $this->replay_gain = ($row[$startcol + 62] !== null) ? (string) $row[$startcol + 62] : null;
$this->owner_id = ($row[$startcol + 63] !== null) ? (int) $row[$startcol + 63] : null; $this->owner_id = ($row[$startcol + 63] !== null) ? (int) $row[$startcol + 63] : null;
$this->hidden = ($row[$startcol + 64] !== null) ? (boolean) $row[$startcol + 64] : null; $this->cuein = ($row[$startcol + 64] !== null) ? (string) $row[$startcol + 64] : null;
$this->cueout = ($row[$startcol + 65] !== null) ? (string) $row[$startcol + 65] : null;
$this->hidden = ($row[$startcol + 66] !== null) ? (boolean) $row[$startcol + 66] : null;
$this->resetModified(); $this->resetModified();
$this->setNew(false); $this->setNew(false);
@ -2812,7 +2898,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$this->ensureConsistency(); $this->ensureConsistency();
} }
return $startcol + 65; // 65 = CcFilesPeer::NUM_COLUMNS - CcFilesPeer::NUM_LAZY_LOAD_COLUMNS). return $startcol + 67; // 67 = CcFilesPeer::NUM_COLUMNS - CcFilesPeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) { } catch (Exception $e) {
throw new PropelException("Error populating CcFiles object", $e); throw new PropelException("Error populating CcFiles object", $e);
@ -3438,6 +3524,12 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
return $this->getDbOwnerId(); return $this->getDbOwnerId();
break; break;
case 64: case 64:
return $this->getDbCuein();
break;
case 65:
return $this->getDbCueout();
break;
case 66:
return $this->getDbHidden(); return $this->getDbHidden();
break; break;
default: default:
@ -3528,7 +3620,9 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$keys[61] => $this->getDbSoundCloundUploadTime(), $keys[61] => $this->getDbSoundCloundUploadTime(),
$keys[62] => $this->getDbReplayGain(), $keys[62] => $this->getDbReplayGain(),
$keys[63] => $this->getDbOwnerId(), $keys[63] => $this->getDbOwnerId(),
$keys[64] => $this->getDbHidden(), $keys[64] => $this->getDbCuein(),
$keys[65] => $this->getDbCueout(),
$keys[66] => $this->getDbHidden(),
); );
if ($includeForeignObjects) { if ($includeForeignObjects) {
if (null !== $this->aFkOwner) { if (null !== $this->aFkOwner) {
@ -3764,6 +3858,12 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$this->setDbOwnerId($value); $this->setDbOwnerId($value);
break; break;
case 64: case 64:
$this->setDbCuein($value);
break;
case 65:
$this->setDbCueout($value);
break;
case 66:
$this->setDbHidden($value); $this->setDbHidden($value);
break; break;
} // switch() } // switch()
@ -3854,7 +3954,9 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
if (array_key_exists($keys[61], $arr)) $this->setDbSoundCloundUploadTime($arr[$keys[61]]); if (array_key_exists($keys[61], $arr)) $this->setDbSoundCloundUploadTime($arr[$keys[61]]);
if (array_key_exists($keys[62], $arr)) $this->setDbReplayGain($arr[$keys[62]]); if (array_key_exists($keys[62], $arr)) $this->setDbReplayGain($arr[$keys[62]]);
if (array_key_exists($keys[63], $arr)) $this->setDbOwnerId($arr[$keys[63]]); if (array_key_exists($keys[63], $arr)) $this->setDbOwnerId($arr[$keys[63]]);
if (array_key_exists($keys[64], $arr)) $this->setDbHidden($arr[$keys[64]]); if (array_key_exists($keys[64], $arr)) $this->setDbCuein($arr[$keys[64]]);
if (array_key_exists($keys[65], $arr)) $this->setDbCueout($arr[$keys[65]]);
if (array_key_exists($keys[66], $arr)) $this->setDbHidden($arr[$keys[66]]);
} }
/** /**
@ -3930,6 +4032,8 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
if ($this->isColumnModified(CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME)) $criteria->add(CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME, $this->soundcloud_upload_time); if ($this->isColumnModified(CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME)) $criteria->add(CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME, $this->soundcloud_upload_time);
if ($this->isColumnModified(CcFilesPeer::REPLAY_GAIN)) $criteria->add(CcFilesPeer::REPLAY_GAIN, $this->replay_gain); if ($this->isColumnModified(CcFilesPeer::REPLAY_GAIN)) $criteria->add(CcFilesPeer::REPLAY_GAIN, $this->replay_gain);
if ($this->isColumnModified(CcFilesPeer::OWNER_ID)) $criteria->add(CcFilesPeer::OWNER_ID, $this->owner_id); if ($this->isColumnModified(CcFilesPeer::OWNER_ID)) $criteria->add(CcFilesPeer::OWNER_ID, $this->owner_id);
if ($this->isColumnModified(CcFilesPeer::CUEIN)) $criteria->add(CcFilesPeer::CUEIN, $this->cuein);
if ($this->isColumnModified(CcFilesPeer::CUEOUT)) $criteria->add(CcFilesPeer::CUEOUT, $this->cueout);
if ($this->isColumnModified(CcFilesPeer::HIDDEN)) $criteria->add(CcFilesPeer::HIDDEN, $this->hidden); if ($this->isColumnModified(CcFilesPeer::HIDDEN)) $criteria->add(CcFilesPeer::HIDDEN, $this->hidden);
return $criteria; return $criteria;
@ -4055,6 +4159,8 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$copyObj->setDbSoundCloundUploadTime($this->soundcloud_upload_time); $copyObj->setDbSoundCloundUploadTime($this->soundcloud_upload_time);
$copyObj->setDbReplayGain($this->replay_gain); $copyObj->setDbReplayGain($this->replay_gain);
$copyObj->setDbOwnerId($this->owner_id); $copyObj->setDbOwnerId($this->owner_id);
$copyObj->setDbCuein($this->cuein);
$copyObj->setDbCueout($this->cueout);
$copyObj->setDbHidden($this->hidden); $copyObj->setDbHidden($this->hidden);
if ($deepCopy) { if ($deepCopy) {
@ -4958,6 +5064,8 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$this->soundcloud_upload_time = null; $this->soundcloud_upload_time = null;
$this->replay_gain = null; $this->replay_gain = null;
$this->owner_id = null; $this->owner_id = null;
$this->cuein = null;
$this->cueout = null;
$this->hidden = null; $this->hidden = null;
$this->alreadyInSave = false; $this->alreadyInSave = false;
$this->alreadyInValidation = false; $this->alreadyInValidation = false;

View File

@ -26,7 +26,7 @@ abstract class BaseCcFilesPeer {
const TM_CLASS = 'CcFilesTableMap'; const TM_CLASS = 'CcFilesTableMap';
/** The total number of columns. */ /** The total number of columns. */
const NUM_COLUMNS = 65; const NUM_COLUMNS = 67;
/** The number of lazy-loaded columns. */ /** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0; const NUM_LAZY_LOAD_COLUMNS = 0;
@ -223,6 +223,12 @@ abstract class BaseCcFilesPeer {
/** the column name for the OWNER_ID field */ /** the column name for the OWNER_ID field */
const OWNER_ID = 'cc_files.OWNER_ID'; const OWNER_ID = 'cc_files.OWNER_ID';
/** the column name for the CUEIN field */
const CUEIN = 'cc_files.CUEIN';
/** the column name for the CUEOUT field */
const CUEOUT = 'cc_files.CUEOUT';
/** the column name for the HIDDEN field */ /** the column name for the HIDDEN field */
const HIDDEN = 'cc_files.HIDDEN'; const HIDDEN = 'cc_files.HIDDEN';
@ -242,12 +248,12 @@ abstract class BaseCcFilesPeer {
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/ */
private static $fieldNames = array ( private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbName', 'DbMime', 'DbFtype', 'DbDirectory', 'DbFilepath', 'DbState', 'DbCurrentlyaccessing', 'DbEditedby', 'DbMtime', 'DbUtime', 'DbLPtime', 'DbMd5', 'DbTrackTitle', 'DbArtistName', 'DbBitRate', 'DbSampleRate', 'DbFormat', 'DbLength', 'DbAlbumTitle', 'DbGenre', 'DbComments', 'DbYear', 'DbTrackNumber', 'DbChannels', 'DbUrl', 'DbBpm', 'DbRating', 'DbEncodedBy', 'DbDiscNumber', 'DbMood', 'DbLabel', 'DbComposer', 'DbEncoder', 'DbChecksum', 'DbLyrics', 'DbOrchestra', 'DbConductor', 'DbLyricist', 'DbOriginalLyricist', 'DbRadioStationName', 'DbInfoUrl', 'DbArtistUrl', 'DbAudioSourceUrl', 'DbRadioStationUrl', 'DbBuyThisUrl', 'DbIsrcNumber', 'DbCatalogNumber', 'DbOriginalArtist', 'DbCopyright', 'DbReportDatetime', 'DbReportLocation', 'DbReportOrganization', 'DbSubject', 'DbContributor', 'DbLanguage', 'DbFileExists', 'DbSoundcloudId', 'DbSoundcloudErrorCode', 'DbSoundcloudErrorMsg', 'DbSoundcloudLinkToFile', 'DbSoundCloundUploadTime', 'DbReplayGain', 'DbOwnerId', 'DbHidden', ), BasePeer::TYPE_PHPNAME => array ('DbId', 'DbName', 'DbMime', 'DbFtype', 'DbDirectory', 'DbFilepath', 'DbState', 'DbCurrentlyaccessing', 'DbEditedby', 'DbMtime', 'DbUtime', 'DbLPtime', 'DbMd5', 'DbTrackTitle', 'DbArtistName', 'DbBitRate', 'DbSampleRate', 'DbFormat', 'DbLength', 'DbAlbumTitle', 'DbGenre', 'DbComments', 'DbYear', 'DbTrackNumber', 'DbChannels', 'DbUrl', 'DbBpm', 'DbRating', 'DbEncodedBy', 'DbDiscNumber', 'DbMood', 'DbLabel', 'DbComposer', 'DbEncoder', 'DbChecksum', 'DbLyrics', 'DbOrchestra', 'DbConductor', 'DbLyricist', 'DbOriginalLyricist', 'DbRadioStationName', 'DbInfoUrl', 'DbArtistUrl', 'DbAudioSourceUrl', 'DbRadioStationUrl', 'DbBuyThisUrl', 'DbIsrcNumber', 'DbCatalogNumber', 'DbOriginalArtist', 'DbCopyright', 'DbReportDatetime', 'DbReportLocation', 'DbReportOrganization', 'DbSubject', 'DbContributor', 'DbLanguage', 'DbFileExists', 'DbSoundcloudId', 'DbSoundcloudErrorCode', 'DbSoundcloudErrorMsg', 'DbSoundcloudLinkToFile', 'DbSoundCloundUploadTime', 'DbReplayGain', 'DbOwnerId', 'DbCuein', 'DbCueout', 'DbHidden', ),
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbName', 'dbMime', 'dbFtype', 'dbDirectory', 'dbFilepath', 'dbState', 'dbCurrentlyaccessing', 'dbEditedby', 'dbMtime', 'dbUtime', 'dbLPtime', 'dbMd5', 'dbTrackTitle', 'dbArtistName', 'dbBitRate', 'dbSampleRate', 'dbFormat', 'dbLength', 'dbAlbumTitle', 'dbGenre', 'dbComments', 'dbYear', 'dbTrackNumber', 'dbChannels', 'dbUrl', 'dbBpm', 'dbRating', 'dbEncodedBy', 'dbDiscNumber', 'dbMood', 'dbLabel', 'dbComposer', 'dbEncoder', 'dbChecksum', 'dbLyrics', 'dbOrchestra', 'dbConductor', 'dbLyricist', 'dbOriginalLyricist', 'dbRadioStationName', 'dbInfoUrl', 'dbArtistUrl', 'dbAudioSourceUrl', 'dbRadioStationUrl', 'dbBuyThisUrl', 'dbIsrcNumber', 'dbCatalogNumber', 'dbOriginalArtist', 'dbCopyright', 'dbReportDatetime', 'dbReportLocation', 'dbReportOrganization', 'dbSubject', 'dbContributor', 'dbLanguage', 'dbFileExists', 'dbSoundcloudId', 'dbSoundcloudErrorCode', 'dbSoundcloudErrorMsg', 'dbSoundcloudLinkToFile', 'dbSoundCloundUploadTime', 'dbReplayGain', 'dbOwnerId', 'dbHidden', ), BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbName', 'dbMime', 'dbFtype', 'dbDirectory', 'dbFilepath', 'dbState', 'dbCurrentlyaccessing', 'dbEditedby', 'dbMtime', 'dbUtime', 'dbLPtime', 'dbMd5', 'dbTrackTitle', 'dbArtistName', 'dbBitRate', 'dbSampleRate', 'dbFormat', 'dbLength', 'dbAlbumTitle', 'dbGenre', 'dbComments', 'dbYear', 'dbTrackNumber', 'dbChannels', 'dbUrl', 'dbBpm', 'dbRating', 'dbEncodedBy', 'dbDiscNumber', 'dbMood', 'dbLabel', 'dbComposer', 'dbEncoder', 'dbChecksum', 'dbLyrics', 'dbOrchestra', 'dbConductor', 'dbLyricist', 'dbOriginalLyricist', 'dbRadioStationName', 'dbInfoUrl', 'dbArtistUrl', 'dbAudioSourceUrl', 'dbRadioStationUrl', 'dbBuyThisUrl', 'dbIsrcNumber', 'dbCatalogNumber', 'dbOriginalArtist', 'dbCopyright', 'dbReportDatetime', 'dbReportLocation', 'dbReportOrganization', 'dbSubject', 'dbContributor', 'dbLanguage', 'dbFileExists', 'dbSoundcloudId', 'dbSoundcloudErrorCode', 'dbSoundcloudErrorMsg', 'dbSoundcloudLinkToFile', 'dbSoundCloundUploadTime', 'dbReplayGain', 'dbOwnerId', 'dbCuein', 'dbCueout', 'dbHidden', ),
BasePeer::TYPE_COLNAME => array (self::ID, self::NAME, self::MIME, self::FTYPE, self::DIRECTORY, self::FILEPATH, self::STATE, self::CURRENTLYACCESSING, self::EDITEDBY, self::MTIME, self::UTIME, self::LPTIME, self::MD5, self::TRACK_TITLE, self::ARTIST_NAME, self::BIT_RATE, self::SAMPLE_RATE, self::FORMAT, self::LENGTH, self::ALBUM_TITLE, self::GENRE, self::COMMENTS, self::YEAR, self::TRACK_NUMBER, self::CHANNELS, self::URL, self::BPM, self::RATING, self::ENCODED_BY, self::DISC_NUMBER, self::MOOD, self::LABEL, self::COMPOSER, self::ENCODER, self::CHECKSUM, self::LYRICS, self::ORCHESTRA, self::CONDUCTOR, self::LYRICIST, self::ORIGINAL_LYRICIST, self::RADIO_STATION_NAME, self::INFO_URL, self::ARTIST_URL, self::AUDIO_SOURCE_URL, self::RADIO_STATION_URL, self::BUY_THIS_URL, self::ISRC_NUMBER, self::CATALOG_NUMBER, self::ORIGINAL_ARTIST, self::COPYRIGHT, self::REPORT_DATETIME, self::REPORT_LOCATION, self::REPORT_ORGANIZATION, self::SUBJECT, self::CONTRIBUTOR, self::LANGUAGE, self::FILE_EXISTS, self::SOUNDCLOUD_ID, self::SOUNDCLOUD_ERROR_CODE, self::SOUNDCLOUD_ERROR_MSG, self::SOUNDCLOUD_LINK_TO_FILE, self::SOUNDCLOUD_UPLOAD_TIME, self::REPLAY_GAIN, self::OWNER_ID, self::HIDDEN, ), BasePeer::TYPE_COLNAME => array (self::ID, self::NAME, self::MIME, self::FTYPE, self::DIRECTORY, self::FILEPATH, self::STATE, self::CURRENTLYACCESSING, self::EDITEDBY, self::MTIME, self::UTIME, self::LPTIME, self::MD5, self::TRACK_TITLE, self::ARTIST_NAME, self::BIT_RATE, self::SAMPLE_RATE, self::FORMAT, self::LENGTH, self::ALBUM_TITLE, self::GENRE, self::COMMENTS, self::YEAR, self::TRACK_NUMBER, self::CHANNELS, self::URL, self::BPM, self::RATING, self::ENCODED_BY, self::DISC_NUMBER, self::MOOD, self::LABEL, self::COMPOSER, self::ENCODER, self::CHECKSUM, self::LYRICS, self::ORCHESTRA, self::CONDUCTOR, self::LYRICIST, self::ORIGINAL_LYRICIST, self::RADIO_STATION_NAME, self::INFO_URL, self::ARTIST_URL, self::AUDIO_SOURCE_URL, self::RADIO_STATION_URL, self::BUY_THIS_URL, self::ISRC_NUMBER, self::CATALOG_NUMBER, self::ORIGINAL_ARTIST, self::COPYRIGHT, self::REPORT_DATETIME, self::REPORT_LOCATION, self::REPORT_ORGANIZATION, self::SUBJECT, self::CONTRIBUTOR, self::LANGUAGE, self::FILE_EXISTS, self::SOUNDCLOUD_ID, self::SOUNDCLOUD_ERROR_CODE, self::SOUNDCLOUD_ERROR_MSG, self::SOUNDCLOUD_LINK_TO_FILE, self::SOUNDCLOUD_UPLOAD_TIME, self::REPLAY_GAIN, self::OWNER_ID, self::CUEIN, self::CUEOUT, self::HIDDEN, ),
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'NAME', 'MIME', 'FTYPE', 'DIRECTORY', 'FILEPATH', 'STATE', 'CURRENTLYACCESSING', 'EDITEDBY', 'MTIME', 'UTIME', 'LPTIME', 'MD5', 'TRACK_TITLE', 'ARTIST_NAME', 'BIT_RATE', 'SAMPLE_RATE', 'FORMAT', 'LENGTH', 'ALBUM_TITLE', 'GENRE', 'COMMENTS', 'YEAR', 'TRACK_NUMBER', 'CHANNELS', 'URL', 'BPM', 'RATING', 'ENCODED_BY', 'DISC_NUMBER', 'MOOD', 'LABEL', 'COMPOSER', 'ENCODER', 'CHECKSUM', 'LYRICS', 'ORCHESTRA', 'CONDUCTOR', 'LYRICIST', 'ORIGINAL_LYRICIST', 'RADIO_STATION_NAME', 'INFO_URL', 'ARTIST_URL', 'AUDIO_SOURCE_URL', 'RADIO_STATION_URL', 'BUY_THIS_URL', 'ISRC_NUMBER', 'CATALOG_NUMBER', 'ORIGINAL_ARTIST', 'COPYRIGHT', 'REPORT_DATETIME', 'REPORT_LOCATION', 'REPORT_ORGANIZATION', 'SUBJECT', 'CONTRIBUTOR', 'LANGUAGE', 'FILE_EXISTS', 'SOUNDCLOUD_ID', 'SOUNDCLOUD_ERROR_CODE', 'SOUNDCLOUD_ERROR_MSG', 'SOUNDCLOUD_LINK_TO_FILE', 'SOUNDCLOUD_UPLOAD_TIME', 'REPLAY_GAIN', 'OWNER_ID', 'HIDDEN', ), BasePeer::TYPE_RAW_COLNAME => array ('ID', 'NAME', 'MIME', 'FTYPE', 'DIRECTORY', 'FILEPATH', 'STATE', 'CURRENTLYACCESSING', 'EDITEDBY', 'MTIME', 'UTIME', 'LPTIME', 'MD5', 'TRACK_TITLE', 'ARTIST_NAME', 'BIT_RATE', 'SAMPLE_RATE', 'FORMAT', 'LENGTH', 'ALBUM_TITLE', 'GENRE', 'COMMENTS', 'YEAR', 'TRACK_NUMBER', 'CHANNELS', 'URL', 'BPM', 'RATING', 'ENCODED_BY', 'DISC_NUMBER', 'MOOD', 'LABEL', 'COMPOSER', 'ENCODER', 'CHECKSUM', 'LYRICS', 'ORCHESTRA', 'CONDUCTOR', 'LYRICIST', 'ORIGINAL_LYRICIST', 'RADIO_STATION_NAME', 'INFO_URL', 'ARTIST_URL', 'AUDIO_SOURCE_URL', 'RADIO_STATION_URL', 'BUY_THIS_URL', 'ISRC_NUMBER', 'CATALOG_NUMBER', 'ORIGINAL_ARTIST', 'COPYRIGHT', 'REPORT_DATETIME', 'REPORT_LOCATION', 'REPORT_ORGANIZATION', 'SUBJECT', 'CONTRIBUTOR', 'LANGUAGE', 'FILE_EXISTS', 'SOUNDCLOUD_ID', 'SOUNDCLOUD_ERROR_CODE', 'SOUNDCLOUD_ERROR_MSG', 'SOUNDCLOUD_LINK_TO_FILE', 'SOUNDCLOUD_UPLOAD_TIME', 'REPLAY_GAIN', 'OWNER_ID', 'CUEIN', 'CUEOUT', 'HIDDEN', ),
BasePeer::TYPE_FIELDNAME => array ('id', 'name', 'mime', 'ftype', 'directory', 'filepath', 'state', 'currentlyaccessing', 'editedby', 'mtime', 'utime', 'lptime', 'md5', 'track_title', 'artist_name', 'bit_rate', 'sample_rate', 'format', 'length', 'album_title', 'genre', 'comments', 'year', 'track_number', 'channels', 'url', 'bpm', 'rating', 'encoded_by', 'disc_number', 'mood', 'label', 'composer', 'encoder', 'checksum', 'lyrics', 'orchestra', 'conductor', 'lyricist', 'original_lyricist', 'radio_station_name', 'info_url', 'artist_url', 'audio_source_url', 'radio_station_url', 'buy_this_url', 'isrc_number', 'catalog_number', 'original_artist', 'copyright', 'report_datetime', 'report_location', 'report_organization', 'subject', 'contributor', 'language', 'file_exists', 'soundcloud_id', 'soundcloud_error_code', 'soundcloud_error_msg', 'soundcloud_link_to_file', 'soundcloud_upload_time', 'replay_gain', 'owner_id', 'hidden', ), BasePeer::TYPE_FIELDNAME => array ('id', 'name', 'mime', 'ftype', 'directory', 'filepath', 'state', 'currentlyaccessing', 'editedby', 'mtime', 'utime', 'lptime', 'md5', 'track_title', 'artist_name', 'bit_rate', 'sample_rate', 'format', 'length', 'album_title', 'genre', 'comments', 'year', 'track_number', 'channels', 'url', 'bpm', 'rating', 'encoded_by', 'disc_number', 'mood', 'label', 'composer', 'encoder', 'checksum', 'lyrics', 'orchestra', 'conductor', 'lyricist', 'original_lyricist', 'radio_station_name', 'info_url', 'artist_url', 'audio_source_url', 'radio_station_url', 'buy_this_url', 'isrc_number', 'catalog_number', 'original_artist', 'copyright', 'report_datetime', 'report_location', 'report_organization', 'subject', 'contributor', 'language', 'file_exists', 'soundcloud_id', 'soundcloud_error_code', 'soundcloud_error_msg', 'soundcloud_link_to_file', 'soundcloud_upload_time', 'replay_gain', 'owner_id', 'cuein', 'cueout', 'hidden', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, ) BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, )
); );
/** /**
@ -257,12 +263,12 @@ abstract class BaseCcFilesPeer {
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/ */
private static $fieldKeys = array ( private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbName' => 1, 'DbMime' => 2, 'DbFtype' => 3, 'DbDirectory' => 4, 'DbFilepath' => 5, 'DbState' => 6, 'DbCurrentlyaccessing' => 7, 'DbEditedby' => 8, 'DbMtime' => 9, 'DbUtime' => 10, 'DbLPtime' => 11, 'DbMd5' => 12, 'DbTrackTitle' => 13, 'DbArtistName' => 14, 'DbBitRate' => 15, 'DbSampleRate' => 16, 'DbFormat' => 17, 'DbLength' => 18, 'DbAlbumTitle' => 19, 'DbGenre' => 20, 'DbComments' => 21, 'DbYear' => 22, 'DbTrackNumber' => 23, 'DbChannels' => 24, 'DbUrl' => 25, 'DbBpm' => 26, 'DbRating' => 27, 'DbEncodedBy' => 28, 'DbDiscNumber' => 29, 'DbMood' => 30, 'DbLabel' => 31, 'DbComposer' => 32, 'DbEncoder' => 33, 'DbChecksum' => 34, 'DbLyrics' => 35, 'DbOrchestra' => 36, 'DbConductor' => 37, 'DbLyricist' => 38, 'DbOriginalLyricist' => 39, 'DbRadioStationName' => 40, 'DbInfoUrl' => 41, 'DbArtistUrl' => 42, 'DbAudioSourceUrl' => 43, 'DbRadioStationUrl' => 44, 'DbBuyThisUrl' => 45, 'DbIsrcNumber' => 46, 'DbCatalogNumber' => 47, 'DbOriginalArtist' => 48, 'DbCopyright' => 49, 'DbReportDatetime' => 50, 'DbReportLocation' => 51, 'DbReportOrganization' => 52, 'DbSubject' => 53, 'DbContributor' => 54, 'DbLanguage' => 55, 'DbFileExists' => 56, 'DbSoundcloudId' => 57, 'DbSoundcloudErrorCode' => 58, 'DbSoundcloudErrorMsg' => 59, 'DbSoundcloudLinkToFile' => 60, 'DbSoundCloundUploadTime' => 61, 'DbReplayGain' => 62, 'DbOwnerId' => 63, 'DbHidden' => 64, ), BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbName' => 1, 'DbMime' => 2, 'DbFtype' => 3, 'DbDirectory' => 4, 'DbFilepath' => 5, 'DbState' => 6, 'DbCurrentlyaccessing' => 7, 'DbEditedby' => 8, 'DbMtime' => 9, 'DbUtime' => 10, 'DbLPtime' => 11, 'DbMd5' => 12, 'DbTrackTitle' => 13, 'DbArtistName' => 14, 'DbBitRate' => 15, 'DbSampleRate' => 16, 'DbFormat' => 17, 'DbLength' => 18, 'DbAlbumTitle' => 19, 'DbGenre' => 20, 'DbComments' => 21, 'DbYear' => 22, 'DbTrackNumber' => 23, 'DbChannels' => 24, 'DbUrl' => 25, 'DbBpm' => 26, 'DbRating' => 27, 'DbEncodedBy' => 28, 'DbDiscNumber' => 29, 'DbMood' => 30, 'DbLabel' => 31, 'DbComposer' => 32, 'DbEncoder' => 33, 'DbChecksum' => 34, 'DbLyrics' => 35, 'DbOrchestra' => 36, 'DbConductor' => 37, 'DbLyricist' => 38, 'DbOriginalLyricist' => 39, 'DbRadioStationName' => 40, 'DbInfoUrl' => 41, 'DbArtistUrl' => 42, 'DbAudioSourceUrl' => 43, 'DbRadioStationUrl' => 44, 'DbBuyThisUrl' => 45, 'DbIsrcNumber' => 46, 'DbCatalogNumber' => 47, 'DbOriginalArtist' => 48, 'DbCopyright' => 49, 'DbReportDatetime' => 50, 'DbReportLocation' => 51, 'DbReportOrganization' => 52, 'DbSubject' => 53, 'DbContributor' => 54, 'DbLanguage' => 55, 'DbFileExists' => 56, 'DbSoundcloudId' => 57, 'DbSoundcloudErrorCode' => 58, 'DbSoundcloudErrorMsg' => 59, 'DbSoundcloudLinkToFile' => 60, 'DbSoundCloundUploadTime' => 61, 'DbReplayGain' => 62, 'DbOwnerId' => 63, 'DbCuein' => 64, 'DbCueout' => 65, 'DbHidden' => 66, ),
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbName' => 1, 'dbMime' => 2, 'dbFtype' => 3, 'dbDirectory' => 4, 'dbFilepath' => 5, 'dbState' => 6, 'dbCurrentlyaccessing' => 7, 'dbEditedby' => 8, 'dbMtime' => 9, 'dbUtime' => 10, 'dbLPtime' => 11, 'dbMd5' => 12, 'dbTrackTitle' => 13, 'dbArtistName' => 14, 'dbBitRate' => 15, 'dbSampleRate' => 16, 'dbFormat' => 17, 'dbLength' => 18, 'dbAlbumTitle' => 19, 'dbGenre' => 20, 'dbComments' => 21, 'dbYear' => 22, 'dbTrackNumber' => 23, 'dbChannels' => 24, 'dbUrl' => 25, 'dbBpm' => 26, 'dbRating' => 27, 'dbEncodedBy' => 28, 'dbDiscNumber' => 29, 'dbMood' => 30, 'dbLabel' => 31, 'dbComposer' => 32, 'dbEncoder' => 33, 'dbChecksum' => 34, 'dbLyrics' => 35, 'dbOrchestra' => 36, 'dbConductor' => 37, 'dbLyricist' => 38, 'dbOriginalLyricist' => 39, 'dbRadioStationName' => 40, 'dbInfoUrl' => 41, 'dbArtistUrl' => 42, 'dbAudioSourceUrl' => 43, 'dbRadioStationUrl' => 44, 'dbBuyThisUrl' => 45, 'dbIsrcNumber' => 46, 'dbCatalogNumber' => 47, 'dbOriginalArtist' => 48, 'dbCopyright' => 49, 'dbReportDatetime' => 50, 'dbReportLocation' => 51, 'dbReportOrganization' => 52, 'dbSubject' => 53, 'dbContributor' => 54, 'dbLanguage' => 55, 'dbFileExists' => 56, 'dbSoundcloudId' => 57, 'dbSoundcloudErrorCode' => 58, 'dbSoundcloudErrorMsg' => 59, 'dbSoundcloudLinkToFile' => 60, 'dbSoundCloundUploadTime' => 61, 'dbReplayGain' => 62, 'dbOwnerId' => 63, 'dbHidden' => 64, ), BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbName' => 1, 'dbMime' => 2, 'dbFtype' => 3, 'dbDirectory' => 4, 'dbFilepath' => 5, 'dbState' => 6, 'dbCurrentlyaccessing' => 7, 'dbEditedby' => 8, 'dbMtime' => 9, 'dbUtime' => 10, 'dbLPtime' => 11, 'dbMd5' => 12, 'dbTrackTitle' => 13, 'dbArtistName' => 14, 'dbBitRate' => 15, 'dbSampleRate' => 16, 'dbFormat' => 17, 'dbLength' => 18, 'dbAlbumTitle' => 19, 'dbGenre' => 20, 'dbComments' => 21, 'dbYear' => 22, 'dbTrackNumber' => 23, 'dbChannels' => 24, 'dbUrl' => 25, 'dbBpm' => 26, 'dbRating' => 27, 'dbEncodedBy' => 28, 'dbDiscNumber' => 29, 'dbMood' => 30, 'dbLabel' => 31, 'dbComposer' => 32, 'dbEncoder' => 33, 'dbChecksum' => 34, 'dbLyrics' => 35, 'dbOrchestra' => 36, 'dbConductor' => 37, 'dbLyricist' => 38, 'dbOriginalLyricist' => 39, 'dbRadioStationName' => 40, 'dbInfoUrl' => 41, 'dbArtistUrl' => 42, 'dbAudioSourceUrl' => 43, 'dbRadioStationUrl' => 44, 'dbBuyThisUrl' => 45, 'dbIsrcNumber' => 46, 'dbCatalogNumber' => 47, 'dbOriginalArtist' => 48, 'dbCopyright' => 49, 'dbReportDatetime' => 50, 'dbReportLocation' => 51, 'dbReportOrganization' => 52, 'dbSubject' => 53, 'dbContributor' => 54, 'dbLanguage' => 55, 'dbFileExists' => 56, 'dbSoundcloudId' => 57, 'dbSoundcloudErrorCode' => 58, 'dbSoundcloudErrorMsg' => 59, 'dbSoundcloudLinkToFile' => 60, 'dbSoundCloundUploadTime' => 61, 'dbReplayGain' => 62, 'dbOwnerId' => 63, 'dbCuein' => 64, 'dbCueout' => 65, 'dbHidden' => 66, ),
BasePeer::TYPE_COLNAME => array (self::ID => 0, self::NAME => 1, self::MIME => 2, self::FTYPE => 3, self::DIRECTORY => 4, self::FILEPATH => 5, self::STATE => 6, self::CURRENTLYACCESSING => 7, self::EDITEDBY => 8, self::MTIME => 9, self::UTIME => 10, self::LPTIME => 11, self::MD5 => 12, self::TRACK_TITLE => 13, self::ARTIST_NAME => 14, self::BIT_RATE => 15, self::SAMPLE_RATE => 16, self::FORMAT => 17, self::LENGTH => 18, self::ALBUM_TITLE => 19, self::GENRE => 20, self::COMMENTS => 21, self::YEAR => 22, self::TRACK_NUMBER => 23, self::CHANNELS => 24, self::URL => 25, self::BPM => 26, self::RATING => 27, self::ENCODED_BY => 28, self::DISC_NUMBER => 29, self::MOOD => 30, self::LABEL => 31, self::COMPOSER => 32, self::ENCODER => 33, self::CHECKSUM => 34, self::LYRICS => 35, self::ORCHESTRA => 36, self::CONDUCTOR => 37, self::LYRICIST => 38, self::ORIGINAL_LYRICIST => 39, self::RADIO_STATION_NAME => 40, self::INFO_URL => 41, self::ARTIST_URL => 42, self::AUDIO_SOURCE_URL => 43, self::RADIO_STATION_URL => 44, self::BUY_THIS_URL => 45, self::ISRC_NUMBER => 46, self::CATALOG_NUMBER => 47, self::ORIGINAL_ARTIST => 48, self::COPYRIGHT => 49, self::REPORT_DATETIME => 50, self::REPORT_LOCATION => 51, self::REPORT_ORGANIZATION => 52, self::SUBJECT => 53, self::CONTRIBUTOR => 54, self::LANGUAGE => 55, self::FILE_EXISTS => 56, self::SOUNDCLOUD_ID => 57, self::SOUNDCLOUD_ERROR_CODE => 58, self::SOUNDCLOUD_ERROR_MSG => 59, self::SOUNDCLOUD_LINK_TO_FILE => 60, self::SOUNDCLOUD_UPLOAD_TIME => 61, self::REPLAY_GAIN => 62, self::OWNER_ID => 63, self::HIDDEN => 64, ), BasePeer::TYPE_COLNAME => array (self::ID => 0, self::NAME => 1, self::MIME => 2, self::FTYPE => 3, self::DIRECTORY => 4, self::FILEPATH => 5, self::STATE => 6, self::CURRENTLYACCESSING => 7, self::EDITEDBY => 8, self::MTIME => 9, self::UTIME => 10, self::LPTIME => 11, self::MD5 => 12, self::TRACK_TITLE => 13, self::ARTIST_NAME => 14, self::BIT_RATE => 15, self::SAMPLE_RATE => 16, self::FORMAT => 17, self::LENGTH => 18, self::ALBUM_TITLE => 19, self::GENRE => 20, self::COMMENTS => 21, self::YEAR => 22, self::TRACK_NUMBER => 23, self::CHANNELS => 24, self::URL => 25, self::BPM => 26, self::RATING => 27, self::ENCODED_BY => 28, self::DISC_NUMBER => 29, self::MOOD => 30, self::LABEL => 31, self::COMPOSER => 32, self::ENCODER => 33, self::CHECKSUM => 34, self::LYRICS => 35, self::ORCHESTRA => 36, self::CONDUCTOR => 37, self::LYRICIST => 38, self::ORIGINAL_LYRICIST => 39, self::RADIO_STATION_NAME => 40, self::INFO_URL => 41, self::ARTIST_URL => 42, self::AUDIO_SOURCE_URL => 43, self::RADIO_STATION_URL => 44, self::BUY_THIS_URL => 45, self::ISRC_NUMBER => 46, self::CATALOG_NUMBER => 47, self::ORIGINAL_ARTIST => 48, self::COPYRIGHT => 49, self::REPORT_DATETIME => 50, self::REPORT_LOCATION => 51, self::REPORT_ORGANIZATION => 52, self::SUBJECT => 53, self::CONTRIBUTOR => 54, self::LANGUAGE => 55, self::FILE_EXISTS => 56, self::SOUNDCLOUD_ID => 57, self::SOUNDCLOUD_ERROR_CODE => 58, self::SOUNDCLOUD_ERROR_MSG => 59, self::SOUNDCLOUD_LINK_TO_FILE => 60, self::SOUNDCLOUD_UPLOAD_TIME => 61, self::REPLAY_GAIN => 62, self::OWNER_ID => 63, self::CUEIN => 64, self::CUEOUT => 65, self::HIDDEN => 66, ),
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'NAME' => 1, 'MIME' => 2, 'FTYPE' => 3, 'DIRECTORY' => 4, 'FILEPATH' => 5, 'STATE' => 6, 'CURRENTLYACCESSING' => 7, 'EDITEDBY' => 8, 'MTIME' => 9, 'UTIME' => 10, 'LPTIME' => 11, 'MD5' => 12, 'TRACK_TITLE' => 13, 'ARTIST_NAME' => 14, 'BIT_RATE' => 15, 'SAMPLE_RATE' => 16, 'FORMAT' => 17, 'LENGTH' => 18, 'ALBUM_TITLE' => 19, 'GENRE' => 20, 'COMMENTS' => 21, 'YEAR' => 22, 'TRACK_NUMBER' => 23, 'CHANNELS' => 24, 'URL' => 25, 'BPM' => 26, 'RATING' => 27, 'ENCODED_BY' => 28, 'DISC_NUMBER' => 29, 'MOOD' => 30, 'LABEL' => 31, 'COMPOSER' => 32, 'ENCODER' => 33, 'CHECKSUM' => 34, 'LYRICS' => 35, 'ORCHESTRA' => 36, 'CONDUCTOR' => 37, 'LYRICIST' => 38, 'ORIGINAL_LYRICIST' => 39, 'RADIO_STATION_NAME' => 40, 'INFO_URL' => 41, 'ARTIST_URL' => 42, 'AUDIO_SOURCE_URL' => 43, 'RADIO_STATION_URL' => 44, 'BUY_THIS_URL' => 45, 'ISRC_NUMBER' => 46, 'CATALOG_NUMBER' => 47, 'ORIGINAL_ARTIST' => 48, 'COPYRIGHT' => 49, 'REPORT_DATETIME' => 50, 'REPORT_LOCATION' => 51, 'REPORT_ORGANIZATION' => 52, 'SUBJECT' => 53, 'CONTRIBUTOR' => 54, 'LANGUAGE' => 55, 'FILE_EXISTS' => 56, 'SOUNDCLOUD_ID' => 57, 'SOUNDCLOUD_ERROR_CODE' => 58, 'SOUNDCLOUD_ERROR_MSG' => 59, 'SOUNDCLOUD_LINK_TO_FILE' => 60, 'SOUNDCLOUD_UPLOAD_TIME' => 61, 'REPLAY_GAIN' => 62, 'OWNER_ID' => 63, 'HIDDEN' => 64, ), BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'NAME' => 1, 'MIME' => 2, 'FTYPE' => 3, 'DIRECTORY' => 4, 'FILEPATH' => 5, 'STATE' => 6, 'CURRENTLYACCESSING' => 7, 'EDITEDBY' => 8, 'MTIME' => 9, 'UTIME' => 10, 'LPTIME' => 11, 'MD5' => 12, 'TRACK_TITLE' => 13, 'ARTIST_NAME' => 14, 'BIT_RATE' => 15, 'SAMPLE_RATE' => 16, 'FORMAT' => 17, 'LENGTH' => 18, 'ALBUM_TITLE' => 19, 'GENRE' => 20, 'COMMENTS' => 21, 'YEAR' => 22, 'TRACK_NUMBER' => 23, 'CHANNELS' => 24, 'URL' => 25, 'BPM' => 26, 'RATING' => 27, 'ENCODED_BY' => 28, 'DISC_NUMBER' => 29, 'MOOD' => 30, 'LABEL' => 31, 'COMPOSER' => 32, 'ENCODER' => 33, 'CHECKSUM' => 34, 'LYRICS' => 35, 'ORCHESTRA' => 36, 'CONDUCTOR' => 37, 'LYRICIST' => 38, 'ORIGINAL_LYRICIST' => 39, 'RADIO_STATION_NAME' => 40, 'INFO_URL' => 41, 'ARTIST_URL' => 42, 'AUDIO_SOURCE_URL' => 43, 'RADIO_STATION_URL' => 44, 'BUY_THIS_URL' => 45, 'ISRC_NUMBER' => 46, 'CATALOG_NUMBER' => 47, 'ORIGINAL_ARTIST' => 48, 'COPYRIGHT' => 49, 'REPORT_DATETIME' => 50, 'REPORT_LOCATION' => 51, 'REPORT_ORGANIZATION' => 52, 'SUBJECT' => 53, 'CONTRIBUTOR' => 54, 'LANGUAGE' => 55, 'FILE_EXISTS' => 56, 'SOUNDCLOUD_ID' => 57, 'SOUNDCLOUD_ERROR_CODE' => 58, 'SOUNDCLOUD_ERROR_MSG' => 59, 'SOUNDCLOUD_LINK_TO_FILE' => 60, 'SOUNDCLOUD_UPLOAD_TIME' => 61, 'REPLAY_GAIN' => 62, 'OWNER_ID' => 63, 'CUEIN' => 64, 'CUEOUT' => 65, 'HIDDEN' => 66, ),
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'name' => 1, 'mime' => 2, 'ftype' => 3, 'directory' => 4, 'filepath' => 5, 'state' => 6, 'currentlyaccessing' => 7, 'editedby' => 8, 'mtime' => 9, 'utime' => 10, 'lptime' => 11, 'md5' => 12, 'track_title' => 13, 'artist_name' => 14, 'bit_rate' => 15, 'sample_rate' => 16, 'format' => 17, 'length' => 18, 'album_title' => 19, 'genre' => 20, 'comments' => 21, 'year' => 22, 'track_number' => 23, 'channels' => 24, 'url' => 25, 'bpm' => 26, 'rating' => 27, 'encoded_by' => 28, 'disc_number' => 29, 'mood' => 30, 'label' => 31, 'composer' => 32, 'encoder' => 33, 'checksum' => 34, 'lyrics' => 35, 'orchestra' => 36, 'conductor' => 37, 'lyricist' => 38, 'original_lyricist' => 39, 'radio_station_name' => 40, 'info_url' => 41, 'artist_url' => 42, 'audio_source_url' => 43, 'radio_station_url' => 44, 'buy_this_url' => 45, 'isrc_number' => 46, 'catalog_number' => 47, 'original_artist' => 48, 'copyright' => 49, 'report_datetime' => 50, 'report_location' => 51, 'report_organization' => 52, 'subject' => 53, 'contributor' => 54, 'language' => 55, 'file_exists' => 56, 'soundcloud_id' => 57, 'soundcloud_error_code' => 58, 'soundcloud_error_msg' => 59, 'soundcloud_link_to_file' => 60, 'soundcloud_upload_time' => 61, 'replay_gain' => 62, 'owner_id' => 63, 'hidden' => 64, ), BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'name' => 1, 'mime' => 2, 'ftype' => 3, 'directory' => 4, 'filepath' => 5, 'state' => 6, 'currentlyaccessing' => 7, 'editedby' => 8, 'mtime' => 9, 'utime' => 10, 'lptime' => 11, 'md5' => 12, 'track_title' => 13, 'artist_name' => 14, 'bit_rate' => 15, 'sample_rate' => 16, 'format' => 17, 'length' => 18, 'album_title' => 19, 'genre' => 20, 'comments' => 21, 'year' => 22, 'track_number' => 23, 'channels' => 24, 'url' => 25, 'bpm' => 26, 'rating' => 27, 'encoded_by' => 28, 'disc_number' => 29, 'mood' => 30, 'label' => 31, 'composer' => 32, 'encoder' => 33, 'checksum' => 34, 'lyrics' => 35, 'orchestra' => 36, 'conductor' => 37, 'lyricist' => 38, 'original_lyricist' => 39, 'radio_station_name' => 40, 'info_url' => 41, 'artist_url' => 42, 'audio_source_url' => 43, 'radio_station_url' => 44, 'buy_this_url' => 45, 'isrc_number' => 46, 'catalog_number' => 47, 'original_artist' => 48, 'copyright' => 49, 'report_datetime' => 50, 'report_location' => 51, 'report_organization' => 52, 'subject' => 53, 'contributor' => 54, 'language' => 55, 'file_exists' => 56, 'soundcloud_id' => 57, 'soundcloud_error_code' => 58, 'soundcloud_error_msg' => 59, 'soundcloud_link_to_file' => 60, 'soundcloud_upload_time' => 61, 'replay_gain' => 62, 'owner_id' => 63, 'cuein' => 64, 'cueout' => 65, 'hidden' => 66, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, ) BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, )
); );
/** /**
@ -398,6 +404,8 @@ abstract class BaseCcFilesPeer {
$criteria->addSelectColumn(CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME); $criteria->addSelectColumn(CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME);
$criteria->addSelectColumn(CcFilesPeer::REPLAY_GAIN); $criteria->addSelectColumn(CcFilesPeer::REPLAY_GAIN);
$criteria->addSelectColumn(CcFilesPeer::OWNER_ID); $criteria->addSelectColumn(CcFilesPeer::OWNER_ID);
$criteria->addSelectColumn(CcFilesPeer::CUEIN);
$criteria->addSelectColumn(CcFilesPeer::CUEOUT);
$criteria->addSelectColumn(CcFilesPeer::HIDDEN); $criteria->addSelectColumn(CcFilesPeer::HIDDEN);
} else { } else {
$criteria->addSelectColumn($alias . '.ID'); $criteria->addSelectColumn($alias . '.ID');
@ -464,6 +472,8 @@ abstract class BaseCcFilesPeer {
$criteria->addSelectColumn($alias . '.SOUNDCLOUD_UPLOAD_TIME'); $criteria->addSelectColumn($alias . '.SOUNDCLOUD_UPLOAD_TIME');
$criteria->addSelectColumn($alias . '.REPLAY_GAIN'); $criteria->addSelectColumn($alias . '.REPLAY_GAIN');
$criteria->addSelectColumn($alias . '.OWNER_ID'); $criteria->addSelectColumn($alias . '.OWNER_ID');
$criteria->addSelectColumn($alias . '.CUEIN');
$criteria->addSelectColumn($alias . '.CUEOUT');
$criteria->addSelectColumn($alias . '.HIDDEN'); $criteria->addSelectColumn($alias . '.HIDDEN');
} }
} }

View File

@ -70,6 +70,8 @@
* @method CcFilesQuery orderByDbSoundCloundUploadTime($order = Criteria::ASC) Order by the soundcloud_upload_time column * @method CcFilesQuery orderByDbSoundCloundUploadTime($order = Criteria::ASC) Order by the soundcloud_upload_time column
* @method CcFilesQuery orderByDbReplayGain($order = Criteria::ASC) Order by the replay_gain column * @method CcFilesQuery orderByDbReplayGain($order = Criteria::ASC) Order by the replay_gain column
* @method CcFilesQuery orderByDbOwnerId($order = Criteria::ASC) Order by the owner_id column * @method CcFilesQuery orderByDbOwnerId($order = Criteria::ASC) Order by the owner_id column
* @method CcFilesQuery orderByDbCuein($order = Criteria::ASC) Order by the cuein column
* @method CcFilesQuery orderByDbCueout($order = Criteria::ASC) Order by the cueout column
* @method CcFilesQuery orderByDbHidden($order = Criteria::ASC) Order by the hidden column * @method CcFilesQuery orderByDbHidden($order = Criteria::ASC) Order by the hidden column
* *
* @method CcFilesQuery groupByDbId() Group by the id column * @method CcFilesQuery groupByDbId() Group by the id column
@ -136,6 +138,8 @@
* @method CcFilesQuery groupByDbSoundCloundUploadTime() Group by the soundcloud_upload_time column * @method CcFilesQuery groupByDbSoundCloundUploadTime() Group by the soundcloud_upload_time column
* @method CcFilesQuery groupByDbReplayGain() Group by the replay_gain column * @method CcFilesQuery groupByDbReplayGain() Group by the replay_gain column
* @method CcFilesQuery groupByDbOwnerId() Group by the owner_id column * @method CcFilesQuery groupByDbOwnerId() Group by the owner_id column
* @method CcFilesQuery groupByDbCuein() Group by the cuein column
* @method CcFilesQuery groupByDbCueout() Group by the cueout column
* @method CcFilesQuery groupByDbHidden() Group by the hidden column * @method CcFilesQuery groupByDbHidden() Group by the hidden column
* *
* @method CcFilesQuery leftJoin($relation) Adds a LEFT JOIN clause to the query * @method CcFilesQuery leftJoin($relation) Adds a LEFT JOIN clause to the query
@ -237,6 +241,8 @@
* @method CcFiles findOneByDbSoundCloundUploadTime(string $soundcloud_upload_time) Return the first CcFiles filtered by the soundcloud_upload_time column * @method CcFiles findOneByDbSoundCloundUploadTime(string $soundcloud_upload_time) Return the first CcFiles filtered by the soundcloud_upload_time column
* @method CcFiles findOneByDbReplayGain(string $replay_gain) Return the first CcFiles filtered by the replay_gain column * @method CcFiles findOneByDbReplayGain(string $replay_gain) Return the first CcFiles filtered by the replay_gain column
* @method CcFiles findOneByDbOwnerId(int $owner_id) Return the first CcFiles filtered by the owner_id column * @method CcFiles findOneByDbOwnerId(int $owner_id) Return the first CcFiles filtered by the owner_id column
* @method CcFiles findOneByDbCuein(string $cuein) Return the first CcFiles filtered by the cuein column
* @method CcFiles findOneByDbCueout(string $cueout) Return the first CcFiles filtered by the cueout column
* @method CcFiles findOneByDbHidden(boolean $hidden) Return the first CcFiles filtered by the hidden column * @method CcFiles findOneByDbHidden(boolean $hidden) Return the first CcFiles filtered by the hidden column
* *
* @method array findByDbId(int $id) Return CcFiles objects filtered by the id column * @method array findByDbId(int $id) Return CcFiles objects filtered by the id column
@ -303,6 +309,8 @@
* @method array findByDbSoundCloundUploadTime(string $soundcloud_upload_time) Return CcFiles objects filtered by the soundcloud_upload_time column * @method array findByDbSoundCloundUploadTime(string $soundcloud_upload_time) Return CcFiles objects filtered by the soundcloud_upload_time column
* @method array findByDbReplayGain(string $replay_gain) Return CcFiles objects filtered by the replay_gain column * @method array findByDbReplayGain(string $replay_gain) Return CcFiles objects filtered by the replay_gain column
* @method array findByDbOwnerId(int $owner_id) Return CcFiles objects filtered by the owner_id column * @method array findByDbOwnerId(int $owner_id) Return CcFiles objects filtered by the owner_id column
* @method array findByDbCuein(string $cuein) Return CcFiles objects filtered by the cuein column
* @method array findByDbCueout(string $cueout) Return CcFiles objects filtered by the cueout column
* @method array findByDbHidden(boolean $hidden) Return CcFiles objects filtered by the hidden column * @method array findByDbHidden(boolean $hidden) Return CcFiles objects filtered by the hidden column
* *
* @package propel.generator.airtime.om * @package propel.generator.airtime.om
@ -1955,6 +1963,50 @@ abstract class BaseCcFilesQuery extends ModelCriteria
return $this->addUsingAlias(CcFilesPeer::OWNER_ID, $dbOwnerId, $comparison); return $this->addUsingAlias(CcFilesPeer::OWNER_ID, $dbOwnerId, $comparison);
} }
/**
* Filter the query on the cuein column
*
* @param string $dbCuein The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return CcFilesQuery The current query, for fluid interface
*/
public function filterByDbCuein($dbCuein = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($dbCuein)) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $dbCuein)) {
$dbCuein = str_replace('*', '%', $dbCuein);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(CcFilesPeer::CUEIN, $dbCuein, $comparison);
}
/**
* Filter the query on the cueout column
*
* @param string $dbCueout The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return CcFilesQuery The current query, for fluid interface
*/
public function filterByDbCueout($dbCueout = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($dbCueout)) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $dbCueout)) {
$dbCueout = str_replace('*', '%', $dbCueout);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(CcFilesPeer::CUEOUT, $dbCueout, $comparison);
}
/** /**
* Filter the query on the hidden column * Filter the query on the hidden column
* *

View File

@ -2,7 +2,7 @@
<h2><? echo _("About") ?></h2> <h2><? echo _("About") ?></h2>
<p> <p>
<?php <?php
echo sprintf(_("%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s"), echo sprintf(_("%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"),
"<a href='http://airtime.sourcefabric.org' target='_blank'>", "<a href='http://airtime.sourcefabric.org' target='_blank'>",
"</a>", "</a>",
$this->airtime_version, $this->airtime_version,

View File

@ -1,5 +1,6 @@
<div id="content" class="jp-container"> <div id="content" class="jp-container">
<h1><? echo _("Live stream") ?></h1> <h1><? echo _("Live stream") ?></h1>
<a id="popup-link" href="#"><?php echo _("Share") ?></a>
<?php $ids = Application_Model_StreamSetting::getEnabledStreamIds(); ?> <?php $ids = Application_Model_StreamSetting::getEnabledStreamIds(); ?>
<script> <script>
function setjPlayer(url, type, serverType){ function setjPlayer(url, type, serverType){
@ -31,22 +32,35 @@ $(document).ready(function(){
setjPlayer(elem.attr("data-url"), elem.attr("data-type"), elem.attr("server-type")); setjPlayer(elem.attr("data-url"), elem.attr("data-type"), elem.attr("server-type"));
}); });
<?php <?php
if (count($ids) > 0){ if (count($ids) > 0){
$id = $ids[0]; $id = $ids[0];
$streamData = Application_Model_StreamSetting::getStreamData($id); $streamData = Application_Model_StreamSetting::getStreamData($id);
$url = "http://".$streamData["${id}_host"].":".$streamData["${id}_port"]."/".$streamData["${id}_mount"]; $url = "http://".$streamData["${id}_host"].":".$streamData["${id}_port"]."/".$streamData["${id}_mount"];
$type = $streamData["${id}_type"]; $type = $streamData["${id}_type"];
$serverType = $streamData["${id}_output"]; $serverType = $streamData["${id}_output"];
if ($type == "ogg") if ($type == "ogg")
$type = "oga"; $type = "oga";
echo "setjPlayer('$url', '$type', '$serverType');"; echo "setjPlayer('$url', '$type', '$serverType');";
} }
?> ?>
$("#popup-link").click(function() {
$("#popup-share").show("slow");
$("#popup-share-link").val($("#combo-box option:selected").attr("data-url"));
});
$("#popup-close").click(function() {
$("#popup-share").hide("slow");
});
}); });
</script> </script>
<div class="jp-logo"><img id="logo-img" onload='resizeToMaxHeight(this, 40);' src="<?php echo $this->logo ?>" /></div> <div class="jp-logo"><img id="logo-img" onload='resizeToMaxHeight(this, 40);' src="<?php echo $this->logo ?>" /></div>
<div class="jp-stream"> <div id="popup-share">
<a class="close-round" href="#" id="popup-close"></a>
<input id="popup-share-link" type="text" readonly="readonly"/>
</div>
<div class="jp-stream stream-player-label">
<div class="jp-stream-text"><? echo _("Select stream:"); ?></div> <div class="jp-stream-text"><? echo _("Select stream:"); ?></div>
<form id="form1" method="post" action=""> <form id="form1" method="post" action="">

View File

@ -114,6 +114,34 @@
</ul> </ul>
<?php endif; ?> <?php endif; ?>
</dd> </dd>
<dt id="cu-locale-label">
<label><?php echo $this->element->getElement('cu_locale')->getLabel() ?>
</label>
</dt>
<dd id="cu-locale-element">
<?php echo $this->element->getElement('cu_locale') ?>
<?php if($this->element->getElement('cu_locale')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->element->getElement('cu_locale')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</dd>
<dt id="cu-timezone-label">
<label><?php echo $this->element->getElement('cu_timezone')->getLabel() ?>
</label>
</dt>
<dd id="cu-timezone-element">
<?php echo $this->element->getElement('cu_timezone') ?>
<?php if($this->element->getElement('cu_timezone')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->element->getElement('cu_timezone')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</dd>
<button id="cu_save_user" type="button" class="btn btn-small right-floated">Save</button> <button id="cu_save_user" type="button" class="btn btn-small right-floated">Save</button>
</dl> </dl>
</form> </form>

View File

@ -67,8 +67,8 @@
</dd> </dd>
<dt id="timezone-label" class="block-display"> <dt id="timezone-label" class="block-display">
<label class="required" for="timezone"><?php echo $this->element->getElement('timezone')->getLabel() ?> <label class="required" for="timezone"><?php echo $this->element->getElement('timezone')->getLabel() ?>:
<span class="info-text-small"><?php _("(Required)") ?></span> : <span class="info-text-small"><?php _("(Required)") ?></span>
</label> </label>
</dt> </dt>
<dd id="timezone-element" class="block-display"> <dd id="timezone-element" class="block-display">
@ -108,23 +108,5 @@
</ul> </ul>
<?php endif; ?> <?php endif; ?>
</dd> </dd>
<dt id="replayGainModifier-label" class="block-display">
<label><?php echo $this->element->getElement('replayGainModifier')->getLabel() ?>:
</label>
<span id="rg_modifier_value" style="border: 0; color: #f6931f; font-weight: bold;">
<?php echo $this->element->getElement('replayGainModifier')->getValue() ?>
</span>
</dt>
<dd id="replayGainModifier-element" class="block-display">
<?php echo $this->element->getElement('replayGainModifier') ?>
<?php if($this->element->getElement('replayGainModifier')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->element->getElement('replayGainModifier')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<div id="slider-range-max"></div>
</dd>
</dl> </dl>
</fieldset> </fieldset>

View File

@ -1,4 +1,4 @@
<?php <?php
$s_name = "s".$this->stream_number; $s_name = "s".$this->stream_number;
?> ?>
<h3 class="collapsible-header <?php echo $this->stream_number == '1'?"closed":""?>"><span class="arrow-icon"></span><? echo _("Stream "); ?><?php echo $this->stream_number?></h3> <h3 class="collapsible-header <?php echo $this->stream_number == '1'?"closed":""?>"><span class="arrow-icon"></span><? echo _("Stream "); ?><?php echo $this->stream_number?></h3>
@ -104,6 +104,34 @@
</ul> </ul>
<?php endif; ?> <?php endif; ?>
</dd> </dd>
<dt id="adminUser-label">
<label for="outputUser"><?php echo $this->element->getElement('admin_user')->getLabel()?> :
<span class='admin_username_help_icon'></span>
</label>
</dt>
<dd id="adminUser-element">
<?php echo $this->element->getElement('admin_user')?>
<?php if($this->element->getElement('admin_user')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->element->getElement('admin_user')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</dd>
<dt id="adminPassword-label">
<label class="optional" for="outputPassword"><?php echo $this->element->getElement('admin_pass')->getLabel()?> :</label>
</dt>
<dd id="adminPassword-element" class="clearfix">
<?php echo $this->element->getElement('admin_pass')?>
<?php if($this->element->getElement('admin_pass')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->element->getElement('admin_pass')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</dd>
<dt class="block-display info-block"> <dt class="block-display info-block">
<?php echo _("The following info will be displayed to listeners in their media player:")?> <?php echo _("The following info will be displayed to listeners in their media player:")?>
</dt> </dt>

View File

@ -1,6 +1,3 @@
<div class="ui-widget ui-widget-content block-shadow simple-formblock clearfix padded-strong" id="edit-md-dialog"> <div class="ui-widget ui-widget-content block-shadow simple-formblock clearfix padded-strong" id="edit-md-dialog">
<h2><? echo _("Edit Metadata") ?></h2> <?php echo $this->form; ?>
<?php //$this->form->setAction($this->url());
echo $this->form; ?>
</div> </div>

View File

@ -18,7 +18,7 @@
<tr><td><? echo _("Isrc Number:"); ?></td><td><?php echo ($this->md["MDATA_KEY_ISRC"]);?></td></tr> <tr><td><? echo _("Isrc Number:"); ?></td><td><?php echo ($this->md["MDATA_KEY_ISRC"]);?></td></tr>
<tr><td><? echo _("Website:"); ?></td><td><?php echo ($this->md["MDATA_KEY_URL"]);?></td></tr> <tr><td><? echo _("Website:"); ?></td><td><?php echo ($this->md["MDATA_KEY_URL"]);?></td></tr>
<tr><td><? echo _("Language:"); ?></td><td><?php echo ($this->md["MDATA_KEY_LANGUAGE"]);?></td></tr> <tr><td><? echo _("Language:"); ?></td><td><?php echo ($this->md["MDATA_KEY_LANGUAGE"]);?></td></tr>
<tr><td><? echo _("File"); ?>&nbsp;<? echo _("Path:"); ?></td><td><?php echo ($this->md["MDATA_KEY_FILEPATH"]);?></td></tr> <tr><td class='file-md-qtip-nowrap'><? echo _("File Path:"); ?></td><td><?php echo ($this->md["MDATA_KEY_FILEPATH"]);?></td></tr>
</table> </table>
<?php endif; ?> <?php endif; ?>

View File

@ -2,5 +2,13 @@
<?php echo _("Listener Count Over Time")?><br> <?php echo _("Listener Count Over Time")?><br>
<div id="flot_placeholder" style="width:600px;height:300px;margin:0px 50px 0px 50px"></div> <div id="flot_placeholder" style="width:600px;height:300px;margin:0px 50px 0px 50px"></div>
<div id="legend" style="width:600px;height:70px;margin:0px 50px 0px 50px"></div> <div id="legend" style="width:600px;height:70px;margin:0px 50px 0px 50px"></div>
<div id="date_form" style="margin:0px 50px 0px 50px"><?php echo $this->date_form; ?></div> <div id="date_form" style="float:left; margin:0px 50px 0px 50px"><?php echo $this->date_form; ?></div>
<div id="errorStatus" style="float:right; width: 400px">
<fieldset class="padded stream-setting-global">
<legend>Status</legend>
<?php foreach ($this->errorStatus as $k=>$v) {?>
<div class='stream-status <?php echo ($v == 'OK')? 'status-good' : 'status-error' ?>'><h3><?php echo $k?>: <?php echo $v?></h3></div>
<?php }?>
</fieldset>
</div>
</div> </div>

View File

@ -63,6 +63,33 @@
</ul> </ul>
<?php endif; ?> <?php endif; ?>
</dd> </dd>
<dt id="offAirMeta-label">
<label>
<?php echo $this->form->getElement('offAirMeta')->getLabel() ?> :
</label>
</dt>
<dd id="offAirMeta-element">
<?php echo $this->form->getElement('offAirMeta') ?>
</dd>
<dt id="replayGainModifier-label" class="block-display">
<label><?php echo $this->form->getElement('replayGainModifier')->getLabel() ?>:
</label>
<span id="rg_modifier_value" style="border: 0; color: #f6931f; font-weight: bold;">
<?php echo $this->form->getElement('replayGainModifier')->getValue() ?>
</span>
dB
</dt>
<dd id="replayGainModifier-element" class="block-display">
<?php echo $this->form->getElement('replayGainModifier') ?>
<?php if($this->form->getElement('replayGainModifier')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->form->getElement('replayGainModifier')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<div id="slider-range-max" style="width: 99%"></div>
</dd>
</dl> </dl>
</fieldset> </fieldset>
<?php echo $this->form->getSubform('live_stream_subform'); ?> <?php echo $this->form->getSubform('live_stream_subform'); ?>

View File

@ -1,3 +1,5 @@
<div class="ui-widget ui-widget-content block-shadow clearfix padded-strong edit-current-user">
<h2><? echo _("Edit User") ?></h2>
<?php echo $this->successMessage ?> <?php echo $this->successMessage ?>
<?php echo $this->form?> <?php echo $this->form?>
</div>

View File

@ -76,6 +76,8 @@
<column name="soundcloud_upload_time" phpName="DbSoundCloundUploadTime" type="TIMESTAMP" size="6" required="false"/> <column name="soundcloud_upload_time" phpName="DbSoundCloundUploadTime" type="TIMESTAMP" size="6" required="false"/>
<column name="replay_gain" phpName="DbReplayGain" type="NUMERIC" required="false"/> <column name="replay_gain" phpName="DbReplayGain" type="NUMERIC" required="false"/>
<column name="owner_id" phpName="DbOwnerId" type="INTEGER" required="false"/> <column name="owner_id" phpName="DbOwnerId" type="INTEGER" required="false"/>
<column name="cuein" phpName="DbCuein" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
<column name="cueout" phpName="DbCueout" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
<column name="hidden" phpName="DbHidden" type="BOOLEAN" defaultValue="false"/> <column name="hidden" phpName="DbHidden" type="BOOLEAN" defaultValue="false"/>
<foreign-key foreignTable="cc_subjs" phpName="FkOwner" name="cc_files_owner_fkey"> <foreign-key foreignTable="cc_subjs" phpName="FkOwner" name="cc_files_owner_fkey">
<reference local="owner_id" foreign="id"/> <reference local="owner_id" foreign="id"/>

View File

@ -1,4 +1,7 @@
INSERT INTO cc_subjs ("login", "type", "pass") VALUES ('admin', 'A', md5('admin')); INSERT INTO cc_subjs ("login", "type", "pass") VALUES ('admin', 'A', md5('admin'));
-- added in 2.3
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('off_air_meta', 'Airtime - offline', 'string');
-- end of added in 2.3
-- added in 2.1 -- added in 2.1
INSERT INTO cc_pref("keystr", "valstr") VALUES('scheduled_play_switch', 'on'); INSERT INTO cc_pref("keystr", "valstr") VALUES('scheduled_play_switch', 'on');
@ -25,6 +28,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_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_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_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_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_url', 'http://airtime.sourcefabric.org', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_description', 'Airtime Radio! Stream #1', 'string'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_description', 'Airtime Radio! Stream #1', 'string');
@ -38,6 +43,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_port', '', 'integer');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_user', '', 'string'); 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_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_mount', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_url', '', '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'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_description', '', 'string');
@ -51,6 +58,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_port', '', 'integer');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_user', '', 'string'); 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_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_mount', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_url', '', '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'); INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_description', '', 'string');
@ -313,10 +322,14 @@ INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('s3_channels', 'ste
-- added in 2.3 -- added in 2.3
INSERT INTO cc_pref("keystr", "valstr") VALUES('locale', 'en_CA'); 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_CA', 'English');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('en_US', 'English - US'); INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('en_US', 'English - US');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('fr_FR', 'French'); INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('fr_FR', 'French');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('de_DE', 'German'); INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('de_DE', 'German');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('it_IT', 'Italian');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('ko_KR', 'Korean'); INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('ko_KR', 'Korean');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('ru_RU', 'Russian'); INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('ru_RU', 'Russian');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('es_ES', 'Spanish'); INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('es_ES', 'Spanish');

View File

@ -94,6 +94,8 @@ CREATE TABLE "cc_files"
"soundcloud_upload_time" TIMESTAMP(6), "soundcloud_upload_time" TIMESTAMP(6),
"replay_gain" NUMERIC, "replay_gain" NUMERIC,
"owner_id" INTEGER, "owner_id" INTEGER,
"cuein" interval default '00:00:00',
"cueout" interval default '00:00:00',
"hidden" BOOLEAN default 'f', "hidden" BOOLEAN default 'f',
PRIMARY KEY ("id") PRIMARY KEY ("id")
); );

File diff suppressed because it is too large Load Diff

View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n" "Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: contact@sourcefabric.org\n" "Report-Msgid-Bugs-To: contact@sourcefabric.org\n"
"POT-Creation-Date: 2012-11-28 16:00-0500\n" "POT-Creation-Date: 2012-11-28 16:00-0500\n"
"PO-Revision-Date: 2012-11-29 11:31-0500\n" "PO-Revision-Date: 2013-01-04 17:50+0100\n"
"Last-Translator: Denise Rigato <denise.rigato@sourcefabric.org>\n" "Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: Canadian Localization <contact@sourcefabric.org>\n" "Language-Team: Canadian Localization <contact@sourcefabric.org>\n"
"Language: en_CA\n" "Language: en_CA\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -2650,8 +2650,8 @@ msgstr "User Type"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format #, php-format
msgid "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s" msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s" msgstr "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format #, php-format

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n" "Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: contact@sourcefabric.org\n" "Report-Msgid-Bugs-To: contact@sourcefabric.org\n"
"POT-Creation-Date: 2012-11-28 16:00-0500\n" "POT-Creation-Date: 2012-11-28 16:00-0500\n"
"PO-Revision-Date: 2012-12-05 11:41+0100\n" "PO-Revision-Date: 2013-01-04 17:47+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n" "Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: British Localization <contact@sourcefabric.org>\n" "Language-Team: British Localization <contact@sourcefabric.org>\n"
"Language: en_GB\n" "Language: en_GB\n"
@ -2650,8 +2650,8 @@ msgstr "User Type"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format #, php-format
msgid "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s" msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s" msgstr "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format #, php-format

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n" "Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: contact@sourcefabric.org\n" "Report-Msgid-Bugs-To: contact@sourcefabric.org\n"
"POT-Creation-Date: 2012-11-28 16:00-0500\n" "POT-Creation-Date: 2012-11-28 16:00-0500\n"
"PO-Revision-Date: 2012-12-05 11:35+0100\n" "PO-Revision-Date: 2013-01-04 17:48+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n" "Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: United States Localization <contact@sourcefabric.org>\n" "Language-Team: United States Localization <contact@sourcefabric.org>\n"
"Language: en_US\n" "Language: en_US\n"
@ -2650,8 +2650,8 @@ msgstr "User Type"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format #, php-format
msgid "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s" msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s" msgstr "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format #, php-format

View File

@ -7,9 +7,9 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n" "Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: http://forum.sourcefabric.org/\n" "Report-Msgid-Bugs-To: http://forum.sourcefabric.org/\n"
"POT-Creation-Date: 2012-11-29 11:44-0500\n" "POT-Creation-Date: 2012-11-29 11:44-0500\n"
"PO-Revision-Date: 2012-12-03 20:19-0600\n" "PO-Revision-Date: 2013-01-04 17:38+0100\n"
"Last-Translator: Claudia Cruz <claudia.cruz@sourcefabric.org>\n" "Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: <contact@sourcefabric.org>\n" "Language-Team: Spanish Localization <contact@sourcefabric.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -56,7 +56,7 @@ msgstr "Streams"
#: airtime_mvc/application/configs/navigation.php:70 #: airtime_mvc/application/configs/navigation.php:70
#: airtime_mvc/application/controllers/PreferenceController.php:134 #: airtime_mvc/application/controllers/PreferenceController.php:134
msgid "Support Feedback" msgid "Support Feedback"
msgstr "Retroalimentación sobre el soporte técnico" msgstr "Tu estación en nuestro catálogo"
#: airtime_mvc/application/configs/navigation.php:76 #: airtime_mvc/application/configs/navigation.php:76
#: airtime_mvc/application/views/scripts/systemstatus/index.phtml:5 #: airtime_mvc/application/views/scripts/systemstatus/index.phtml:5
@ -2597,7 +2597,7 @@ msgstr "Fuente del show"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:45 #: airtime_mvc/application/views/scripts/partialviews/header.phtml:45
msgid "Scheduled Play" msgid "Scheduled Play"
msgstr "Reproducción programada" msgstr "Contenido programado"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:54 #: airtime_mvc/application/views/scripts/partialviews/header.phtml:54
msgid "ON AIR" msgid "ON AIR"
@ -2649,8 +2649,8 @@ msgstr "Tipo de usuario"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format #, php-format
msgid "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s" msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, , el software de código abierto para programar y administrar estaciones de radio de forma remota. %s" msgstr "%sAirtime%s %s, el software de código abierto para programar y administrar estaciones de radio de forma remota. %s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format #, php-format

View File

@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n" "Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: http://forum.sourcefabric.org/\n" "Report-Msgid-Bugs-To: http://forum.sourcefabric.org/\n"
"POT-Creation-Date: 2012-11-29 11:44-0500\n" "POT-Creation-Date: 2012-11-29 11:44-0500\n"
"PO-Revision-Date: 2012-12-08 13:56+0100\n" "PO-Revision-Date: 2013-01-04 17:39+0100\n"
"Last-Translator: Albert Bruc <a.bruc@ab-ae.fr>\n" "Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: French Localization <contact@sourcefabric.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -105,12 +105,8 @@ msgstr "Déconnexion"
#: airtime_mvc/application/layouts/scripts/login.phtml:16 #: airtime_mvc/application/layouts/scripts/login.phtml:16
#, php-format #, php-format
msgid "" msgid "Airtime Copyright &copy;Sourcefabric o.p.s. All rights reserved.%sMaintained and distributed under GNU GPL v.3 by %sSourcefabric o.p.s%s"
"Airtime Copyright &copy;Sourcefabric o.p.s. All rights reserved.%sMaintained " msgstr "Airtime Copyright &copy;Sourcefabric o.p.s. Tous droits réservés.%sMaintenu et distribué sous la GNU GPL v.3 par %sSourcefabric o.p.s%s"
"and distributed under GNU GPL v.3 by %sSourcefabric o.p.s%s"
msgstr ""
"Airtime Copyright &copy;Sourcefabric o.p.s. Tous droits réservés.%sMaintenu "
"et distribué sous la GNU GPL v.3 par %sSourcefabric o.p.s%s"
#: airtime_mvc/application/models/StoredFile.php:797 #: airtime_mvc/application/models/StoredFile.php:797
#: airtime_mvc/application/controllers/LocaleController.php:277 #: airtime_mvc/application/controllers/LocaleController.php:277
@ -135,28 +131,16 @@ msgstr "Impossible de créer le répertoire \"organize\"."
#: airtime_mvc/application/models/StoredFile.php:950 #: airtime_mvc/application/models/StoredFile.php:950
#, php-format #, php-format
msgid "" msgid "The file was not uploaded, there is %s MB of disk space left and the file you are uploading has a size of %s MB."
"The file was not uploaded, there is %s MB of disk space left and the file " msgstr "Le fichier n'a pas été téléchargé, il y a %s Mo d'espace libre sur le disque et le fichier que vous téléchargez a une taille de %s MB."
"you are uploading has a size of %s MB."
msgstr ""
"Le fichier n'a pas été téléchargé, il y a %s Mo d'espace libre sur le disque "
"et le fichier que vous téléchargez a une taille de %s MB."
#: airtime_mvc/application/models/StoredFile.php:959 #: airtime_mvc/application/models/StoredFile.php:959
msgid "" msgid "This file appears to be corrupted and will not be added to media library."
"This file appears to be corrupted and will not be added to media library." msgstr "Ce fichier semble être endommagé et ne sera pas ajouté à la médiathèque."
msgstr ""
"Ce fichier semble être endommagé et ne sera pas ajouté à la médiathèque."
#: airtime_mvc/application/models/StoredFile.php:995 #: airtime_mvc/application/models/StoredFile.php:995
msgid "" msgid "The file was not uploaded, this error can occur if the computer hard drive does not have enough disk space or the stor directory does not have correct write permissions."
"The file was not uploaded, this error can occur if the computer hard drive " msgstr "Le fichier n'a pas été téléchargé, cette erreur peut se produire si le disque dur de l'ordinateur ne dispose pas de suffisamment d'espace libre ou le répertoire stockage ne dispose pas des autorisations d'écriture correctes."
"does not have enough disk space or the stor directory does not have correct "
"write permissions."
msgstr ""
"Le fichier n'a pas été téléchargé, cette erreur peut se produire si le "
"disque dur de l'ordinateur ne dispose pas de suffisamment d'espace libre ou "
"le répertoire stockage ne dispose pas des autorisations d'écriture correctes."
#: airtime_mvc/application/models/Preference.php:469 #: airtime_mvc/application/models/Preference.php:469
msgid "Select Country" msgid "Select Country"
@ -185,19 +169,13 @@ msgstr "%s n'est pas un répertoire valide."
#: airtime_mvc/application/models/MusicDir.php:231 #: airtime_mvc/application/models/MusicDir.php:231
#, php-format #, php-format
msgid "" msgid "%s is already set as the current storage dir or in the watched folders list"
"%s is already set as the current storage dir or in the watched folders list" msgstr "%s est déjà défini comme le répertoire de stockage courant ou dans la liste des dossiers surveillés"
msgstr ""
"%s est déjà défini comme le répertoire de stockage courant ou dans la liste "
"des dossiers surveillés"
#: airtime_mvc/application/models/MusicDir.php:381 #: airtime_mvc/application/models/MusicDir.php:381
#, php-format #, php-format
msgid "" msgid "%s is already set as the current storage dir or in the watched folders list."
"%s is already set as the current storage dir or in the watched folders list." msgstr "%s est déjà défini comme espace de stockage courant ou dans la liste des répertoires surveillés."
msgstr ""
"%s est déjà défini comme espace de stockage courant ou dans la liste des "
"répertoires surveillés."
#: airtime_mvc/application/models/MusicDir.php:424 #: airtime_mvc/application/models/MusicDir.php:424
#, php-format #, php-format
@ -214,16 +192,14 @@ msgstr "Le Point d'entré et le point de sortie sont nul."
#: airtime_mvc/application/models/Block.php:803 #: airtime_mvc/application/models/Block.php:803
#: airtime_mvc/application/models/Block.php:824 #: airtime_mvc/application/models/Block.php:824
msgid "Can't set cue in to be larger than cue out." msgid "Can't set cue in to be larger than cue out."
msgstr "" msgstr "Impossible de définir un point d'entrée plus grand que le point de sortie."
"Impossible de définir un point d'entrée plus grand que le point de sortie."
#: airtime_mvc/application/models/Playlist.php:761 #: airtime_mvc/application/models/Playlist.php:761
#: airtime_mvc/application/models/Playlist.php:802 #: airtime_mvc/application/models/Playlist.php:802
#: airtime_mvc/application/models/Block.php:792 #: airtime_mvc/application/models/Block.php:792
#: airtime_mvc/application/models/Block.php:848 #: airtime_mvc/application/models/Block.php:848
msgid "Can't set cue out to be greater than file length." msgid "Can't set cue out to be greater than file length."
msgstr "" msgstr "Ne peut pas fixer un point de sortie plus grand que la durée du fichier."
"Ne peut pas fixer un point de sortie plus grand que la durée du fichier."
#: airtime_mvc/application/models/Playlist.php:795 #: airtime_mvc/application/models/Playlist.php:795
#: airtime_mvc/application/models/Block.php:859 #: airtime_mvc/application/models/Block.php:859
@ -245,8 +221,7 @@ msgid ""
"Note: Resizing a repeating show affects all of its repeats." "Note: Resizing a repeating show affects all of its repeats."
msgstr "" msgstr ""
"Ne peux pas programmer des émissions qui se chevauchent. \n" "Ne peux pas programmer des émissions qui se chevauchent. \n"
"Remarque: Le redimensionnement d'une émission répétée affecte l'ensemble de " "Remarque: Le redimensionnement d'une émission répétée affecte l'ensemble de ses répétitions."
"ses répétitions."
#: airtime_mvc/application/models/Webstream.php:157 #: airtime_mvc/application/models/Webstream.php:157
msgid "Length needs to be greater than 0 minutes" msgid "Length needs to be greater than 0 minutes"
@ -295,8 +270,7 @@ msgstr "Type de flux non reconnu: %s"
#: airtime_mvc/application/models/ShowInstance.php:245 #: airtime_mvc/application/models/ShowInstance.php:245
msgid "Can't drag and drop repeating shows" msgid "Can't drag and drop repeating shows"
msgstr "" msgstr "Vous ne pouvez pas faire glisser et déposer des émissions en répétition"
"Vous ne pouvez pas faire glisser et déposer des émissions en répétition"
#: airtime_mvc/application/models/ShowInstance.php:253 #: airtime_mvc/application/models/ShowInstance.php:253
msgid "Can't move a past show" msgid "Can't move a past show"
@ -317,15 +291,11 @@ msgstr "Ne peux pas programmer des émissions qui se chevauchent"
#: airtime_mvc/application/models/ShowInstance.php:290 #: airtime_mvc/application/models/ShowInstance.php:290
msgid "Can't move a recorded show less than 1 hour before its rebroadcasts." msgid "Can't move a recorded show less than 1 hour before its rebroadcasts."
msgstr "" msgstr "Impossible de déplacer une émission enregistrée à moins d'1 heure avant ses rediffusions."
"Impossible de déplacer une émission enregistrée à moins d'1 heure avant ses "
"rediffusions."
#: airtime_mvc/application/models/ShowInstance.php:303 #: airtime_mvc/application/models/ShowInstance.php:303
msgid "Show was deleted because recorded show does not exist!" msgid "Show was deleted because recorded show does not exist!"
msgstr "" msgstr "L'Emission a été éffacée parce que l'enregistrement de l'émission n'existe pas!"
"L'Emission a été éffacée parce que l'enregistrement de l'émission n'existe "
"pas!"
#: airtime_mvc/application/models/ShowInstance.php:310 #: airtime_mvc/application/models/ShowInstance.php:310
msgid "Must wait 1 hour to rebroadcast." msgid "Must wait 1 hour to rebroadcast."
@ -356,13 +326,11 @@ msgstr "Mot de passe Airtime Réinitialisé"
#: airtime_mvc/application/models/Scheduler.php:82 #: airtime_mvc/application/models/Scheduler.php:82
msgid "The schedule you're viewing is out of date! (sched mismatch)" msgid "The schedule you're viewing is out of date! (sched mismatch)"
msgstr "" msgstr "Le calendrier que vous consultez n'est pas à jour! (décalage calendaire)"
"Le calendrier que vous consultez n'est pas à jour! (décalage calendaire)"
#: airtime_mvc/application/models/Scheduler.php:87 #: airtime_mvc/application/models/Scheduler.php:87
msgid "The schedule you're viewing is out of date! (instance mismatch)" msgid "The schedule you're viewing is out of date! (instance mismatch)"
msgstr "" msgstr "La programmation que vous consultez n'est pas à jour! (décalage d'instance)"
"La programmation que vous consultez n'est pas à jour! (décalage d'instance)"
#: airtime_mvc/application/models/Scheduler.php:95 #: airtime_mvc/application/models/Scheduler.php:95
#: airtime_mvc/application/models/Scheduler.php:346 #: airtime_mvc/application/models/Scheduler.php:346
@ -669,9 +637,7 @@ msgstr "Promouvoir ma station sur Sourcefabric.org"
#: airtime_mvc/application/forms/SupportSettings.php:148 #: airtime_mvc/application/forms/SupportSettings.php:148
#, php-format #, php-format
msgid "By checking this box, I agree to Sourcefabric's %sprivacy policy%s." msgid "By checking this box, I agree to Sourcefabric's %sprivacy policy%s."
msgstr "" msgstr "En cochant cette case, j'accepte la %spolitique de confidentialité%s de Sourcefabric ."
"En cochant cette case, j'accepte la %spolitique de confidentialité%s de "
"Sourcefabric ."
#: airtime_mvc/application/forms/RegisterAirtime.php:166 #: airtime_mvc/application/forms/RegisterAirtime.php:166
#: airtime_mvc/application/forms/SupportSettings.php:173 #: airtime_mvc/application/forms/SupportSettings.php:173
@ -723,11 +689,8 @@ msgid "Value is required and can't be empty"
msgstr "Une Valeur est requise, ne peut pas être vide" msgstr "Une Valeur est requise, ne peut pas être vide"
#: airtime_mvc/application/forms/helpers/ValidationTypes.php:19 #: airtime_mvc/application/forms/helpers/ValidationTypes.php:19
msgid "" msgid "'%value%' is no valid email address in the basic format local-part@hostname"
"'%value%' is no valid email address in the basic format local-part@hostname" msgstr "'%value%' n'est pas une adresse de courriel valide dans le format de type partie-locale@nomdedomaine"
msgstr ""
"'%value%' n'est pas une adresse de courriel valide dans le format de type "
"partie-locale@nomdedomaine"
#: airtime_mvc/application/forms/helpers/ValidationTypes.php:33 #: airtime_mvc/application/forms/helpers/ValidationTypes.php:33
msgid "'%value%' does not fit the date format '%format%'" msgid "'%value%' does not fit the date format '%format%'"
@ -1149,11 +1112,11 @@ msgstr "'%value%' ne correspond pas au format de durée 'HH:mm'"
#: airtime_mvc/application/forms/AddShowWhen.php:22 #: airtime_mvc/application/forms/AddShowWhen.php:22
msgid "Date/Time Start:" msgid "Date/Time Start:"
msgstr "Date / Heure de Début:" msgstr "Date/Heure de Début:"
#: airtime_mvc/application/forms/AddShowWhen.php:49 #: airtime_mvc/application/forms/AddShowWhen.php:49
msgid "Date/Time End:" msgid "Date/Time End:"
msgstr "Date / Heure de Fin:" msgstr "Date/Heure de Fin:"
#: airtime_mvc/application/forms/AddShowWhen.php:74 #: airtime_mvc/application/forms/AddShowWhen.php:74
msgid "Duration:" msgid "Duration:"
@ -1169,9 +1132,7 @@ msgstr "Impossible de créer un émission dans le passé"
#: airtime_mvc/application/forms/AddShowWhen.php:111 #: airtime_mvc/application/forms/AddShowWhen.php:111
msgid "Cannot modify start date/time of the show that is already started" msgid "Cannot modify start date/time of the show that is already started"
msgstr "" msgstr "Vous ne pouvez pas modifier la date / heure de début de l'émission qui a déjà commencé"
"Vous ne pouvez pas modifier la date / heure de début de l'émission qui a "
"déjà commencé"
#: airtime_mvc/application/forms/AddShowWhen.php:130 #: airtime_mvc/application/forms/AddShowWhen.php:130
msgid "Cannot have duration 00h 00m" msgid "Cannot have duration 00h 00m"
@ -1399,11 +1360,8 @@ msgstr "La 'Durée' doit être au format '00:00:00'"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:502 #: airtime_mvc/application/forms/SmartBlockCriteria.php:502
#: airtime_mvc/application/forms/SmartBlockCriteria.php:515 #: airtime_mvc/application/forms/SmartBlockCriteria.php:515
msgid "" msgid "The value should be in timestamp format(eg. 0000-00-00 or 00-00-00 00:00:00)"
"The value should be in timestamp format(eg. 0000-00-00 or 00-00-00 00:00:00)" msgstr "La valeur doit être en format d'horodatage (par exemple 0000-00-00 ou 00-00-00 00:00:00)"
msgstr ""
"La valeur doit être en format d'horodatage (par exemple 0000-00-00 ou "
"00-00-00 00:00:00)"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:529 #: airtime_mvc/application/forms/SmartBlockCriteria.php:529
msgid "The value has to be numeric" msgid "The value has to be numeric"
@ -1464,12 +1422,8 @@ msgstr "Entrez une durée en secondes 0{.0}"
#: airtime_mvc/application/forms/GeneralPreferences.php:48 #: airtime_mvc/application/forms/GeneralPreferences.php:48
#, php-format #, php-format
msgid "" msgid "Allow Remote Websites To Access \"Schedule\" Info?%s (Enable this to make front-end widgets work.)"
"Allow Remote Websites To Access \"Schedule\" Info?%s (Enable this to make " msgstr "Autoriser les sites internet à acceder aux informations de la Programmation ?%s (Activer cette option permettra aux widgets de fonctionner.)"
"front-end widgets work.)"
msgstr ""
"Autoriser les sites internet à acceder aux informations de la Programmation ?"
"%s (Activer cette option permettra aux widgets de fonctionner.)"
#: airtime_mvc/application/forms/GeneralPreferences.php:49 #: airtime_mvc/application/forms/GeneralPreferences.php:49
msgid "Disabled" msgid "Disabled"
@ -1662,17 +1616,11 @@ msgstr "S'il vous plaît saisissez votre nom d'utilisateur et mot de passe"
#: airtime_mvc/application/controllers/LoginController.php:73 #: airtime_mvc/application/controllers/LoginController.php:73
msgid "Wrong username or password provided. Please try again." msgid "Wrong username or password provided. Please try again."
msgstr "" msgstr "Mauvais Nom d'utilisateur ou mot de passe fourni. S'il vous plaît essayez de nouveau."
"Mauvais Nom d'utilisateur ou mot de passe fourni. S'il vous plaît essayez de "
"nouveau."
#: airtime_mvc/application/controllers/LoginController.php:135 #: airtime_mvc/application/controllers/LoginController.php:135
msgid "" msgid "Email could not be sent. Check your mail server settings and ensure it has been configured properly."
"Email could not be sent. Check your mail server settings and ensure it has " msgstr "Le Courriel n'a pas pu être envoyé. Vérifiez vos paramètres du serveur de messagerie et s'assurez vous qu'il a été correctement configuré."
"been configured properly."
msgstr ""
"Le Courriel n'a pas pu être envoyé. Vérifiez vos paramètres du serveur de "
"messagerie et s'assurez vous qu'il a été correctement configuré."
#: airtime_mvc/application/controllers/LoginController.php:138 #: airtime_mvc/application/controllers/LoginController.php:138
msgid "Given email not found." msgid "Given email not found."
@ -1786,9 +1734,7 @@ msgstr "Vous pouvez seulement ajouter des pistes aux Blocs Intelligents."
#: airtime_mvc/application/controllers/LocaleController.php:54 #: airtime_mvc/application/controllers/LocaleController.php:54
#: airtime_mvc/application/controllers/PlaylistController.php:160 #: airtime_mvc/application/controllers/PlaylistController.php:160
msgid "You can only add tracks, smart blocks, and webstreams to playlists." msgid "You can only add tracks, smart blocks, and webstreams to playlists."
msgstr "" msgstr "Vous pouvez uniquement ajouter des pistes, des blocs intelligents et flux web aux listes de lecture."
"Vous pouvez uniquement ajouter des pistes, des blocs intelligents et flux "
"web aux listes de lecture."
#: airtime_mvc/application/controllers/LocaleController.php:60 #: airtime_mvc/application/controllers/LocaleController.php:60
msgid "Add to selected show" msgid "Add to selected show"
@ -1898,13 +1844,8 @@ msgstr "L'entrée doit être au format suivant: hh:mm:ss.t"
#: airtime_mvc/application/controllers/LocaleController.php:111 #: airtime_mvc/application/controllers/LocaleController.php:111
#, php-format #, php-format
msgid "" msgid "You are currently uploading files. %sGoing to another screen will cancel the upload process. %sAre you sure you want to leave the page?"
"You are currently uploading files. %sGoing to another screen will cancel the " msgstr "Vous êtes en train de téléverser des fichiers. %s Aller vers un autre écran pour annuler le processus de téléversement. %s Êtes-vous sûr de vouloir quitter la page?"
"upload process. %sAre you sure you want to leave the page?"
msgstr ""
"Vous êtes en train de téléverser des fichiers. %s Aller vers un autre écran "
"pour annuler le processus de téléversement. %s Êtes-vous sûr de vouloir "
"quitter la page?"
#: airtime_mvc/application/controllers/LocaleController.php:113 #: airtime_mvc/application/controllers/LocaleController.php:113
msgid "please put in a time '00:00:00 (.0)'" msgid "please put in a time '00:00:00 (.0)'"
@ -1916,8 +1857,7 @@ msgstr "s'il vous plaît mettez dans une durée en secondes '00 (.0) '"
#: airtime_mvc/application/controllers/LocaleController.php:115 #: airtime_mvc/application/controllers/LocaleController.php:115
msgid "Your browser does not support playing this file type: " msgid "Your browser does not support playing this file type: "
msgstr "" msgstr "Votre navigateur ne prend pas en charge la lecture de ce type de fichier:"
"Votre navigateur ne prend pas en charge la lecture de ce type de fichier:"
#: airtime_mvc/application/controllers/LocaleController.php:116 #: airtime_mvc/application/controllers/LocaleController.php:116
msgid "Dynamic block is not previewable" msgid "Dynamic block is not previewable"
@ -1932,14 +1872,8 @@ msgid "Playlist saved"
msgstr "Liste de Lecture sauvegardé" msgstr "Liste de Lecture sauvegardé"
#: airtime_mvc/application/controllers/LocaleController.php:120 #: airtime_mvc/application/controllers/LocaleController.php:120
msgid "" msgid "Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."
"Airtime is unsure about the status of this file. This can happen when the " msgstr "Airtime n'est pas sûr de l'état de ce fichier. Cela peut arriver lorsque le fichier se trouve sur un lecteur distant qui est inaccessible ou si le fichier est dans un répertoire qui n'est pas plus «sruveillé»."
"file is on a remote drive that is unaccessible or the file is in a directory "
"that isn't 'watched' anymore."
msgstr ""
"Airtime n'est pas sûr de l'état de ce fichier. Cela peut arriver lorsque le "
"fichier se trouve sur un lecteur distant qui est inaccessible ou si le "
"fichier est dans un répertoire qui n'est pas plus «sruveillé»."
#: airtime_mvc/application/controllers/LocaleController.php:122 #: airtime_mvc/application/controllers/LocaleController.php:122
#, php-format #, php-format
@ -1964,36 +1898,16 @@ msgid "Image must be one of jpg, jpeg, png, or gif"
msgstr "L'Image doit être du type jpg, jpeg, png, ou gif" msgstr "L'Image doit être du type jpg, jpeg, png, ou gif"
#: airtime_mvc/application/controllers/LocaleController.php:130 #: airtime_mvc/application/controllers/LocaleController.php:130
msgid "" msgid "A static smart block will save the criteria and generate the block content immediately. This allows you to edit and view it in the Library before adding it to a show."
"A static smart block will save the criteria and generate the block content " msgstr "Un bloc statique intelligent permettra d'économiser les critères et générera le contenu du bloc immédiatement. Cela vous permet d'éditer et de le voir dans la médiathèque avant de l'ajouter à une émission."
"immediately. This allows you to edit and view it in the Library before "
"adding it to a show."
msgstr ""
"Un bloc statique intelligent permettra d'économiser les critères et générera "
"le contenu du bloc immédiatement. Cela vous permet d'éditer et de le voir "
"dans la médiathèque avant de l'ajouter à une émission."
#: airtime_mvc/application/controllers/LocaleController.php:132 #: airtime_mvc/application/controllers/LocaleController.php:132
msgid "" msgid "A dynamic smart block will only save the criteria. The block content will get generated upon adding it to a show. You will not be able to view and edit the content in the Library."
"A dynamic smart block will only save the criteria. The block content will " msgstr "Un bloc dynamique intelligent enregistre uniquement les critères. Le contenu du bloc que vous obtiendrez sera généré lors de l'ajout à l'émission. Vous ne serez pas en mesure d'afficher et de modifier le contenu de la médiathèque."
"get generated upon adding it to a show. You will not be able to view and "
"edit the content in the Library."
msgstr ""
"Un bloc dynamique intelligent enregistre uniquement les critères. Le contenu "
"du bloc que vous obtiendrez sera généré lors de l'ajout à l'émission. Vous "
"ne serez pas en mesure d'afficher et de modifier le contenu de la "
"médiathèque."
#: airtime_mvc/application/controllers/LocaleController.php:134 #: airtime_mvc/application/controllers/LocaleController.php:134
msgid "" msgid "The desired block length will not be reached if Airtime cannot find enough unique tracks to match your criteria. Enable this option if you wish to allow tracks to be added multiple times to the smart block."
"The desired block length will not be reached if Airtime cannot find enough " msgstr "La longueur du bloc souhaité ne sera pas atteint si de temps d'antenne ne peut pas trouver suffisamment de pistes uniques en fonction de vos critères. Activez cette option si vous souhaitez autoriser les pistes à s'ajouter plusieurs fois dans le bloc intelligent."
"unique tracks to match your criteria. Enable this option if you wish to "
"allow tracks to be added multiple times to the smart block."
msgstr ""
"La longueur du bloc souhaité ne sera pas atteint si de temps d'antenne ne "
"peut pas trouver suffisamment de pistes uniques en fonction de vos critères. "
"Activez cette option si vous souhaitez autoriser les pistes à s'ajouter "
"plusieurs fois dans le bloc intelligent."
#: airtime_mvc/application/controllers/LocaleController.php:135 #: airtime_mvc/application/controllers/LocaleController.php:135
msgid "Smart block shuffled" msgid "Smart block shuffled"
@ -2057,19 +1971,8 @@ msgid "Can not connect to the streaming server"
msgstr "Impossible de se connecter au serveur de flux" msgstr "Impossible de se connecter au serveur de flux"
#: airtime_mvc/application/controllers/LocaleController.php:171 #: airtime_mvc/application/controllers/LocaleController.php:171
msgid "" msgid "If Airtime is behind a router or firewall, you may need to configure port forwarding and this field information will be incorrect. In this case you will need to manually update this field so it shows the correct host/port/mount that your DJ's need to connect to. The allowed range is between 1024 and 49151."
"If Airtime is behind a router or firewall, you may need to configure port " msgstr "Si Airtime est derrière un routeur ou un pare-feu, vous devrez peut-être configurer la redirection de port et ce champ d'information sera alors incorrect.Dans ce cas, vous devrez mettre à jour manuellement ce champ de sorte qu'il affiche l'hôte/le port /le point de montage correct dont le DJ a besoin pour s'y connecter. La plage autorisée est comprise entre 1024 et 49151."
"forwarding and this field information will be incorrect. In this case you "
"will need to manually update this field so it shows the correct host/port/"
"mount that your DJ's need to connect to. The allowed range is between 1024 "
"and 49151."
msgstr ""
"Si Airtime est derrière un routeur ou un pare-feu, vous devrez peut-être "
"configurer la redirection de port et ce champ d'information sera alors "
"incorrect.Dans ce cas, vous devrez mettre à jour manuellement ce champ de "
"sorte qu'il affiche l'hôte/le port /le point de montage correct dont le DJ "
"a besoin pour s'y connecter. La plage autorisée est comprise entre 1024 et "
"49151."
#: airtime_mvc/application/controllers/LocaleController.php:172 #: airtime_mvc/application/controllers/LocaleController.php:172
#, php-format #, php-format
@ -2077,90 +1980,41 @@ msgid "For more details, please read the %sAirtime Manual%s"
msgstr "Pour plus de détails, s'il vous plaît lire le %sManuel d'Airtime%s" msgstr "Pour plus de détails, s'il vous plaît lire le %sManuel d'Airtime%s"
#: airtime_mvc/application/controllers/LocaleController.php:174 #: airtime_mvc/application/controllers/LocaleController.php:174
msgid "" msgid "Check this option to enable metadata for OGG streams (stream metadata is the track title, artist, and show name that is displayed in an audio player). VLC and mplayer have a serious bug when playing an OGG/VORBIS stream that has metadata information enabled: they will disconnect from the stream after every song. If you are using an OGG stream and your listeners do not require support for these audio players, then feel free to enable this option."
"Check this option to enable metadata for OGG streams (stream metadata is the " msgstr "Cochez cette option pour activer les métadonnées pour les flux OGG (les métadonnées du flux est le titre de la piste, l'artiste et le nom de émission qui est affiché dans un lecteur audio). VLC et mplayer ont un sérieux bogue lors de la lecture d'un flux Ogg / Vorbis qui affiche les informations de métadonnées: ils se déconnecteront après chaque chanson. Si vous utilisez un flux OGG et vos auditeurs n'utilisent pas ces lecteurs audio, alors n'hésitez pas à activer cette option."
"track title, artist, and show name that is displayed in an audio player). "
"VLC and mplayer have a serious bug when playing an OGG/VORBIS stream that "
"has metadata information enabled: they will disconnect from the stream after "
"every song. If you are using an OGG stream and your listeners do not require "
"support for these audio players, then feel free to enable this option."
msgstr ""
"Cochez cette option pour activer les métadonnées pour les flux OGG (les "
"métadonnées du flux est le titre de la piste, l'artiste et le nom de "
"émission qui est affiché dans un lecteur audio). VLC et mplayer ont un "
"sérieux bogue lors de la lecture d'un flux Ogg / Vorbis qui affiche les "
"informations de métadonnées: ils se déconnecteront après chaque chanson. Si "
"vous utilisez un flux OGG et vos auditeurs n'utilisent pas ces lecteurs "
"audio, alors n'hésitez pas à activer cette option."
#: airtime_mvc/application/controllers/LocaleController.php:175 #: airtime_mvc/application/controllers/LocaleController.php:175
msgid "" msgid "Check this box to automatically switch off Master/Show source upon source disconnection."
"Check this box to automatically switch off Master/Show source upon source " msgstr "Cochez cette case arrête automatiquement la source Maître/Emission lors de la déconnexion."
"disconnection."
msgstr ""
"Cochez cette case arrête automatiquement la source Maître/Emission lors de "
"la déconnexion."
#: airtime_mvc/application/controllers/LocaleController.php:176 #: airtime_mvc/application/controllers/LocaleController.php:176
msgid "" msgid "Check this box to automatically switch on Master/Show source upon source connection."
"Check this box to automatically switch on Master/Show source upon source " msgstr "Cochez cette case démarre automatiquement la source Maître/Emission lors de la connexion."
"connection."
msgstr ""
"Cochez cette case démarre automatiquement la source Maître/Emission lors de "
"la connexion."
#: airtime_mvc/application/controllers/LocaleController.php:177 #: airtime_mvc/application/controllers/LocaleController.php:177
msgid "" msgid "If your Icecast server expects a username of 'source', this field can be left blank."
"If your Icecast server expects a username of 'source', this field can be " msgstr "Si votre serveur Icecast s'attend à ce que le nom d'utilisateur soit «source», ce champ peut être laissé vide."
"left blank."
msgstr ""
"Si votre serveur Icecast s'attend à ce que le nom d'utilisateur soit "
"«source», ce champ peut être laissé vide."
#: airtime_mvc/application/controllers/LocaleController.php:178 #: airtime_mvc/application/controllers/LocaleController.php:178
#: airtime_mvc/application/controllers/LocaleController.php:187 #: airtime_mvc/application/controllers/LocaleController.php:187
msgid "" msgid "If your live streaming client does not ask for a username, this field should be 'source'."
"If your live streaming client does not ask for a username, this field should " msgstr "Si votre client de flux audio ne demande pas un nom d'utilisateur, ce champ doit être «source»."
"be 'source'."
msgstr ""
"Si votre client de flux audio ne demande pas un nom d'utilisateur, ce champ "
"doit être «source»."
#: airtime_mvc/application/controllers/LocaleController.php:180 #: airtime_mvc/application/controllers/LocaleController.php:180
msgid "" msgid "If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted."
"If you change the username or password values for an enabled stream the " msgstr "Si vous modifiez les valeurs du nom d'utilisateur ou du mot de passe pour un flux activé le moteur diffusion sera redémarré et vos auditeurs entendront un silence pendant 5-10 secondes. Changer les champs suivants ne provoqueront pas un redémarrage: Label du Flux (Paramètres globaux), et Commutateur de transition du fondu (s), Nom d'Utilisateur Maître, et le Mot de passe Maître (Paramètres du flux d'entrée). Si Airtime enregistre, et si la modification entraîne un redémarrage du moteur, l'enregistrement sera interrompu."
"playout engine will be rebooted and your listeners will hear silence for "
"5-10 seconds. Changing the following fields will NOT cause a reboot: Stream "
"Label (Global Settings), and Switch Transition Fade(s), Master Username, and "
"Master Password (Input Stream Settings). If Airtime is recording, and if the "
"change causes a playout engine restart, the recording will be interrupted."
msgstr ""
"Si vous modifiez les valeurs du nom d'utilisateur ou du mot de passe pour un "
"flux activé le moteur diffusion sera redémarré et vos auditeurs entendront "
"un silence pendant 5-10 secondes. Changer les champs suivants ne "
"provoqueront pas un redémarrage: Label du Flux (Paramètres globaux), et "
"Commutateur de transition du fondu (s), Nom d'Utilisateur Maître, et le Mot "
"de passe Maître (Paramètres du flux d'entrée). Si Airtime enregistre, et si "
"la modification entraîne un redémarrage du moteur, l'enregistrement sera "
"interrompu."
#: airtime_mvc/application/controllers/LocaleController.php:184 #: airtime_mvc/application/controllers/LocaleController.php:184
msgid "No result found" msgid "No result found"
msgstr "aucun résultat trouvé" msgstr "aucun résultat trouvé"
#: airtime_mvc/application/controllers/LocaleController.php:185 #: airtime_mvc/application/controllers/LocaleController.php:185
msgid "" msgid "This follows the same security pattern for the shows: only users assigned to the show can connect."
"This follows the same security pattern for the shows: only users assigned to " msgstr "Cela suit le même modèle de sécurité que pour les émissions: seuls les utilisateurs affectés à l' émission peuvent se connecter."
"the show can connect."
msgstr ""
"Cela suit le même modèle de sécurité que pour les émissions: seuls les "
"utilisateurs affectés à l' émission peuvent se connecter."
#: airtime_mvc/application/controllers/LocaleController.php:186 #: airtime_mvc/application/controllers/LocaleController.php:186
msgid "Specify custom authentication which will work only for this show." msgid "Specify custom authentication which will work only for this show."
msgstr "" msgstr "Spécifiez l'authentification personnalisée qui ne fonctionnera que pour cette émission."
"Spécifiez l'authentification personnalisée qui ne fonctionnera que pour "
"cette émission."
#: airtime_mvc/application/controllers/LocaleController.php:188 #: airtime_mvc/application/controllers/LocaleController.php:188
msgid "The show instance doesn't exist anymore!" msgid "The show instance doesn't exist anymore!"
@ -2316,11 +2170,8 @@ msgid "month"
msgstr "mois" msgstr "mois"
#: airtime_mvc/application/controllers/LocaleController.php:253 #: airtime_mvc/application/controllers/LocaleController.php:253
msgid "" msgid "Shows longer than their scheduled time will be cut off by a following show."
"Shows longer than their scheduled time will be cut off by a following show." msgstr "Les émissions qui dépassent leur programmation seront coupés par les émissions suivantes."
msgstr ""
"Les émissions qui dépassent leur programmation seront coupés par les "
"émissions suivantes."
#: airtime_mvc/application/controllers/LocaleController.php:254 #: airtime_mvc/application/controllers/LocaleController.php:254
msgid "Cancel Current Show?" msgid "Cancel Current Show?"
@ -2798,19 +2649,13 @@ msgstr "Type d'Utilisateur"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format #, php-format
msgid "" msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
"%sAirtime%s %s, , the open radio software for scheduling and remote station " msgstr "%sAirtime%s %s, est un logiciel libre pour la gestion et l'automation d'une station de radio distante. %s"
"management. %s"
msgstr ""
"%sAirtime%s %s, , est un logiciel libre pour la gestion et l'automation "
"d'une station de radio distante. %s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format #, php-format
msgid "" msgid "%sSourcefabric%s o.p.s. Airtime is distributed under the %sGNU GPL v.3%s"
"%sSourcefabric%s o.p.s. Airtime is distributed under the %sGNU GPL v.3%s" msgstr "%sSourcefabric%s o.p.s. Airtime est distribué sous la licence %sGNU GPL v.3%s"
msgstr ""
"%sSourcefabric%s o.p.s. Airtime est distribué sous la licence %sGNU GPL v.3%s"
#: airtime_mvc/application/views/scripts/dashboard/stream-player.phtml:50 #: airtime_mvc/application/views/scripts/dashboard/stream-player.phtml:50
msgid "Select stream:" msgid "Select stream:"
@ -2831,46 +2676,24 @@ msgid "Welcome to Airtime!"
msgstr "Bienvenue à Airtime!" msgstr "Bienvenue à Airtime!"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:4 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:4
msgid "" msgid "Here's how you can get started using Airtime to automate your broadcasts: "
"Here's how you can get started using Airtime to automate your broadcasts: " msgstr "Voici comment vous pouvez commencer à utiliser Airtime pour automatiser vos diffusions:"
msgstr ""
"Voici comment vous pouvez commencer à utiliser Airtime pour automatiser vos "
"diffusions:"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:7 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:7
msgid "" msgid "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."
"Begin by adding your files to the library using the 'Add Media' menu button. " msgstr "Commencez par ajouter vos fichiers à l'aide du menu \"Ajouter un média\". Vous pouvez faire glisser et déposer vos fichiers sur la fenêtre."
"You can drag and drop your files to this window too."
msgstr ""
"Commencez par ajouter vos fichiers à l'aide du menu \"Ajouter un média\". "
"Vous pouvez faire glisser et déposer vos fichiers sur la fenêtre."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:8 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:8
msgid "" msgid "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."
"Create a show by going to 'Calendar' in the menu bar, and then clicking the " msgstr "Créer une émission en allant sur «Calendrier» dans la barre de menus, puis en cliquant sur l'icône 'Emission + \". Il peut s'agir d'une seule fois ou d'une émission en répétition. Seuls les administrateurs et les gestionnaires de programmation peuvent ajouter des émissions."
"'+ Show' icon. This can be either a one-time or repeating show. Only admins "
"and program managers can add shows."
msgstr ""
"Créer une émission en allant sur «Calendrier» dans la barre de menus, puis "
"en cliquant sur l'icône 'Emission + \". Il peut s'agir d'une seule fois ou "
"d'une émission en répétition. Seuls les administrateurs et les gestionnaires "
"de programmation peuvent ajouter des émissions."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:9 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:9
msgid "" msgid "Add media to the show by going to your show in the Schedule calendar, left-clicking on it and selecting 'Add / Remove Content'"
"Add media to the show by going to your show in the Schedule calendar, left-" msgstr "Ajouter des médias à votre émission en cliquant sur votre émission dans le calendrier, Clic gauche dessus et selectionnez 'Ajouter / Supprimer Contenu'"
"clicking on it and selecting 'Add / Remove Content'"
msgstr ""
"Ajouter des médias à votre émission en cliquant sur votre émission dans le "
"calendrier, Clic gauche dessus et selectionnez 'Ajouter / Supprimer Contenu'"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:10 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:10
msgid "" msgid "Select your media from the left pane and drag them to your show in the right pane."
"Select your media from the left pane and drag them to your show in the right " msgstr "Sélectionnez votre média dans le cadre de gauche et glissez-les dans votre émission dans le cadre de droite."
"pane."
msgstr ""
"Sélectionnez votre média dans le cadre de gauche et glissez-les dans votre "
"émission dans le cadre de droite."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:12 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:12
msgid "Then you're good to go!" msgid "Then you're good to go!"
@ -3031,12 +2854,8 @@ msgid "Back to login screen"
msgstr "Retour à l'écran de connexion" msgstr "Retour à l'écran de connexion"
#: airtime_mvc/application/views/scripts/login/index.phtml:7 #: airtime_mvc/application/views/scripts/login/index.phtml:7
msgid "" msgid "Welcome to the online Airtime demo! You can log in using the username 'admin' and the password 'admin'."
"Welcome to the online Airtime demo! You can log in using the username " msgstr "Bienvenue à la démonstration en ligne d'Airtime! Vous pouvez vous connecter en utilisant \"admin\" comme nom d'utilisateur et «admin» comme mot de passe."
"'admin' and the password 'admin'."
msgstr ""
"Bienvenue à la démonstration en ligne d'Airtime! Vous pouvez vous connecter "
"en utilisant \"admin\" comme nom d'utilisateur et «admin» comme mot de passe."
#: airtime_mvc/application/views/scripts/login/password-restore.phtml:3 #: airtime_mvc/application/views/scripts/login/password-restore.phtml:3
#: airtime_mvc/application/views/scripts/form/login.phtml:25 #: airtime_mvc/application/views/scripts/form/login.phtml:25
@ -3044,12 +2863,8 @@ msgid "Reset password"
msgstr "Réinitialisation du Mot de Passe" msgstr "Réinitialisation du Mot de Passe"
#: airtime_mvc/application/views/scripts/login/password-restore.phtml:7 #: airtime_mvc/application/views/scripts/login/password-restore.phtml:7
msgid "" msgid "Please enter your account e-mail address. You will receive a link to create a new password via e-mail."
"Please enter your account e-mail address. You will receive a link to create " msgstr "S'il vous plaît saisissez votre adresse de courriel. Vous recevrez un lien pour créer un nouveau mot de passe par courriel."
"a new password via e-mail."
msgstr ""
"S'il vous plaît saisissez votre adresse de courriel. Vous recevrez un lien "
"pour créer un nouveau mot de passe par courriel."
#: airtime_mvc/application/views/scripts/login/password-change.phtml:3 #: airtime_mvc/application/views/scripts/login/password-change.phtml:3
msgid "New password" msgid "New password"
@ -3057,9 +2872,7 @@ msgstr "Nouveau mot de passe"
#: airtime_mvc/application/views/scripts/login/password-change.phtml:6 #: airtime_mvc/application/views/scripts/login/password-change.phtml:6
msgid "Please enter and confirm your new password in the fields below." msgid "Please enter and confirm your new password in the fields below."
msgstr "" msgstr "S'il vous plaît saisir et confirmer votre nouveau mot de passe dans les champs ci-dessous."
"S'il vous plaît saisir et confirmer votre nouveau mot de passe dans les "
"champs ci-dessous."
#: airtime_mvc/application/views/scripts/systemstatus/index.phtml:4 #: airtime_mvc/application/views/scripts/systemstatus/index.phtml:4
msgid "Service" msgid "Service"
@ -3115,12 +2928,8 @@ msgstr "Mise à Jour Requise"
#: airtime_mvc/application/views/scripts/audiopreview/audio-preview.phtml:70 #: airtime_mvc/application/views/scripts/audiopreview/audio-preview.phtml:70
#, php-format #, php-format
msgid "" msgid "To play the media you will need to either update your browser to a recent version or update your %sFlash plugin%s."
"To play the media you will need to either update your browser to a recent " msgstr "Pour lire le média, vous devrez mettre à jour votre navigateur vers une version récente ou mettre à jour votre %sPlugin Flash%s."
"version or update your %sFlash plugin%s."
msgstr ""
"Pour lire le média, vous devrez mettre à jour votre navigateur vers une "
"version récente ou mettre à jour votre %sPlugin Flash%s."
#: airtime_mvc/application/views/scripts/webstream/webstream.phtml:51 #: airtime_mvc/application/views/scripts/webstream/webstream.phtml:51
msgid "Stream URL:" msgid "Stream URL:"
@ -3168,11 +2977,8 @@ msgid "Additional Options"
msgstr "options supplémentaires" msgstr "options supplémentaires"
#: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:108 #: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:108
msgid "" msgid "The following info will be displayed to listeners in their media player:"
"The following info will be displayed to listeners in their media player:" msgstr "Les informations suivantes seront affichées aux auditeurs dans leur lecteur multimédia:"
msgstr ""
"Les informations suivantes seront affichées aux auditeurs dans leur lecteur "
"multimédia:"
#: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:141 #: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:141
msgid "(Your radio station website)" msgid "(Your radio station website)"
@ -3202,12 +3008,8 @@ msgid "Add"
msgstr "Ajouter" msgstr "Ajouter"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:43 #: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:43
msgid "" msgid "Rescan watched directory (This is useful if it is network mount and may be out of sync with Airtime)"
"Rescan watched directory (This is useful if it is network mount and may be " msgstr "Rescanner le répertoire surveillé (Peut être utile si c'est un montage réseau et est peut être désynchronisé avec Airtime)"
"out of sync with Airtime)"
msgstr ""
"Rescanner le répertoire surveillé (Peut être utile si c'est un montage "
"réseau et est peut être désynchronisé avec Airtime)"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:44 #: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:44
msgid "Remove watched directory" msgid "Remove watched directory"
@ -3232,29 +3034,13 @@ msgstr "Enregistrez Airtime"
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:6 #: airtime_mvc/application/views/scripts/form/register-dialog.phtml:6
#, php-format #, php-format
msgid "" msgid "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.%sClick 'Yes, help Airtime' and we'll make sure the features you use are constantly improving."
"Help Airtime improve by letting us know how you are using it. This info will " msgstr "Aidez Airtime à s' améliorer en nous faisant savoir comment vous l'utilisez. Cette information sera recueillie régulièrement afin d'améliorer votre expérience utilisateur.%sClickez «Oui, aidez Airtime» et nous nous assurerons que les fonctions que vous utilisez soient en constante amélioration."
"be collected regularly in order to enhance your user experience.%sClick "
"'Yes, help Airtime' and we'll make sure the features you use are constantly "
"improving."
msgstr ""
"Aidez Airtime à s' améliorer en nous faisant savoir comment vous l'utilisez. "
"Cette information sera recueillie régulièrement afin d'améliorer votre "
"expérience utilisateur.%sClickez «Oui, aidez Airtime» et nous nous "
"assurerons que les fonctions que vous utilisez soient en constante "
"amélioration."
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:25 #: airtime_mvc/application/views/scripts/form/register-dialog.phtml:25
#, php-format #, php-format
msgid "" msgid "Click the box below to advertise your station on %sSourcefabric.org%s. In order to promote your station, 'Send support feedback' must be enabled. This data will be collected in addition to the support feedback."
"Click the box below to advertise your station on %sSourcefabric.org%s. In " msgstr "Cliquez sur la case ci-dessous pour annoncer votre station sur %sSourcefabric.org%s. Afin de promouvoir votre station, 'Envoyez vos remarques au support \"doit être activé. Ces données seront recueillies en plus des retours d'informations."
"order to promote your station, 'Send support feedback' must be enabled. This "
"data will be collected in addition to the support feedback."
msgstr ""
"Cliquez sur la case ci-dessous pour annoncer votre station sur "
"%sSourcefabric.org%s. Afin de promouvoir votre station, 'Envoyez vos "
"remarques au support \"doit être activé. Ces données seront recueillies en "
"plus des retours d'informations."
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:65 #: airtime_mvc/application/views/scripts/form/register-dialog.phtml:65
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:79 #: airtime_mvc/application/views/scripts/form/register-dialog.phtml:79
@ -3330,31 +3116,17 @@ msgstr "Réglages SoundCloud"
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:5 #: airtime_mvc/application/views/scripts/form/support-setting.phtml:5
#, php-format #, php-format
msgid "" msgid "Help Airtime improve by letting Sourcefabric know how you are using it. This information will be collected regularly in order to enhance your user experience.%sClick the 'Send support feedback' box and we'll make sure the features you use are constantly improving."
"Help Airtime improve by letting Sourcefabric know how you are using it. This " msgstr "Aide Airtime à s'améliorer en laissant Sourcefabric savoir comment vous l'utilisez. Ces informations seront recueillies régulièrement afin d'améliorer votre expérience utilisateur.%sCochez la case 'Envoyer un retour d'information au support' et nous ferons en sorte que les fonctions que vous utilisez s'améliorent constamment."
"information will be collected regularly in order to enhance your user "
"experience.%sClick the 'Send support feedback' box and we'll make sure the "
"features you use are constantly improving."
msgstr ""
"Aide Airtime à s'améliorer en laissant Sourcefabric savoir comment vous "
"l'utilisez. Ces informations seront recueillies régulièrement afin "
"d'améliorer votre expérience utilisateur.%sCochez la case 'Envoyer un retour "
"d'information au support' et nous ferons en sorte que les fonctions que vous "
"utilisez s'améliorent constamment."
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:23 #: airtime_mvc/application/views/scripts/form/support-setting.phtml:23
#, php-format #, php-format
msgid "Click the box below to promote your station on %sSourcefabric.org%s." msgid "Click the box below to promote your station on %sSourcefabric.org%s."
msgstr "" msgstr "Cliquez sur la case ci-dessous pour la promotion de votre station sur %sSourcefabric.org%s."
"Cliquez sur la case ci-dessous pour la promotion de votre station sur "
"%sSourcefabric.org%s."
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:41 #: airtime_mvc/application/views/scripts/form/support-setting.phtml:41
msgid "" msgid "(In order to promote your station, 'Send support feedback' must be enabled)."
"(In order to promote your station, 'Send support feedback' must be enabled)." msgstr "(Pour la promotion de votre station, 'Envoyez vos remarques au support' doit être activé)."
msgstr ""
"(Pour la promotion de votre station, 'Envoyez vos remarques au support' doit "
"être activé)."
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:186 #: airtime_mvc/application/views/scripts/form/support-setting.phtml:186
msgid "Sourcefabric Privacy Policy" msgid "Sourcefabric Privacy Policy"
@ -3465,3 +3237,4 @@ msgstr "S'il vous plait, selectionnez une option"
#: airtime_mvc/library/propel/contrib/pear/HTML_QuickForm_Propel/Propel.php:531 #: airtime_mvc/library/propel/contrib/pear/HTML_QuickForm_Propel/Propel.php:531
msgid "No Records" msgid "No Records"
msgstr "Aucun Enregistrements" msgstr "Aucun Enregistrements"

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -3,14 +3,13 @@
# This file is distributed under the same license as the Airtime package. # This file is distributed under the same license as the Airtime package.
# Sourcefabric <contact@sourcefabric.org>, 2012. # Sourcefabric <contact@sourcefabric.org>, 2012.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Airtime 2.3\n" "Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: contact@sourcefabric.org\n" "Report-Msgid-Bugs-To: contact@sourcefabric.org\n"
"POT-Creation-Date: 2012-11-26 14:16-0500\n" "POT-Creation-Date: 2012-11-26 14:16-0500\n"
"PO-Revision-Date: 2012-11-26 14:16-0500\n" "PO-Revision-Date: 2013-01-04 17:45+0100\n"
"Last-Translator: James Moon <james.moon@sourcefabric.org>\n" "Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: Korean Localization <contact@sourcefabric.org>\n" "Language-Team: Korean Localization <contact@sourcefabric.org>\n"
"Language: ko_KR\n" "Language: ko_KR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -106,9 +105,7 @@ msgstr "로그아웃"
#: airtime_mvc/application/layouts/scripts/login.phtml:16 #: airtime_mvc/application/layouts/scripts/login.phtml:16
#, php-format #, php-format
msgid "" msgid "Airtime Copyright &copy;Sourcefabric o.p.s. All rights reserved.%sMaintained and distributed under GNU GPL v.3 by %sSourcefabric o.p.s%s"
"Airtime Copyright &copy;Sourcefabric o.p.s. All rights reserved.%sMaintained "
"and distributed under GNU GPL v.3 by %sSourcefabric o.p.s%s"
msgstr "" msgstr ""
#: airtime_mvc/application/models/StoredFile.php:797 #: airtime_mvc/application/models/StoredFile.php:797
@ -134,26 +131,16 @@ msgstr "스마트 블록"
#: airtime_mvc/application/models/StoredFile.php:950 #: airtime_mvc/application/models/StoredFile.php:950
#, php-format #, php-format
msgid "" msgid "The file was not uploaded, there is %s MB of disk space left and the file you are uploading has a size of %s MB."
"The file was not uploaded, there is %s MB of disk space left and the file " msgstr "파일 업로드를 실패 하였습니다. 남은 disk공간이 %s MB 이고, 파일 크기가 %s MB 입니다."
"you are uploading has a size of %s MB."
msgstr ""
"파일 업로드를 실패 하였습니다. 남은 disk공간이 %s MB 이고, "
"파일 크기가 %s MB 입니다."
#: airtime_mvc/application/models/StoredFile.php:959 #: airtime_mvc/application/models/StoredFile.php:959
msgid "" msgid "This file appears to be corrupted and will not be added to media library."
"This file appears to be corrupted and will not be added to media library." msgstr "파일이 손상되었으므로, 라이브러리에 추가 되지 않습니다."
msgstr ""
"파일이 손상되었으므로, 라이브러리에 추가 되지 않습니다."
#: airtime_mvc/application/models/StoredFile.php:995 #: airtime_mvc/application/models/StoredFile.php:995
msgid "" msgid "The file was not uploaded, this error can occur if the computer hard drive does not have enough disk space or the stor directory does not have correct write permissions."
"The file was not uploaded, this error can occur if the computer hard drive " msgstr "파일이 업로드 되지 않았습니다. 이 에러는 하드 디스크에 공간이 충분치 않거나, 권한이 부족하여 생길수 있습니다."
"does not have enough disk space or the stor directory does not have correct "
"write permissions."
msgstr ""
"파일이 업로드 되지 않았습니다. 이 에러는 하드 디스크에 공간이 충분치 않거나, 권한이 부족하여 생길수 있습니다."
#: airtime_mvc/application/models/MusicDir.php:160 #: airtime_mvc/application/models/MusicDir.php:160
#, php-format #, php-format
@ -178,14 +165,12 @@ msgstr "%s는 옳은 경로가 아닙니다."
#: airtime_mvc/application/models/MusicDir.php:231 #: airtime_mvc/application/models/MusicDir.php:231
#, php-format #, php-format
msgid "" msgid "%s is already set as the current storage dir or in the watched folders list"
"%s is already set as the current storage dir or in the watched folders list"
msgstr "%s는 이미 현재 저장 폴더로 지정이 되었거나 모니터중인 폴더 입니다." msgstr "%s는 이미 현재 저장 폴더로 지정이 되었거나 모니터중인 폴더 입니다."
#: airtime_mvc/application/models/MusicDir.php:381 #: airtime_mvc/application/models/MusicDir.php:381
#, php-format #, php-format
msgid "" msgid "%s is already set as the current storage dir or in the watched folders list."
"%s is already set as the current storage dir or in the watched folders list."
msgstr "%s는 이미 현재 저장 폴더로 지정이 되었거나 모니터중인 폴더 입니다." msgstr "%s는 이미 현재 저장 폴더로 지정이 되었거나 모니터중인 폴더 입니다."
#: airtime_mvc/application/models/MusicDir.php:424 #: airtime_mvc/application/models/MusicDir.php:424
@ -230,7 +215,8 @@ msgstr "종료 날짜/시간을 과거로 설정할수 없습니다"
msgid "" msgid ""
"Cannot schedule overlapping shows.\n" "Cannot schedule overlapping shows.\n"
"Note: Resizing a repeating show affects all of its repeats." "Note: Resizing a repeating show affects all of its repeats."
msgstr "쇼를 중복되게 스케줄 알수 없습니다.\n" msgstr ""
"쇼를 중복되게 스케줄 알수 없습니다.\n"
"주의: 반복 쇼의 크기를 조정하면, 모든 반복 쇼의 크기가 바뀝니다." "주의: 반복 쇼의 크기를 조정하면, 모든 반복 쇼의 크기가 바뀝니다."
#: airtime_mvc/application/models/Webstream.php:157 #: airtime_mvc/application/models/Webstream.php:157
@ -325,7 +311,8 @@ msgid ""
"Hi %s, \n" "Hi %s, \n"
"\n" "\n"
"Click this link to reset your password: " "Click this link to reset your password: "
msgstr "안녕하세요 %s님, \n" msgstr ""
"안녕하세요 %s님, \n"
"암호 재설정을 하시려면 링크를 클릭하세요: " "암호 재설정을 하시려면 링크를 클릭하세요: "
#: airtime_mvc/application/models/Scheduler.php:82 #: airtime_mvc/application/models/Scheduler.php:82
@ -344,7 +331,7 @@ msgstr "현재 보고 계신 스케쥴이 맞지 않습니다"
#: airtime_mvc/application/models/Scheduler.php:105 #: airtime_mvc/application/models/Scheduler.php:105
#, php-format #, php-format
msgid "You are not allowed to schedule show %s." msgid "You are not allowed to schedule show %s."
msgstr "쇼를 스케쥴 할수 있는 권한이 없습니다" msgstr "쇼를 스케쥴 할수 있는 권한이 없습니다 %s."
#: airtime_mvc/application/models/Scheduler.php:109 #: airtime_mvc/application/models/Scheduler.php:109
msgid "You cannot add files to recording shows." msgid "You cannot add files to recording shows."
@ -538,7 +525,7 @@ msgstr "년도"
#: airtime_mvc/application/common/DateHelper.php:335 #: airtime_mvc/application/common/DateHelper.php:335
#, php-format #, php-format
msgid "The year %s must be within the range of 1753 - 9999" msgid "The year %s must be within the range of 1753 - 9999"
msgstr "년도 값은 1753 - 9999 입니다" msgstr "년도 값은 %s 1753 - 9999 입니다"
#: airtime_mvc/application/common/DateHelper.php:338 #: airtime_mvc/application/common/DateHelper.php:338
#, php-format #, php-format
@ -685,8 +672,8 @@ msgstr "종료"
#: airtime_mvc/application/forms/AddShowRebroadcastDates.php:15 #: airtime_mvc/application/forms/AddShowRebroadcastDates.php:15
#: airtime_mvc/application/views/scripts/partialviews/trialBox.phtml:6 #: airtime_mvc/application/views/scripts/partialviews/trialBox.phtml:6
msgid "" msgid "days"
msgstr "" msgstr ""
#: airtime_mvc/application/forms/AddShowRebroadcastDates.php:63 #: airtime_mvc/application/forms/AddShowRebroadcastDates.php:63
#: airtime_mvc/application/forms/AddShowAbsoluteRebroadcastDates.php:58 #: airtime_mvc/application/forms/AddShowAbsoluteRebroadcastDates.php:58
@ -1333,8 +1320,7 @@ msgstr "길이는 00:00:00 형태로 입력하세요"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:502 #: airtime_mvc/application/forms/SmartBlockCriteria.php:502
#: airtime_mvc/application/forms/SmartBlockCriteria.php:515 #: airtime_mvc/application/forms/SmartBlockCriteria.php:515
msgid "" msgid "The value should be in timestamp format(eg. 0000-00-00 or 00-00-00 00:00:00)"
"The value should be in timestamp format(eg. 0000-00-00 or 00-00-00 00:00:00)"
msgstr "이 값은 timestamp 형태(eg. 0000-00-00 or 00-00-00 00:00:00)로 입력해주세요" msgstr "이 값은 timestamp 형태(eg. 0000-00-00 or 00-00-00 00:00:00)로 입력해주세요"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:529 #: airtime_mvc/application/forms/SmartBlockCriteria.php:529
@ -1396,9 +1382,7 @@ msgstr "초단위를 입력해주세요 0{.0}"
#: airtime_mvc/application/forms/GeneralPreferences.php:47 #: airtime_mvc/application/forms/GeneralPreferences.php:47
#, php-format #, php-format
msgid "" msgid "Allow Remote Websites To Access \"Schedule\" Info?%s (Enable this to make front-end widgets work.)"
"Allow Remote Websites To Access \"Schedule\" Info?%s (Enable this to make "
"front-end widgets work."
msgstr "리모트 웹사이트에서 스케쥴 정보에 접근을 허용? %s (위젯을 사용하려면 체크 하세요)" msgstr "리모트 웹사이트에서 스케쥴 정보에 접근을 허용? %s (위젯을 사용하려면 체크 하세요)"
#: airtime_mvc/application/forms/GeneralPreferences.php:48 #: airtime_mvc/application/forms/GeneralPreferences.php:48
@ -1595,9 +1579,7 @@ msgid "Wrong username or password provided. Please try again."
msgstr "아이디와 암호가 맞지 않습니다. 다시 시도해주세요" msgstr "아이디와 암호가 맞지 않습니다. 다시 시도해주세요"
#: airtime_mvc/application/controllers/LoginController.php:135 #: airtime_mvc/application/controllers/LoginController.php:135
msgid "" msgid "Email could not be sent. Check your mail server settings and ensure it has been configured properly."
"Email could not be sent. Check your mail server settings and ensure it has "
"been configured properly."
msgstr "이메일을 전송 할수 없습니다. 메일 서버 세팅을 다시 확인 하여 주세요" msgstr "이메일을 전송 할수 없습니다. 메일 서버 세팅을 다시 확인 하여 주세요"
#: airtime_mvc/application/controllers/LoginController.php:138 #: airtime_mvc/application/controllers/LoginController.php:138
@ -1822,9 +1804,7 @@ msgstr "hh:mm:ss.t의 형태로 입력해주세요"
#: airtime_mvc/application/controllers/LocaleController.php:106 #: airtime_mvc/application/controllers/LocaleController.php:106
#, php-format #, php-format
msgid "" msgid "You are currently uploading files. %sGoing to another screen will cancel the upload process. %sAre you sure you want to leave the page?"
"You are currently uploading files. %sGoing to another screen will cancel the "
"upload process. %sAre you sure you want to leave the page?"
msgstr "현재 파일이 업로드 중입니다. %s다른 화면으로 이동하면 현재까지 업로드한 프로세스가 취소됩니다. %s이동하겠습니까?" msgstr "현재 파일이 업로드 중입니다. %s다른 화면으로 이동하면 현재까지 업로드한 프로세스가 취소됩니다. %s이동하겠습니까?"
#: airtime_mvc/application/controllers/LocaleController.php:108 #: airtime_mvc/application/controllers/LocaleController.php:108
@ -1852,12 +1832,8 @@ msgid "Playlist saved"
msgstr "재생 목록이 저장 되었습니다" msgstr "재생 목록이 저장 되었습니다"
#: airtime_mvc/application/controllers/LocaleController.php:116 #: airtime_mvc/application/controllers/LocaleController.php:116
msgid "" msgid "Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."
"Airtime is unsure about the status of this file. This can happen when the " msgstr "Airtime이 파일에 대해 정확히 알수 없습니다. 이 경우는 파일이 접근할수 없는 리모트 드라이브에 있거나, 파일이 있는 폴더가 더이상 모니터 되지 않을때 일어날수 있습니다."
"file is on a remote drive that is unaccessible or the file is in a directory "
"that isn't 'watched' anymore."
msgstr "Airtime이 파일에 대해 정확히 알수 없습니다. 이 경우는 파일이 접근할수 없는 리모트 드라이브에 있거나,"
" 파일이 있는 폴더가 더이상 모니터 되지 않을때 일어날수 있습니다."
#: airtime_mvc/application/controllers/LocaleController.php:118 #: airtime_mvc/application/controllers/LocaleController.php:118
msgid "Listener Count on %s: %s" msgid "Listener Count on %s: %s"
@ -1881,27 +1857,16 @@ msgid "Image must be one of jpg, jpeg, png, or gif"
msgstr "허용된 이미지 파일 타입은 jpg, jpeg, png 또는 gif 입니다" msgstr "허용된 이미지 파일 타입은 jpg, jpeg, png 또는 gif 입니다"
#: airtime_mvc/application/controllers/LocaleController.php:128 #: airtime_mvc/application/controllers/LocaleController.php:128
msgid "" msgid "A static smart block will save the criteria and generate the block content immediately. This allows you to edit and view it in the Library before adding it to a show."
"A static smart block will save the criteria and generate the block content "
"immediately. This allows you to edit and view it in the Library before "
"adding it to a show."
msgstr "정적 스마트 블록은 크라이테리아를 저장하고 내용을 생성 합니다. 그러므로 쇼에 추가 하기전에 내용을 수정하실수 있습니다 " msgstr "정적 스마트 블록은 크라이테리아를 저장하고 내용을 생성 합니다. 그러므로 쇼에 추가 하기전에 내용을 수정하실수 있습니다 "
#: airtime_mvc/application/controllers/LocaleController.php:130 #: airtime_mvc/application/controllers/LocaleController.php:130
msgid "" msgid "A dynamic smart block will only save the criteria. The block content will get generated upon adding it to a show. You will not be able to view and edit the content in the Library."
"A dynamic smart block will only save the criteria. The block content will " msgstr "동적 스마트 블록은 크라이테리아만 저장하고 내용은 쇼에 추가 할때까지 생성하지 않습니다. 이는 동적 스마트 블록을 쇼에 추가 할때마다 다른 내용을 추가하게 됩니다."
"get generated upon adding it to a show. You will not be able to view and "
"edit the content in the Library."
msgstr "동적 스마트 블록은 크라이테리아만 저장하고 내용은 쇼에 추가 할때까지 생성하지 않습니다."
" 이는 동적 스마트 블록을 쇼에 추가 할때마다 다른 내용을 추가하게 됩니다."
#: airtime_mvc/application/controllers/LocaleController.php:132 #: airtime_mvc/application/controllers/LocaleController.php:132
msgid "" msgid "The desired block length will not be reached if Airtime cannot find enough unique tracks to match your criteria. Enable this option if you wish to allow tracks to be added multiple times to the smart block."
"The desired block length will not be reached if Airtime cannot find enough " msgstr "블록 생성시 충분한 파일을 찾지 못하면, 블록 길이가 원하는 길이보다 짧아 질수 있습니다. 이 옵션을 선택하시면,Airtime이 트랙을 반복적으로 사용하여 길이를 채웁니다."
"unique tracks to match your criteria. Enable this option if you wish to "
"allow tracks to be added multiple times to the smart block."
msgstr "블록 생성시 충분한 파일을 찾지 못하면, 블록 길이가 원하는 길이보다 짧아 질수 있습니다. 이 옵션을 선택하시면,"
"Airtime이 트랙을 반복적으로 사용하여 길이를 채웁니다."
#: airtime_mvc/application/controllers/LocaleController.php:133 #: airtime_mvc/application/controllers/LocaleController.php:133
msgid "Smart block shuffled" msgid "Smart block shuffled"
@ -1967,15 +1932,8 @@ msgid "Can not connect to the streaming server"
msgstr "스트리밍 서버에 접속 할수 없음" msgstr "스트리밍 서버에 접속 할수 없음"
#: airtime_mvc/application/controllers/LocaleController.php:168 #: airtime_mvc/application/controllers/LocaleController.php:168
msgid "" msgid "If Airtime is behind a router or firewall, you may need to configure port forwarding and this field information will be incorrect. In this case you will need to manually update this field so it shows the correct host/port/mount that your DJ's need to connect to. The allowed range is between 1024 and 49151."
"If Airtime is behind a router or firewall, you may need to configure port " msgstr "Airtime이 방화벽 뒤에 설치 되었다면, 포트 포워딩을 설정해야 할수도 있습니다. 이 경우엔 자동으로 생성된 이 정보가 틀릴수 있습니다. 수동적으로 이 필드를 수정하여 DJ들이 접속해야 하는서버/마운트/포트 등을 공지 하십시오. 포트 범위는 1024~49151 입니다."
"forwarding and this field information will be incorrect. In this case you "
"will need to manually update this field so it shows the correct host/port/"
"mount that your DJ's need to connect to. The allowed range is between 1024 "
"and 49151."
msgstr "Airtime이 방화벽 뒤에 설치 되었다면, 포트 포워딩을 설정해야 할수도 있습니다. 이 경우엔 "
" 자동으로 생성된 이 정보가 틀릴수 있습니다. 수동적으로 이 필드를 수정하여 DJ들이 접속해야 하는"
"서버/마운트/포트 등을 공지 하십시오. 포트 범위는 1024~49151 입니다."
#: airtime_mvc/application/controllers/LocaleController.php:169 #: airtime_mvc/application/controllers/LocaleController.php:169
#, php-format #, php-format
@ -1983,62 +1941,36 @@ msgid "For more details, please read the %sAirtime Manual%s"
msgstr "더 자세한 정보는 %sAirtime Manual%s에서 찾으실수 있습니다" msgstr "더 자세한 정보는 %sAirtime Manual%s에서 찾으실수 있습니다"
#: airtime_mvc/application/controllers/LocaleController.php:171 #: airtime_mvc/application/controllers/LocaleController.php:171
msgid "" msgid "Check this option to enable metadata for OGG streams (stream metadata is the track title, artist, and show name that is displayed in an audio player). VLC and mplayer have a serious bug when playing an OGG/VORBIS stream that has metadata information enabled: they will disconnect from the stream after every song. If you are using an OGG stream and your listeners do not require support for these audio players, then feel free to enable this option."
"Check this option to enable metadata for OGG streams (stream metadata is the " msgstr "OGG 스트림의 메타데이타를 사용하고 싶으시면, 이 옵션을 체크 해주세요. VLC나 mplayer 같은 플래이어들에서 버그가 발견되어 OGG 스트림을 메타데이타와 함꼐 사용시, 각 파일 종료시 스트림을 끊어버립니다."
"track title, artist, and show name that is displayed in an audio player). "
"VLC and mplayer have a serious bug when playing an OGG/VORBIS stream that "
"has metadata information enabled: they will disconnect from the stream after "
"every song. If you are using an OGG stream and your listeners do not require "
"support for these audio players, then feel free to enable this option."
msgstr "OGG 스트림의 메타데이타를 사용하고 싶으시면, 이 옵션을 체크 해주세요. VLC나 mplayer 같은"
" 플래이어들에서 버그가 발견되어 OGG 스트림을 메타데이타와 함꼐 사용시, 각 파일 종료시 스트림을 끊어버립니다."
#: airtime_mvc/application/controllers/LocaleController.php:172 #: airtime_mvc/application/controllers/LocaleController.php:172
msgid "" msgid "Check this box to automatically switch off Master/Show source upon source disconnection."
"Check this box to automatically switch off Master/Show source upon source "
"disconnection."
msgstr "마스터/쇼 소스가 끊어졌을때 자동으로 스위치를 끔." msgstr "마스터/쇼 소스가 끊어졌을때 자동으로 스위치를 끔."
#: airtime_mvc/application/controllers/LocaleController.php:173 #: airtime_mvc/application/controllers/LocaleController.php:173
msgid "" msgid "Check this box to automatically switch on Master/Show source upon source connection."
"Check this box to automatically switch on Master/Show source upon source "
"connection."
msgstr "마스터/쇼 소스가 접속 되었을때 자동으로 스위를 켬." msgstr "마스터/쇼 소스가 접속 되었을때 자동으로 스위를 켬."
#: airtime_mvc/application/controllers/LocaleController.php:174 #: airtime_mvc/application/controllers/LocaleController.php:174
msgid "" msgid "If your Icecast server expects a username of 'source', this field can be left blank."
"If your Icecast server expects a username of 'source', this field can be "
"left blank."
msgstr "Icecast 서버 인증 아이디가 source로 설정이 되어있다면, 이 필드는 입렵 하실필요 없습니다." msgstr "Icecast 서버 인증 아이디가 source로 설정이 되어있다면, 이 필드는 입렵 하실필요 없습니다."
#: airtime_mvc/application/controllers/LocaleController.php:175 #: airtime_mvc/application/controllers/LocaleController.php:175
#: airtime_mvc/application/controllers/LocaleController.php:184 #: airtime_mvc/application/controllers/LocaleController.php:184
msgid "" msgid "If your live streaming client does not ask for a username, this field should be 'source'."
"If your live streaming client does not ask for a username, this field should "
"be 'source'."
msgstr "현재 사용중이신 라이브 스트리밍 클라이언트에 사용자 필드가 없다면, 이 필드에 'source'라고 입력 해주세요." msgstr "현재 사용중이신 라이브 스트리밍 클라이언트에 사용자 필드가 없다면, 이 필드에 'source'라고 입력 해주세요."
#: airtime_mvc/application/controllers/LocaleController.php:177 #: airtime_mvc/application/controllers/LocaleController.php:177
msgid "" msgid "If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted."
"If you change the username or password values for an enabled stream the " msgstr "스트림 되고 있는 스트림에 아이디나 암호를 수정한다면, 플레이 아웃 엔진이 다시 시작되며, 청취자들이 5~10초 정도 정적이 들릴것입니다. 다음 필드들을 수정하는것은 엔진을 다시 시작 하지 않습니다: (스트림 레이블, 스위치 페이딩, 마스터 마이디, 마스터 암호). Airtime이 현재 녹음 중이고 엔진이 재시작 되면 녹음이 중단 됩니다"
"playout engine will be rebooted and your listeners will hear silence for "
"5-10 seconds. Changing the following fields will NOT cause a reboot: Stream "
"Label (Global Settings), and Switch Transition Fade(s), Master Username, and "
"Master Password (Input Stream Settings). If Airtime is recording, and if the "
"change causes a playout engine restart, the recording will be interrupted."
msgstr "스트림 되고 있는 스트림에 아이디나 암호를 수정한다면, 플레이 아웃 엔진이 다시 시작되며,"
" 청취자들이 5~10초 정도 정적이 들릴것입니다. 다음 필드들을 수정하는것은 엔진을 다시 시작 하지 않습니다: "
" (스트림 레이블, 스위치 페이딩, 마스터 마이디, 마스터 암호). Airtime이 현재 녹음 중이고 엔진이 재시작 되면"
" 녹음이 중단 됩니다"
#: airtime_mvc/application/controllers/LocaleController.php:181 #: airtime_mvc/application/controllers/LocaleController.php:181
msgid "No result found" msgid "No result found"
msgstr "결과 없음" msgstr "결과 없음"
#: airtime_mvc/application/controllers/LocaleController.php:182 #: airtime_mvc/application/controllers/LocaleController.php:182
msgid "" msgid "This follows the same security pattern for the shows: only users assigned to the show can connect."
"This follows the same security pattern for the shows: only users assigned to "
"the show can connect."
msgstr "쇼에 지정된 사람들만 접속 할수 있습니다" msgstr "쇼에 지정된 사람들만 접속 할수 있습니다"
#: airtime_mvc/application/controllers/LocaleController.php:183 #: airtime_mvc/application/controllers/LocaleController.php:183
@ -2199,8 +2131,7 @@ msgid "month"
msgstr "월별" msgstr "월별"
#: airtime_mvc/application/controllers/LocaleController.php:250 #: airtime_mvc/application/controllers/LocaleController.php:250
msgid "" msgid "Shows longer than their scheduled time will be cut off by a following show."
"Shows longer than their scheduled time will be cut off by a following show."
msgstr "쇼가 자신의 길이보다 더 길게 스케쥴 되었다면, 쇼 길이에 맞게 짤라지며, 다음 쇼가 시작 됩니다" msgstr "쇼가 자신의 길이보다 더 길게 스케쥴 되었다면, 쇼 길이에 맞게 짤라지며, 다음 쇼가 시작 됩니다"
#: airtime_mvc/application/controllers/LocaleController.php:251 #: airtime_mvc/application/controllers/LocaleController.php:251
@ -2622,8 +2553,8 @@ msgid "Show Source"
msgstr "쇼 소스" msgstr "쇼 소스"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:45 #: airtime_mvc/application/views/scripts/partialviews/header.phtml:45
msgid " Scheduled Play" msgid "Scheduled Play"
msgstr " 스케쥴" msgstr "스케쥴"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:54 #: airtime_mvc/application/views/scripts/partialviews/header.phtml:54
msgid "ON AIR" msgid "ON AIR"
@ -2681,15 +2612,12 @@ msgstr "성"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format #, php-format
msgid "" msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
"%sAirtime%s %s, , the open radio software for scheduling and remote station "
"management. %s"
msgstr "" msgstr ""
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format #, php-format
msgid "" msgid "%sSourcefabric%s o.p.s. Airtime is distributed under the %sGNU GPL v.3%s"
"%sSourcefabric%s o.p.s. Airtime is distributed under the %sGNU GPL v.3%s"
msgstr "" msgstr ""
#: airtime_mvc/application/views/scripts/dashboard/stream-player.phtml:50 #: airtime_mvc/application/views/scripts/dashboard/stream-player.phtml:50
@ -2711,35 +2639,23 @@ msgid "Welcome to Airtime!"
msgstr "Airtime에 오신걸 환영합니다" msgstr "Airtime에 오신걸 환영합니다"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:4 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:4
msgid "" msgid "Here's how you can get started using Airtime to automate your broadcasts: "
"Here's how you can get started using Airtime to automate your broadcasts: "
msgstr "Airtime을 이용하여 방송을 자동화 할수 있는 기본 가이드 입니다:" msgstr "Airtime을 이용하여 방송을 자동화 할수 있는 기본 가이드 입니다:"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:7 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:7
msgid "" msgid "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."
"Begin by adding your files to the library using the 'Add Media' menu button. " msgstr "미디어 추가 페이지로 가셔서 원하는 파일을 드래그 앤 드랍 하십시오. 라이브러리 페이지를 가시면 업로드된 파일을 확인 할수 있습니다."
"You can drag and drop your files to this window too."
msgstr "미디어 추가 페이지로 가셔서 원하는 파일을 드래그 앤 드랍 하십시오. 라이브러리 페이지를 가시면"
" 업로드된 파일을 확인 할수 있습니다."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:8 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:8
msgid "" msgid "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."
"Create a show by going to 'Calendar' in the menu bar, and then clicking the " msgstr "스케쥴 페이지에 가셔서 원하는 날짜에 더블클릭 하셔서 쇼를 생성 하십시오. 관지자와 프로그램 매니저만 쇼를 생성할수 있는 권한이 있습니다"
"'+ Show' icon. This can be either a one-time or repeating show. Only admins "
"and program managers can add shows."
msgstr "스케쥴 페이지에 가셔서 원하는 날짜에 더블클릭 하셔서 쇼를 생성 하십시오. 관지자와 프로그램 매니저만 "
" 쇼를 생성할수 있는 권한이 있습니다"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:9 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:9
msgid "" msgid "Add media to the show by going to your show in the Schedule calendar, left-clicking on it and selecting 'Add / Remove Content'"
"Add media to the show by going to your show in the Schedule calendar, left-"
"clicking on it and selecting 'Add / Remove Content'"
msgstr "만드신 쇼에 클릭을 하신다음 '내용 추가/제거' 를 클릭하십시오." msgstr "만드신 쇼에 클릭을 하신다음 '내용 추가/제거' 를 클릭하십시오."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:10 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:10
msgid "" msgid "Select your media from the left pane and drag them to your show in the right pane."
"Select your media from the left pane and drag them to your show in the right "
"pane."
msgstr "왼쪽 라이브러리 스크린에서 오른쪽 쇼 내용 패널로 드래그 앤 드랍 하며 미디어를 추가 합니다" msgstr "왼쪽 라이브러리 스크린에서 오른쪽 쇼 내용 패널로 드래그 앤 드랍 하며 미디어를 추가 합니다"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:12 #: airtime_mvc/application/views/scripts/dashboard/help.phtml:12
@ -2895,9 +2811,7 @@ msgid "Back to login screen"
msgstr "로그인 페이지로 가기" msgstr "로그인 페이지로 가기"
#: airtime_mvc/application/views/scripts/login/index.phtml:7 #: airtime_mvc/application/views/scripts/login/index.phtml:7
msgid "" msgid "Welcome to the online Airtime demo! You can log in using the username 'admin' and the password 'admin'."
"Welcome to the online Airtime demo! You can log in using the username "
"'admin' and the password 'admin'."
msgstr "" msgstr ""
#: airtime_mvc/application/views/scripts/login/password-restore.phtml:3 #: airtime_mvc/application/views/scripts/login/password-restore.phtml:3
@ -2906,9 +2820,7 @@ msgid "Reset password"
msgstr "암호 초기화" msgstr "암호 초기화"
#: airtime_mvc/application/views/scripts/login/password-restore.phtml:7 #: airtime_mvc/application/views/scripts/login/password-restore.phtml:7
msgid "" msgid "Please enter your account e-mail address. You will receive a link to create a new password via e-mail."
"Please enter your account e-mail address. You will receive a link to create "
"a new password via e-mail."
msgstr "사용자 계정의 이메일을 입력해 주세요. 새로 암호를 설정할수 있는 링크가 포함된 이메일이 전송 됩니다" msgstr "사용자 계정의 이메일을 입력해 주세요. 새로 암호를 설정할수 있는 링크가 포함된 이메일이 전송 됩니다"
#: airtime_mvc/application/views/scripts/login/password-change.phtml:3 #: airtime_mvc/application/views/scripts/login/password-change.phtml:3
@ -2973,9 +2885,7 @@ msgstr "업데이트가 필요함"
#: airtime_mvc/application/views/scripts/audiopreview/audio-preview.phtml:70 #: airtime_mvc/application/views/scripts/audiopreview/audio-preview.phtml:70
#, php-format #, php-format
msgid "" msgid "To play the media you will need to either update your browser to a recent version or update your %sFlash plugin%s."
"To play the media you will need to either update your browser to a recent "
"version or update your %sFlash plugin%s."
msgstr "미디어를 재생하기 위해선, 브라우저를 최신 버젼으로 업데이트 하시고, %sFlash plugin%s도 업데이트 해주세요" msgstr "미디어를 재생하기 위해선, 브라우저를 최신 버젼으로 업데이트 하시고, %sFlash plugin%s도 업데이트 해주세요"
#: airtime_mvc/application/views/scripts/webstream/webstream.phtml:51 #: airtime_mvc/application/views/scripts/webstream/webstream.phtml:51
@ -3023,8 +2933,7 @@ msgid "Additional Options"
msgstr "추가 설정" msgstr "추가 설정"
#: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:108 #: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:108
msgid "" msgid "The following info will be displayed to listeners in their media player:"
"The following info will be displayed to listeners in their media player:"
msgstr "밑에 정보들은 청취자에 플래이어에 표시 됩니다:" msgstr "밑에 정보들은 청취자에 플래이어에 표시 됩니다:"
#: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:179 #: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:179
@ -3051,9 +2960,7 @@ msgid "Add"
msgstr "추가" msgstr "추가"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:43 #: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:43
msgid "" msgid "Rescan watched directory (This is useful if it is network mount and may be out of sync with Airtime)"
"Rescan watched directory (This is useful if it is network mount and may be "
"out of sync with Airtime)"
msgstr "모니터중인 폴더 다시 검색(네트워크 드라이브를 모니터중일떄, Airtime과 동기화 실패시 사용)" msgstr "모니터중인 폴더 다시 검색(네트워크 드라이브를 모니터중일떄, Airtime과 동기화 실패시 사용)"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:44 #: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:44
@ -3079,22 +2986,13 @@ msgstr "Airtime 등록"
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:6 #: airtime_mvc/application/views/scripts/form/register-dialog.phtml:6
#, php-format #, php-format
msgid "" msgid "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.%sClick 'Yes, help Airtime' and we'll make sure the features you use are constantly improving."
"Help Airtime improve by letting us know how you are using it. This info will " msgstr "Airtime 사용자들 께서 피드백을 보내주시면, 그걸 기본으로 사용자들이 원하는 방향으로 나아가는Airtime이 되겠습니다. %s'Airtime 도와주기' 클릭하여 피드백을 보내주세요"
"be collected regularly in order to enhance your user experience.%sClick "
"'Yes, help Airtime' and we'll make sure the features you use are constantly "
"improving."
msgstr "Airtime 사용자들 께서 피드백을 보내주시면, 그걸 기본으로 사용자들이 원하는 방향으로 나아가는"
"Airtime이 되겠습니다. 'Airtime 도와주기' 클릭하여 피드백을 보내주세요"
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:25 #: airtime_mvc/application/views/scripts/form/register-dialog.phtml:25
#, php-format #, php-format
msgid "" msgid "Click the box below to advertise your station on %sSourcefabric.org%s. In order to promote your station, 'Send support feedback' must be enabled. This data will be collected in addition to the support feedback."
"Click the box below to advertise your station on %sSourcefabric.org%s. In " msgstr "%sSourcefabric.org%s에 방송국을 홍보 하시려면 체크 하세요. 체크 하기 위해선 '피드백 보내기'를 체크 하셔야 합니다"
"order to promote your station, 'Send support feedback' must be enabled. This "
"data will be collected in addition to the support feedback."
msgstr "%sSourcefabric.org%s에 방송국을 홍보 하시려면 체크 하세요. 체크 하기 위해선 '피드백 보내기'를 "
"체크 하셔야 합니다"
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:65 #: airtime_mvc/application/views/scripts/form/register-dialog.phtml:65
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:79 #: airtime_mvc/application/views/scripts/form/register-dialog.phtml:79
@ -3173,13 +3071,8 @@ msgstr "SoundCloud 설정"
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:5 #: airtime_mvc/application/views/scripts/form/support-setting.phtml:5
#, php-format #, php-format
msgid "" msgid "Help Airtime improve by letting Sourcefabric know how you are using it. This information will be collected regularly in order to enhance your user experience.%sClick the 'Send support feedback' box and we'll make sure the features you use are constantly improving."
"Help Airtime improve by letting Sourcefabric know how you are using it. This " msgstr "Airtime 사용자들 께서 피드백을 보내주시면, 그걸 기본으로 사용자들이 원하는 방향으로 나아가는Airtime이 되겠습니다. %s'Airtime 도와주기' 클릭하여 피드백을 보내주세요"
"information will be collected regularly in order to enhance your user "
"experience.%sClick the 'Send support feedback' box and we'll make sure the "
"features you use are constantly improving."
msgstr "Airtime 사용자들 께서 피드백을 보내주시면, 그걸 기본으로 사용자들이 원하는 방향으로 나아가는"
"Airtime이 되겠습니다. 'Airtime 도와주기' 클릭하여 피드백을 보내주세요"
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:23 #: airtime_mvc/application/views/scripts/form/support-setting.phtml:23
#, php-format #, php-format
@ -3187,8 +3080,7 @@ msgid "Click the box below to promote your station on %sSourcefabric.org%s."
msgstr "%sSourcefabric.org%s에 방송국을 홍보 하시려면 체크 하세요." msgstr "%sSourcefabric.org%s에 방송국을 홍보 하시려면 체크 하세요."
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:41 #: airtime_mvc/application/views/scripts/form/support-setting.phtml:41
msgid "" msgid "(In order to promote your station, 'Send support feedback' must be enabled)."
"(In order to promote your station, 'Send support feedback' must be enabled)."
msgstr "(체크 하기 위해선 '피드백 보내기'를 체크 하셔야 합니다)" msgstr "(체크 하기 위해선 '피드백 보내기'를 체크 하셔야 합니다)"
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:186 #: airtime_mvc/application/views/scripts/form/support-setting.phtml:186
@ -3318,8 +3210,7 @@ msgid "Value is required and can't be empty"
msgstr "이 필드는 비워둘수 없습니다." msgstr "이 필드는 비워둘수 없습니다."
#: airtime_mvc/application/forms/helpers/ValidationTypes.php:19 #: airtime_mvc/application/forms/helpers/ValidationTypes.php:19
msgid "" msgid "'%value%' is no valid email address in the basic format local-part@hostname"
"'%value%' is no valid email address in the basic format local-part@hostname"
msgstr "'%value%'은 맞지 않는 이메일 형식 입니다." msgstr "'%value%'은 맞지 않는 이메일 형식 입니다."
#: airtime_mvc/application/forms/helpers/ValidationTypes.php:33 #: airtime_mvc/application/forms/helpers/ValidationTypes.php:33

View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n" "Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: http://forum.sourcefabric.org/\n" "Report-Msgid-Bugs-To: http://forum.sourcefabric.org/\n"
"POT-Creation-Date: 2012-11-29 11:44-0500\n" "POT-Creation-Date: 2012-11-29 11:44-0500\n"
"PO-Revision-Date: 2012-12-14 09:50+0100\n" "PO-Revision-Date: 2013-01-04 17:49+0100\n"
"Last-Translator: Luba Sirina <contact@sourcefabric.org>\n" "Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: Russian Localization <contact@sourcefabric.org>\n" "Language-Team: Russian Localization <contact@sourcefabric.org>\n"
"Language: ru_RU\n" "Language: ru_RU\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -599,7 +599,7 @@ msgstr "Телефон:"
#: airtime_mvc/application/forms/AddUser.php:54 #: airtime_mvc/application/forms/AddUser.php:54
#: airtime_mvc/application/forms/SupportSettings.php:46 #: airtime_mvc/application/forms/SupportSettings.php:46
msgid "Email:" msgid "Email:"
msgstr "Электронный адрес:" msgstr "Email:"
#: airtime_mvc/application/forms/RegisterAirtime.php:62 #: airtime_mvc/application/forms/RegisterAirtime.php:62
#: airtime_mvc/application/forms/SupportSettings.php:57 #: airtime_mvc/application/forms/SupportSettings.php:57
@ -826,7 +826,7 @@ msgstr "Не является допустимой папкой"
#: airtime_mvc/application/forms/AddUser.php:23 #: airtime_mvc/application/forms/AddUser.php:23
#: airtime_mvc/application/forms/Login.php:19 #: airtime_mvc/application/forms/Login.php:19
msgid "Username:" msgid "Username:"
msgstr "Имя пользователя:" msgstr "Логин:"
#: airtime_mvc/application/forms/AddUser.php:32 #: airtime_mvc/application/forms/AddUser.php:32
#: airtime_mvc/application/forms/Login.php:34 #: airtime_mvc/application/forms/Login.php:34
@ -843,7 +843,7 @@ msgstr "Фамилия"
#: airtime_mvc/application/forms/AddUser.php:63 #: airtime_mvc/application/forms/AddUser.php:63
msgid "Mobile Phone:" msgid "Mobile Phone:"
msgstr "Мобильный телефон:" msgstr "Тел:"
#: airtime_mvc/application/forms/AddUser.php:69 #: airtime_mvc/application/forms/AddUser.php:69
msgid "Skype:" msgid "Skype:"
@ -1934,7 +1934,7 @@ msgstr "Проиграно"
#: airtime_mvc/application/controllers/LocaleController.php:158 #: airtime_mvc/application/controllers/LocaleController.php:158
msgid "Choose Storage Folder" msgid "Choose Storage Folder"
msgstr "Выберите папку для хранения" msgstr "выберите папку для хранения"
#: airtime_mvc/application/controllers/LocaleController.php:159 #: airtime_mvc/application/controllers/LocaleController.php:159
msgid "Choose Folder to Watch" msgid "Choose Folder to Watch"
@ -2600,7 +2600,7 @@ msgstr "Источник Show "
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:45 #: airtime_mvc/application/views/scripts/partialviews/header.phtml:45
msgid "Scheduled Play" msgid "Scheduled Play"
msgstr "Запланированное проигрывание" msgstr "Из календаря"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:54 #: airtime_mvc/application/views/scripts/partialviews/header.phtml:54
msgid "ON AIR" msgid "ON AIR"
@ -2652,8 +2652,8 @@ msgstr "Тип пользователя"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format #, php-format
msgid "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s" msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s , открытое программное обеспечение для радио для планирования и удаленного управления станцией.%s" msgstr "%sAirtime%s %s, открытое программное обеспечение для радио для планирования и удаленного управления станцией.%s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format #, php-format
@ -2994,7 +2994,7 @@ msgstr "URL потока: "
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:9 #: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:9
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:27 #: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:27
msgid "Choose folder" msgid "Choose folder"
msgstr "Выберите папку" msgstr "Выбрать"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:10 #: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:10
msgid "Set" msgid "Set"
@ -3080,7 +3080,7 @@ msgstr "Настройки входного потока"
#: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:109 #: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:109
msgid "Master Source Connection URL:" msgid "Master Source Connection URL:"
msgstr "URL подключения к источнику Master:" msgstr "URL подключения к Master:"
#: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:115 #: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:115
#: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:159 #: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:159
@ -3099,7 +3099,7 @@ msgstr "ВОССТАНОВИТЬ"
#: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:153 #: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:153
msgid "Show Source Connection URL:" msgid "Show Source Connection URL:"
msgstr "URL подключения к источнику Show:" msgstr "URL подключения к Show:"
#: airtime_mvc/application/views/scripts/form/add-show-rebroadcast.phtml:4 #: airtime_mvc/application/views/scripts/form/add-show-rebroadcast.phtml:4
msgid "Repeat Days:" msgid "Repeat Days:"

View File

@ -2702,7 +2702,7 @@ msgstr ""
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5 #: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format #, php-format
msgid "" msgid ""
"%sAirtime%s %s, , the open radio software for scheduling and remote station " "%sAirtime%s %s, the open radio software for scheduling and remote station "
"management. %s" "management. %s"
msgstr "" msgstr ""

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,7 @@
} }
.source-info-block li { .source-info-block li {
list-style-type:none; list-style-type:none;
font-size:11px; font-size:10px;
color:#bdbdbd; color:#bdbdbd;
margin:0; margin:0;
height:15px; height:15px;

View File

@ -97,6 +97,21 @@ select {
padding-bottom: 20px; padding-bottom: 20px;
} }
.edit-current-user {
width: 450px;
}
.edit-current-user label {
font-weight: bold;
}
.stream-player-label {
padding-left: 8px !important;
}
.jp-stream form {
margin-left: 7px !important;
}
.override_help_icon, .icecast_metadata_help_icon { .override_help_icon, .icecast_metadata_help_icon {
cursor: help; cursor: help;
position: relative; position: relative;
@ -109,7 +124,8 @@ select {
} }
.airtime_auth_help_icon, .custom_auth_help_icon, .stream_username_help_icon, .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; cursor: help;
position: relative; position: relative;
display:inline-block; zoom:1; display:inline-block; zoom:1;
@ -1390,6 +1406,14 @@ h2#scheduled_playlist_name span {
padding: 4px 0 8px; padding: 4px 0 8px;
} }
.user-form-label {
width: 30% !important;
}
.user-form-element {
width: 65% !important;
}
.simple-formblock dd.block-display { .simple-formblock dd.block-display {
width: 100%; width: 100%;
} }
@ -1972,6 +1996,9 @@ span.errors.sp-errors{
.small-icon.show-empty { .small-icon.show-empty {
background:url(images/icon_alert_cal_alt.png) no-repeat 0 0; background:url(images/icon_alert_cal_alt.png) no-repeat 0 0;
} }
.small-icon.show-partial-filled {
background:url(images/icon_alert_cal_alt.png) no-repeat 0 0;
}
.medium-icon { .medium-icon {
display:block; display:block;
width:25px; width:25px;
@ -2001,9 +2028,12 @@ span.errors.sp-errors{
.medium-icon.finishedplaying { .medium-icon.finishedplaying {
background:url(images/icon_finishedplaying_m.png) no-repeat 0 0; background:url(images/icon_finishedplaying_m.png) no-repeat 0 0;
} }
.preferences, .manage-folders { .preferences {
width: 500px; width: 500px;
} }
.manage-folders {
width: 610px;
}
.stream-config { .stream-config {
width: 1100px; width: 1100px;
@ -2941,17 +2971,52 @@ dd .stream-status {
} }
.edit-user-global dt { .edit-user-global dt {
width: 90px; width: 150px;
float: left; float: left;
margin-top: 4px; margin-top: 4px;
margin-left: 2px; margin-left: 2px;
} }
.edit-user-global dd { .edit-user-global dd {
width: 230px; width: 340px;
padding-bottom: 5px; padding-bottom: 5px;
} }
.edit-user-global input { .edit-user-global input, .edit-user-global select {
width: 170px; width: 200px;
}
.jp-container a#popup-link {
width: 104px;
border: 1px solid black;
font-size: 13px;
font-weight: bold;
text-decoration: none;
margin-top:3px;
text-align: center;
right: 16px;
position: absolute;
top: 40px;
color: #FF5D1A
}
#popup-share {
display:none;
position: fixed;
width:360px;
height: 26px;
margin-left:8px;
margin-right: 150px;
margin-top: 0px;
border:1px solid black;
background-color:#282828;
padding:10px;
z-index:102;
font-size:10pt;
font-weight:bold;
}
#popup-share-link {
width: 320px;
} }

View File

@ -453,52 +453,27 @@ function setCurrentUserPseudoPassword() {
$(document).ready(function() { $(document).ready(function() {
if ($('#master-panel').length > 0) if ($('#master-panel').length > 0)
init(); init();
setCurrentUserPseudoPassword();
var timer;
$('#current-user').live('click', function() {
$('.tipsy').live('mouseover', function() {
clearTimeout(timer);
});
$('.tipsy').live('mouseout', function() {
timer = setTimeout("$('#current-user').tipsy('hide')", 500);
});
$('#current-user').bind('mouseover', function() {
$.ajax({ $.ajax({
url: baseUrl+'/user/edit-user/format/json', url: baseUrl+'/user/edit-user/format/json'
success: function(json) {
$('#current-user').tipsy({
gravity: 'n',
html: true,
fade: true,
opacity: 0.9,
trigger: 'manual',
title: function() {
return json.html;
}
});
},
cache: false,
complete: function() {
$('#current-user').tipsy('show');
setCurrentUserPseudoPassword();
}
}); });
}); });
$('#current-user').bind('mouseout', function() {
timer = setTimeout("$('#current-user').tipsy('hide')", 500);
});
$('#cu_save_user').live('click', function() { $('#cu_save_user').live('click', function() {
var data = $('#current-user-form').serialize(); var data = $('#current-user-form').serialize();
$.post(baseUrl+'/user/edit-user', {format: 'json', data: data}, function(data) { $.post(baseUrl+'/user/edit-user', {format: 'json', data: data}, function(data) {
var json = $.parseJSON(data); var json = $.parseJSON(data);
$('.tipsy-inner').empty().append(json.html); $('.edit-current-user').parent().empty().append(json.html);
setCurrentUserPseudoPassword(); setCurrentUserPseudoPassword();
setTimeout(removeSuccessMsg, 5000); setTimeout(removeSuccessMsg, 5000);
}); });
}); });
// When the 'Listen' button is clicked we set the width
// of the share button to the width of the 'Live Stream'
// text. This differs depending on the language setting
$('#popup-link').css('width', $('.jp-container h1').css('width'));
}); });

View File

@ -558,20 +558,18 @@ var AIRTIME = (function(AIRTIME) {
// add the play function to the library_type td // add the play function to the library_type td
$(nRow).find('td.library_type').click(function(){ $(nRow).find('td.library_type').click(function(){
if (aData.ftype === 'playlist' && aData.length !== '0.0'){ if (aData.ftype === 'playlist' && aData.length !== '0.0'){
playlistIndex = $(this).parent().attr('id').substring(3); // remove playlistIndex = $(this).parent().attr('id').substring(3);
// the
// pl_
open_playlist_preview(playlistIndex, 0); open_playlist_preview(playlistIndex, 0);
} else if (aData.ftype === 'audioclip') { } else if (aData.ftype === 'audioclip') {
if (isAudioSupported(aData.mime)) { if (isAudioSupported(aData.mime)) {
open_audio_preview(aData.ftype, aData.audioFile, aData.track_title, aData.artist_name); open_audio_preview(aData.ftype, aData.audioFile, aData.track_title, aData.artist_name);
} }
} else if (aData.ftype == 'stream') { } else if (aData.ftype == 'stream') {
open_audio_preview(aData.ftype, aData.audioFile, aData.track_title, aData.artist_name); if (isAudioSupported(aData.mime)) {
open_audio_preview(aData.ftype, aData.audioFile, aData.track_title, aData.artist_name);
}
} else if (aData.ftype == 'block' && aData.bl_type == 'static') { } else if (aData.ftype == 'block' && aData.bl_type == 'static') {
blockIndex = $(this).parent().attr('id').substring(3); // remove blockIndex = $(this).parent().attr('id').substring(3);
// the
// bl_
open_block_preview(blockIndex, 0); open_block_preview(blockIndex, 0);
} }
return false; return false;
@ -915,6 +913,16 @@ var AIRTIME = (function(AIRTIME) {
soundcloud.view.callback = callback; soundcloud.view.callback = callback;
} }
} }
// add callbacks for duplicate menu items.
if (oItems.duplicate !== undefined) {
var url = oItems.duplicate.url;
callback = function() {
$.post(url, {format: "json", id: data.id }, function(json){
oTable.fnStandingRedraw();
});
};
oItems.duplicate.callback = callback;
}
// remove 'Add to smart block' option if the current // remove 'Add to smart block' option if the current
// block is dynamic // block is dynamic
if ($('input:radio[name=sp_type]:checked').val() === "1") { if ($('input:radio[name=sp_type]:checked').val() === "1") {
@ -1043,6 +1051,9 @@ function addQtipToSCIcons(){
my: "left top", my: "left top",
viewport: $(window) viewport: $(window)
}, },
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: { show: {
ready: true // Needed to make it show on first mouseover ready: true // Needed to make it show on first mouseover
// event // event
@ -1072,6 +1083,9 @@ function addQtipToSCIcons(){
my: "left top", my: "left top",
viewport: $(window) viewport: $(window)
}, },
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: { show: {
ready: true // Needed to make it show on first mouseover ready: true // Needed to make it show on first mouseover
// event // event
@ -1101,6 +1115,9 @@ function addQtipToSCIcons(){
my: "left top", my: "left top",
viewport: $(window) viewport: $(window)
}, },
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: { show: {
ready: true // Needed to make it show on first mouseover ready: true // Needed to make it show on first mouseover
// event // event

View File

@ -94,17 +94,25 @@ var AIRTIME = (function(AIRTIME) {
"oTableTools": { "oTableTools": {
"sSwfPath": baseUrl+"/js/datatables/plugin/TableTools/swf/copy_cvs_xls_pdf.swf", "sSwfPath": baseUrl+"/js/datatables/plugin/TableTools/swf/copy_cvs_xls_pdf.swf",
"aButtons": [ "aButtons": [
"copy", {
{ "sExtends": "copy",
"sExtends": "csv", "fnComplete": function(nButton, oConfig, oFlash, text) {
"fnClick": setFlashFileName var lines = text.split('\n').length,
}, len = this.s.dt.nTFoot === null ? lines-1 : lines-2,
{ plural = (len==1) ? "" : "s";
"sExtends": "pdf", alert(sprintf($.i18n._('Copied %s row%s to the clipboard'), len, plural));
"fnClick": setFlashFileName }
}, },
"print" {
] "sExtends": "csv",
"fnClick": setFlashFileName
},
{
"sExtends": "pdf",
"fnClick": setFlashFileName
},
"print"
]
} }
}); });
oTable.fnSetFilteringDelay(350); oTable.fnSetFilteringDelay(350);

View File

@ -80,20 +80,6 @@ function setMsAuthenticationFieldsReadonly(ele) {
} }
} }
function setSliderForReplayGain(){
$( "#slider-range-max" ).slider({
range: "max",
min: 0,
max: 10,
value: $("#rg_modifier_value").html(),
slide: function( event, ui ) {
$( "#replayGainModifier" ).val( ui.value );
$("#rg_modifier_value").html(ui.value);
}
});
$( "#replayGainModifier" ).val( $( "#slider-range-max" ).slider( "value" ) );
}
$(document).ready(function() { $(document).ready(function() {
$('.collapsible-header').live('click',function() { $('.collapsible-header').live('click',function() {
@ -111,7 +97,6 @@ $(document).ready(function() {
$('#content').empty().append(json.html); $('#content').empty().append(json.html);
setTimeout(removeSuccessMsg, 5000); setTimeout(removeSuccessMsg, 5000);
showErrorSections(); showErrorSections();
setSliderForReplayGain();
}); });
}); });
@ -121,6 +106,4 @@ $(document).ready(function() {
setSystemFromEmailReadonly(); setSystemFromEmailReadonly();
setConfigureMailServerListener(); setConfigureMailServerListener();
setEnableSystemEmailsListener(); setEnableSystemEmailsListener();
setSliderForReplayGain();
}); });

View File

@ -39,8 +39,8 @@ function restrictOggBitrate(ele, on){
div.find("select[id$=data-bitrate]").find("option[value='24']").attr("disabled","disabled"); div.find("select[id$=data-bitrate]").find("option[value='24']").attr("disabled","disabled");
div.find("select[id$=data-bitrate]").find("option[value='32']").attr("disabled","disabled"); div.find("select[id$=data-bitrate]").find("option[value='32']").attr("disabled","disabled");
}else{ }else{
div.find("select[id$=data-bitrate]").find("option[value='24']").attr("disabled",""); div.find("select[id$=data-bitrate]").find("option[value='24']").removeAttr("disabled");
div.find("select[id$=data-bitrate]").find("option[value='32']").attr("disabled",""); div.find("select[id$=data-bitrate]").find("option[value='32']").removeAttr("disabled");
} }
} }
function hideForShoutcast(ele){ function hideForShoutcast(ele){
@ -231,7 +231,7 @@ function setupEventListeners() {
} }
}) })
$('.toggle legend').live('click',function() { $('.toggle legend').click(function() {
$(this).parent().toggleClass('closed'); $(this).parent().toggleClass('closed');
return false; return false;
}); });
@ -355,6 +355,27 @@ function setupEventListeners() {
}, },
}) })
$(".admin_username_help_icon").qtip({
content: {
text: $.i18n._("This is the admin username and password for Icecast/SHOUTcast 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({ $(".master_username_help_icon").qtip({
content: { content: {
text: $.i18n._("If your live streaming client does not ask for a username, this field should be 'source'.") text: $.i18n._("If your live streaming client does not ask for a username, this field should be 'source'.")
@ -375,6 +396,25 @@ function setupEventListeners() {
at: "right center" at: "right center"
}, },
}) })
}
function setSliderForReplayGain(){
$( "#slider-range-max" ).slider({
range: "max",
min: -10,
max: 10,
value: $("#rg_modifier_value").html(),
slide: function( event, ui ) {
$( "#replayGainModifier" ).val( ui.value );
$("#rg_modifier_value").html(ui.value);
}
});
$( "#replayGainModifier" ).val( $( "#slider-range-max" ).slider( "value" ) );
}
$(document).ready(function() {
setupEventListeners();
setSliderForReplayGain();
$('#stream_save').live('click', function(){ $('#stream_save').live('click', function(){
var confirm_pypo_restart_text = $.i18n._("If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted."); var confirm_pypo_restart_text = $.i18n._("If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted.");
@ -386,12 +426,9 @@ function setupEventListeners() {
var json = $.parseJSON(data); var json = $.parseJSON(data);
$('#content').empty().append(json.html); $('#content').empty().append(json.html);
setupEventListeners(); setupEventListeners();
setSliderForReplayGain();
}); });
} }
}); });
}
$(document).ready(function() {
setupEventListeners();
}); });

View File

@ -252,40 +252,28 @@ function eventRender(event, element, view) {
} else if (view.name === 'month' && event.record === 1 && event.soundcloud_id === -3) { } else if (view.name === 'month' && event.record === 1 && event.soundcloud_id === -3) {
$(element).find(".fc-event-title").after('<span id="'+event.id+'" class="small-icon recording"></span><span id="'+event.id+'" class="small-icon sc-error"></span>'); $(element).find(".fc-event-title").after('<span id="'+event.id+'" class="small-icon recording"></span><span id="'+event.id+'" class="small-icon sc-error"></span>');
} }
//add scheduled show content empty icon if (view.name === 'agendaDay' || view.name === 'agendaWeek') {
//addIcon = checkEmptyShowStatus(event); if (event.show_empty === 1 && event.record === 0 && event.rebroadcast === 0) {
//if (!addIcon) { $(element)
if (view.name === 'agendaDay' || view.name === 'agendaWeek') { .find(".fc-event-time")
if (event.show_empty === 1 && event.record === 0 && event.rebroadcast === 0) { .before('<span id="'+event.id+'" class="small-icon show-empty"></span>');
if (event.soundcloud_id === -1) { } else if (event.show_partial_filled === true) {
$(element) $(element)
.find(".fc-event-time") .find(".fc-event-time")
.before('<span id="'+event.id+'" title="'+$.i18n._("Show is empty")+'" class="small-icon show-empty"></span>'); .before('<span id="'+event.id+'" class="small-icon show-partial-filled"></span>');
} else if (event.soundcloud_id > 0) {
} else if (event.soundcloud_id === -2) {
} else if (event.soundcloud_id === -3) {
}
}
} else if (view.name === 'month') {
if (event.show_empty === 1 && event.record === 0 && event.rebroadcast === 0) {
if (event.soundcloud_id === -1) {
$(element)
.find(".fc-event-title")
.after('<span id="'+event.id+'" title="'+$.i18n._("Show is empty")+'" class="small-icon show-empty"></span>');
} else if (event.soundcloud_id > 0) {
} else if (event.soundcloud_id === -2) {
} else if (event.soundcloud_id === -3) {
}
}
} }
//} } else if (view.name === 'month') {
if (event.show_empty === 1 && event.record === 0 && event.rebroadcast === 0) {
$(element)
.find(".fc-event-title")
.after('<span id="'+event.id+'" title="'+$.i18n._("Show is empty")+'" class="small-icon show-empty"></span>');
} else if (event.show_partial_filled === true) {
$(element)
.find(".fc-event-title")
.after('<span id="'+event.id+'" title="'+$.i18n._("Show is partially filled")+'" class="small-icon show-partial-filled"></span>');
}
}
//rebroadcast icon //rebroadcast icon
if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.rebroadcast === 1) { if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.rebroadcast === 1) {
@ -300,7 +288,7 @@ function eventRender(event, element, view) {
function eventAfterRender( event, element, view ) { function eventAfterRender( event, element, view ) {
$(element).find(".small-icon").live('mouseover',function(){ $(element).find(".small-icon").live('mouseover',function(){
addQtipToSCIcons($(this)); addQtipsToIcons($(this));
}); });
} }
@ -418,7 +406,8 @@ function getCurrentShow(){
}); });
} }
function addQtipToSCIcons(ele){
function addQtipsToIcons(ele){
var id = $(ele).attr("id"); var id = $(ele).attr("id");
if($(ele).hasClass("progress")){ if($(ele).hasClass("progress")){
@ -435,6 +424,9 @@ function addQtipToSCIcons(ele){
my: "left top", my: "left top",
viewport: $(window) viewport: $(window)
}, },
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: { show: {
ready: true // Needed to make it show on first mouseover event ready: true // Needed to make it show on first mouseover event
} }
@ -446,7 +438,7 @@ function addQtipToSCIcons(ele){
ajax: { ajax: {
url: baseUrl+"/Library/get-upload-to-soundcloud-status", url: baseUrl+"/Library/get-upload-to-soundcloud-status",
type: "post", type: "post",
data: ({format: "json", id : id, type: "file"}), data: ({format: "json", id : id, type: "show"}),
success: function(json, status){ success: function(json, status){
this.set('content.text', $.i18n._("The soundcloud id for this file is: ")+json.sc_id); this.set('content.text', $.i18n._("The soundcloud id for this file is: ")+json.sc_id);
} }
@ -461,6 +453,9 @@ function addQtipToSCIcons(ele){
my: "left top", my: "left top",
viewport: $(window) viewport: $(window)
}, },
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: { show: {
ready: true // Needed to make it show on first mouseover event ready: true // Needed to make it show on first mouseover event
} }
@ -488,6 +483,9 @@ function addQtipToSCIcons(ele){
my: "left top", my: "left top",
viewport: $(window) viewport: $(window)
}, },
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: { show: {
ready: true // Needed to make it show on first mouseover event ready: true // Needed to make it show on first mouseover event
} }
@ -506,45 +504,36 @@ function addQtipToSCIcons(ele){
my: "left top", my: "left top",
viewport: $(window) viewport: $(window)
}, },
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: {
ready: true // Needed to make it show on first mouseover event
}
});
} else if ($(ele).hasClass("show-partial-filled")){
$(ele).qtip({
content: {
text: $.i18n._("This show is not completely filled with content.")
},
position:{
adjust: {
resize: true,
method: "flip flip"
},
at: "right center",
my: "left top",
viewport: $(window)
},
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: { show: {
ready: true // Needed to make it show on first mouseover event ready: true // Needed to make it show on first mouseover event
} }
}); });
} }
} }
/* This functions does two things:
* 1. Checks if each event(i.e. a show) is over and removes the show empty icon if it is
* 2. Else, if an event is passed in, it checks if the event(i.e. a show) is over
* This gets checked when we are deciding if the show-empty icon should be added
* at the beginning of an event render callback.
*/
/*
function checkEmptyShowStatus(e) {
var currDate = new Date();
var endTime;
if (e === undefined) {
var events = $('#schedule_calendar').fullCalendar('clientEvents');
$.each(events, function(i, event){
endTime = event.end;
$emptyIcon = $("span[id="+event.id+"][class='small-icon show-empty']");
if (currDate.getTime() > endTime.getTime() && $emptyIcon.length === 1) {
$emptyIcon.remove();
}
});
} else {
endTime = e.end;
var showOver = false;
if (currDate.getTime() > endTime.getTime()) {
showOver = true;
}
return showOver;
}
}
*/
//Alert the error and reload the page //Alert the error and reload the page
//this function is used to resolve concurrency issue //this function is used to resolve concurrency issue
function alertShowErrorAndReload(){ function alertShowErrorAndReload(){
@ -555,7 +544,6 @@ function alertShowErrorAndReload(){
$(document).ready(function(){ $(document).ready(function(){
setInterval( "checkSCUploadStatus()", 5000 ); setInterval( "checkSCUploadStatus()", 5000 );
setInterval( "getCurrentShow()", 5000 ); setInterval( "getCurrentShow()", 5000 );
//setInterval( "checkEmptyShowStatus()", 5000 );
}); });
var view_name; var view_name;

View File

@ -122,7 +122,7 @@ $(document).ready(function() {
case 'P': case 'P':
$(this).attr('id', 'user-type-P'); $(this).attr('id', 'user-type-P');
$(this).attr('user-rights', $(this).attr('user-rights',
$.i18n._('Progam Managers can do the following:')+'<br><br>'+ $.i18n._('Program Managers can do the following:')+'<br><br>'+
$.i18n._('View schedule')+'<br>'+ $.i18n._('View schedule')+'<br>'+
$.i18n._('View and manage show content')+'<br>'+ $.i18n._('View and manage show content')+'<br>'+
$.i18n._('Schedule shows')+'<br>'+ $.i18n._('Schedule shows')+'<br>'+
@ -193,4 +193,7 @@ $(document).ready(function() {
}); });
}); });
$("dt[id$='label']").addClass('user-form-label');
$("dd[id$='element']").addClass('user-form-element');
}); });

View File

@ -0,0 +1,23 @@
{
"sEmptyTable": "Nessun dato presente nella tabella",
"sInfo": "Vista da _START_ a _END_ di _TOTAL_ elementi",
"sInfoEmpty": "Vista da 0 a 0 di 0 elementi",
"sInfoFiltered": "(filtrati da _MAX_ elementi totali)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "Visualizza _MENU_ elementi",
"sLoadingRecords": "Caricamento...",
"sProcessing": "Elaborazione...",
"sSearch": "",
"sZeroRecords": "La ricerca non ha portato alcun risultato.",
"oPaginate": {
"sFirst": "Inizio",
"sPrevious": "Precedente",
"sNext": "Successivo",
"sLast": "Fine"
},
"oAria": {
"sSortAscending": ": attiva per ordinare la colonna in ordine crescente",
"sSortDescending": ": attiva per ordinare la colonna in ordine decrescente"
}
}

View File

@ -0,0 +1,17 @@
{
"sProcessing": "处理中...",
"sLengthMenu": "显示 _MENU_ 项结果",
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "",
"sUrl": "",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
}
}

View File

@ -20,5 +20,6 @@ plupload.addI18n({
'IO error.': 'Ein/Ausgabe-Fehler', 'IO error.': 'Ein/Ausgabe-Fehler',
'Stop Upload': 'Hochladen stoppen', 'Stop Upload': 'Hochladen stoppen',
'Start upload': 'Hochladen', 'Start upload': 'Hochladen',
'%d files queued': '%d Dateien in der Warteschlange' '%d files queued': '%d Dateien in der Warteschlange',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
}); });

View File

@ -22,5 +22,6 @@ plupload.addI18n({
'Add Files': 'Add Files', 'Add Files': 'Add Files',
'Start Upload': 'Start Upload', 'Start Upload': 'Start Upload',
'Start upload': 'Start upload', 'Start upload': 'Start upload',
'%d files queued': '%d files queued' '%d files queued': '%d files queued',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
}); });

View File

@ -22,5 +22,6 @@ plupload.addI18n({
'Add Files': 'Add Files', 'Add Files': 'Add Files',
'Start Upload': 'Start Upload', 'Start Upload': 'Start Upload',
'Start upload': 'Start upload', 'Start upload': 'Start upload',
'%d files queued': '%d files queued' '%d files queued': '%d files queued',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
}); });

View File

@ -21,5 +21,6 @@ plupload.addI18n({
'Stop Upload': 'Detener Subida.', 'Stop Upload': 'Detener Subida.',
'Add Files': 'Agregar Archivos', 'Add Files': 'Agregar Archivos',
'Start upload': 'Comenzar Subida', 'Start upload': 'Comenzar Subida',
'%d files queued': '%d archivos en cola.' '%d files queued': '%d archivos en cola.',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
}); });

View File

@ -21,5 +21,6 @@ plupload.addI18n({
'Stop Upload': 'Arrêter les envois.', 'Stop Upload': 'Arrêter les envois.',
'Add Files': 'Ajouter des fichiers', 'Add Files': 'Ajouter des fichiers',
'Start upload': 'Démarrer les envois.', 'Start upload': 'Démarrer les envois.',
'%d files queued': '%d fichiers en attente.' '%d files queued': '%d fichiers en attente.',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
}); });

View File

@ -0,0 +1,25 @@
// Italian
plupload.addI18n({
'Select files' : 'Seleziona i files',
'Add files to the upload queue and click the start button.' : 'Aggiungi i file alla coda di caricamento e clicca il pulsante di avvio.',
'Filename' : 'Nome file',
'Status' : 'Stato',
'Size' : 'Dimensione',
'Add files' : 'Aggiungi file',
'Stop current upload' : 'Interrompi il caricamento',
'Start uploading queue' : 'Avvia il caricamento',
'Uploaded %d/%d files': 'Caricati %d/%d file',
'N/A' : 'N/D',
'Drag files here.' : 'Trascina i file qui.',
'File extension error.': 'Errore estensione file.',
'File size error.': 'Errore dimensione file.',
'Init error.': 'Errore inizializzazione.',
'HTTP Error.': 'Errore HTTP.',
'Security error.': 'Errore sicurezza.',
'Generic error.': 'Errore generico.',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: "),
'IO error.': 'Errore IO.',
'Stop Upload': 'Ferma Upload',
'Start upload': 'Inizia Upload',
'%d files queued': '%d file in lista'
});

View File

@ -22,5 +22,6 @@ plupload.addI18n({
'Add Files': '파일 추가', 'Add Files': '파일 추가',
'Start Upload': '업로드 시작', 'Start Upload': '업로드 시작',
'Start upload': '업로드 시작', 'Start upload': '업로드 시작',
'%d files queued': '%d개의 파일이 큐 되었습니다' '%d files queued': '%d개의 파일이 큐 되었습니다',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
}); });

View File

@ -17,5 +17,6 @@ plupload.addI18n({
'HTTP Error.': 'Ошибка HTTP.', 'HTTP Error.': 'Ошибка HTTP.',
'Security error.': 'Ошибка безопасности.', 'Security error.': 'Ошибка безопасности.',
'Generic error.': 'Общая ошибка.', 'Generic error.': 'Общая ошибка.',
'IO error.': 'Ошибка ввода-вывода.' 'IO error.': 'Ошибка ввода-вывода.',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
}); });

View File

@ -0,0 +1,27 @@
// Chinese
plupload.addI18n({
'Select files' : '选择文件',
'Add files to the upload queue and click the start button.' : '往上传队列中添加文件,并且点击按钮开始上传。',
'Filename' : '文件名',
'Status' : '上传状态',
'Size' : '大小',
'Add files' : '添加文件',
'Stop current upload' : '中断当前上传',
'Start uploading queue' : '启动上传队列',
'Uploaded %d/%d files': '已经上传%d/%d',
'N/A' : '未知',
'Drag files here.' : '拖拽文件至此处。',
'File extension error.': '文件后缀名不符合要求。',
'File size error.': '文件大小错误。',
'Init error.': '初始化出错。',
'HTTP Error.': 'HTTP错误。',
'Security error.': '安全性错误',
'Generic error.': '系统错误。',
'IO error.': '输入输出错误。',
'Stop Upload': '停止上传',
'Add Files': '添加文件',
'Start Upload': '开始上传',
'Start upload': '开始上传',
'%d files queued': '%d个文件在队列中',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
});

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
[main] [main]
liquidsoap_tar_url = http://dl.dropbox.com/u/256410/airtime/savonet.tar.gz liquidsoap_tar_url = https://dl.dropbox.com/u/256410/airtime/liquidsoap-jan-02-2013.tar.gz

View File

@ -99,7 +99,7 @@ def create_fresh_os(vm_name, debian=False):
do_local('VBoxManage startvm %s'%vm_name) do_local('VBoxManage startvm %s'%vm_name)
print "Please wait while attempting to acquire IP address" print "Please wait while attempting to acquire IP address"
time.sleep(15) time.sleep(30)
try_again = True try_again = True
while try_again: while try_again:
@ -115,7 +115,7 @@ def create_fresh_os(vm_name, debian=False):
env.host_string = ip_addr env.host_string = ip_addr
if debian: if debian:
append('/etc/apt/sources.list', "deb http://www.debian-multimedia.org squeeze main non-free", use_sudo=True) append('/etc/apt/sources.list', "deb http://backports.debian.org/debian-backports squeeze-backports main", use_sudo=True)
def ubuntu_lucid_32(fresh_os=True): def ubuntu_lucid_32(fresh_os=True):
if (fresh_os): if (fresh_os):
@ -157,6 +157,14 @@ def ubuntu_precise_32(fresh_os=True):
if (fresh_os): if (fresh_os):
create_fresh_os('Ubuntu_12.04_32') create_fresh_os('Ubuntu_12.04_32')
def ubuntu_quantal_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.10_32')
def ubuntu_quantal_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.10_64')
def debian_squeeze_32(fresh_os=True): def debian_squeeze_32(fresh_os=True):
if (fresh_os): if (fresh_os):
create_fresh_os('Debian_Squeeze_32', debian=True) create_fresh_os('Debian_Squeeze_32', debian=True)
@ -165,6 +173,14 @@ def debian_squeeze_64(fresh_os=True):
if (fresh_os): if (fresh_os):
create_fresh_os('Debian_Squeeze_64', debian=True) create_fresh_os('Debian_Squeeze_64', debian=True)
def debian_wheezy_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Debian_Wheezy_32')
def debian_wheezy_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Debian_Wheezy_64')
def compile_liquidsoap(filename="liquidsoap"): def compile_liquidsoap(filename="liquidsoap"):
@ -179,11 +195,11 @@ def compile_liquidsoap(filename="liquidsoap"):
do_sudo('''apt-get install -y --force-yes ocaml-findlib libao-ocaml-dev libportaudio-ocaml-dev \ do_sudo('''apt-get install -y --force-yes ocaml-findlib libao-ocaml-dev libportaudio-ocaml-dev \
libmad-ocaml-dev libtaglib-ocaml-dev libalsa-ocaml-dev libtaglib-ocaml-dev libvorbis-ocaml-dev \ libmad-ocaml-dev libtaglib-ocaml-dev libalsa-ocaml-dev libtaglib-ocaml-dev libvorbis-ocaml-dev \
libspeex-dev libspeexdsp-dev speex libladspa-ocaml-dev festival festival-dev \ libspeex-dev libspeexdsp-dev speex libladspa-ocaml-dev festival festival-dev \
libsamplerate-dev libxmlplaylist-ocaml-dev libxmlrpc-light-ocaml-dev libflac-dev \ libsamplerate-dev libxmlplaylist-ocaml-dev libflac-dev \
libxml-dom-perl libxml-dom-xpath-perl patch autoconf libmp3lame-dev \ libxml-dom-perl libxml-dom-xpath-perl patch autoconf libmp3lame-dev \
libcamomile-ocaml-dev libcamlimages-ocaml-dev libtool libpulse-dev libjack-dev libcamomile-ocaml-dev libcamlimages-ocaml-dev libtool libpulse-dev libjack-dev \
camlidl libfaad-dev libpcre-ocaml-dev''') camlidl libfaad-dev libpcre-ocaml-dev''')
#libxmlrpc-light-ocaml-dev
root = '/home/martin/src' root = '/home/martin/src'
do_run('mkdir -p %s' % root) do_run('mkdir -p %s' % root)
@ -202,13 +218,14 @@ camlidl libfaad-dev libpcre-ocaml-dev''')
#do_run('cd %s/liquidsoap-1.0.1-full && make' % root) #do_run('cd %s/liquidsoap-1.0.1-full && make' % root)
#get('%s/liquidsoap-1.0.1-full/liquidsoap-1.0.1/src/liquidsoap' % root, filename) #get('%s/liquidsoap-1.0.1-full/liquidsoap-1.0.1/src/liquidsoap' % root, filename)
do_run('cd %s/savonet && cp PACKAGES.minimal PACKAGES' % root) do_run('cd %s/liquidsoap && cp PACKAGES.minimal PACKAGES' % root)
sed('%s/savonet/PACKAGES' % root, '#ocaml-portaudio', 'ocaml-portaudio') sed('%s/liquidsoap/PACKAGES' % root, '#ocaml-portaudio', 'ocaml-portaudio')
sed('%s/savonet/PACKAGES' % root, '#ocaml-alsa', 'ocaml-alsa') sed('%s/liquidsoap/PACKAGES' % root, '#ocaml-alsa', 'ocaml-alsa')
sed('%s/savonet/PACKAGES' % root, '#ocaml-pulseaudio', 'ocaml-pulseaudio') sed('%s/liquidsoap/PACKAGES' % root, '#ocaml-pulseaudio', 'ocaml-pulseaudio')
sed('%s/savonet/PACKAGES' % root, '#ocaml-faad', 'ocaml-faad') sed('%s/liquidsoap/PACKAGES' % root, '#ocaml-faad', 'ocaml-faad')
do_run('cd %s/savonet && make clean' % root) do_run('cd %s/liquidsoap && ./bootstrap' % root)
do_run('cd %s/savonet && ./bootstrap' % root) do_run('cd %s/liquidsoap && ./configure' % root)
do_run('cd %s/savonet && ./configure' % root) do_run('cd %s/liquidsoap && make clean' % root)
do_run('cd %s/savonet && make' % root) do_run('cd %s/liquidsoap && make' % root)
get('%s/savonet/liquidsoap/src/liquidsoap' % root, filename) do_sudo('chmod 755 %s/liquidsoap/liquidsoap/src/liquidsoap' % root)
get('%s/liquidsoap/liquidsoap/src/liquidsoap' % root, filename)

View File

@ -83,7 +83,7 @@ def download_if_needed(vdi_dir, xml_dir, vm_name, vm_vdi_file, vm_xml_file):
do_local("wget %s/%s/%s -O %s"%(env.vm_download_url, vm_name, vm_xml_file, os.path.join(xml_dir, vm_xml_file))) do_local("wget %s/%s/%s -O %s"%(env.vm_download_url, vm_name, vm_xml_file, os.path.join(xml_dir, vm_xml_file)))
def create_fresh_os(vm_name, lucid=False, debian=False): def create_fresh_os(vm_name, lucid=False, debian=False, icecast2_config=False):
""" """
remove known_hosts because if two virtual machines get the same ip address, remove known_hosts because if two virtual machines get the same ip address,
@ -115,7 +115,7 @@ def create_fresh_os(vm_name, lucid=False, debian=False):
do_local('VBoxManage startvm %s'%vm_name) do_local('VBoxManage startvm %s'%vm_name)
print "Please wait while attempting to acquire IP address" print "Please wait while attempting to acquire IP address"
time.sleep(15) time.sleep(30)
try_again = True try_again = True
while try_again: while try_again:
@ -143,7 +143,11 @@ def create_fresh_os(vm_name, lucid=False, debian=False):
do_sudo('echo "rabbitmq-server rabbitmq-server/upgrade_previous note" | debconf-set-selections') do_sudo('echo "rabbitmq-server rabbitmq-server/upgrade_previous note" | debconf-set-selections')
if debian: if debian:
append('/etc/apt/sources.list', "deb http://www.debian-multimedia.org squeeze main non-free", use_sudo=True) append('/etc/apt/sources.list', "deb http://backports.debian.org/debian-backports squeeze-backports main", use_sudo=True)
if icecast2_config:
print "Updating icecast2 setup settings"
do_sudo('echo "icecast2 icecast2/icecast-setup boolean false" | debconf-set-selections')
def ubuntu_lucid_32(fresh_os=True): def ubuntu_lucid_32(fresh_os=True):
if (fresh_os): if (fresh_os):
@ -176,6 +180,22 @@ def ubuntu_oneiric_32(fresh_os=True):
def ubuntu_oneiric_64(fresh_os=True): def ubuntu_oneiric_64(fresh_os=True):
if (fresh_os): if (fresh_os):
create_fresh_os('Ubuntu_11.10_64') create_fresh_os('Ubuntu_11.10_64')
def ubuntu_precise_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.04_32', icecast2_config=True)
def ubuntu_precise_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.04_64', icecast2_config=True)
def ubuntu_quantal_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.10_32', icecast2_config=True)
def ubuntu_quantal_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.10_64', icecast2_config=True)
def debian_squeeze_32(fresh_os=True): def debian_squeeze_32(fresh_os=True):
if (fresh_os): if (fresh_os):
@ -184,6 +204,14 @@ def debian_squeeze_32(fresh_os=True):
def debian_squeeze_64(fresh_os=True): def debian_squeeze_64(fresh_os=True):
if (fresh_os): if (fresh_os):
create_fresh_os('Debian_Squeeze_64', debian=True) create_fresh_os('Debian_Squeeze_64', debian=True)
def debian_wheezy_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Debian_Wheezy_32', icecast2_config=True)
def debian_wheezy_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Debian_Wheezy_64', icecast2_config=True)
def airtime_180_tar(): def airtime_180_tar():
airtime_18x_tar("airtime", "1.8.0") airtime_18x_tar("airtime", "1.8.0")
@ -286,6 +314,58 @@ def airtime_195_tar():
do_run('tar xfz airtime-1.9.5.tar.gz') do_run('tar xfz airtime-1.9.5.tar.gz')
do_sudo('cd /home/martin/airtime-1.9.5/install_full/ubuntu && ./airtime-full-install') do_sudo('cd /home/martin/airtime-1.9.5/install_full/ubuntu && ./airtime-full-install')
def airtime_200_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.0.0/airtime-2.0.0.tar.gz')
do_run('tar xfz airtime-2.0.0.tar.gz')
do_sudo('cd /home/martin/airtime-2.0.0/install_full/ubuntu && ./airtime-full-install')
def airtime_201_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.0.1/airtime-2.0.1.tar.gz')
do_run('tar xfz airtime-2.0.1.tar.gz')
do_sudo('cd /home/martin/airtime-2.0.1/install_full/ubuntu && ./airtime-full-install')
def airtime_202_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.0.2/airtime-2.0.2.tar.gz')
do_run('tar xfz airtime-2.0.2.tar.gz')
do_sudo('cd /home/martin/airtime-2.0.2/install_full/ubuntu && ./airtime-full-install')
def airtime_203_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.0.3/airtime-2.0.3.tar.gz')
do_run('tar xfz airtime-2.0.3.tar.gz')
do_sudo('cd /home/martin/airtime-2.0.3/install_full/ubuntu && ./airtime-full-install')
def airtime_210_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.1.0/airtime-2.1.0.tar.gz')
do_run('tar xfz airtime-2.1.0.tar.gz')
do_sudo('cd /home/martin/airtime-2.1.0/install_full/ubuntu && ./airtime-full-install')
def airtime_211_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.1.1/airtime-2.1.1.tar.gz')
do_run('tar xfz airtime-2.1.1.tar.gz')
do_sudo('cd /home/martin/airtime-2.1.1/install_full/ubuntu && ./airtime-full-install')
def airtime_212_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.1.2/airtime-2.1.2.tar.gz')
do_run('tar xfz airtime-2.1.2.tar.gz')
do_sudo('cd /home/martin/airtime-2.1.2/install_full/ubuntu && ./airtime-full-install')
def airtime_213_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.1.3/airtime-2.1.3.tar.gz')
do_run('tar xfz airtime-2.1.3.tar.gz')
do_sudo('cd /home/martin/airtime-2.1.3/install_full/ubuntu && ./airtime-full-install')
def airtime_220_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.2.0/airtime-2.2.0.tar.gz')
do_run('tar xfz airtime-2.2.0.tar.gz')
do_sudo('cd /home/martin/airtime-2.2.0/install_full/ubuntu && ./airtime-full-install')
def airtime_221_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.2.1/airtime-2.2.1.tar.gz')
do_run('tar xfz airtime-2.2.1.tar.gz')
do_sudo('cd /home/martin/airtime-2.2.1/install_full/ubuntu && ./airtime-full-install')
def airtime_latest_deb(): def airtime_latest_deb():
append('/etc/apt/sources.list', "deb http://apt.sourcefabric.org/ lucid main", use_sudo=True) append('/etc/apt/sources.list', "deb http://apt.sourcefabric.org/ lucid main", use_sudo=True)
append('/etc/apt/sources.list', "deb http://archive.ubuntu.com/ubuntu/ lucid multiverse", use_sudo=True) append('/etc/apt/sources.list', "deb http://archive.ubuntu.com/ubuntu/ lucid multiverse", use_sudo=True)
@ -303,5 +383,5 @@ def airtime_git_branch(branch="devel"):
do_sudo('cd /home/martin/airtime_git && git checkout %s && install_full/ubuntu/airtime-full-install || true' % branch) do_sudo('cd /home/martin/airtime_git && git checkout %s && install_full/ubuntu/airtime-full-install || true' % branch)
def airtime_200(): #def airtime_200():
pass # pass

View File

@ -2,11 +2,12 @@
exec 2>&1 exec 2>&1
target="airtime_git_branch:airtime-2.0.0-RC1" target="airtime_git_branch:devel"
airtime_versions=("" "airtime_180_tar" "airtime_181_tar" "airtime_182_tar" "airtime_190_tar" "airtime_191_tar" "airtime_192_tar" "airtime_193_tar" "airtime_194_tar" "airtime_195_tar") #target="airtime_git_branch:airtime-2.0.0-RC1"
airtime_versions=("")
#airtime_versions=("airtime_191_tar" "airtime_192_tar" "airtime_192_tar" "airtime_194_tar" "airtime_195_tar") #airtime_versions=("airtime_191_tar" "airtime_192_tar" "airtime_192_tar" "airtime_194_tar" "airtime_195_tar")
ubuntu_versions=("ubuntu_lucid_32" "ubuntu_lucid_64" "ubuntu_maverick_32" "ubuntu_maverick_64" "ubuntu_natty_32" "ubuntu_natty_64" "ubuntu_oneiric_32" "ubuntu_oneiric_64" "debian_squeeze_32" "debian_squeeze_64") ubuntu_versions=("ubuntu_lucid_32" "ubuntu_lucid_64" "ubuntu_natty_32" "ubuntu_natty_64" "ubuntu_oneiric_32" "ubuntu_oneiric_64" "ubuntu_precise_32" "ubuntu_precise_64" "ubuntu_quantal_32" "ubuntu_quantal_64" "debian_squeeze_32" "debian_squeeze_64" "debian_wheezy_32" "debian_wheezy_64")
#ubuntu_versions=("ubuntu_natty_64") #ubuntu_versions=("debian_wheezy_32" "debian_wheezy_64")
num1=${#ubuntu_versions[@]} num1=${#ubuntu_versions[@]}
num2=${#airtime_versions[@]} num2=${#airtime_versions[@]}
@ -18,7 +19,19 @@ do
#echo fab -f fab_setup.py os_update shutdown #echo fab -f fab_setup.py os_update shutdown
for j in $(seq 0 $(($num2 -1))); for j in $(seq 0 $(($num2 -1)));
do do
echo fab -f fab_setup.py ${ubuntu_versions[$i]} ${airtime_versions[$j]} $target shutdown #since 2.2.0 airtime start to support wheezy and quantal, before that, we don't need to test on those combinations
fab -f fab_release_test.py ${ubuntu_versions[$i]} ${airtime_versions[$j]} $target shutdown 2>&1 | tee "./upgrade_logs/${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log" platform=`echo ${ubuntu_versions[$i]} | awk '/(quantal)|(wheezy)/'`
airtime=`echo ${airtime_versions[$j]} | awk '/2(0|1)[0-3]/'`
if [ "$platform" = "" ] || [ "$airtime" = "" ];then
echo fab -f fab_release_test.py ${ubuntu_versions[$i]} ${airtime_versions[$j]} $target shutdown
fab -f fab_release_test.py ${ubuntu_versions[$i]} ${airtime_versions[$j]} $target shutdown 2>&1 | tee "./$upgrade_log_folder/${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log"
#touch "./$upgrade_log_folder/${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log"
tail -20 "./$upgrade_log_folder/${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log" | grep -E "Your installation of Airtime looks OK"
returncode=$?
if [ "$returncode" -ne "0" ]; then
mv "./$upgrade_log_folder/${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log" "./$upgrade_log_folder/fail_${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log"
fi
fi
done done
done done

View File

@ -2,8 +2,9 @@
exec 2>&1 exec 2>&1
ubuntu_versions=("ubuntu_lucid_32" "ubuntu_lucid_64" "ubuntu_maverick_32" "ubuntu_maverick_64" "ubuntu_natty_32" "ubuntu_natty_64" "ubuntu_oneiric_32" "ubuntu_oneiric_64" "debian_squeeze_32" "debian_squeeze_64" "ubuntu_precise_32" "ubuntu_precise_64") ubuntu_versions=("ubuntu_lucid_32" "ubuntu_lucid_64" "ubuntu_natty_32" "ubuntu_natty_64" "ubuntu_oneiric_32" "ubuntu_oneiric_64" "debian_squeeze_32" "debian_squeeze_64" "ubuntu_precise_32" "ubuntu_precise_64" "ubuntu_quantal_32" "ubuntu_quantal_64" "debian_wheezy_32" "debian_wheezy_64")
#ubuntu_versions=("ubuntu_quantal_64")
num1=${#ubuntu_versions[@]} num1=${#ubuntu_versions[@]}
mkdir -p ./upgrade_logs2 mkdir -p ./upgrade_logs2

View File

@ -19,6 +19,7 @@ showhelp () {
--pypo|-p Install only pypo and liquidsoap --pypo|-p Install only pypo and liquidsoap
--web|-w Install only files for web-server --web|-w Install only files for web-server
--liquidsoap-keep-alive|-l Keep Liquidsoap alive when upgrading" --liquidsoap-keep-alive|-l Keep Liquidsoap alive when upgrading"
exit 0
} }
overwrite="f" overwrite="f"

View File

@ -340,6 +340,11 @@ class AirtimeInstall
if ($result < 1) { if ($result < 1) {
return false; return false;
} }
$sql = "INSERT INTO cc_pref (subjid, keystr, valstr) VALUES (1, 'user_1_timezone', '$defaultTimezone')";
$result = $con->exec($sql);
if ($result < 1) {
return false;
}
return true; return true;
} }

View File

@ -7,6 +7,9 @@ if [[ $EUID -ne 0 ]]; then
exit 1 exit 1
fi fi
echo "Generating locales"
for i in `ls /usr/share/airtime/locale | grep ".._.."`; do locale-gen "$i.utf8"; done
# Absolute path to this script, e.g. /home/user/bin/foo.sh # Absolute path to this script, e.g. /home/user/bin/foo.sh
SCRIPT=`readlink -f $0` SCRIPT=`readlink -f $0`
# Absolute path this script is in, thus /home/user/bin # Absolute path this script is in, thus /home/user/bin

View File

@ -124,3 +124,5 @@ notify_liquidsoap_started = 'rabbitmq-do-push/api_key/%%api_key%%/format/json'
get_stream_parameters = 'get-stream-parameters/api_key/%%api_key%%/format/json' get_stream_parameters = 'get-stream-parameters/api_key/%%api_key%%/format/json'
push_stream_stats = 'push-stream-stats/api_key/%%api_key%%/format/json' push_stream_stats = 'push-stream-stats/api_key/%%api_key%%/format/json'
update_stream_setting_table = 'update-stream-setting-table/api_key/%%api_key%%/format/json'

View File

@ -383,3 +383,7 @@ class AirtimeApiClient(object):
# TODO : users of this method should do their own error handling # TODO : users of this method should do their own error handling
response = self.services.push_stream_stats(_post_data={'data': json.dumps(data)}) response = self.services.push_stream_stats(_post_data={'data': json.dumps(data)})
return response return response
def update_stream_setting_table(self, data):
response = self.services.update_stream_setting_table(_post_data={'data': json.dumps(data)})
return response

View File

@ -16,6 +16,16 @@ def load_definitions():
t.default(u'0.0') t.default(u'0.0')
t.depends('length') t.depends('length')
t.translate(lambda k: format_length(k['length'])) t.translate(lambda k: format_length(k['length']))
with md.metadata('MDATA_KEY_CUE_IN') as t:
t.default(u'0.0')
t.depends('cuein')
t.translate(lambda k: format_length(k['cuein']))
with md.metadata('MDATA_KEY_CUE_OUT') as t:
t.default(u'0.0')
t.depends('cueout')
t.translate(lambda k: format_length(k['cueout']))
with md.metadata('MDATA_KEY_MIME') as t: with md.metadata('MDATA_KEY_MIME') as t:
t.default(u'') t.default(u'')

View File

@ -7,6 +7,9 @@ from media.monitor.log import Loggable
import media.monitor.pure as mmp import media.monitor.pure as mmp
from collections import namedtuple from collections import namedtuple
import mutagen import mutagen
import subprocess
import json
import logging
class FakeMutagen(dict): class FakeMutagen(dict):
""" """
@ -94,7 +97,6 @@ class MetadataElement(Loggable):
# If value is present and normalized then we only check if it's # If value is present and normalized then we only check if it's
# normalized or not. We normalize if it's not normalized already # normalized or not. We normalize if it's not normalized already
if self.name in original: if self.name in original:
v = original[self.name] v = original[self.name]
if self.__is_normalized(v): return v if self.__is_normalized(v): return v
@ -167,6 +169,19 @@ def normalize_mutagen(path):
md['sample_rate'] = getattr(m.info, 'sample_rate', 0) md['sample_rate'] = getattr(m.info, 'sample_rate', 0)
md['mime'] = m.mime[0] if len(m.mime) > 0 else u'' md['mime'] = m.mime[0] if len(m.mime) > 0 else u''
md['path'] = normpath(path) md['path'] = normpath(path)
# silence detect(set default queue in and out)
try:
command = ['silan', '-f', 'JSON', md['path']]
proc = subprocess.Popen(command, stdout=subprocess.PIPE)
out = proc.stdout.read()
info = json.loads(out)
md['cuein'] = info['sound'][0][0]
md['cueout'] = info['sound'][-1][1]
except Exception:
logger = logging.getLogger()
logger.info('silan is missing')
if 'title' not in md: md['title'] = u'' if 'title' not in md: md['title'] = u''
return md return md

View File

@ -45,6 +45,8 @@ airtime2mutagen = {
"MDATA_KEY_URL" : "website", "MDATA_KEY_URL" : "website",
"MDATA_KEY_ISRC" : "isrc", "MDATA_KEY_ISRC" : "isrc",
"MDATA_KEY_COPYRIGHT" : "copyright", "MDATA_KEY_COPYRIGHT" : "copyright",
"MDATA_KEY_CUE_IN" : "cuein",
"MDATA_KEY_CUE_OUT" : "cueout",
} }

View File

@ -9,6 +9,7 @@ import contextlib
import shutil, pipes import shutil, pipes
import re import re
import sys import sys
import stat
import hashlib import hashlib
import locale import locale
import operator as op import operator as op
@ -411,17 +412,26 @@ def owner_id(original_path):
def file_playable(pathname): def file_playable(pathname):
""" Returns True if 'pathname' is playable by liquidsoap. False """ Returns True if 'pathname' is playable by liquidsoap. False
otherwise. """ otherwise. """
return True
#remove all write permissions. This is due to stupid taglib library bug
#where all files are opened in write mode. The only way around this is to
#modify the file permissions
os.chmod(pathname, stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH)
# when there is an single apostrophe inside of a string quoted by # when there is an single apostrophe inside of a string quoted by
# apostrophes, we can only escape it by replace that apostrophe with # apostrophes, we can only escape it by replace that apostrophe with
# '\''. This breaks the string into two, and inserts an escaped # '\''. This breaks the string into two, and inserts an escaped
# single quote in between them. We run the command as pypo because # single quote in between them.
# otherwise the target file is opened with write permissions, and
# this causes an inotify ON_CLOSE_WRITE event to be fired :/
command = ("airtime-liquidsoap -c 'output.dummy" + \ command = ("airtime-liquidsoap -c 'output.dummy" + \
"(audio_to_stereo(single(\"%s\")))' > /dev/null 2>&1") % \ "(audio_to_stereo(single(\"%s\")))' > /dev/null 2>&1") % \
pathname.replace("'", "'\\''") pathname.replace("'", "'\\''")
return True
return_code = subprocess.call(command, shell=True) return_code = subprocess.call(command, shell=True)
#change/restore permissions to acceptable
os.chmod(pathname, stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH | \
stat.S_IWUSR | stat.S_IWGRP | stat.S_IWOTH)
return (return_code == 0) return (return_code == 0)
def toposort(data): def toposort(data):
@ -460,7 +470,7 @@ def format_length(mutagen_length):
m = int(math.floor(t / 60)) m = int(math.floor(t / 60))
s = t % 60 s = t % 60
# will be ss.uuu # will be ss.uuu
s = str(s) s = str('{0:f}'.format(s))
seconds = s.split(".") seconds = s.split(".")
s = seconds[0] s = seconds[0]
# have a maximum of 6 subseconds. # have a maximum of 6 subseconds.

Some files were not shown because too many files have changed in this diff Show More