Merge branch 'cc-5709-airtime-analyzer' into cc-5709-airtime-analyzer-cloud-storage
Conflicts: airtime_mvc/application/models/StoredFile.php airtime_mvc/application/modules/rest/controllers/MediaController.php python_apps/airtime_analyzer/airtime_analyzer/analyzer_pipeline.py
This commit is contained in:
commit
884a4c493d
103 changed files with 30564 additions and 20054 deletions
|
@ -51,8 +51,9 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
|||
$view = $this->getResource('view');
|
||||
$baseUrl = Application_Common_OsPath::getBaseDir();
|
||||
|
||||
$view->headScript()->appendScript("var baseUrl = '$baseUrl'");
|
||||
|
||||
$view->headScript()->appendScript("var baseUrl = '$baseUrl';");
|
||||
$this->_initTranslationGlobals($view);
|
||||
|
||||
$user = Application_Model_User::GetCurrentUser();
|
||||
if (!is_null($user)){
|
||||
$userType = $user->getType();
|
||||
|
@ -60,7 +61,17 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
|||
$userType = "";
|
||||
}
|
||||
$view->headScript()->appendScript("var userType = '$userType';");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Ideally, globals should be written to a single js file once
|
||||
* from a php init function. This will save us from having to
|
||||
* reinitialize them every request
|
||||
*/
|
||||
private function _initTranslationGlobals($view) {
|
||||
$view->headScript()->appendScript("var PRODUCT_NAME = '" . PRODUCT_NAME . "';");
|
||||
$view->headScript()->appendScript("var USER_MANUAL_URL = '" . USER_MANUAL_URL . "';");
|
||||
$view->headScript()->appendScript("var COMPANY_NAME = '" . COMPANY_NAME . "';");
|
||||
}
|
||||
|
||||
protected function _initHeadLink()
|
||||
|
|
|
@ -1,5 +1,21 @@
|
|||
<?php
|
||||
|
||||
define('PRODUCT_NAME' , 'Airtime');
|
||||
define('PRODUCT_SITE_URL' , 'http://airtime.sourcefabric.org');
|
||||
|
||||
define('COMPANY_NAME' , 'Sourcefabric');
|
||||
define('COMPANY_SUFFIX' , 'z.ú.');
|
||||
define('COMPANY_SITE' , 'Sourcefabric.org');
|
||||
define('COMPANY_SITE_URL' , 'http://sourcefabric.org/');
|
||||
|
||||
define('WHOS_USING_URL' , 'http://sourcefabric.org/en/airtime/whosusing');
|
||||
define('TERMS_AND_CONDITIONS_URL' , 'http://www.sourcefabric.org/en/about/policy/');
|
||||
define('PRIVACY_POLICY_URL' , 'http://www.sourcefabric.org/en/about/policy/');
|
||||
define('USER_MANUAL_URL' , 'http://www.sourcefabric.org/en/airtime/manuals/');
|
||||
|
||||
define('LICENSE_VERSION' , 'GNU AGPL v.3');
|
||||
define('LICENSE_URL' , 'http://www.gnu.org/licenses/agpl-3.0-standalone.html');
|
||||
|
||||
define('AIRTIME_COPYRIGHT_DATE' , '2010-2012');
|
||||
define('AIRTIME_REST_VERSION' , '1.1');
|
||||
define('AIRTIME_API_VERSION' , '1.1');
|
||||
|
|
|
@ -757,7 +757,7 @@ class ApiController extends Zend_Controller_Action
|
|||
|
||||
//File is not in database anymore.
|
||||
if (is_null($file)) {
|
||||
$return_hash['error'] = _("File does not exist in Airtime.");
|
||||
$return_hash['error'] = sprintf(_("File does not exist in %s"), PRODUCT_NAME);
|
||||
}
|
||||
//Updating a metadata change.
|
||||
else {
|
||||
|
@ -777,7 +777,7 @@ class ApiController extends Zend_Controller_Action
|
|||
$md['MDATA_KEY_ORIGINAL_PATH'], $con);
|
||||
|
||||
if (is_null($file)) {
|
||||
$return_hash['error'] = _('File does not exist in Airtime');
|
||||
$return_hash['error'] = sprintf(_('File does not exist in %s'), PRODUCT_NAME);
|
||||
} else {
|
||||
$filepath = $md['MDATA_KEY_FILEPATH'];
|
||||
//$filepath = str_replace("\\", "", $filepath);
|
||||
|
@ -789,7 +789,7 @@ class ApiController extends Zend_Controller_Action
|
|||
$file = Application_Model_StoredFile::RecallByFilepath($filepath, $con);
|
||||
|
||||
if (is_null($file)) {
|
||||
$return_hash['error'] = _("File doesn't exist in Airtime.");
|
||||
$return_hash['error'] = sprintf(_('File does not exist in %s'), PRODUCT_NAME);
|
||||
Logging::warn("Attempt to delete file that doesn't exist.
|
||||
Path: '$filepath'");
|
||||
} else {
|
||||
|
|
|
@ -5,7 +5,7 @@ class LocaleController extends Zend_Controller_Action
|
|||
public function init()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public function datatablesTranslationTableAction()
|
||||
{
|
||||
$this->view->layout()->disableLayout();
|
||||
|
|
|
@ -12,12 +12,12 @@ class LoginController extends Zend_Controller_Action
|
|||
$CC_CONFIG = Config::getConfig();
|
||||
|
||||
$request = $this->getRequest();
|
||||
$stationLocale = Application_Model_Preference::GetDefaultLocale();
|
||||
|
||||
Application_Model_Locale::configureLocalization($request->getcookie('airtime_locale', 'en_CA'));
|
||||
Application_Model_Locale::configureLocalization($request->getcookie('airtime_locale', $stationLocale));
|
||||
$auth = Zend_Auth::getInstance();
|
||||
|
||||
if ($auth->hasIdentity())
|
||||
{
|
||||
if ($auth->hasIdentity()) {
|
||||
$this->_redirect('Showbuilder');
|
||||
}
|
||||
|
||||
|
@ -110,7 +110,9 @@ class LoginController extends Zend_Controller_Action
|
|||
$this->view->headScript()->appendFile($baseUrl.'js/airtime/login/password-restore.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||
|
||||
$request = $this->getRequest();
|
||||
Application_Model_Locale::configureLocalization($request->getcookie('airtime_locale', 'en_CA'));
|
||||
$stationLocale = Application_Model_Preference::GetDefaultLocale();
|
||||
|
||||
Application_Model_Locale::configureLocalization($request->getcookie('airtime_locale', $stationLocale));
|
||||
|
||||
if (!Application_Model_Preference::GetEnableSystemEmail()) {
|
||||
$this->_redirect('login');
|
||||
|
@ -154,7 +156,9 @@ class LoginController extends Zend_Controller_Action
|
|||
public function passwordRestoreAfterAction()
|
||||
{
|
||||
$request = $this->getRequest();
|
||||
Application_Model_Locale::configureLocalization($request->getcookie('airtime_locale', 'en_CA'));
|
||||
$stationLocale = Application_Model_Preference::GetDefaultLocale();
|
||||
|
||||
Application_Model_Locale::configureLocalization($request->getcookie('airtime_locale', $stationLocale));
|
||||
|
||||
//uses separate layout without a navigation.
|
||||
$this->_helper->layout->setLayout('login');
|
||||
|
@ -172,8 +176,10 @@ class LoginController extends Zend_Controller_Action
|
|||
$form = new Application_Form_PasswordChange();
|
||||
$auth = new Application_Model_Auth();
|
||||
$user = CcSubjsQuery::create()->findPK($user_id);
|
||||
|
||||
$stationLocale = Application_Model_Preference::GetDefaultLocale();
|
||||
|
||||
Application_Model_Locale::configureLocalization($request->getcookie('airtime_locale', 'en_CA'));
|
||||
Application_Model_Locale::configureLocalization($request->getcookie('airtime_locale', $stationLocale));
|
||||
|
||||
//check validity of token
|
||||
if (!$auth->checkToken($user_id, $token, 'password.restore')) {
|
||||
|
|
|
@ -38,7 +38,7 @@ class PlaylistController extends Zend_Controller_Action
|
|||
$obj = null;
|
||||
$objInfo = Application_Model_Library::getObjInfo($p_type);
|
||||
|
||||
$obj_sess = new Zend_Session_Namespace( UI_PLAYLISTCONTROLLER_OBJ_SESSNAME);
|
||||
$obj_sess = new Zend_Session_Namespace(UI_PLAYLISTCONTROLLER_OBJ_SESSNAME);
|
||||
if (isset($obj_sess->id)) {
|
||||
$obj = new $objInfo['className']($obj_sess->id);
|
||||
|
||||
|
@ -422,29 +422,29 @@ class PlaylistController extends Zend_Controller_Action
|
|||
|
||||
public function setCrossfadeAction()
|
||||
{
|
||||
$id1 = $this->_getParam('id1', null);
|
||||
$id2 = $this->_getParam('id2', null);
|
||||
$type = $this->_getParam('type');
|
||||
$fadeIn = $this->_getParam('fadeIn', 0);
|
||||
$fadeOut = $this->_getParam('fadeOut', 0);
|
||||
$offset = $this->_getParam('offset', 0);
|
||||
$id1 = $this->_getParam('id1', null);
|
||||
$id2 = $this->_getParam('id2', null);
|
||||
$type = $this->_getParam('type');
|
||||
$fadeIn = $this->_getParam('fadeIn', 0);
|
||||
$fadeOut = $this->_getParam('fadeOut', 0);
|
||||
$offset = $this->_getParam('offset', 0);
|
||||
|
||||
try {
|
||||
$obj = $this->getPlaylist($type);
|
||||
$response = $obj->createCrossfade($id1, $fadeOut, $id2, $fadeIn, $offset);
|
||||
try {
|
||||
$obj = $this->getPlaylist($type);
|
||||
$response = $obj->createCrossfade($id1, $fadeOut, $id2, $fadeIn, $offset);
|
||||
|
||||
if (!isset($response["error"])) {
|
||||
$this->createUpdateResponse($obj);
|
||||
} else {
|
||||
$this->view->error = $response["error"];
|
||||
}
|
||||
} catch (PlaylistOutDatedException $e) {
|
||||
$this->playlistOutdated($e);
|
||||
} catch (PlaylistNotFoundException $e) {
|
||||
$this->playlistNotFound($type);
|
||||
} catch (Exception $e) {
|
||||
$this->playlistUnknownError($e);
|
||||
}
|
||||
if (!isset($response["error"])) {
|
||||
$this->createUpdateResponse($obj);
|
||||
} else {
|
||||
$this->view->error = $response["error"];
|
||||
}
|
||||
} catch (PlaylistOutDatedException $e) {
|
||||
$this->playlistOutdated($e);
|
||||
} catch (PlaylistNotFoundException $e) {
|
||||
$this->playlistNotFound($type);
|
||||
} catch (Exception $e) {
|
||||
$this->playlistUnknownError($e);
|
||||
}
|
||||
}
|
||||
|
||||
public function getPlaylistFadesAction()
|
||||
|
|
|
@ -69,12 +69,6 @@ class UserController extends Zend_Controller_Action
|
|||
$user->setJabber($formData['jabber']);
|
||||
$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();
|
||||
Application_Model_Preference::SetUserTimezone();
|
||||
|
||||
$form->reset();
|
||||
$this->view->form = $form;
|
||||
|
||||
|
@ -83,7 +77,7 @@ class UserController extends Zend_Controller_Action
|
|||
} else {
|
||||
$this->view->successMessage = "<div class='success'>"._("User updated successfully!")."</div>";
|
||||
}
|
||||
|
||||
|
||||
$this->_helper->json->sendJson(array("valid"=>"true", "html"=>$this->view->render('user/add-user.phtml')));
|
||||
} else {
|
||||
$this->view->form = $form;
|
||||
|
|
|
@ -7,7 +7,7 @@ class Application_Form_AddShowLiveStream extends Zend_Form_SubForm
|
|||
public function init()
|
||||
{
|
||||
$cb_airtime_auth = new Zend_Form_Element_Checkbox("cb_airtime_auth");
|
||||
$cb_airtime_auth->setLabel(_("Use Airtime Authentication:"))
|
||||
$cb_airtime_auth->setLabel(sprintf(_("Use %s Authentication:"), PRODUCT_NAME))
|
||||
->setRequired(false)
|
||||
->setDecorators(array('ViewHelper'));
|
||||
$this->addElement($cb_airtime_auth);
|
||||
|
|
|
@ -53,13 +53,11 @@ class Application_Form_Login extends Zend_Form
|
|||
$locale->setMultiOptions(Application_Model_Locale::getLocales());
|
||||
$locale->setDecorators(array('ViewHelper'));
|
||||
$this->addElement($locale);
|
||||
$this->setDefaults(array(
|
||||
"locale" => Application_Model_Locale::getUserLocale()
|
||||
));
|
||||
|
||||
$recaptchaNeeded = false;
|
||||
if (Application_Model_LoginAttempts::getAttempts($_SERVER['REMOTE_ADDR']) >= 3) {
|
||||
$recaptchaNeeded = true;
|
||||
}
|
||||
if ($recaptchaNeeded) {
|
||||
// recaptcha
|
||||
$this->addRecaptcha();
|
||||
}
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@ class Application_Form_RegisterAirtime extends Zend_Form
|
|||
|
||||
// checkbox for publicise
|
||||
$checkboxPublicise = new Zend_Form_Element_Checkbox("Publicise");
|
||||
$checkboxPublicise->setLabel(_('Promote my station on Sourcefabric.org'))
|
||||
$checkboxPublicise->setLabel(sprintf(_('Promote my station on %s'), COMPANY_SITE))
|
||||
->setRequired(false)
|
||||
->setDecorators(array('ViewHelper'))
|
||||
->setValue(Application_Model_Preference::GetPublicise());
|
||||
|
@ -143,11 +143,14 @@ class Application_Form_RegisterAirtime extends Zend_Form
|
|||
)
|
||||
));
|
||||
|
||||
$privacyPolicyAnchorOpen = "<a id='link_to_privacy' href='" . PRIVACY_POLICY_URL
|
||||
. "' onclick='window.open(this.href); return false;'>";
|
||||
// checkbox for privacy policy
|
||||
$checkboxPrivacy = new Zend_Form_Element_Checkbox("Privacy");
|
||||
$checkboxPrivacy->setLabel(
|
||||
sprintf(_("By checking this box, I agree to Sourcefabric's %sprivacy policy%s."),
|
||||
"<a id='link_to_privacy' href='http://www.sourcefabric.org/en/about/policy/' onclick='window.open(this.href); return false;'>",
|
||||
sprintf(_('By checking this box, I agree to %s\'s %sprivacy policy%s.'),
|
||||
COMPANY_NAME,
|
||||
$privacyPolicyAnchorOpen,
|
||||
"</a>"))
|
||||
->setDecorators(array('ViewHelper'));
|
||||
$this->addElement($checkboxPrivacy);
|
||||
|
|
|
@ -119,7 +119,7 @@ class Application_Form_SupportSettings extends Zend_Form
|
|||
|
||||
// checkbox for publicise
|
||||
$checkboxPublicise = new Zend_Form_Element_Checkbox("Publicise");
|
||||
$checkboxPublicise->setLabel(_('Promote my station on Sourcefabric.org'))
|
||||
$checkboxPublicise->setLabel(sprintf(_('Promote my station on %s'), COMPANY_SITE))
|
||||
->setRequired(false)
|
||||
->setDecorators(array('ViewHelper'))
|
||||
->setValue(Application_Model_Preference::GetPublicise());
|
||||
|
@ -142,11 +142,14 @@ class Application_Form_SupportSettings extends Zend_Form
|
|||
)
|
||||
));
|
||||
|
||||
$privacyPolicyAnchorOpen = "<a id='link_to_privacy' href='" . PRIVACY_POLICY_URL
|
||||
. "' onclick='window.open(this.href); return false;'>";
|
||||
// checkbox for privacy policy
|
||||
$checkboxPrivacy = new Zend_Form_Element_Checkbox("Privacy");
|
||||
$checkboxPrivacy->setLabel(
|
||||
sprintf(_("By checking this box, I agree to Sourcefabric's %sprivacy policy%s."),
|
||||
"<a id='link_to_privacy' href='http://www.sourcefabric.org/en/about/policy/' onclick='window.open(this.href); return false;'>",
|
||||
sprintf(_('By checking this box, I agree to %s\'s %sprivacy policy%s.'),
|
||||
COMPANY_NAME,
|
||||
$privacyPolicyAnchorOpen,
|
||||
"</a>"))
|
||||
->setDecorators(array('ViewHelper'));
|
||||
$this->addElement($checkboxPrivacy);
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<?php echo $this->doctype() ?>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<?php echo $this->headTitle() ?>
|
||||
<?php echo $this->headLink() ?>
|
||||
<?php echo $this->headScript() ?>
|
||||
<?php echo isset($this->google_analytics)?$this->google_analytics:"" ?>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<?php echo $this->headTitle() ?>
|
||||
<?php echo $this->headLink() ?>
|
||||
<?php echo $this->headScript() ?>
|
||||
<?php echo isset($this->google_analytics)?$this->google_analytics:"" ?>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
@ -13,9 +13,20 @@
|
|||
<?php echo $this->layout()->content ?>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<?php echo sprintf(_("Airtime copyright © Sourcefabric z.ú. All rights reserved.%s"
|
||||
."Maintained and distributed under the GNU GPL v.3 by %sSourcefabric z.ú.%s"),
|
||||
"<br>", "<a href='http://www.sourcefabric.org'>" ,"</a>");?>
|
||||
<?php
|
||||
$company = COMPANY_NAME . " " . COMPANY_SUFFIX;
|
||||
$licenseSiteAnchor = "<a href='" . LICENSE_URL . "'>"
|
||||
. LICENSE_VERSION
|
||||
. "</a>";
|
||||
$companySiteAnchor = "<a href='" . COMPANY_SITE_URL . "'>"
|
||||
. $company
|
||||
. "</a>";
|
||||
echo sprintf(_('%1$s copyright © %2$s All rights reserved.%3$s'
|
||||
. 'Maintained and distributed under the %4$s by %5$s'),
|
||||
PRODUCT_NAME, $company, "<br>",
|
||||
$licenseSiteAnchor,
|
||||
$companySiteAnchor);
|
||||
?>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -33,7 +33,8 @@ class Application_Model_Auth
|
|||
$message = sprintf(_("Hi %s, \n\nClick this link to reset your password: "), $user->getDbLogin());
|
||||
$message .= "{$e_link_protocol}://{$e_link_base}:{$e_link_port}{$e_link_path}";
|
||||
|
||||
$success = Application_Model_Email::send(_('Airtime Password Reset'), $message, $user->getDbEmail());
|
||||
$str = sprintf(_('%s Password Reset'), PRODUCT_NAME);
|
||||
$success = Application_Model_Email::send($str, $message, $user->getDbEmail());
|
||||
|
||||
return $success;
|
||||
}
|
||||
|
|
|
@ -47,5 +47,22 @@ class Application_Model_Locale
|
|||
textdomain($domain);
|
||||
bind_textdomain_codeset($domain, $codeset);
|
||||
}
|
||||
|
||||
/**
|
||||
* We need this function for the case where a user has logged out, but
|
||||
* has an airtime_locale cookie containing their locale setting.
|
||||
*
|
||||
* If the user does not have an airtime_locale cookie set, we default
|
||||
* to the station locale.
|
||||
*
|
||||
* When the user logs in, the value set in the login form will be passed
|
||||
* into the airtime_locale cookie. This cookie is also updated when
|
||||
* a user updates their user settings.
|
||||
*/
|
||||
public static function getUserLocale() {
|
||||
$request = Zend_Controller_Front::getInstance()->getRequest();
|
||||
$locale = $request->getCookie('airtime_locale', Application_Model_Preference::GetLocale());
|
||||
return $locale;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,45 +4,44 @@ require_once 'Cache.php';
|
|||
|
||||
class Application_Model_Preference
|
||||
{
|
||||
|
||||
private static function getUserId()
|
||||
{
|
||||
//pass in true so the check is made with the autoloader
|
||||
//we need this check because saas calls this function from outside Zend
|
||||
if (!class_exists("Zend_Auth", true) || !Zend_Auth::getInstance()->hasIdentity()) {
|
||||
$userId = null;
|
||||
}
|
||||
else {
|
||||
$auth = Zend_Auth::getInstance();
|
||||
$userId = $auth->getIdentity()->id;
|
||||
}
|
||||
|
||||
return $userId;
|
||||
}
|
||||
|
||||
|
||||
private static function getUserId()
|
||||
{
|
||||
//pass in true so the check is made with the autoloader
|
||||
//we need this check because saas calls this function from outside Zend
|
||||
if (!class_exists("Zend_Auth", true) || !Zend_Auth::getInstance()->hasIdentity()) {
|
||||
$userId = null;
|
||||
} else {
|
||||
$auth = Zend_Auth::getInstance();
|
||||
$userId = $auth->getIdentity()->id;
|
||||
}
|
||||
|
||||
return $userId;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param boolean $isUserValue is true when we are setting a value for the current user
|
||||
*/
|
||||
private static function setValue($key, $value, $isUserValue = false)
|
||||
{
|
||||
$cache = new Cache();
|
||||
|
||||
$cache = new Cache();
|
||||
|
||||
try {
|
||||
|
||||
$con = Propel::getConnection(CcPrefPeer::DATABASE_NAME);
|
||||
$con->beginTransaction();
|
||||
|
||||
$userId = self::getUserId();
|
||||
|
||||
if ($isUserValue && is_null($userId)) {
|
||||
throw new Exception("User id can't be null for a user preference {$key}.");
|
||||
}
|
||||
if ($isUserValue && is_null($userId))
|
||||
throw new Exception("User id can't be null for a user preference {$key}.");
|
||||
|
||||
Application_Common_Database::prepareAndExecute("LOCK TABLE cc_pref");
|
||||
|
||||
//Check if key already exists
|
||||
$sql = "SELECT COUNT(*) FROM cc_pref"
|
||||
." WHERE keystr = :key";
|
||||
." WHERE keystr = :key";
|
||||
|
||||
$paramMap = array();
|
||||
$paramMap[':key'] = $key;
|
||||
|
@ -64,37 +63,33 @@ class Application_Model_Preference
|
|||
//this case should not happen.
|
||||
throw new Exception("Invalid number of results returned. Should be ".
|
||||
"0 or 1, but is '$result' instead");
|
||||
}
|
||||
elseif ($result == 1) {
|
||||
|
||||
} else if ($result == 1) {
|
||||
|
||||
// result found
|
||||
if (!$isUserValue) {
|
||||
// system pref
|
||||
$sql = "UPDATE cc_pref"
|
||||
." SET subjid = NULL, valstr = :value"
|
||||
." WHERE keystr = :key";
|
||||
}
|
||||
else {
|
||||
." SET subjid = NULL, valstr = :value"
|
||||
." WHERE keystr = :key";
|
||||
} else {
|
||||
// user pref
|
||||
$sql = "UPDATE cc_pref"
|
||||
. " SET valstr = :value"
|
||||
. " WHERE keystr = :key AND subjid = :id";
|
||||
. " SET valstr = :value"
|
||||
. " WHERE keystr = :key AND subjid = :id";
|
||||
|
||||
$paramMap[':id'] = $userId;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
} else {
|
||||
|
||||
// result not found
|
||||
if (!$isUserValue) {
|
||||
// system pref
|
||||
$sql = "INSERT INTO cc_pref (keystr, valstr)"
|
||||
." VALUES (:key, :value)";
|
||||
}
|
||||
else {
|
||||
." VALUES (:key, :value)";
|
||||
} else {
|
||||
// user pref
|
||||
$sql = "INSERT INTO cc_pref (subjid, keystr, valstr)"
|
||||
." VALUES (:id, :key, :value)";
|
||||
." VALUES (:id, :key, :value)";
|
||||
|
||||
$paramMap[':id'] = $userId;
|
||||
}
|
||||
|
@ -109,8 +104,7 @@ class Application_Model_Preference
|
|||
$con);
|
||||
|
||||
$con->commit();
|
||||
}
|
||||
catch (Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
$con->rollback();
|
||||
header('HTTP/1.0 503 Service Unavailable');
|
||||
Logging::info("Database error: ".$e->getMessage());
|
||||
|
@ -118,26 +112,22 @@ class Application_Model_Preference
|
|||
}
|
||||
|
||||
$cache->store($key, $value, $isUserValue, $userId);
|
||||
//Logging::info("SAVING {$key} {$userId} into cache. = {$value}");
|
||||
}
|
||||
|
||||
private static function getValue($key, $isUserValue = false)
|
||||
{
|
||||
$cache = new Cache();
|
||||
|
||||
$cache = new Cache();
|
||||
|
||||
try {
|
||||
|
||||
$userId = self::getUserId();
|
||||
|
||||
if ($isUserValue && is_null($userId)) {
|
||||
throw new Exception("User id can't be null for a user preference.");
|
||||
}
|
||||
|
||||
$userId = self::getUserId();
|
||||
|
||||
if ($isUserValue && is_null($userId))
|
||||
throw new Exception("User id can't be null for a user preference.");
|
||||
|
||||
$res = $cache->fetch($key, $isUserValue, $userId);
|
||||
if ($res !== false) {
|
||||
//Logging::info("returning {$key} {$userId} from cache. = {$res}");
|
||||
return $res;
|
||||
}
|
||||
// If the value is already cached, return it
|
||||
$res = $cache->fetch($key, $isUserValue, $userId);
|
||||
if ($res !== false) return $res;
|
||||
|
||||
//Check if key already exists
|
||||
$sql = "SELECT COUNT(*) FROM cc_pref"
|
||||
|
@ -147,7 +137,7 @@ class Application_Model_Preference
|
|||
$paramMap[':key'] = $key;
|
||||
|
||||
//For user specific preference, check if id matches as well
|
||||
if ($isUserValue) {
|
||||
if ($isUserValue) {
|
||||
$sql .= " AND subjid = :id";
|
||||
$paramMap[':id'] = $userId;
|
||||
}
|
||||
|
@ -157,8 +147,7 @@ class Application_Model_Preference
|
|||
//return an empty string if the result doesn't exist.
|
||||
if ($result == 0) {
|
||||
$res = "";
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$sql = "SELECT valstr FROM cc_pref"
|
||||
." WHERE keystr = :key";
|
||||
|
||||
|
@ -248,53 +237,53 @@ class Application_Model_Preference
|
|||
|
||||
public static function SetDefaultCrossfadeDuration($duration)
|
||||
{
|
||||
self::setValue("default_crossfade_duration", $duration);
|
||||
self::setValue("default_crossfade_duration", $duration);
|
||||
}
|
||||
|
||||
public static function GetDefaultCrossfadeDuration()
|
||||
{
|
||||
$duration = self::getValue("default_crossfade_duration");
|
||||
$duration = self::getValue("default_crossfade_duration");
|
||||
|
||||
if ($duration === "") {
|
||||
// the default value of the fade is 00.5
|
||||
return "0";
|
||||
}
|
||||
if ($duration === "") {
|
||||
// the default value of the fade is 00.5
|
||||
return "0";
|
||||
}
|
||||
|
||||
return $duration;
|
||||
return $duration;
|
||||
}
|
||||
|
||||
public static function SetDefaultFadeIn($fade)
|
||||
{
|
||||
self::setValue("default_fade_in", $fade);
|
||||
self::setValue("default_fade_in", $fade);
|
||||
}
|
||||
|
||||
public static function GetDefaultFadeIn()
|
||||
{
|
||||
$fade = self::getValue("default_fade_in");
|
||||
$fade = self::getValue("default_fade_in");
|
||||
|
||||
if ($fade === "") {
|
||||
// the default value of the fade is 00.5
|
||||
return "00.5";
|
||||
}
|
||||
if ($fade === "") {
|
||||
// the default value of the fade is 00.5
|
||||
return "00.5";
|
||||
}
|
||||
|
||||
return $fade;
|
||||
return $fade;
|
||||
}
|
||||
|
||||
public static function SetDefaultFadeOut($fade)
|
||||
{
|
||||
self::setValue("default_fade_out", $fade);
|
||||
self::setValue("default_fade_out", $fade);
|
||||
}
|
||||
|
||||
public static function GetDefaultFadeOut()
|
||||
{
|
||||
$fade = self::getValue("default_fade_out");
|
||||
$fade = self::getValue("default_fade_out");
|
||||
|
||||
if ($fade === "") {
|
||||
// the default value of the fade is 00.5
|
||||
return "00.5";
|
||||
}
|
||||
if ($fade === "") {
|
||||
// the default value of the fade is 00.5
|
||||
return "00.5";
|
||||
}
|
||||
|
||||
return $fade;
|
||||
return $fade;
|
||||
}
|
||||
|
||||
public static function SetDefaultFade($fade)
|
||||
|
@ -556,9 +545,8 @@ class Application_Model_Preference
|
|||
{
|
||||
// When a new user is created they will get the default timezone
|
||||
// setting which the admin sets on preferences page
|
||||
if (is_null($timezone)) {
|
||||
if (is_null($timezone))
|
||||
$timezone = self::GetDefaultTimezone();
|
||||
}
|
||||
self::setValue("user_timezone", $timezone, true);
|
||||
}
|
||||
|
||||
|
@ -567,8 +555,7 @@ class Application_Model_Preference
|
|||
$timezone = self::getValue("user_timezone", true);
|
||||
if (!$timezone) {
|
||||
return self::GetDefaultTimezone();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return $timezone;
|
||||
}
|
||||
}
|
||||
|
@ -580,8 +567,7 @@ class Application_Model_Preference
|
|||
|
||||
if (!is_null($userId)) {
|
||||
return self::GetUserTimezone();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return self::GetDefaultTimezone();
|
||||
}
|
||||
}
|
||||
|
@ -612,9 +598,8 @@ class Application_Model_Preference
|
|||
{
|
||||
// When a new user is created they will get the default locale
|
||||
// setting which the admin sets on preferences page
|
||||
if (is_null($locale)) {
|
||||
if (is_null($locale))
|
||||
$locale = self::GetDefaultLocale();
|
||||
}
|
||||
self::setValue("user_locale", $locale, true);
|
||||
}
|
||||
|
||||
|
@ -624,8 +609,7 @@ class Application_Model_Preference
|
|||
|
||||
if (!is_null($userId)) {
|
||||
return self::GetUserLocale();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return self::GetDefaultLocale();
|
||||
}
|
||||
}
|
||||
|
@ -648,7 +632,7 @@ class Application_Model_Preference
|
|||
|
||||
public static function SetUniqueId($id)
|
||||
{
|
||||
self::setValue("uniqueId", $id);
|
||||
self::setValue("uniqueId", $id);
|
||||
}
|
||||
|
||||
public static function GetUniqueId()
|
||||
|
@ -908,7 +892,7 @@ class Application_Model_Preference
|
|||
|
||||
public static function SetAirtimeVersion($version)
|
||||
{
|
||||
self::setValue("system_version", $version);
|
||||
self::setValue("system_version", $version);
|
||||
}
|
||||
|
||||
public static function GetAirtimeVersion()
|
||||
|
@ -1404,12 +1388,11 @@ class Application_Model_Preference
|
|||
return self::getValue("enable_replay_gain", false);
|
||||
}
|
||||
|
||||
public static function getReplayGainModifier(){
|
||||
public static function getReplayGainModifier() {
|
||||
$rg_modifier = self::getValue("replay_gain_modifier");
|
||||
|
||||
if ($rg_modifier === "") {
|
||||
if ($rg_modifier === "")
|
||||
return "0";
|
||||
}
|
||||
|
||||
return $rg_modifier;
|
||||
}
|
||||
|
@ -1420,19 +1403,19 @@ class Application_Model_Preference
|
|||
}
|
||||
|
||||
public static function SetHistoryItemTemplate($value) {
|
||||
self::setValue("history_item_template", $value);
|
||||
self::setValue("history_item_template", $value);
|
||||
}
|
||||
|
||||
public static function GetHistoryItemTemplate() {
|
||||
return self::getValue("history_item_template");
|
||||
return self::getValue("history_item_template");
|
||||
}
|
||||
|
||||
public static function SetHistoryFileTemplate($value) {
|
||||
self::setValue("history_file_template", $value);
|
||||
self::setValue("history_file_template", $value);
|
||||
}
|
||||
|
||||
public static function GetHistoryFileTemplate() {
|
||||
return self::getValue("history_file_template");
|
||||
return self::getValue("history_file_template");
|
||||
}
|
||||
|
||||
public static function getDiskUsage()
|
||||
|
|
|
@ -1112,35 +1112,36 @@ class Application_Model_Scheduler
|
|||
|
||||
$removedItems = CcScheduleQuery::create()->findPks($scheduledIds);
|
||||
|
||||
//check to make sure all items selected are up to date
|
||||
foreach ($removedItems as $removedItem) {
|
||||
// This array is used to keep track of every show instance that was
|
||||
// effected by the track deletion. It will be used later on to
|
||||
// remove gaps in the schedule and adjust crossfade times.
|
||||
$effectedInstanceIds = array();
|
||||
|
||||
foreach ($removedItems as $removedItem) {
|
||||
$instance = $removedItem->getCcShowInstances($this->con);
|
||||
$effectedInstanceIds[] = $instance->getDbId();
|
||||
|
||||
//check if instance is linked and if so get the schedule items
|
||||
//for all linked instances so we can delete them too
|
||||
if (!$cancelShow && $instance->getCcShow()->isLinked()) {
|
||||
//returns all linked instances if linked
|
||||
$ccShowInstances = $this->getInstances($instance->getDbId());
|
||||
|
||||
$instanceIds = array();
|
||||
foreach ($ccShowInstances as $ccShowInstance) {
|
||||
$instanceIds[] = $ccShowInstance->getDbId();
|
||||
}
|
||||
/*
|
||||
* Find all the schedule items that are in the same position
|
||||
* as the selected item by the user.
|
||||
* The position of each track is the same across each linked instance
|
||||
*/
|
||||
$effectedInstanceIds = array_merge($effectedInstanceIds, $instanceIds);
|
||||
|
||||
// Delete the same track, represented by $removedItem, in
|
||||
// each linked show instance.
|
||||
$itemsToDelete = CcScheduleQuery::create()
|
||||
->filterByDbPosition($removedItem->getDbPosition())
|
||||
->filterByDbInstanceId($instanceIds, Criteria::IN)
|
||||
->find();
|
||||
foreach ($itemsToDelete as $item) {
|
||||
if (!$removedItems->contains($item)) {
|
||||
$removedItems->append($item);
|
||||
}
|
||||
}
|
||||
->filterByDbId($removedItem->getDbId(), Criteria::NOT_EQUAL)
|
||||
->delete($this->con);
|
||||
}
|
||||
|
||||
|
||||
//check to truncate the currently playing item instead of deleting it.
|
||||
if ($removedItem->isCurrentItem($this->epochNow)) {
|
||||
|
@ -1165,29 +1166,11 @@ class Application_Model_Scheduler
|
|||
} else {
|
||||
$removedItem->delete($this->con);
|
||||
}
|
||||
|
||||
// update is_scheduled in cc_files but only if
|
||||
// the file is not scheduled somewhere else
|
||||
$fileId = $removedItem->getDbFileId();
|
||||
// check if the removed item is scheduled somewhere else
|
||||
$futureScheduledFiles = Application_Model_Schedule::getAllFutureScheduledFiles();
|
||||
if (!is_null($fileId) && !in_array($fileId, $futureScheduledFiles)) {
|
||||
$db_file = CcFilesQuery::create()->findPk($fileId, $this->con);
|
||||
$db_file->setDbIsScheduled(false)->save($this->con);
|
||||
}
|
||||
}
|
||||
Application_Model_StoredFile::updatePastFilesIsScheduled();
|
||||
|
||||
if ($adjustSched === true) {
|
||||
//get the show instances of the shows we must adjust times for.
|
||||
foreach ($removedItems as $item) {
|
||||
|
||||
$instance = $item->getDBInstanceId();
|
||||
if (!in_array($instance, $showInstances)) {
|
||||
$showInstances[] = $instance;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($showInstances as $instance) {
|
||||
foreach ($effectedInstanceIds as $instance) {
|
||||
$this->removeGaps($instance);
|
||||
$this->calculateCrossfades($instance);
|
||||
}
|
||||
|
@ -1195,7 +1178,7 @@ class Application_Model_Scheduler
|
|||
|
||||
//update the status flag in cc_schedule.
|
||||
$instances = CcShowInstancesQuery::create()
|
||||
->filterByPrimaryKeys($showInstances)
|
||||
->filterByPrimaryKeys($effectedInstanceIds)
|
||||
->find($this->con);
|
||||
|
||||
foreach ($instances as $instance) {
|
||||
|
|
|
@ -1131,7 +1131,6 @@ SELECT s.name,
|
|||
s.genre,
|
||||
s.id,
|
||||
si.id AS instance_id,
|
||||
si.description AS instance_description,
|
||||
si.record,
|
||||
s.url,
|
||||
s.image_path,
|
||||
|
@ -1220,7 +1219,6 @@ SELECT si.starts AS start_timestamp,
|
|||
s.description,
|
||||
s.id,
|
||||
si.id AS instance_id,
|
||||
si.description AS instance_description,
|
||||
si.record,
|
||||
s.url,
|
||||
s.image_path,
|
||||
|
@ -1267,7 +1265,6 @@ SQL;
|
|||
$results['previousShow'][0] = array(
|
||||
"id" => $rows[$i-1]['id'],
|
||||
"instance_id" => $rows[$i-1]['instance_id'],
|
||||
"instance_description" => $rows[$i-1]['instance_description'],
|
||||
"name" => $rows[$i-1]['name'],
|
||||
"description" => $rows[$i-1]['description'],
|
||||
"url" => $rows[$i-1]['url'],
|
||||
|
@ -1286,7 +1283,6 @@ SQL;
|
|||
$results['nextShow'][0] = array(
|
||||
"id" => $rows[$i+1]['id'],
|
||||
"instance_id" => $rows[$i+1]['instance_id'],
|
||||
"instance_description" => $rows[$i+1]['instance_description'],
|
||||
"name" => $rows[$i+1]['name'],
|
||||
"description" => $rows[$i+1]['description'],
|
||||
"url" => $rows[$i+1]['url'],
|
||||
|
@ -1309,7 +1305,6 @@ SQL;
|
|||
$results['nextShow'][0] = array(
|
||||
"id" => $rows[$i]['id'],
|
||||
"instance_id" => $rows[$i]['instance_id'],
|
||||
"instance_description" => $rows[$i]['instance_description'],
|
||||
"name" => $rows[$i]['name'],
|
||||
"description" => $rows[$i]['description'],
|
||||
"url" => $rows[$i]['url'],
|
||||
|
@ -1329,7 +1324,6 @@ SQL;
|
|||
$results['previousShow'][0] = array(
|
||||
"id" => $rows[$previousShowIndex]['id'],
|
||||
"instance_id" => $rows[$previousShowIndex]['instance_id'],
|
||||
"instance_description" => $rows[$previousShowIndex]['instance_description'],
|
||||
"name" => $rows[$previousShowIndex]['name'],
|
||||
"description" => $rows[$previousShowIndex]['description'],
|
||||
"start_timestamp" => $rows[$previousShowIndex]['start_timestamp'],
|
||||
|
|
|
@ -362,7 +362,8 @@ SQL;
|
|||
{
|
||||
$exists = false;
|
||||
try {
|
||||
$exists = file_exists($this->getFilePath());
|
||||
$filePath = $this->getFilePath();
|
||||
$exists = (file_exists($this->getFilePath()) && !is_dir($filePath));
|
||||
} catch (Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
<?php
|
||||
|
||||
|
||||
class Rest_MediaController extends Zend_Rest_Controller
|
||||
{
|
||||
const MUSIC_DIRS_STOR_PK = 1;
|
||||
|
||||
const IMPORT_STATUS_SUCCESS = 0;
|
||||
const IMPORT_STATUS_PENDING = 1;
|
||||
const IMPORT_STATUS_FAILED = 2;
|
||||
|
||||
//fields that are not modifiable via our RESTful API
|
||||
private static $blackList = array(
|
||||
'id',
|
||||
|
@ -72,42 +77,6 @@ class Rest_MediaController extends Zend_Rest_Controller
|
|||
$this->fileNotFoundResponse();
|
||||
}
|
||||
}
|
||||
|
||||
public function clearAction()
|
||||
{
|
||||
if (!$this->verifyAuth(true, true))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//set file_exists flag to false for every file
|
||||
$con = Propel::getConnection(CcFilesPeer::DATABASE_NAME);
|
||||
$selectCriteria = new Criteria();
|
||||
$selectCriteria->add(CcFilesPeer::FILE_EXISTS, true);
|
||||
$updateCriteria = new Criteria();
|
||||
$updateCriteria->add(CcFilesPeer::FILE_EXISTS, false);
|
||||
BasePeer::doUpdate($selectCriteria, $updateCriteria, $con);
|
||||
|
||||
//delete all files and directories under .../imported
|
||||
$path = isset($_SERVER['AIRTIME_BASE']) ? $_SERVER['AIRTIME_BASE']."/srv/airtime/stor/imported/*" : "/srv/airtime/stor/imported/*";
|
||||
exec("rm -rf $path");
|
||||
|
||||
//update disk_usage value in cc_pref
|
||||
$musicDir = CcMusicDirsQuery::create()
|
||||
->filterByType('stor')
|
||||
->filterByExists(true)
|
||||
->findOne();
|
||||
$storPath = $musicDir->getDirectory();
|
||||
|
||||
$freeSpace = disk_free_space($storPath);
|
||||
$totalSpace = disk_total_space($storPath);
|
||||
|
||||
Application_Model_Preference::setDiskUsage($totalSpace - $freeSpace);
|
||||
|
||||
$this->getResponse()
|
||||
->setHttpResponseCode(200)
|
||||
->appendBody("Library has been cleared");
|
||||
}
|
||||
|
||||
public function getAction()
|
||||
{
|
||||
|
@ -210,6 +179,8 @@ class Rest_MediaController extends Zend_Rest_Controller
|
|||
}
|
||||
|
||||
$file = CcFilesQuery::create()->findPk($id);
|
||||
// Since we check for this value when deleting files, set it first
|
||||
$file->setDbDirectory(self::MUSIC_DIRS_STOR_PK);
|
||||
|
||||
$requestData = json_decode($this->getRequest()->getRawBody(), true);
|
||||
$whiteList = $this->removeBlacklistedFieldsFromRequestData($requestData);
|
||||
|
@ -246,7 +217,7 @@ class Rest_MediaController extends Zend_Rest_Controller
|
|||
->setHttpResponseCode(200)
|
||||
->appendBody(json_encode(CcFiles::sanitizeResponse($file)));
|
||||
} else {
|
||||
$file->setDbImportStatus(2)->save();
|
||||
$file->setDbImportStatus(self::IMPORT_STATUS_FAILED)->save();
|
||||
$this->fileNotFoundResponse();
|
||||
}
|
||||
}
|
||||
|
@ -257,7 +228,7 @@ class Rest_MediaController extends Zend_Rest_Controller
|
|||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
$id = $this->getId();
|
||||
if (!$id) {
|
||||
return;
|
||||
|
|
|
@ -362,33 +362,22 @@ class Application_Service_ShowFormService
|
|||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Before we send the form data in for validation, there
|
||||
* are a few fields we may need to adjust first
|
||||
*
|
||||
* @param $formData
|
||||
*/
|
||||
public function preEditShowValidationCheck($formData)
|
||||
{
|
||||
$validateStartDate = true;
|
||||
$validateStartTime = true;
|
||||
// If the start date or time were disabled, don't validate them
|
||||
$validateStartDate = $formData['start_date_disabled'] === "false";
|
||||
$validateStartTime = $formData['start_time_disabled'] === "false";
|
||||
|
||||
//CcShowDays object of the show currently being edited
|
||||
$currentShowDay = $this->ccShow->getFirstCcShowDay();
|
||||
|
||||
//DateTime object
|
||||
$dt = $currentShowDay->getLocalStartDateAndTime();
|
||||
|
||||
if (!array_key_exists('add_show_start_date', $formData)) {
|
||||
//Changing the start date was disabled, since the
|
||||
//array key does not exist. We need to repopulate this entry from the db.
|
||||
$formData['add_show_start_date'] = $dt->format("Y-m-d");
|
||||
|
||||
if (!array_key_exists('add_show_start_time', $formData)) {
|
||||
$formData['add_show_start_time'] = $dt->format("H:i");
|
||||
$validateStartTime = false;
|
||||
}
|
||||
$validateStartDate = false;
|
||||
}
|
||||
$formData['add_show_record'] = $currentShowDay->getDbRecord();
|
||||
|
||||
//if the show is repeating, set the start date to the next
|
||||
|
@ -412,11 +401,9 @@ class Application_Service_ShowFormService
|
|||
$ccShowInstance = CcShowInstancesQuery::create()
|
||||
->filterByDbShowId($this->ccShow->getDbId())
|
||||
->filterByDbModifiedInstance(false)
|
||||
->filterByDbEnds(gmdate("Y-m-d H:i:s"), Criteria::GREATER_THAN)
|
||||
->orderByDbStarts()
|
||||
->limit(1)
|
||||
->filterByDbStarts(gmdate("Y-m-d H:i:s"), Criteria::GREATER_THAN)
|
||||
->findOne();
|
||||
|
||||
|
||||
$starts = new DateTime($ccShowInstance->getDbStarts(), new DateTimeZone("UTC"));
|
||||
$ends = new DateTime($ccShowInstance->getDbEnds(), new DateTimeZone("UTC"));
|
||||
$showTimezone = $this->ccShow->getFirstCcShowDay()->getDbTimezone();
|
||||
|
@ -427,6 +414,7 @@ class Application_Service_ShowFormService
|
|||
return array($starts, $ends);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Validates show forms
|
||||
|
|
|
@ -2,19 +2,25 @@
|
|||
<h2><?php echo _("About") ?></h2>
|
||||
<p>
|
||||
<?php
|
||||
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>",
|
||||
$this->airtime_version,
|
||||
"<br />")
|
||||
|
||||
$productSiteAnchor = "<a href='" . PRODUCT_SITE_URL . "' target='_blank'>"
|
||||
. PRODUCT_NAME
|
||||
. "</a>";
|
||||
echo sprintf(_('%1$s %2$s, the open radio software for scheduling and remote station management.'),
|
||||
$productSiteAnchor,
|
||||
$this->airtime_version)
|
||||
?>
|
||||
<br>© 2013
|
||||
<br />
|
||||
<br />© 2013
|
||||
<?php
|
||||
echo sprintf(_("%sSourcefabric%s z.ú Airtime is distributed under the %sGNU GPL v.3%s"),
|
||||
"<a href='http://www.sourcefabric.org' target='_blank'>",
|
||||
"</a>",
|
||||
"<a href='http://www.gnu.org/licenses/gpl-3.0-standalone.html' target='_blank'>",
|
||||
"</a>")
|
||||
$companySiteAnchor = "<a href='" . COMPANY_SITE_URL . "' target='_blank'>"
|
||||
. COMPANY_NAME . " " . COMPANY_SUFFIX
|
||||
. "</a>";
|
||||
$licenseAnchor = "<a href='" . LICENSE_URL . "' target='_blank'>"
|
||||
. LICENSE_VERSION
|
||||
. "</a>";
|
||||
echo sprintf(_('%1$s %2$s is distributed under the %3$s'),
|
||||
$companySiteAnchor, PRODUCT_NAME, $licenseAnchor)
|
||||
?>
|
||||
</p>
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="gray-logo"></div>
|
||||
<div class="text-content">
|
||||
<h2><?php echo _("Welcome to Airtime!") ?></h2>
|
||||
<p><?php echo _("Here's how you can get started using Airtime to automate your broadcasts: ")?></p>
|
||||
<h2><?php echo sprintf(_("Welcome to %s!"), PRODUCT_NAME) ?></h2>
|
||||
<p><?php echo sprintf(_("Here's how you can get started using %s to automate your broadcasts: "), PRODUCT_NAME)?></p>
|
||||
|
||||
<ol>
|
||||
<li><?php echo _("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.")?></li>
|
||||
|
@ -10,8 +10,12 @@
|
|||
<li><?php echo _("Select your media from the left pane and drag them to your show in the right pane."); ?></li>
|
||||
</ol>
|
||||
<p><strong><?php echo _("Then you're good to go!")?></strong><br />
|
||||
<?php echo sprintf(_("For more detailed help, read the %suser manual%s."),
|
||||
"<a href='http://www.sourcefabric.org/en/airtime/manuals/' target='_blank'>",
|
||||
"</a>") ?></p>
|
||||
<?php
|
||||
$userManualAnchorOpen = "<a href='" . USER_MANUAL_URL . "' target='_blank'>";
|
||||
echo sprintf(_("For more detailed help, read the %suser manual%s."),
|
||||
$userManualAnchorOpen, "</a>")
|
||||
|
||||
?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -40,9 +40,8 @@
|
|||
<?php foreach($watched_dirs as $watched_dir): ?>
|
||||
<dd class="block-display selected-item">
|
||||
<?php echo ($watched_dir->getExistsFlag())?"":"<span class='ui-icon-alert'><img src='/css/images/warning-icon.png'></span>"?><span id="folderPath" style="display:block; width:350px"><?php echo htmlspecialchars($watched_dir->getDirectory());?></span></span>
|
||||
<span title="<?php echo _("Rescan watched directory (This is useful if it is network mount and may be out of sync with Airtime)")?>" class="ui-icon ui-icon-refresh"></span>
|
||||
<span title="<?php echo sprintf(_("Rescan watched directory (This is useful if it is network mount and may be out of sync with %s)"), PRODUCT_NAME)?>" class="ui-icon ui-icon-refresh"></span>
|
||||
<span title="<?php echo _("Remove watched directory")?>" class="ui-icon ui-icon-close"></span>
|
||||
|
||||
</dd>
|
||||
<?php endforeach; ?>
|
||||
<?php else: ?>
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
<fieldset>
|
||||
<dl class="zend_form">
|
||||
<dt class="block-display info-text">
|
||||
<?php echo sprintf(_("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.%s"
|
||||
."Click 'Yes, help Airtime' and we'll make sure the features you use are "
|
||||
."constantly improving."), "<br /><br />") ?>
|
||||
<?php echo sprintf(_('Help %1$s improve by letting us know how you are using it. This info '
|
||||
.'will be collected regularly in order to enhance your user experience.%2$s'
|
||||
.'Click \'Yes, help %1$s\' and we\'ll make sure the features you use are '
|
||||
.'constantly improving.'), PRODUCT_NAME, "<br /><br />") ?>
|
||||
</dt>
|
||||
<dd id="SupportFeedback-element" class="block-display">
|
||||
<label class="optional" for="SupportFeedback">
|
||||
|
@ -22,10 +22,12 @@
|
|||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt class="block-display info-text">
|
||||
<?php echo sprintf(_("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."),
|
||||
"<a id='link_to_whos_using' href='http://sourcefabric.org/en/airtime/whosusing' onclick='window.open(this.href); return false'>",
|
||||
"</a>")?>
|
||||
<?php
|
||||
$whosUsingAnchor = "<a id='link_to_whos_using' href='" . WHOS_USING_URL . "' onclick='window.open(this.href); return false'>"
|
||||
. COMPANY_SITE
|
||||
. "</a>";
|
||||
echo sprintf(_("Click the box below to promote your station on %s."), $whosUsingAnchor)
|
||||
?>
|
||||
</dt>
|
||||
<dd id="publicize-element" class="block-display">
|
||||
<label class="optional" for="Publicise">
|
||||
|
@ -175,7 +177,7 @@
|
|||
<?php echo $this->element->getElement('Privacy')->getLabel() ?>
|
||||
</label>
|
||||
<?php }else{?>
|
||||
<a id="link_to_terms_and_condition" href="http://www.sourcefabric.org/en/about/policy/" onclick="window.open(this.href); return false;"><?php echo _("Terms and Conditions") ?></a>
|
||||
<a id="link_to_terms_and_condition" href="<?php echo TERMS_AND_CONDITIONS_URL ?>" onclick="window.open(this.href); return false;"><?php echo _("Terms and Conditions") ?></a>
|
||||
<?php }?>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -2,9 +2,10 @@
|
|||
<dl class="zend_form">
|
||||
<dd id="SupportFeedback-element" style="width:90%;">
|
||||
<div class="info-text">
|
||||
<?php echo sprintf(_("Help Airtime improve by letting Sourcefabric know how you are using it. This information"
|
||||
<?php echo sprintf(_("Help %s improve by letting %s know how you are using it. This information"
|
||||
." will be collected regularly in order to enhance your user experience.%s"
|
||||
."Click the 'Send support feedback' box and we'll make sure the features you use are constantly improving."), "<br />")?>
|
||||
."Click the 'Send support feedback' box and we'll make sure the features you use are constantly improving."),
|
||||
PRODUCT_NAME, COMPANY_NAME, "<br />")?>
|
||||
</div>
|
||||
<label class="optional" for="SupportFeedback">
|
||||
<?php echo $this->element->getElement('SupportFeedback') ?>
|
||||
|
@ -20,9 +21,13 @@
|
|||
</dd>
|
||||
<dd id="publicize-element" style="width:90%;">
|
||||
<div class="info-text">
|
||||
<?php echo sprintf(_("Click the box below to promote your station on %sSourcefabric.org%s."),
|
||||
"<a id='link_to_whos_using' href='http://www.sourcefabric.org/en/airtime/whosusing/' onclick='window.open(this.href); return false'>",
|
||||
"</a>")?>
|
||||
<?php
|
||||
|
||||
$whosUsingAnchor = "<a id='link_to_whos_using' href='" . WHOS_USING_URL . "' onclick='window.open(this.href); return false'>"
|
||||
. COMPANY_SITE
|
||||
. "</a>";
|
||||
echo sprintf(_("Click the box below to promote your station on %s."), $whosUsingAnchor)
|
||||
?>
|
||||
</div>
|
||||
<label class="optional" for="Publicise">
|
||||
<?php echo $this->element->getElement('Publicise') ?>
|
||||
|
@ -183,7 +188,7 @@
|
|||
</ul>
|
||||
<?php endif; ?>
|
||||
<?php }else{?>
|
||||
<a id="link_to_terms_and_condition" href="http://www.sourcefabric.org/en/about/policy/" onclick="window.open(this.href); return false;"><?php echo _("Sourcefabric Privacy Policy") ?></a>
|
||||
<a id="link_to_terms_and_condition" href="<?php echo PRIVACY_POLICY_URL ?>" onclick="window.open(this.href); return false;"><?php echo _("Sourcefabric Privacy Policy") ?></a>
|
||||
<?php }?>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div id="login" class="login-content clearfix">
|
||||
<?php if(isset($this->demo) && $this->demo == 1){?>
|
||||
<p style="font-weight:bold">
|
||||
<?php echo _("Welcome to the Airtime demo! You can log in using the username 'admin' and the password 'admin'.")?>
|
||||
<?php echo sprintf(_("Welcome to the %s demo! You can log in using the username 'admin' and the password 'admin'."), PRODUCT_NAME)?>
|
||||
</p>
|
||||
<?php }?>
|
||||
<p class="light" style='<?php echo $this->error?"color:#902d2d;font-size:11px;padding:2px 4px;background:#c6b4b4;margin-bottom:2px;border:1px solid #c83f3f;":""?>'><?php echo $this->message; ?></p>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<div class="trial-box-calendar-gray"><?php echo _("days") ?></div>
|
||||
</div>
|
||||
<div class="trial-box-button">
|
||||
<a title="<?php echo _("Purchase your copy of Airtime")?> href="https://account.sourcefabric.com/clientarea.php" target="_blank"><?php echo _("My Account") ?></a>
|
||||
<a title="<?php echo sprintf(_("Purchase your copy of %s"), PRODUCT_NAME)?> href="https://account.sourcefabric.com/clientarea.php" target="_blank"><?php echo _("My Account") ?></a>
|
||||
</div>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
<table width="60%" cellpadding="0" cellspacing="0" border="0" class="statustable">
|
||||
<thead>
|
||||
<tr class="ui-state-default strong">
|
||||
<td><?php echo _("Service") ?></td>
|
||||
<td><?php echo _("Status") ?></td>
|
||||
<td><?php echo _("Uptime") ?></td>
|
||||
<td><?php echo _("CPU") ?></td>
|
||||
<td><?php echo _("Memory") ?></td>
|
||||
<thead>
|
||||
<tr class="ui-state-default strong">
|
||||
<td><?php echo _("Service") ?></td>
|
||||
<td><?php echo _("Status") ?></td>
|
||||
<td><?php echo _("Uptime") ?></td>
|
||||
<td><?php echo _("CPU") ?></td>
|
||||
<td><?php echo _("Memory") ?></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!--
|
||||
<tr class="odd">
|
||||
<td><?php echo _("Airtime Version") ?></td>
|
||||
<td>1.9.3</td>
|
||||
<td> </td>
|
||||
<tr class="odd">
|
||||
<td><?php echo sprintf(_("%s Version"), PRODUCT_NAME) ?></td>
|
||||
<td>1.9.3</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
-->
|
||||
<?php $i=0; ?>
|
||||
|
@ -26,8 +26,8 @@
|
|||
<td></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
<tr id="partitions" class="even">
|
||||
<th colspan="5"><?php echo _("Disk Space") ?></th>
|
||||
<tr id="partitions" class="even">
|
||||
<th colspan="5"><?php echo _("Disk Space") ?></th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue