commit
5691c69102
|
@ -431,4 +431,20 @@ class FileDataHelper {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Track Type
|
||||
*
|
||||
* @return string Track type key value
|
||||
*/
|
||||
public static function saveTrackType()
|
||||
{
|
||||
if (isset($_COOKIE['tt_upload'])) {
|
||||
$tt = $_COOKIE['tt_upload'];
|
||||
} else {
|
||||
// Use default track type
|
||||
$tt = "MUS";
|
||||
}
|
||||
return $tt;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ $ccAcl->addRole(new Zend_Acl_Role('G'))
|
|||
$ccAcl->add(new Zend_Acl_Resource('library'))
|
||||
->add(new Zend_Acl_Resource('index'))
|
||||
->add(new Zend_Acl_Resource('user'))
|
||||
->add(new Zend_Acl_Resource('tracktype'))
|
||||
->add(new Zend_Acl_Resource('error'))
|
||||
->add(new Zend_Acl_Resource('login'))
|
||||
->add(new Zend_Acl_Resource('playlist'))
|
||||
|
@ -82,9 +83,10 @@ $ccAcl->allow('G', 'index')
|
|||
->allow('H', 'showlistenerstat')
|
||||
->allow('A', 'playouthistorytemplate')
|
||||
->allow('A', 'user')
|
||||
->allow('A', 'tracktype')
|
||||
->allow('A', 'systemstatus')
|
||||
->allow('A', 'preference');
|
||||
|
||||
|
||||
|
||||
$aclPlugin = new Zend_Controller_Plugin_Acl($ccAcl);
|
||||
|
||||
|
|
|
@ -85,6 +85,9 @@ return array (
|
|||
'BaseCcStreamSetting' => 'airtime/om/BaseCcStreamSetting.php',
|
||||
'BaseCcStreamSettingPeer' => 'airtime/om/BaseCcStreamSettingPeer.php',
|
||||
'BaseCcStreamSettingQuery' => 'airtime/om/BaseCcStreamSettingQuery.php',
|
||||
'BaseCcTracktypes' => 'airtime/om/BaseCcTracktypes.php',
|
||||
'BaseCcTracktypesPeer' => 'airtime/om/BaseCcTracktypesPeer.php',
|
||||
'BaseCcTracktypesQuery' => 'airtime/om/BaseCcTracktypesQuery.php',
|
||||
'BaseCcSubjs' => 'airtime/om/BaseCcSubjs.php',
|
||||
'BaseCcSubjsPeer' => 'airtime/om/BaseCcSubjsPeer.php',
|
||||
'BaseCcSubjsQuery' => 'airtime/om/BaseCcSubjsQuery.php',
|
||||
|
@ -233,6 +236,10 @@ return array (
|
|||
'CcStreamSettingPeer' => 'airtime/CcStreamSettingPeer.php',
|
||||
'CcStreamSettingQuery' => 'airtime/CcStreamSettingQuery.php',
|
||||
'CcStreamSettingTableMap' => 'airtime/map/CcStreamSettingTableMap.php',
|
||||
'CcTracktypes' => 'airtime/CcTracktypes.php',
|
||||
'CcTracktypesPeer' => 'airtime/CcTracktypesPeer.php',
|
||||
'CcTracktypesQuery' => 'airtime/CcTracktypesQuery.php',
|
||||
'CcTracktypesTableMap' => 'airtime/map/CcTracktypesTableMap.php',
|
||||
'CcSubjs' => 'airtime/CcSubjs.php',
|
||||
'CcSubjsPeer' => 'airtime/CcSubjsPeer.php',
|
||||
'CcSubjsQuery' => 'airtime/CcSubjsQuery.php',
|
||||
|
|
|
@ -83,6 +83,7 @@ define('MDATA_KEY_CUE_IN' , 'cuein');
|
|||
define('MDATA_KEY_CUE_OUT' , 'cueout');
|
||||
define('MDATA_KEY_ARTWORK' , 'artwork');
|
||||
define('MDATA_KEY_ARTWORK_DATA', 'artwork_data');
|
||||
define('MDATA_KEY_TRACK_TYPE' , 'track_type');
|
||||
|
||||
define('UI_MDATA_VALUE_FORMAT_FILE' , 'File');
|
||||
define('UI_MDATA_VALUE_FORMAT_STREAM' , 'live stream');
|
||||
|
|
|
@ -91,6 +91,12 @@ $pages[] = array(
|
|||
'controller' => 'user',
|
||||
'action' => 'add-user',
|
||||
'resource' => 'user'
|
||||
),array(
|
||||
'label' => _('Track Types'),
|
||||
'module' => 'default',
|
||||
'controller' => 'tracktype',
|
||||
'action' => 'add-tracktype',
|
||||
'resource' => 'tracktype'
|
||||
),
|
||||
array(
|
||||
'label' => _('Streams'),
|
||||
|
@ -138,7 +144,7 @@ $pages[] = array(
|
|||
'action' => 'index',
|
||||
'resource' => 'listenerstat'
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'label' => _('Show Listener Stats'),
|
||||
'module' => 'default',
|
||||
'controller' => 'listenerstat',
|
||||
|
|
|
@ -27,6 +27,7 @@ class ApiController extends Zend_Controller_Action
|
|||
"show-schedules",
|
||||
"show-logo",
|
||||
"track",
|
||||
"track-types",
|
||||
"stream-m3u"
|
||||
);
|
||||
|
||||
|
@ -635,6 +636,22 @@ class ApiController extends Zend_Controller_Action
|
|||
}
|
||||
}
|
||||
|
||||
public function trackTypesAction()
|
||||
{
|
||||
if (Application_Model_Preference::GetAllow3rdPartyApi() || $this->checkAuth()) {
|
||||
// disable the view and the layout
|
||||
$this->view->layout()->disableLayout();
|
||||
$this->_helper->viewRenderer->setNoRender(true);
|
||||
|
||||
$tracktypes = Application_Model_Tracktype::getTracktypes();
|
||||
$this->_helper->json->sendJson($tracktypes);
|
||||
} else {
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
print _('You are not allowed to access this resource. ');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* API endpoint to provide station metadata
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,109 @@
|
|||
<?php
|
||||
|
||||
class TracktypeController extends Zend_Controller_Action
|
||||
{
|
||||
|
||||
public function init()
|
||||
{
|
||||
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
||||
$ajaxContext->addActionContext('get-tracktype-data-table-info', 'json')
|
||||
->addActionContext('get-tracktype-data', 'json')
|
||||
->addActionContext('remove-tracktype', 'json')
|
||||
->initContext();
|
||||
}
|
||||
|
||||
public function addTracktypeAction()
|
||||
{
|
||||
// Start the session to re-open write permission to the session so we can
|
||||
// create the namespace for our csrf token verification
|
||||
SessionHelper::reopenSessionForWriting();
|
||||
$CC_CONFIG = Config::getConfig();
|
||||
|
||||
$request = $this->getRequest();
|
||||
|
||||
Zend_Layout::getMvcInstance()->assign('parent_page', 'Settings');
|
||||
|
||||
$baseUrl = Application_Common_OsPath::getBaseDir();
|
||||
|
||||
$js_files = array(
|
||||
'js/datatables/js/jquery.dataTables.js?',
|
||||
'js/datatables/plugin/dataTables.pluginAPI.js?',
|
||||
'js/airtime/tracktype/tracktype.js?'
|
||||
);
|
||||
|
||||
foreach ($js_files as $js) {
|
||||
$this->view->headScript()->appendFile(
|
||||
$baseUrl.$js.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||
}
|
||||
|
||||
$this->view->headLink()->appendStylesheet($baseUrl.'css/tracktypes.css?'.$CC_CONFIG['airtime_version']);
|
||||
|
||||
$form = new Application_Form_AddTracktype();
|
||||
|
||||
$this->view->successMessage = "";
|
||||
|
||||
if ($request->isPost()) {
|
||||
$params = $request->getPost();
|
||||
$postData = explode('&', $params['data']);
|
||||
$formData = array();
|
||||
foreach($postData as $k=>$v) {
|
||||
$v = explode('=', $v);
|
||||
$formData[$v[0]] = urldecode($v[1]);
|
||||
}
|
||||
|
||||
if ($form->validateCode($formData)) {
|
||||
$tracktype = new Application_Model_Tracktype($formData['tracktype_id']);
|
||||
if (empty($formData['tracktype_id'])) {
|
||||
$tracktype->setCode($formData['code']);
|
||||
}
|
||||
$tracktype->setTypeName($formData['type_name']);
|
||||
$tracktype->setDescription($formData['description']);
|
||||
$tracktype->setVisibility($formData['visibility']);
|
||||
$tracktype->save();
|
||||
|
||||
$form->reset();
|
||||
$this->view->form = $form;
|
||||
|
||||
if (strlen($formData['tracktype_id']) == 0) {
|
||||
$this->view->successMessage = "<div class='success'>"._("Track Type added successfully!")."</div>";
|
||||
} else {
|
||||
$this->view->successMessage = "<div class='success'>"._("Track Type updated successfully!")."</div>";
|
||||
}
|
||||
|
||||
$this->_helper->json->sendJson(array("valid"=>"true", "html"=>$this->view->render('tracktype/add-tracktype.phtml')));
|
||||
} else {
|
||||
$this->view->form = $form;
|
||||
$this->_helper->json->sendJson(array("valid"=>"false", "html"=>$this->view->render('tracktype/add-tracktype.phtml')));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->view->form = $form;
|
||||
}
|
||||
|
||||
public function getTracktypeDataTableInfoAction()
|
||||
{
|
||||
$post = $this->getRequest()->getPost();
|
||||
$tracktypes = Application_Model_Tracktype::getTracktypesDataTablesInfo($post);
|
||||
|
||||
$this->_helper->json->sendJson($tracktypes);
|
||||
}
|
||||
|
||||
public function getTracktypeDataAction()
|
||||
{
|
||||
$id = $this->_getParam('id');
|
||||
$this->view->entries = Application_Model_Tracktype::GetTracktypeData($id);
|
||||
}
|
||||
|
||||
public function removeTracktypeAction()
|
||||
{
|
||||
// action body
|
||||
$delId = $this->_getParam('id');
|
||||
|
||||
$tracktype = new Application_Model_Tracktype($delId);
|
||||
|
||||
# Delete the track type
|
||||
$this->view->entries = $tracktype->delete();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
ALTER TABLE cc_files DROP COLUMN IF EXISTS track_type;
|
||||
|
||||
DROP TABLE IF EXISTS "cc_track_types" CASCADE;
|
|
@ -141,6 +141,14 @@ class PageLayoutInitPlugin extends Zend_Controller_Plugin_Abstract
|
|||
$view->headScript()->appendScript("var COMPANY_NAME = '" . COMPANY_NAME . "';");
|
||||
//Each page refresh or tab open has uniqID, not to be used for security
|
||||
$view->headScript()->appendScript("var UNIQID = '" . uniqid() . "';");
|
||||
|
||||
$track_type_options = array();
|
||||
$track_types = Application_Model_Tracktype::getTracktypes();
|
||||
foreach ($track_types as $key => $tt) {
|
||||
$track_type_options[$tt['code']] = $tt['type_name'];
|
||||
}
|
||||
$ttarr = json_encode($track_type_options, JSON_FORCE_OBJECT);
|
||||
$view->headScript()->appendScript("var TRACKTYPES = " . $ttarr . ";");
|
||||
}
|
||||
|
||||
protected function _initHeadLink()
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
ALTER TABLE cc_files ADD COLUMN track_type VARCHAR(16);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "cc_track_types"
|
||||
(
|
||||
"id" integer DEFAULT nextval('cc_track_types_id_seq'::regclass) NOT NULL,
|
||||
"code" VARCHAR(16) NOT NULL,
|
||||
"type_name" VARCHAR(64),
|
||||
"description" VARCHAR(255),
|
||||
"visibility" boolean DEFAULT true NOT NULL,
|
||||
CONSTRAINT "cc_track_types_pkey" PRIMARY KEY ("id"),
|
||||
CONSTRAINT "cc_track_types_code_key" UNIQUE ("code")
|
||||
);
|
||||
|
||||
INSERT INTO cc_track_types VALUES (1, 'MUS', 'Music', 'This is used for tracks containing music.', true);
|
||||
INSERT INTO cc_track_types VALUES (2, 'SID', 'Station ID', 'This is used for Station IDs', true);
|
||||
INSERT INTO cc_track_types VALUES (3, 'INT', 'Show Intro', 'This can be used for organizing all the show introductions.', true);
|
||||
INSERT INTO cc_track_types VALUES (4, 'OUT', 'Show Outro', 'This can be used for organizing all the show outroductions.', true);
|
||||
INSERT INTO cc_track_types VALUES (5, 'SWP', 'Sweeper', 'This is used for segues between songs.', true);
|
||||
INSERT INTO cc_track_types VALUES (6, 'JIN', 'Jingle', 'A short song or tune, normally played during commercial breaks. Contains one or more hooks.', true);
|
||||
INSERT INTO cc_track_types VALUES (7, 'PRO', 'Promo', 'For promotional use.', true);
|
||||
INSERT INTO cc_track_types VALUES (8, 'SHO', 'Shout Out', 'A message of congratulation, greeting. support, or appreciation. ', true);
|
||||
INSERT INTO cc_track_types VALUES (9, 'NWS', 'News', 'This is used for noteworthy information, announcements.', true);
|
||||
INSERT INTO cc_track_types VALUES (10, 'COM', 'Commercial', 'This is used for commerical advertising.', true);
|
||||
INSERT INTO cc_track_types VALUES (11, 'ITV', 'Interview', 'This is used for radio interviews', true);
|
||||
INSERT INTO cc_track_types VALUES (12, 'VTR', 'Voice Tracking', 'Also referred as robojock or taped. Make announcements without actually being in the station.', true);
|
||||
|
||||
ALTER SEQUENCE cc_track_types_id_seq RESTART WITH 13;
|
|
@ -0,0 +1,79 @@
|
|||
<?php
|
||||
|
||||
class Application_Form_AddTracktype extends Zend_Form
|
||||
{
|
||||
|
||||
public function init()
|
||||
{
|
||||
$notEmptyValidator = Application_Form_Helper_ValidationTypes::overrideNotEmptyValidator();
|
||||
|
||||
$this->setAttrib('id', 'tracktype_form');
|
||||
|
||||
$hidden = new Zend_Form_Element_Hidden('tracktype_id');
|
||||
$hidden->setDecorators(array('ViewHelper'));
|
||||
$this->addElement($hidden);
|
||||
|
||||
$this->addElement('hash', 'csrf', array(
|
||||
'salt' => 'unique'
|
||||
));
|
||||
|
||||
$typeName = new Zend_Form_Element_Text('type_name');
|
||||
$typeName->setLabel(_('Type Name:'));
|
||||
$typeName->setAttrib('class', 'input_text');
|
||||
$typeName->addFilter('StringTrim');
|
||||
$this->addElement($typeName);
|
||||
|
||||
$code = new Zend_Form_Element_Text('code');
|
||||
$code->setLabel(_('Code:'));
|
||||
$code->setAttrib('class', 'input_text');
|
||||
$code->setAttrib('style', 'width: 40%');
|
||||
$code->setRequired(true);
|
||||
$code->addValidator($notEmptyValidator);
|
||||
$code->addFilter('StringTrim');
|
||||
$this->addElement($code);
|
||||
|
||||
$description = new Zend_Form_Element_Textarea('description');
|
||||
$description->setLabel(_('Description:'))
|
||||
->setFilters(array('StringTrim'))
|
||||
->setValidators(array(
|
||||
new Zend_Validate_StringLength(array('max' => 200))
|
||||
));
|
||||
$description->setAttrib('class', 'input_text');
|
||||
$description->addFilter('StringTrim');
|
||||
$this->addElement($description);
|
||||
|
||||
$visibility = new Zend_Form_Element_Select('visibility');
|
||||
$visibility->setLabel(_('Visibility:'));
|
||||
$visibility->setAttrib('class', 'input_select');
|
||||
$visibility->setAttrib('style', 'width: 40%');
|
||||
$visibility->setMultiOptions(array(
|
||||
"0" => _("Disabled"),
|
||||
"1" => _("Enabled")
|
||||
));
|
||||
//$visibility->getValue();
|
||||
$visibility->setRequired(true);
|
||||
$this->addElement($visibility);
|
||||
|
||||
$saveBtn = new Zend_Form_Element_Button('save_tracktype');
|
||||
$saveBtn->setAttrib('class', 'btn right-floated');
|
||||
$saveBtn->setIgnore(true);
|
||||
$saveBtn->setLabel(_('Save'));
|
||||
$this->addElement($saveBtn);
|
||||
}
|
||||
|
||||
public function validateCode($data)
|
||||
{
|
||||
if (strlen($data['tracktype_id']) == 0) {
|
||||
$count = CcTracktypesQuery::create()->filterByDbCode($data['code'])->count();
|
||||
|
||||
if ($count != 0) {
|
||||
$this->getElement('code')->setErrors(array(_("Code is not unique.")));
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -91,6 +91,19 @@ class Application_Form_EditAudioMD extends Zend_Form
|
|||
$owner_id->setMultiOptions($user_options);
|
||||
$this->addelement($owner_id);
|
||||
|
||||
// Add track type dropdown
|
||||
$track_type_options = array();
|
||||
$track_types = Application_Model_Tracktype::getTracktypes();
|
||||
foreach ($track_types as $key => $tt) {
|
||||
$track_type_options[$tt['code']] = $tt['type_name'];
|
||||
}
|
||||
|
||||
$track_type = new Zend_Form_Element_Select('track_type');
|
||||
$track_type->class = 'input_text';
|
||||
$track_type->setLabel(_('Track Type:'));
|
||||
$track_type->setMultiOptions($track_type_options);
|
||||
$this->addelement($track_type);
|
||||
|
||||
// Description field
|
||||
$description = new Zend_Form_Element_Textarea('description');
|
||||
$description->class = 'input_text';
|
||||
|
|
|
@ -8,6 +8,8 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
private $timePeriodCriteriaOptions;
|
||||
private $sortOptions;
|
||||
private $limitOptions;
|
||||
private $isOrNotCriteriaOptions;
|
||||
private $trackTypeOptions;
|
||||
|
||||
/* We need to know if the criteria value will be a string
|
||||
* or numeric value in order to populate the modifier
|
||||
|
@ -42,7 +44,8 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
"track_title" => "s",
|
||||
"track_number" => "n",
|
||||
"info_url" => "s",
|
||||
"year" => "n"
|
||||
"year" => "n",
|
||||
"track_type" => "tt"
|
||||
);
|
||||
|
||||
private function getCriteriaOptions($option = null)
|
||||
|
@ -68,6 +71,7 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
"mtime" => _("Last Modified"),
|
||||
"lptime" => _("Last Played"),
|
||||
"length" => _("Length"),
|
||||
"track_type" => _("Track Type"),
|
||||
"mime" => _("Mime"),
|
||||
"mood" => _("Mood"),
|
||||
"owner_id" => _("Owner"),
|
||||
|
@ -172,29 +176,52 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
"random" => _("Randomly"),
|
||||
"newest" => _("Newest"),
|
||||
"oldest" => _("Oldest"),
|
||||
"mostrecentplay" => ("Most recently played"),
|
||||
"leastrecentplay" => ("Least recently played")
|
||||
"mostrecentplay" => _("Most recently played"),
|
||||
"leastrecentplay" => _("Least recently played")
|
||||
);
|
||||
}
|
||||
return $this->sortOptions;
|
||||
}
|
||||
|
||||
private function getIsNotOptions()
|
||||
{
|
||||
if (!isset($this->isOrNotCriteriaOptions)) {
|
||||
$this->isOrNotCriteriaOptions = array(
|
||||
"0" => _("Select modifier"),
|
||||
"is" => _("is"),
|
||||
"is not" => _("is not")
|
||||
);
|
||||
}
|
||||
return $this->isOrNotCriteriaOptions;
|
||||
}
|
||||
|
||||
private function getTracktypeOptions()
|
||||
{
|
||||
if (!isset($this->trackTypeOptions)) {
|
||||
$tracktypes = Application_Model_Tracktype::getTracktypes();
|
||||
$names[] = _("Select Track Type");
|
||||
foreach($tracktypes as $arr => $a){
|
||||
$names[$a["code"]] = $tracktypes[$arr]["type_name"];
|
||||
}
|
||||
}
|
||||
return $names;
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* converts UTC timestamp citeria into user timezone strings.
|
||||
*/
|
||||
private function convertTimestamps(&$criteria)
|
||||
{
|
||||
$columns = array("utime", "mtime", "lptime");
|
||||
|
||||
|
||||
foreach ($columns as $column) {
|
||||
|
||||
|
||||
if (isset($criteria[$column])) {
|
||||
|
||||
|
||||
foreach ($criteria[$column] as &$constraint) {
|
||||
// convert to appropriate timezone timestamps only if the modifier is not a relative time
|
||||
if (!in_array($constraint['modifier'], array('before','after','between'))) {
|
||||
|
@ -246,7 +273,7 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
$bl = new Application_Model_Block($p_blockId);
|
||||
$storedCrit = $bl->getCriteriaGrouped();
|
||||
Logging::info($storedCrit);
|
||||
|
||||
|
||||
//need to convert criteria to be displayed in the user's timezone if there's some timestamp type.
|
||||
self::convertTimestamps($storedCrit["crit"]);
|
||||
|
||||
|
@ -337,6 +364,8 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
$criteriaModifers->setMultiOptions($this->getStringCriteriaOptions());
|
||||
} elseif ($criteriaType == "d") {
|
||||
$criteriaModifers->setMultiOptions($this->getDateTimeCriteriaOptions());
|
||||
} elseif ($criteriaType == "tt") {
|
||||
$criteriaModifers->setMultiOptions($this->getIsNotOptions());
|
||||
} else {
|
||||
$criteriaModifers->setMultiOptions($this->getNumericCriteriaOptions());
|
||||
}
|
||||
|
@ -348,11 +377,33 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
|
||||
/****************** VALUE ***********/
|
||||
/* The challenge here is that datetime */
|
||||
$criteriaValue = new Zend_Form_Element_Text("sp_criteria_value_" . $i . "_" . $j);
|
||||
$criteriaValue->setAttrib('class', 'input_text sp_input_text')
|
||||
->setDecorators(array('viewHelper'));
|
||||
if ($i != 0 && !isset($criteriaKeys[$i])) {
|
||||
$criteriaValue->setAttrib('disabled', 'disabled');
|
||||
if (isset($criteriaKeys[$i])) {
|
||||
$modifierTest = (string)$storedCrit["crit"][$criteriaKeys[$i]][$j]["modifier"];
|
||||
if (isset($criteriaType) && $criteriaType == "tt" &&
|
||||
preg_match('/is|is not/', $modifierTest) == 1) {
|
||||
|
||||
$criteriaValue = new Zend_Form_Element_Select("sp_criteria_value_" . $i . "_" . $j);
|
||||
$criteriaValue->setAttrib('class', 'input_select sp_input_select')->setDecorators(array('viewHelper'));
|
||||
|
||||
if (isset($criteriaKeys[$i]) ) { //do if $relativeTT above
|
||||
$criteriaValue->setAttrib('enabled', 'enabled');
|
||||
} else {
|
||||
$criteriaValue->setAttrib('disabled', 'disabled');
|
||||
}
|
||||
} else {
|
||||
$criteriaValue = new Zend_Form_Element_Text("sp_criteria_value_" . $i . "_" . $j);
|
||||
$criteriaValue->setAttrib('class', 'input_text sp_input_text')->setDecorators(array('viewHelper'));
|
||||
if ($i != 0 && !isset($criteriaKeys[$i])) {
|
||||
$criteriaValue->setAttrib('disabled', 'disabled');
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
$criteriaValue = new Zend_Form_Element_Text("sp_criteria_value_" . $i . "_" . $j);
|
||||
$criteriaValue->setAttrib('class', 'input_text sp_input_text')->setDecorators(array('viewHelper'));
|
||||
if ($i != 0 && !isset($criteriaKeys[$i])) {
|
||||
$criteriaValue->setAttrib('disabled', 'disabled');
|
||||
}
|
||||
}
|
||||
if (isset($criteriaKeys[$i])) {
|
||||
/*
|
||||
|
@ -365,8 +416,24 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
preg_match('/before|after|between/', $modifierTest) == 1) {
|
||||
// set relativeDatetime boolean to true so that the datetime select is displayed below
|
||||
$relativeDateTime = true;
|
||||
// the criteria value will be a number followed by time unit and ago so set input to number part
|
||||
$criteriaValue->setValue(filter_var($storedCrit["crit"][$criteriaKeys[$i]][$j]["value"], FILTER_SANITIZE_NUMBER_INT));
|
||||
} elseif (isset($criteriaType) && $criteriaType == "tt" &&
|
||||
preg_match('/is|is not/', $modifierTest) == 1) {
|
||||
// set relativeDatetime boolean to true so that the datetime select is displayed below
|
||||
$relativeDateTime = false;
|
||||
|
||||
$tracktypeSelectValue = preg_replace('/[0-9]+/', '', $storedCrit["crit"][$criteriaKeys[$i]][$j]["value"]);
|
||||
$tracktypeSelectValue = trim(preg_replace('/\W\w+\s*(\W*)$/', '$1', $tracktypeSelectValue));
|
||||
$criteriaValue->setMultiOptions($this->getTracktypeOptions());
|
||||
|
||||
if ($storedCrit["crit"][$criteriaKeys[$i]][$j]["value"]){
|
||||
$criteriaValue->setValue($storedCrit["crit"][$criteriaKeys[$i]][$j]["value"]);
|
||||
} else {
|
||||
$criteriaValue->setMultiOptions(array('0' => _('Select track type')));
|
||||
$criteriaValue->setMultiOptions($this->getTracktypeOptions());
|
||||
$criteriaValue->setValue($tracktypeSelectValue);
|
||||
}
|
||||
$criteriaValue->setAttrib('enabled', 'enabled');
|
||||
} else {
|
||||
$criteriaValue->setValue($storedCrit["crit"][$criteriaKeys[$i]][$j]["value"]);
|
||||
}
|
||||
|
@ -470,7 +537,7 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
$sort->setValue($storedCrit["sort"]["value"]);
|
||||
}
|
||||
$this->addElement($sort);
|
||||
|
||||
|
||||
$limit = new Zend_Form_Element_Select('sp_limit_options');
|
||||
$limit->setAttrib('class', 'sp_input_select')
|
||||
->setDecorators(array('viewHelper'))
|
||||
|
@ -552,6 +619,8 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
$eleMod->setMultiOptions($this->getNumericCriteriaOptions());
|
||||
} elseif ($criteriaType == "d") {
|
||||
$eleMod->setMultiOptions($this->getDateTimeCriteriaOptions());
|
||||
} elseif ($criteriaType == "tt") {
|
||||
$eleMod->setMultiOptions($this->getIsNotOptions());
|
||||
} else {
|
||||
$eleMod->setMultiOptions(array('0' => _('Select modifier')));
|
||||
}
|
||||
|
@ -611,6 +680,8 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
}
|
||||
elseif ($criteriaType == "d") {
|
||||
$criteriaModifers->setMultiOptions($this->getDateTimeCriteriaOptions());
|
||||
} elseif ($criteriaType == "tt") {
|
||||
$criteriaModifers->setMultiOptions($this->getIsNotOptions());
|
||||
} else {
|
||||
$criteriaModifers->setMultiOptions(array('0' => _('Select modifier')));
|
||||
}
|
||||
|
@ -721,7 +792,8 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm
|
|||
"sample_rate" => "DbSampleRate",
|
||||
"track_title" => "DbTrackTitle",
|
||||
"track_number" => "DbTrackNumber",
|
||||
"year" => "DbYear"
|
||||
"year" => "DbYear",
|
||||
"track_type" => "DbTrackType"
|
||||
);
|
||||
|
||||
// things we need to check
|
||||
|
|
|
@ -9,7 +9,12 @@
|
|||
</head>
|
||||
<body>
|
||||
<div id="Panel" class="sticky">
|
||||
<?php echo $this->versionNotify();
|
||||
<?php
|
||||
/*
|
||||
NOTE: Temporarily disabled version notification to avoid confusion,
|
||||
Users can check current version in Settings > Status.
|
||||
*/
|
||||
//echo $this->versionNotify();
|
||||
$sss = $this->SourceSwitchStatus();
|
||||
$scs = $this->SourceConnectionStatus();
|
||||
?>
|
||||
|
@ -70,7 +75,7 @@
|
|||
<div id="nav">
|
||||
<?php echo $this->navigation()->menu(); ?>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="btn-group">
|
||||
<a href="<?php echo $this->baseUrl . '/login/logout'; ?>">
|
||||
<button id="add_media_btn" class="btn btn-small dashboard-btn btn-danger">
|
||||
|
|
|
@ -85,7 +85,8 @@ class Application_Model_Block implements Application_Model_LibraryEditable
|
|||
"sample_rate" => "DbSampleRate",
|
||||
"track_title" => "DbTrackTitle",
|
||||
"track_number" => "DbTrackNumber",
|
||||
"year" => "DbYear"
|
||||
"year" => "DbYear",
|
||||
"track_type" => "DbTrackType"
|
||||
);
|
||||
|
||||
public function __construct($id=null, $con=null)
|
||||
|
@ -232,12 +233,12 @@ SQL;
|
|||
foreach ($rows as &$row) {
|
||||
|
||||
$clipSec = Application_Common_DateHelper::playlistTimeToSeconds($row['length']);
|
||||
|
||||
|
||||
$row['trackSec'] = $clipSec;
|
||||
|
||||
|
||||
$row['cueInSec'] = Application_Common_DateHelper::playlistTimeToSeconds($row['cuein']);
|
||||
$row['cueOutSec'] = Application_Common_DateHelper::playlistTimeToSeconds($row['cueout']);
|
||||
|
||||
|
||||
$trackoffset = $row['trackoffset'];
|
||||
$offset += $clipSec;
|
||||
$offset -= $trackoffset;
|
||||
|
@ -254,7 +255,7 @@ SQL;
|
|||
$fades = $this->getFadeInfo($row['position']);
|
||||
$row['fadein'] = $fades[0];
|
||||
$row['fadeout'] = $fades[1];
|
||||
|
||||
|
||||
// format the cues in format 00:00:00(.0)
|
||||
// we need to add the '.0' for cues and not fades
|
||||
// because propel takes care of this for us
|
||||
|
@ -488,7 +489,7 @@ SQL;
|
|||
Logging::info("Adding to block");
|
||||
Logging::info("at position {$pos}");
|
||||
}
|
||||
|
||||
|
||||
foreach ($p_items as $ac) {
|
||||
//Logging::info("Adding audio file {$ac[0]}");
|
||||
try {
|
||||
|
@ -677,7 +678,7 @@ SQL;
|
|||
|
||||
return array($fadeIn, $fadeOut);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* create a crossfade from item in cc_playlist_contents with $id1 to item $id2.
|
||||
*
|
||||
|
@ -688,11 +689,11 @@ SQL;
|
|||
public function createCrossfade($id1, $fadeOut, $id2, $fadeIn, $offset)
|
||||
{
|
||||
$this->con->beginTransaction();
|
||||
|
||||
|
||||
if (!isset($offset)) {
|
||||
$offset = Application_Model_Preference::GetDefaultCrossfadeDuration();
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
if (isset($id1)) {
|
||||
$this->changeFadeInfo($id1, null, $fadeOut);
|
||||
|
@ -700,9 +701,9 @@ SQL;
|
|||
if (isset($id2)) {
|
||||
$this->changeFadeInfo($id2, $fadeIn, null, $offset);
|
||||
}
|
||||
|
||||
|
||||
$this->con->commit();
|
||||
|
||||
|
||||
} catch (Exception $e) {
|
||||
$this->con->rollback();
|
||||
throw $e;
|
||||
|
@ -746,20 +747,20 @@ SQL;
|
|||
':fade_in' => $fadeIn,
|
||||
':clip_length' => $clipLength
|
||||
);
|
||||
|
||||
|
||||
$result = Application_Common_Database::prepareAndExecute($sql, $params, 'column');
|
||||
if ($result) {
|
||||
//"Fade In can't be larger than overall playlength.";
|
||||
$fadeIn = $clipLength;
|
||||
}
|
||||
$row->setDbFadein($fadeIn);
|
||||
|
||||
|
||||
if (!is_null($offset)) {
|
||||
$row->setDbTrackOffset($offset);
|
||||
Logging::info("Setting offset {$offset} on item {$id}");
|
||||
$row->save($this->con);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if (!is_null($fadeOut)) {
|
||||
|
||||
|
@ -768,7 +769,7 @@ SQL;
|
|||
':fade_out' => $fadeOut,
|
||||
':clip_length' => $clipLength
|
||||
);
|
||||
|
||||
|
||||
$result = Application_Common_Database::prepareAndExecute($sql, $params, 'column');
|
||||
if ($result) {
|
||||
//"Fade Out can't be larger than overall playlength.";
|
||||
|
@ -909,7 +910,7 @@ SQL;
|
|||
|
||||
$row->setDbCuein($cueIn);
|
||||
$row->setDBCliplength($cliplength);
|
||||
|
||||
|
||||
} elseif (!is_null($cueOut)) {
|
||||
|
||||
if ($cueOut === "") {
|
||||
|
@ -1016,8 +1017,8 @@ SQL;
|
|||
public static function getBlockCount()
|
||||
{
|
||||
$sql = 'SELECT count(*) as cnt FROM cc_playlist';
|
||||
|
||||
$res = Application_Common_Database::prepareAndExecute($sql, array(),
|
||||
|
||||
$res = Application_Common_Database::prepareAndExecute($sql, array(),
|
||||
Application_Common_Database::COLUMN);
|
||||
|
||||
return $res;
|
||||
|
@ -1064,7 +1065,7 @@ SQL;
|
|||
CcBlockQuery::create()->findPKs($p_ids)->delete();
|
||||
$updateIsPlaylistFlag = true;
|
||||
}
|
||||
|
||||
|
||||
if ($updateIsPlaylistFlag) {
|
||||
// update is_playlist flag in cc_files
|
||||
Application_Model_StoredFile::setIsPlaylist(
|
||||
|
@ -1163,7 +1164,7 @@ SQL;
|
|||
$blockType = $data['etc']['sp_type'] == 0 ? 'dynamic':'static';
|
||||
$this->saveType($blockType);
|
||||
$this->storeCriteriaIntoDb($data);
|
||||
|
||||
|
||||
// if the block is dynamic, put null to the length
|
||||
// as it cannot be calculated
|
||||
if ($blockType == 'dynamic') {
|
||||
|
@ -1208,7 +1209,7 @@ SQL;
|
|||
if (isset($d['sp_criteria_extra'])) { $extra = $d['sp_criteria_extra']; }
|
||||
if (isset($d['sp_criteria_datetime_select'])) { $datetimeunit = $d['sp_criteria_datetime_select']; }
|
||||
if (isset($d['sp_criteria_extra_datetime_select'])) {$extradatetimeunit = $d['sp_criteria_extra_datetime_select'];}
|
||||
|
||||
|
||||
if ($field == 'utime' || $field == 'mtime' || $field == 'lptime') {
|
||||
// if the date isn't relative we want to convert the value to a specific UTC date
|
||||
if (!(in_array($modifier,array('before','after','between')))) {
|
||||
|
@ -1220,7 +1221,7 @@ SQL;
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$qry = new CcBlockcriteria();
|
||||
$qry->setDbCriteria($field)
|
||||
->setDbModifier($d['sp_criteria_modifier'])
|
||||
|
@ -1228,7 +1229,7 @@ SQL;
|
|||
->setDbBlockId($this->id);
|
||||
|
||||
if (isset($d['sp_criteria_extra'])) {
|
||||
|
||||
|
||||
if ($field == 'utime' || $field == 'mtime' || $field == 'lptime') {
|
||||
// if the date isn't relative we want to convert the value to a specific UTC date
|
||||
if (!(in_array($modifier,array('before','after','between')))) {
|
||||
|
@ -1239,7 +1240,7 @@ SQL;
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$qry->setDbExtra($extra);
|
||||
}
|
||||
// save the criteria group so separation via new modifiers AND can be preserved vs. lumping
|
||||
|
@ -1269,8 +1270,8 @@ SQL;
|
|||
->setDbValue($p_criteriaData['etc']['sp_limit_value'])
|
||||
->setDbBlockId($this->id)
|
||||
->save();
|
||||
|
||||
|
||||
|
||||
|
||||
// insert repeat track option
|
||||
$qry = new CcBlockcriteria();
|
||||
$qry->setDbCriteria("repeat_tracks")
|
||||
|
@ -1347,11 +1348,11 @@ SQL;
|
|||
// this moves the pointer to the first element in the collection
|
||||
$files->getFirst();
|
||||
$iterator = $files->getIterator();
|
||||
|
||||
|
||||
$isBlockFull = false;
|
||||
|
||||
|
||||
while ($iterator->valid()) {
|
||||
|
||||
|
||||
$id = $iterator->current()->getDbId();
|
||||
$fileLength = $iterator->current()->getCueLength();
|
||||
$length = Application_Common_DateHelper::calculateLengthInSeconds($fileLength);
|
||||
|
@ -1384,15 +1385,15 @@ SQL;
|
|||
|
||||
$iterator->next();
|
||||
}
|
||||
|
||||
|
||||
$sizeOfInsert = count($insertList);
|
||||
|
||||
|
||||
// if block is not full and repeat_track is check, fill up more
|
||||
// additionally still don't overflow the limit
|
||||
while (!$isBlockFull && $repeat == 1 && $sizeOfInsert > 0) {
|
||||
Logging::debug("adding repeated tracks.");
|
||||
Logging::debug("total time = " . $totalTime);
|
||||
|
||||
|
||||
$randomEleKey = array_rand(array_slice($insertList, 0, $sizeOfInsert));
|
||||
// this will also allow the overflow of tracks so that time limited smart blocks will schedule until they
|
||||
// are longer than the time limit rather than never scheduling past the time limit
|
||||
|
@ -1412,7 +1413,7 @@ SQL;
|
|||
$totalItems++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ((!is_null($limit['items']) && $limit['items'] == count($insertList)) || $totalItems > 500 || $totalTime > $limit['time']) {
|
||||
break;
|
||||
}
|
||||
|
@ -1451,6 +1452,7 @@ SQL;
|
|||
"mtime" => _("Last Modified"),
|
||||
"lptime" => _("Last Played"),
|
||||
"length" => _("Length"),
|
||||
"track_type" => _("Track Type"),
|
||||
"mime" => _("Mime"),
|
||||
"mood" => _("Mood"),
|
||||
"owner_id" => _("Owner"),
|
||||
|
@ -1550,6 +1552,7 @@ SQL;
|
|||
"mtime" => _("Last Modified"),
|
||||
"lptime" => _("Last Played"),
|
||||
"length" => _("Length"),
|
||||
"track_type" => _("Track Type"),
|
||||
"mime" => _("Mime"),
|
||||
"mood" => _("Mood"),
|
||||
"owner_id" => _("Owner"),
|
||||
|
@ -1796,7 +1799,7 @@ SQL;
|
|||
$limits['items'] = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$repeatTracks = 0;
|
||||
$overflowTracks = 0;
|
||||
|
||||
|
@ -1865,9 +1868,9 @@ SQL;
|
|||
SELECT distinct(file_id)
|
||||
FROM cc_blockcontents
|
||||
SQL;
|
||||
|
||||
|
||||
$files = Application_Common_Database::prepareAndExecute($sql, array());
|
||||
|
||||
|
||||
$real_files = array();
|
||||
foreach ($files as $f) {
|
||||
$real_files[] = $f['file_id'];
|
||||
|
|
|
@ -54,7 +54,8 @@ class Application_Model_StoredFile
|
|||
"cuein" => "DbCueIn",
|
||||
"cueout" => "DbCueOut",
|
||||
"description" => "DbDescription",
|
||||
"artwork" => "DbArtwork"
|
||||
"artwork" => "DbArtwork",
|
||||
"track_type" => "DbTrackType"
|
||||
);
|
||||
|
||||
function __construct($file, $con) {
|
||||
|
@ -672,7 +673,7 @@ SQL;
|
|||
"bit_rate", "sample_rate", "isrc_number", "encoded_by", "label",
|
||||
"copyright", "mime", "language", "filepath", "owner_id",
|
||||
"conductor", "replay_gain", "lptime", "is_playlist", "is_scheduled",
|
||||
"cuein", "cueout", "description", "artwork" );
|
||||
"cuein", "cueout", "description", "artwork", "track_type" );
|
||||
}
|
||||
|
||||
public static function searchLibraryFiles($datatables)
|
||||
|
|
|
@ -0,0 +1,173 @@
|
|||
<?php
|
||||
|
||||
class Application_Model_Tracktype
|
||||
{
|
||||
private $_tracktypeInstance;
|
||||
|
||||
public function __construct($tracktypeId)
|
||||
{
|
||||
if (empty($tracktypeId)) {
|
||||
$this->_tracktypeInstance = $this->createTracktype();
|
||||
} else {
|
||||
$this->_tracktypeInstance = CcTracktypesQuery::create()->findPK($tracktypeId);
|
||||
|
||||
if (is_null($this->_tracktypeInstance)) {
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getId()
|
||||
{
|
||||
return $this->_tracktypeInstance->getDbId();
|
||||
}
|
||||
|
||||
public function setCode($code)
|
||||
{
|
||||
$tracktype = $this->_tracktypeInstance;
|
||||
$tracktype->setDbCode($code);
|
||||
}
|
||||
|
||||
public function setTypeName($typeName)
|
||||
{
|
||||
$tracktype = $this->_tracktypeInstance;
|
||||
$tracktype->setDbTypeName($typeName);
|
||||
}
|
||||
|
||||
public function setDescription($description)
|
||||
{
|
||||
$tracktype = $this->_tracktypeInstance;
|
||||
$tracktype->setDbDescription($description);
|
||||
}
|
||||
|
||||
public function setVisibility($visibility)
|
||||
{
|
||||
$tracktype = $this->_tracktypeInstance;
|
||||
$tracktype->setDbVisibility($visibility);
|
||||
}
|
||||
|
||||
public function getCode()
|
||||
{
|
||||
$tracktype = $this->_tracktypeInstance;
|
||||
|
||||
return $tracktype->getDbCode();
|
||||
}
|
||||
|
||||
public function getTypeName()
|
||||
{
|
||||
$tracktype = $this->_tracktypeInstance;
|
||||
|
||||
return $tracktype->getDbTypeName();
|
||||
}
|
||||
|
||||
public function getDescription()
|
||||
{
|
||||
$tracktype = $this->_tracktypeInstance;
|
||||
|
||||
return $tracktype->getDbDescription();
|
||||
}
|
||||
|
||||
public function getVisibility()
|
||||
{
|
||||
$tracktype = $this->_tracktypeInstance;
|
||||
|
||||
return $tracktype->getDbVisibility();
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
$this->_tracktypeInstance->save();
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
if (!$this->_tracktypeInstance->isDeleted()) {
|
||||
$this->_tracktypeInstance->delete();
|
||||
}
|
||||
}
|
||||
|
||||
private function createTracktype()
|
||||
{
|
||||
$tracktype = new CcTracktypes();
|
||||
|
||||
return $tracktype;
|
||||
}
|
||||
|
||||
public static function getTracktypes($search=null)
|
||||
{
|
||||
return Application_Model_Tracktype::getTracktypesData(array(true), $search);
|
||||
}
|
||||
|
||||
public static function getTracktypesData(array $visible, $search=null)
|
||||
{
|
||||
$con = Propel::getConnection();
|
||||
|
||||
$sql_gen = "SELECT id, code, type_name, description FROM cc_track_types ";
|
||||
|
||||
$visibility = array();
|
||||
$params = array();
|
||||
for ($i=0; $i<count($visible); $i++) {
|
||||
$p = ":visibility{$i}";
|
||||
$visibility[] = "visibility = $p";
|
||||
$params[$p] = $visible[$i];
|
||||
}
|
||||
|
||||
$sql_type = join(" OR ", $visibility);
|
||||
|
||||
$sql = $sql_gen ." WHERE (". $sql_type.") ";
|
||||
|
||||
$sql .= " AND code ILIKE :search";
|
||||
$params[":search"] = "%$search%";
|
||||
|
||||
$sql = $sql ." ORDER BY id";
|
||||
|
||||
return Application_Common_Database::prepareAndExecute($sql, $params, "all");
|
||||
}
|
||||
|
||||
public static function getTracktypeCount()
|
||||
{
|
||||
$sql_gen = "SELECT count(*) AS cnt FROM cc_track_types";
|
||||
|
||||
$query = Application_Common_Database::prepareAndExecute($sql_gen, array(),
|
||||
Application_Common_Database::COLUMN);
|
||||
|
||||
return ($query !== false) ? $query : null;
|
||||
}
|
||||
|
||||
public static function getTracktypesDataTablesInfo($datatables)
|
||||
{
|
||||
|
||||
$con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME);
|
||||
|
||||
$displayColumns = array("id", "code", "type_name", "description", "visibility");
|
||||
$fromTable = "cc_track_types";
|
||||
$tracktypename = "";
|
||||
|
||||
$res = Application_Model_Datatables::findEntries($con, $displayColumns, $fromTable, $datatables);
|
||||
|
||||
foreach($res['aaData'] as $key => &$record){
|
||||
if ($record['code'] == $tracktypename) {
|
||||
$record['delete'] = "self";
|
||||
} else {
|
||||
$record['delete'] = "";
|
||||
}
|
||||
$record = array_map('htmlspecialchars', $record);
|
||||
}
|
||||
|
||||
$res['aaData'] = array_values($res['aaData']);
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
public static function getTracktypeData($id)
|
||||
{
|
||||
$sql = <<<SQL
|
||||
SELECT code, type_name, description, visibility, id
|
||||
FROM cc_track_types
|
||||
WHERE id = :id
|
||||
SQL;
|
||||
return Application_Common_Database::prepareAndExecute($sql, array(
|
||||
":id" => $id), 'single');
|
||||
}
|
||||
|
||||
}
|
|
@ -150,12 +150,14 @@ class CcFiles extends BaseCcFiles {
|
|||
$importedStorageDir = $storDir->getDirectory() . "imported/" . self::getOwnerId() . "/";
|
||||
$importedDbPath = "imported/" . self::getOwnerId() . "/";
|
||||
$artwork = FileDataHelper::saveArtworkData($filePath, $originalFilename, $importedStorageDir, $importedDbPath);
|
||||
$trackType = FileDataHelper::saveTrackType();
|
||||
|
||||
$file->fromArray($fileArray);
|
||||
$file->setDbOwnerId(self::getOwnerId());
|
||||
$now = new DateTime("now", new DateTimeZone("UTC"));
|
||||
$file->setDbTrackTitle($originalFilename);
|
||||
$file->setDbArtwork($artwork);
|
||||
$file->setDbTrackType($trackType);
|
||||
$file->setDbUtime($now);
|
||||
$file->setDbHidden(true);
|
||||
$file->save();
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Skeleton subclass for representing a row from the 'cc_track_types' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
* You should add additional methods to this class to meet the
|
||||
* application requirements. This class will only be generated as
|
||||
* long as it does not already exist in the output directory.
|
||||
*
|
||||
* @package propel.generator.airtime
|
||||
*/
|
||||
class CcTracktypes extends BaseCcTracktypes {
|
||||
|
||||
} // CcTracktypes
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Skeleton subclass for performing query and update operations on the 'cc_track_types' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
* You should add additional methods to this class to meet the
|
||||
* application requirements. This class will only be generated as
|
||||
* long as it does not already exist in the output directory.
|
||||
*
|
||||
* @package propel.generator.airtime
|
||||
*/
|
||||
class CcTracktypesPeer extends BaseCcTracktypesPeer {
|
||||
|
||||
} // CcTracktypesPeer
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Skeleton subclass for performing query and update operations on the 'cc_track_types' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
* You should add additional methods to this class to meet the
|
||||
* application requirements. This class will only be generated as
|
||||
* long as it does not already exist in the output directory.
|
||||
*
|
||||
* @package propel.generator.airtime
|
||||
*/
|
||||
class CcTracktypesQuery extends BaseCcTracktypesQuery {
|
||||
|
||||
} // CcTracktypesQuery
|
|
@ -112,6 +112,7 @@ class CcFilesTableMap extends TableMap
|
|||
$this->addColumn('filesize', 'DbFilesize', 'INTEGER', true, null, 0);
|
||||
$this->addColumn('description', 'DbDescription', 'VARCHAR', false, 512, null);
|
||||
$this->addColumn('artwork', 'DbArtwork', 'VARCHAR', false, 512, null);
|
||||
$this->addColumn('track_type', 'DbTrackType', 'VARCHAR', false, 16, null);
|
||||
// validators
|
||||
} // initialize()
|
||||
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This class defines the structure of the 'cc_track_types' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
* This map class is used by Propel to do runtime db structure discovery.
|
||||
* For example, the createSelectSql() method checks the type of a given column used in an
|
||||
* ORDER BY clause to know whether it needs to apply SQL to make the ORDER BY case-insensitive
|
||||
* (i.e. if it's a text column type).
|
||||
*
|
||||
* @package propel.generator.airtime.map
|
||||
*/
|
||||
class CcTracktypesTableMap extends TableMap
|
||||
{
|
||||
|
||||
/**
|
||||
* The (dot-path) name of this class
|
||||
*/
|
||||
const CLASS_NAME = 'airtime.map.CcTracktypesTableMap';
|
||||
|
||||
/**
|
||||
* Initialize the table attributes, columns and validators
|
||||
* Relations are not initialized by this method since they are lazy loaded
|
||||
*
|
||||
* @return void
|
||||
* @throws PropelException
|
||||
*/
|
||||
public function initialize()
|
||||
{
|
||||
// attributes
|
||||
$this->setName('cc_track_types');
|
||||
$this->setPhpName('CcTracktypes');
|
||||
$this->setClassname('CcTracktypes');
|
||||
$this->setPackage('airtime');
|
||||
$this->setUseIdGenerator(true);
|
||||
$this->setPrimaryKeyMethodInfo('cc_track_types_id_seq');
|
||||
// columns
|
||||
$this->addPrimaryKey('id', 'DbId', 'INTEGER', true, null, null);
|
||||
$this->addColumn('code', 'DbCode', 'VARCHAR', true, 255, '');
|
||||
$this->addColumn('visibility', 'DbVisibility', 'BOOLEAN', true, 1, true);
|
||||
$this->addColumn('type_name', 'DbTypeName', 'VARCHAR', true, 255, '');
|
||||
$this->addColumn('description', 'DbDescription', 'VARCHAR', true, 255, '');
|
||||
// validators
|
||||
} // initialize()
|
||||
|
||||
/**
|
||||
* Build the RelationMap objects for this table relationships
|
||||
*/
|
||||
public function buildRelations()
|
||||
{
|
||||
|
||||
} // buildRelations()
|
||||
|
||||
} // CcTracktypesTableMap
|
|
@ -294,6 +294,12 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
*/
|
||||
protected $artwork;
|
||||
|
||||
/**
|
||||
* The value for the track_type field.
|
||||
* @var string
|
||||
*/
|
||||
protected $track_type;
|
||||
|
||||
/**
|
||||
* The value for the artist_url field.
|
||||
* @var string
|
||||
|
@ -1193,6 +1199,17 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
return $this->artwork;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [track_type] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDbTrackType()
|
||||
{
|
||||
|
||||
return $this->track_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [artist_url] column value.
|
||||
*
|
||||
|
@ -1875,6 +1892,26 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
return $this;
|
||||
} // setDbArtwork()
|
||||
|
||||
/**
|
||||
* Set the value of [track_type] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return CcFiles The current object (for fluent API support)
|
||||
*/
|
||||
public function setDbTrackType($v)
|
||||
{
|
||||
if ($v !== null && is_numeric($v)) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->track_type !== $v) {
|
||||
$this->track_type = $v;
|
||||
$this->modifiedColumns[] = CcFilesPeer::TRACK_TYPE;
|
||||
}
|
||||
|
||||
return $this;
|
||||
} // setDbTrackType()
|
||||
|
||||
/**
|
||||
* Set the value of [artist_name] column.
|
||||
*
|
||||
|
@ -3304,6 +3341,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
$this->filesize = ($row[$startcol + 70] !== null) ? (int) $row[$startcol + 70] : null;
|
||||
$this->description = ($row[$startcol + 71] !== null) ? (string) $row[$startcol + 71] : null;
|
||||
$this->artwork = ($row[$startcol + 72] !== null) ? (string) $row[$startcol + 72] : null;
|
||||
$this->track_type = ($row[$startcol + 73] !== null) ? (string) $row[$startcol + 73] : null;
|
||||
$this->resetModified();
|
||||
|
||||
$this->setNew(false);
|
||||
|
@ -3944,6 +3982,9 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
if ($this->isColumnModified(CcFilesPeer::ARTWORK)) {
|
||||
$modifiedColumns[':p' . $index++] = '"artwork"';
|
||||
}
|
||||
if ($this->isColumnModified(CcFilesPeer::TRACK_TYPE)) {
|
||||
$modifiedColumns[':p' . $index++] = '"track_type"';
|
||||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'INSERT INTO "cc_files" (%s) VALUES (%s)',
|
||||
|
@ -4174,6 +4215,9 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
case '"artwork"':
|
||||
$stmt->bindValue($identifier, $this->artwork, PDO::PARAM_STR);
|
||||
break;
|
||||
case '"track_type"':
|
||||
$stmt->bindValue($identifier, $this->track_type, PDO::PARAM_STR);
|
||||
break;
|
||||
}
|
||||
}
|
||||
$stmt->execute();
|
||||
|
@ -4608,6 +4652,9 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
case 72:
|
||||
return $this->getDbArtwork();
|
||||
break;
|
||||
case 73:
|
||||
return $this->getDbTrackType();
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
break;
|
||||
|
@ -4710,6 +4757,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
$keys[70] => $this->getDbFilesize(),
|
||||
$keys[71] => $this->getDbDescription(),
|
||||
$keys[72] => $this->getDbArtwork(),
|
||||
$keys[73] => $this->getDbTrackType(),
|
||||
);
|
||||
$virtualColumns = $this->virtualColumns;
|
||||
foreach ($virtualColumns as $key => $virtualColumn) {
|
||||
|
@ -5003,6 +5051,9 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
case 72:
|
||||
$this->setDbArtwork($value);
|
||||
break;
|
||||
case 73:
|
||||
$this->setDbTrackType($value);
|
||||
break;
|
||||
} // switch()
|
||||
}
|
||||
|
||||
|
@ -5100,6 +5151,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
if (array_key_exists($keys[70], $arr)) $this->setDbFilesize($arr[$keys[70]]);
|
||||
if (array_key_exists($keys[71], $arr)) $this->setDbDescription($arr[$keys[71]]);
|
||||
if (array_key_exists($keys[72], $arr)) $this->setDbArtwork($arr[$keys[72]]);
|
||||
if (array_key_exists($keys[73], $arr)) $this->setDbTrackType($arr[$keys[73]]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -5184,6 +5236,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
if ($this->isColumnModified(CcFilesPeer::FILESIZE)) $criteria->add(CcFilesPeer::FILESIZE, $this->filesize);
|
||||
if ($this->isColumnModified(CcFilesPeer::DESCRIPTION)) $criteria->add(CcFilesPeer::DESCRIPTION, $this->description);
|
||||
if ($this->isColumnModified(CcFilesPeer::ARTWORK)) $criteria->add(CcFilesPeer::ARTWORK, $this->artwork);
|
||||
if ($this->isColumnModified(CcFilesPeer::TRACK_TYPE)) $criteria->add(CcFilesPeer::TRACK_TYPE, $this->track_type);
|
||||
|
||||
return $criteria;
|
||||
}
|
||||
|
@ -5319,6 +5372,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
$copyObj->setDbFilesize($this->getDbFilesize());
|
||||
$copyObj->setDbDescription($this->getDbDescription());
|
||||
$copyObj->setDbArtwork($this->getDbArtwork());
|
||||
$copyObj->setDbTrackType($this->getDbTrackType());
|
||||
|
||||
if ($deepCopy && !$this->startCopy) {
|
||||
// important: temporarily setNew(false) because this affects the behavior of
|
||||
|
@ -7721,6 +7775,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
|
|||
$this->filesize = null;
|
||||
$this->description = null;
|
||||
$this->artwork = null;
|
||||
$this->track_type = null;
|
||||
$this->alreadyInSave = false;
|
||||
$this->alreadyInValidation = false;
|
||||
$this->alreadyInClearAllReferencesDeep = false;
|
||||
|
|
|
@ -251,6 +251,9 @@ abstract class BaseCcFilesPeer
|
|||
/** the column name for the artwork field */
|
||||
const ARTWORK = 'cc_files.artwork';
|
||||
|
||||
/** the column name for the track_type field */
|
||||
const TRACK_TYPE = 'cc_files.track_type';
|
||||
|
||||
/** The default string format for model objects of the related table **/
|
||||
const DEFAULT_STRING_FORMAT = 'YAML';
|
||||
|
||||
|
@ -270,12 +273,12 @@ abstract class BaseCcFilesPeer
|
|||
* e.g. CcFilesPeer::$fieldNames[CcFilesPeer::TYPE_PHPNAME][0] = 'Id'
|
||||
*/
|
||||
protected static $fieldNames = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbName', 'DbMime', 'DbFtype', 'DbDirectory', 'DbFilepath', 'DbImportStatus', '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', 'DbSilanCheck', 'DbHidden', 'DbIsScheduled', 'DbIsPlaylist', 'DbFilesize', 'DbDescription', 'DbArtwork', ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbName', 'dbMime', 'dbFtype', 'dbDirectory', 'dbFilepath', 'dbImportStatus', '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', 'dbSilanCheck', 'dbHidden', 'dbIsScheduled', 'dbIsPlaylist', 'dbFilesize', 'dbDescription', 'dbArtwork', ),
|
||||
BasePeer::TYPE_COLNAME => array (CcFilesPeer::ID, CcFilesPeer::NAME, CcFilesPeer::MIME, CcFilesPeer::FTYPE, CcFilesPeer::DIRECTORY, CcFilesPeer::FILEPATH, CcFilesPeer::IMPORT_STATUS, CcFilesPeer::CURRENTLYACCESSING, CcFilesPeer::EDITEDBY, CcFilesPeer::MTIME, CcFilesPeer::UTIME, CcFilesPeer::LPTIME, CcFilesPeer::MD5, CcFilesPeer::TRACK_TITLE, CcFilesPeer::ARTIST_NAME, CcFilesPeer::BIT_RATE, CcFilesPeer::SAMPLE_RATE, CcFilesPeer::FORMAT, CcFilesPeer::LENGTH, CcFilesPeer::ALBUM_TITLE, CcFilesPeer::GENRE, CcFilesPeer::COMMENTS, CcFilesPeer::YEAR, CcFilesPeer::TRACK_NUMBER, CcFilesPeer::CHANNELS, CcFilesPeer::URL, CcFilesPeer::BPM, CcFilesPeer::RATING, CcFilesPeer::ENCODED_BY, CcFilesPeer::DISC_NUMBER, CcFilesPeer::MOOD, CcFilesPeer::LABEL, CcFilesPeer::COMPOSER, CcFilesPeer::ENCODER, CcFilesPeer::CHECKSUM, CcFilesPeer::LYRICS, CcFilesPeer::ORCHESTRA, CcFilesPeer::CONDUCTOR, CcFilesPeer::LYRICIST, CcFilesPeer::ORIGINAL_LYRICIST, CcFilesPeer::RADIO_STATION_NAME, CcFilesPeer::INFO_URL, CcFilesPeer::ARTIST_URL, CcFilesPeer::AUDIO_SOURCE_URL, CcFilesPeer::RADIO_STATION_URL, CcFilesPeer::BUY_THIS_URL, CcFilesPeer::ISRC_NUMBER, CcFilesPeer::CATALOG_NUMBER, CcFilesPeer::ORIGINAL_ARTIST, CcFilesPeer::COPYRIGHT, CcFilesPeer::REPORT_DATETIME, CcFilesPeer::REPORT_LOCATION, CcFilesPeer::REPORT_ORGANIZATION, CcFilesPeer::SUBJECT, CcFilesPeer::CONTRIBUTOR, CcFilesPeer::LANGUAGE, CcFilesPeer::FILE_EXISTS, CcFilesPeer::SOUNDCLOUD_ID, CcFilesPeer::SOUNDCLOUD_ERROR_CODE, CcFilesPeer::SOUNDCLOUD_ERROR_MSG, CcFilesPeer::SOUNDCLOUD_LINK_TO_FILE, CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME, CcFilesPeer::REPLAY_GAIN, CcFilesPeer::OWNER_ID, CcFilesPeer::CUEIN, CcFilesPeer::CUEOUT, CcFilesPeer::SILAN_CHECK, CcFilesPeer::HIDDEN, CcFilesPeer::IS_SCHEDULED, CcFilesPeer::IS_PLAYLIST, CcFilesPeer::FILESIZE, CcFilesPeer::DESCRIPTION, CcFilesPeer::ARTWORK, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'NAME', 'MIME', 'FTYPE', 'DIRECTORY', 'FILEPATH', 'IMPORT_STATUS', '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', 'SILAN_CHECK', 'HIDDEN', 'IS_SCHEDULED', 'IS_PLAYLIST', 'FILESIZE', 'DESCRIPTION', 'ARTWORK', ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id', 'name', 'mime', 'ftype', 'directory', 'filepath', 'import_status', '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', 'silan_check', 'hidden', 'is_scheduled', 'is_playlist', 'filesize', 'description', 'artwork', ),
|
||||
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, 67, 68, 69, 70, 71, 72, )
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbName', 'DbMime', 'DbFtype', 'DbDirectory', 'DbFilepath', 'DbImportStatus', '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', 'DbSilanCheck', 'DbHidden', 'DbIsScheduled', 'DbIsPlaylist', 'DbFilesize', 'DbDescription', 'DbArtwork', 'DbTrackType', ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbName', 'dbMime', 'dbFtype', 'dbDirectory', 'dbFilepath', 'dbImportStatus', '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', 'dbSilanCheck', 'dbHidden', 'dbIsScheduled', 'dbIsPlaylist', 'dbFilesize', 'dbDescription', 'dbArtwork', 'dbTrackType', ),
|
||||
BasePeer::TYPE_COLNAME => array (CcFilesPeer::ID, CcFilesPeer::NAME, CcFilesPeer::MIME, CcFilesPeer::FTYPE, CcFilesPeer::DIRECTORY, CcFilesPeer::FILEPATH, CcFilesPeer::IMPORT_STATUS, CcFilesPeer::CURRENTLYACCESSING, CcFilesPeer::EDITEDBY, CcFilesPeer::MTIME, CcFilesPeer::UTIME, CcFilesPeer::LPTIME, CcFilesPeer::MD5, CcFilesPeer::TRACK_TITLE, CcFilesPeer::ARTIST_NAME, CcFilesPeer::BIT_RATE, CcFilesPeer::SAMPLE_RATE, CcFilesPeer::FORMAT, CcFilesPeer::LENGTH, CcFilesPeer::ALBUM_TITLE, CcFilesPeer::GENRE, CcFilesPeer::COMMENTS, CcFilesPeer::YEAR, CcFilesPeer::TRACK_NUMBER, CcFilesPeer::CHANNELS, CcFilesPeer::URL, CcFilesPeer::BPM, CcFilesPeer::RATING, CcFilesPeer::ENCODED_BY, CcFilesPeer::DISC_NUMBER, CcFilesPeer::MOOD, CcFilesPeer::LABEL, CcFilesPeer::COMPOSER, CcFilesPeer::ENCODER, CcFilesPeer::CHECKSUM, CcFilesPeer::LYRICS, CcFilesPeer::ORCHESTRA, CcFilesPeer::CONDUCTOR, CcFilesPeer::LYRICIST, CcFilesPeer::ORIGINAL_LYRICIST, CcFilesPeer::RADIO_STATION_NAME, CcFilesPeer::INFO_URL, CcFilesPeer::ARTIST_URL, CcFilesPeer::AUDIO_SOURCE_URL, CcFilesPeer::RADIO_STATION_URL, CcFilesPeer::BUY_THIS_URL, CcFilesPeer::ISRC_NUMBER, CcFilesPeer::CATALOG_NUMBER, CcFilesPeer::ORIGINAL_ARTIST, CcFilesPeer::COPYRIGHT, CcFilesPeer::REPORT_DATETIME, CcFilesPeer::REPORT_LOCATION, CcFilesPeer::REPORT_ORGANIZATION, CcFilesPeer::SUBJECT, CcFilesPeer::CONTRIBUTOR, CcFilesPeer::LANGUAGE, CcFilesPeer::FILE_EXISTS, CcFilesPeer::SOUNDCLOUD_ID, CcFilesPeer::SOUNDCLOUD_ERROR_CODE, CcFilesPeer::SOUNDCLOUD_ERROR_MSG, CcFilesPeer::SOUNDCLOUD_LINK_TO_FILE, CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME, CcFilesPeer::REPLAY_GAIN, CcFilesPeer::OWNER_ID, CcFilesPeer::CUEIN, CcFilesPeer::CUEOUT, CcFilesPeer::SILAN_CHECK, CcFilesPeer::HIDDEN, CcFilesPeer::IS_SCHEDULED, CcFilesPeer::IS_PLAYLIST, CcFilesPeer::FILESIZE, CcFilesPeer::DESCRIPTION, CcFilesPeer::ARTWORK, CcFilesPeer::TRACK_TYPE, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'NAME', 'MIME', 'FTYPE', 'DIRECTORY', 'FILEPATH', 'IMPORT_STATUS', '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', 'SILAN_CHECK', 'HIDDEN', 'IS_SCHEDULED', 'IS_PLAYLIST', 'FILESIZE', 'DESCRIPTION', 'ARTWORK', 'TRACK_TYPE', ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id', 'name', 'mime', 'ftype', 'directory', 'filepath', 'import_status', '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', 'silan_check', 'hidden', 'is_scheduled', 'is_playlist', 'filesize', 'description', 'artwork', 'track_type', ),
|
||||
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, 67, 68, 69, 70, 71, 72, 73, )
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -285,12 +288,12 @@ abstract class BaseCcFilesPeer
|
|||
* e.g. CcFilesPeer::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
||||
*/
|
||||
protected static $fieldKeys = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbName' => 1, 'DbMime' => 2, 'DbFtype' => 3, 'DbDirectory' => 4, 'DbFilepath' => 5, 'DbImportStatus' => 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, 'DbSilanCheck' => 66, 'DbHidden' => 67, 'DbIsScheduled' => 68, 'DbIsPlaylist' => 69, 'DbFilesize' => 70, 'DbDescription' => 71, 'DbArtwork' => 72, ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbName' => 1, 'dbMime' => 2, 'dbFtype' => 3, 'dbDirectory' => 4, 'dbFilepath' => 5, 'dbImportStatus' => 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, 'dbSilanCheck' => 66, 'dbHidden' => 67, 'dbIsScheduled' => 68, 'dbIsPlaylist' => 69, 'dbFilesize' => 70, 'dbDescription' => 71, 'dbArtwork' => 72, ),
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbName' => 1, 'DbMime' => 2, 'DbFtype' => 3, 'DbDirectory' => 4, 'DbFilepath' => 5, 'DbImportStatus' => 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, 'DbSilanCheck' => 66, 'DbHidden' => 67, 'DbIsScheduled' => 68, 'DbIsPlaylist' => 69, 'DbFilesize' => 70, 'DbDescription' => 71, 'DbArtwork' => 72, 'DbTrackType' => 73, ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbName' => 1, 'dbMime' => 2, 'dbFtype' => 3, 'dbDirectory' => 4, 'dbFilepath' => 5, 'dbImportStatus' => 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, 'dbSilanCheck' => 66, 'dbHidden' => 67, 'dbIsScheduled' => 68, 'dbIsPlaylist' => 69, 'dbFilesize' => 70, 'dbDescription' => 71, 'dbArtwork' => 72, 'dbTrackType' => 73, ),
|
||||
BasePeer::TYPE_COLNAME => array (CcFilesPeer::ID => 0, CcFilesPeer::NAME => 1, CcFilesPeer::MIME => 2, CcFilesPeer::FTYPE => 3, CcFilesPeer::DIRECTORY => 4, CcFilesPeer::FILEPATH => 5, CcFilesPeer::IMPORT_STATUS => 6, CcFilesPeer::CURRENTLYACCESSING => 7, CcFilesPeer::EDITEDBY => 8, CcFilesPeer::MTIME => 9, CcFilesPeer::UTIME => 10, CcFilesPeer::LPTIME => 11, CcFilesPeer::MD5 => 12, CcFilesPeer::TRACK_TITLE => 13, CcFilesPeer::ARTIST_NAME => 14, CcFilesPeer::BIT_RATE => 15, CcFilesPeer::SAMPLE_RATE => 16, CcFilesPeer::FORMAT => 17, CcFilesPeer::LENGTH => 18, CcFilesPeer::ALBUM_TITLE => 19, CcFilesPeer::GENRE => 20, CcFilesPeer::COMMENTS => 21, CcFilesPeer::YEAR => 22, CcFilesPeer::TRACK_NUMBER => 23, CcFilesPeer::CHANNELS => 24, CcFilesPeer::URL => 25, CcFilesPeer::BPM => 26, CcFilesPeer::RATING => 27, CcFilesPeer::ENCODED_BY => 28, CcFilesPeer::DISC_NUMBER => 29, CcFilesPeer::MOOD => 30, CcFilesPeer::LABEL => 31, CcFilesPeer::COMPOSER => 32, CcFilesPeer::ENCODER => 33, CcFilesPeer::CHECKSUM => 34, CcFilesPeer::LYRICS => 35, CcFilesPeer::ORCHESTRA => 36, CcFilesPeer::CONDUCTOR => 37, CcFilesPeer::LYRICIST => 38, CcFilesPeer::ORIGINAL_LYRICIST => 39, CcFilesPeer::RADIO_STATION_NAME => 40, CcFilesPeer::INFO_URL => 41, CcFilesPeer::ARTIST_URL => 42, CcFilesPeer::AUDIO_SOURCE_URL => 43, CcFilesPeer::RADIO_STATION_URL => 44, CcFilesPeer::BUY_THIS_URL => 45, CcFilesPeer::ISRC_NUMBER => 46, CcFilesPeer::CATALOG_NUMBER => 47, CcFilesPeer::ORIGINAL_ARTIST => 48, CcFilesPeer::COPYRIGHT => 49, CcFilesPeer::REPORT_DATETIME => 50, CcFilesPeer::REPORT_LOCATION => 51, CcFilesPeer::REPORT_ORGANIZATION => 52, CcFilesPeer::SUBJECT => 53, CcFilesPeer::CONTRIBUTOR => 54, CcFilesPeer::LANGUAGE => 55, CcFilesPeer::FILE_EXISTS => 56, CcFilesPeer::SOUNDCLOUD_ID => 57, CcFilesPeer::SOUNDCLOUD_ERROR_CODE => 58, CcFilesPeer::SOUNDCLOUD_ERROR_MSG => 59, CcFilesPeer::SOUNDCLOUD_LINK_TO_FILE => 60, CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME => 61, CcFilesPeer::REPLAY_GAIN => 62, CcFilesPeer::OWNER_ID => 63, CcFilesPeer::CUEIN => 64, CcFilesPeer::CUEOUT => 65, CcFilesPeer::SILAN_CHECK => 66, CcFilesPeer::HIDDEN => 67, CcFilesPeer::IS_SCHEDULED => 68, CcFilesPeer::IS_PLAYLIST => 69, CcFilesPeer::FILESIZE => 70, CcFilesPeer::DESCRIPTION => 71, CcFilesPeer::DESCRIPTION => 72, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'NAME' => 1, 'MIME' => 2, 'FTYPE' => 3, 'DIRECTORY' => 4, 'FILEPATH' => 5, 'IMPORT_STATUS' => 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, 'SILAN_CHECK' => 66, 'HIDDEN' => 67, 'IS_SCHEDULED' => 68, 'IS_PLAYLIST' => 69, 'FILESIZE' => 70, 'DESCRIPTION' => 71, 'ARTWORK' => 72, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'name' => 1, 'mime' => 2, 'ftype' => 3, 'directory' => 4, 'filepath' => 5, 'import_status' => 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, 'silan_check' => 66, 'hidden' => 67, 'is_scheduled' => 68, 'is_playlist' => 69, 'filesize' => 70, 'description' => 71, 'artwork' => 72, ),
|
||||
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, 67, 68, 69, 70, 71, 72, )
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'NAME' => 1, 'MIME' => 2, 'FTYPE' => 3, 'DIRECTORY' => 4, 'FILEPATH' => 5, 'IMPORT_STATUS' => 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, 'SILAN_CHECK' => 66, 'HIDDEN' => 67, 'IS_SCHEDULED' => 68, 'IS_PLAYLIST' => 69, 'FILESIZE' => 70, 'DESCRIPTION' => 71, 'ARTWORK' => 72, 'TRACK_TYPE' => 73, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'name' => 1, 'mime' => 2, 'ftype' => 3, 'directory' => 4, 'filepath' => 5, 'import_status' => 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, 'silan_check' => 66, 'hidden' => 67, 'is_scheduled' => 68, 'is_playlist' => 69, 'filesize' => 70, 'description' => 71, 'artwork' => 72, 'track_type' => 73, ),
|
||||
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, 67, 68, 69, 70, 71, 72, 73, )
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -437,6 +440,7 @@ abstract class BaseCcFilesPeer
|
|||
$criteria->addSelectColumn(CcFilesPeer::FILESIZE);
|
||||
$criteria->addSelectColumn(CcFilesPeer::DESCRIPTION);
|
||||
$criteria->addSelectColumn(CcFilesPeer::ARTWORK);
|
||||
$criteria->addSelectColumn(CcFilesPeer::TRACK_TYPE);
|
||||
} else {
|
||||
$criteria->addSelectColumn($alias . '.id');
|
||||
$criteria->addSelectColumn($alias . '.name');
|
||||
|
@ -511,6 +515,7 @@ abstract class BaseCcFilesPeer
|
|||
$criteria->addSelectColumn($alias . '.filesize');
|
||||
$criteria->addSelectColumn($alias . '.description');
|
||||
$criteria->addSelectColumn($alias . '.artwork');
|
||||
$criteria->addSelectColumn($alias . '.track_type');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
* @method CcFilesQuery orderByDbFilesize($order = Criteria::ASC) Order by the filesize column
|
||||
* @method CcFilesQuery orderByDbDescription($order = Criteria::ASC) Order by the description column
|
||||
* @method CcFilesQuery orderByDbArtwork($order = Criteria::ASC) Order by the artwork column
|
||||
* @method CcFilesQuery orderByDbTrackType($order = Criteria::ASC) Order by the track_type column
|
||||
*
|
||||
* @method CcFilesQuery groupByDbId() Group by the id column
|
||||
* @method CcFilesQuery groupByDbName() Group by the name column
|
||||
|
@ -153,6 +154,7 @@
|
|||
* @method CcFilesQuery groupByDbFilesize() Group by the filesize column
|
||||
* @method CcFilesQuery groupByDbDescription() Group by the description column
|
||||
* @method CcFilesQuery groupByDbArtwork() Group by the artwork column
|
||||
* @method CcFilesQuery groupByDbTrackType() Group by the track_type column
|
||||
*
|
||||
* @method CcFilesQuery leftJoin($relation) Adds a LEFT JOIN clause to the query
|
||||
* @method CcFilesQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query
|
||||
|
@ -277,6 +279,7 @@
|
|||
* @method CcFiles findOneByDbFilesize(int $filesize) Return the first CcFiles filtered by the filesize column
|
||||
* @method CcFiles findOneByDbDescription(string $description) Return the first CcFiles filtered by the description column
|
||||
* @method CcFiles findOneByDbArtwork(string $artwork) Return the first CcFiles filtered by the artwork column
|
||||
* @method CcFiles findOneByDbTrackType(string $track_type) Return the first CcFiles filtered by the track_type column
|
||||
*
|
||||
* @method array findByDbId(int $id) Return CcFiles objects filtered by the id column
|
||||
* @method array findByDbName(string $name) Return CcFiles objects filtered by the name column
|
||||
|
@ -351,6 +354,7 @@
|
|||
* @method array findByDbFilesize(int $filesize) Return CcFiles objects filtered by the filesize column
|
||||
* @method array findByDbDescription(string $description) Return CcFiles objects filtered by the description column
|
||||
* @method array findByDbArtwork(string $artwork) Return CcFiles objects filtered by the artwork column
|
||||
* @method array findByDbTrackType(string $track_type) Return CcFiles objects filtered by the track_type column
|
||||
*
|
||||
* @package propel.generator.airtime.om
|
||||
*/
|
||||
|
@ -458,7 +462,7 @@ abstract class BaseCcFilesQuery extends ModelCriteria
|
|||
*/
|
||||
protected function findPkSimple($key, $con)
|
||||
{
|
||||
$sql = 'SELECT "id", "name", "mime", "ftype", "directory", "filepath", "import_status", "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", "silan_check", "hidden", "is_scheduled", "is_playlist", "filesize", "description", "artwork" FROM "cc_files" WHERE "id" = :p0';
|
||||
$sql = 'SELECT "id", "name", "mime", "ftype", "directory", "filepath", "import_status", "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", "silan_check", "hidden", "is_scheduled", "is_playlist", "filesize", "description", "artwork", "track_type" FROM "cc_files" WHERE "id" = :p0';
|
||||
try {
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->bindValue(':p0', $key, PDO::PARAM_INT);
|
||||
|
@ -1970,6 +1974,35 @@ abstract class BaseCcFilesQuery extends ModelCriteria
|
|||
return $this->addUsingAlias(CcFilesPeer::ARTWORK, $dbArtwork, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the track_type column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByDbTrackType('fooValue'); // WHERE track_type = 'fooValue'
|
||||
* $query->filterByDbTrackType('%fooValue%'); // WHERE track_type LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $dbTrackType 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 filterByDbTrackType($dbTrackType = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($dbTrackType)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $dbTrackType)) {
|
||||
$dbTrackType = str_replace('*', '%', $dbTrackType);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(CcFilesPeer::TRACK_TYPE, $dbTrackType, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the artist_url column
|
||||
*
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,780 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Base static class for performing query and update operations on the 'cc_track_types' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
* @package propel.generator.airtime.om
|
||||
*/
|
||||
abstract class BaseCcTracktypesPeer
|
||||
{
|
||||
|
||||
/** the default database name for this class */
|
||||
const DATABASE_NAME = 'airtime';
|
||||
|
||||
/** the table name for this class */
|
||||
const TABLE_NAME = 'cc_track_types';
|
||||
|
||||
/** the related Propel class for this table */
|
||||
const OM_CLASS = 'CcTracktypes';
|
||||
|
||||
/** the related TableMap class for this table */
|
||||
const TM_CLASS = 'CcTracktypesTableMap';
|
||||
|
||||
/** The total number of columns. */
|
||||
const NUM_COLUMNS = 5;
|
||||
|
||||
/** The number of lazy-loaded columns. */
|
||||
const NUM_LAZY_LOAD_COLUMNS = 0;
|
||||
|
||||
/** The number of columns to hydrate (NUM_COLUMNS - NUM_LAZY_LOAD_COLUMNS) */
|
||||
const NUM_HYDRATE_COLUMNS = 5;
|
||||
|
||||
/** the column name for the id field */
|
||||
const ID = 'cc_track_types.id';
|
||||
|
||||
/** the column name for the code field */
|
||||
const CODE = 'cc_track_types.code';
|
||||
|
||||
/** the column name for the visibility field */
|
||||
const VISIBILITY = 'cc_track_types.visibility';
|
||||
|
||||
/** the column name for the type_name field */
|
||||
const TYPE_NAME = 'cc_track_types.type_name';
|
||||
|
||||
/** the column name for the description field */
|
||||
const DESCRIPTION = 'cc_track_types.description';
|
||||
|
||||
/** The default string format for model objects of the related table **/
|
||||
const DEFAULT_STRING_FORMAT = 'YAML';
|
||||
|
||||
/**
|
||||
* An identity map to hold any loaded instances of CcTracktypes objects.
|
||||
* This must be public so that other peer classes can access this when hydrating from JOIN
|
||||
* queries.
|
||||
* @var array CcTracktypes[]
|
||||
*/
|
||||
public static $instances = array();
|
||||
|
||||
/**
|
||||
* holds an array of fieldnames
|
||||
*
|
||||
* first dimension keys are the type constants
|
||||
* e.g. CcTracktypesPeer::$fieldNames[CcTracktypesPeer::TYPE_PHPNAME][0] = 'Id'
|
||||
*/
|
||||
protected static $fieldNames = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbCode', 'DbVisibility', 'DbTypeName', 'DbDescription', ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbCode', 'dbVisibility', 'dbTypeName', 'dbDescription', ),
|
||||
BasePeer::TYPE_COLNAME => array (CcTracktypesPeer::ID, CcTracktypesPeer::CODE, CcTracktypesPeer::VISIBILITY, CcTracktypesPeer::TYPE_NAME, CcTracktypesPeer::DESCRIPTION, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'CODE', 'VISIBILITY', 'TYPE_NAME', 'DESCRIPTION', ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id', 'code', 'visibility', 'type_name', 'description', ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, )
|
||||
);
|
||||
|
||||
/**
|
||||
* holds an array of keys for quick access to the fieldnames array
|
||||
*
|
||||
* first dimension keys are the type constants
|
||||
* e.g. CcTracktypesPeer::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
||||
*/
|
||||
protected static $fieldKeys = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbCode' => 1, 'DbVisibility' => 2, 'DbTypeName' => 3, 'DbDescription' => 4, ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbCode' => 1, 'dbVisibility' => 2, 'dbTypeName' => 3, 'dbDescription' => 4, ),
|
||||
BasePeer::TYPE_COLNAME => array (CcTracktypesPeer::ID => 0, CcTracktypesPeer::CODE => 1, CcTracktypesPeer::VISIBILITY => 2, CcTracktypesPeer::TYPE_NAME => 3, CcTracktypesPeer::DESCRIPTION => 4, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'CODE' => 1, 'VISIBILITY' => 2, 'TYPE_NAME' => 3, 'DESCRIPTION' => 4, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'code' => 1, 'visibility' => 2, 'type_name' => 3, 'description' => 4, ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, )
|
||||
);
|
||||
|
||||
/**
|
||||
* Translates a fieldname to another type
|
||||
*
|
||||
* @param string $name field name
|
||||
* @param string $fromType One of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME
|
||||
* BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM
|
||||
* @param string $toType One of the class type constants
|
||||
* @return string translated name of the field.
|
||||
* @throws PropelException - if the specified name could not be found in the fieldname mappings.
|
||||
*/
|
||||
public static function translateFieldName($name, $fromType, $toType)
|
||||
{
|
||||
$toNames = CcTracktypesPeer::getFieldNames($toType);
|
||||
$key = isset(CcTracktypesPeer::$fieldKeys[$fromType][$name]) ? CcTracktypesPeer::$fieldKeys[$fromType][$name] : null;
|
||||
if ($key === null) {
|
||||
throw new PropelException("'$name' could not be found in the field names of type '$fromType'. These are: " . print_r(CcTracktypesPeer::$fieldKeys[$fromType], true));
|
||||
}
|
||||
|
||||
return $toNames[$key];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array of field names.
|
||||
*
|
||||
* @param string $type The type of fieldnames to return:
|
||||
* One of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME
|
||||
* BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM
|
||||
* @return array A list of field names
|
||||
* @throws PropelException - if the type is not valid.
|
||||
*/
|
||||
public static function getFieldNames($type = BasePeer::TYPE_PHPNAME)
|
||||
{
|
||||
if (!array_key_exists($type, CcTracktypesPeer::$fieldNames)) {
|
||||
throw new PropelException('Method getFieldNames() expects the parameter $type to be one of the class constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME, BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM. ' . $type . ' was given.');
|
||||
}
|
||||
|
||||
return CcTracktypesPeer::$fieldNames[$type];
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method which changes table.column to alias.column.
|
||||
*
|
||||
* Using this method you can maintain SQL abstraction while using column aliases.
|
||||
* <code>
|
||||
* $c->addAlias("alias1", TablePeer::TABLE_NAME);
|
||||
* $c->addJoin(TablePeer::alias("alias1", TablePeer::PRIMARY_KEY_COLUMN), TablePeer::PRIMARY_KEY_COLUMN);
|
||||
* </code>
|
||||
* @param string $alias The alias for the current table.
|
||||
* @param string $column The column name for current table. (i.e. CcTracktypesPeer::COLUMN_NAME).
|
||||
* @return string
|
||||
*/
|
||||
public static function alias($alias, $column)
|
||||
{
|
||||
return str_replace(CcTracktypesPeer::TABLE_NAME.'.', $alias.'.', $column);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add all the columns needed to create a new object.
|
||||
*
|
||||
* Note: any columns that were marked with lazyLoad="true" in the
|
||||
* XML schema will not be added to the select list and only loaded
|
||||
* on demand.
|
||||
*
|
||||
* @param Criteria $criteria object containing the columns to add.
|
||||
* @param string $alias optional table alias
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function addSelectColumns(Criteria $criteria, $alias = null)
|
||||
{
|
||||
if (null === $alias) {
|
||||
$criteria->addSelectColumn(CcTracktypesPeer::ID);
|
||||
$criteria->addSelectColumn(CcTracktypesPeer::CODE);
|
||||
$criteria->addSelectColumn(CcTracktypesPeer::VISIBILITY);
|
||||
$criteria->addSelectColumn(CcTracktypesPeer::TYPE_NAME);
|
||||
$criteria->addSelectColumn(CcTracktypesPeer::DESCRIPTION);
|
||||
} else {
|
||||
$criteria->addSelectColumn($alias . '.id');
|
||||
$criteria->addSelectColumn($alias . '.code');
|
||||
$criteria->addSelectColumn($alias . '.visibility');
|
||||
$criteria->addSelectColumn($alias . '.type_name');
|
||||
$criteria->addSelectColumn($alias . '.description');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of rows matching criteria.
|
||||
*
|
||||
* @param Criteria $criteria
|
||||
* @param boolean $distinct Whether to select only distinct columns; deprecated: use Criteria->setDistinct() instead.
|
||||
* @param PropelPDO $con
|
||||
* @return int Number of matching rows.
|
||||
*/
|
||||
public static function doCount(Criteria $criteria, $distinct = false, PropelPDO $con = null)
|
||||
{
|
||||
// we may modify criteria, so copy it first
|
||||
$criteria = clone $criteria;
|
||||
|
||||
// We need to set the primary table name, since in the case that there are no WHERE columns
|
||||
// it will be impossible for the BasePeer::createSelectSql() method to determine which
|
||||
// tables go into the FROM clause.
|
||||
$criteria->setPrimaryTableName(CcTracktypesPeer::TABLE_NAME);
|
||||
|
||||
if ($distinct && !in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
|
||||
$criteria->setDistinct();
|
||||
}
|
||||
|
||||
if (!$criteria->hasSelectClause()) {
|
||||
CcTracktypesPeer::addSelectColumns($criteria);
|
||||
}
|
||||
|
||||
$criteria->clearOrderByColumns(); // ORDER BY won't ever affect the count
|
||||
$criteria->setDbName(CcTracktypesPeer::DATABASE_NAME); // Set the correct dbName
|
||||
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_READ);
|
||||
}
|
||||
// BasePeer returns a PDOStatement
|
||||
$stmt = BasePeer::doCount($criteria, $con);
|
||||
|
||||
if ($row = $stmt->fetch(PDO::FETCH_NUM)) {
|
||||
$count = (int) $row[0];
|
||||
} else {
|
||||
$count = 0; // no rows returned; we infer that means 0 matches.
|
||||
}
|
||||
$stmt->closeCursor();
|
||||
|
||||
return $count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Selects one object from the DB.
|
||||
*
|
||||
* @param Criteria $criteria object used to create the SELECT statement.
|
||||
* @param PropelPDO $con
|
||||
* @return CcTracktypes
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function doSelectOne(Criteria $criteria, PropelPDO $con = null)
|
||||
{
|
||||
$critcopy = clone $criteria;
|
||||
$critcopy->setLimit(1);
|
||||
$objects = CcTracktypesPeer::doSelect($critcopy, $con);
|
||||
if ($objects) {
|
||||
return $objects[0];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Selects several row from the DB.
|
||||
*
|
||||
* @param Criteria $criteria The Criteria object used to build the SELECT statement.
|
||||
* @param PropelPDO $con
|
||||
* @return array Array of selected Objects
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function doSelect(Criteria $criteria, PropelPDO $con = null)
|
||||
{
|
||||
return CcTracktypesPeer::populateObjects(CcTracktypesPeer::doSelectStmt($criteria, $con));
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the Criteria object and uses the parent doSelect() method to execute a PDOStatement.
|
||||
*
|
||||
* Use this method directly if you want to work with an executed statement directly (for example
|
||||
* to perform your own object hydration).
|
||||
*
|
||||
* @param Criteria $criteria The Criteria object used to build the SELECT statement.
|
||||
* @param PropelPDO $con The connection to use
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
* @return PDOStatement The executed PDOStatement object.
|
||||
* @see BasePeer::doSelect()
|
||||
*/
|
||||
public static function doSelectStmt(Criteria $criteria, PropelPDO $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_READ);
|
||||
}
|
||||
|
||||
if (!$criteria->hasSelectClause()) {
|
||||
$criteria = clone $criteria;
|
||||
CcTracktypesPeer::addSelectColumns($criteria);
|
||||
}
|
||||
|
||||
// Set the correct dbName
|
||||
$criteria->setDbName(CcTracktypesPeer::DATABASE_NAME);
|
||||
|
||||
// BasePeer returns a PDOStatement
|
||||
return BasePeer::doSelect($criteria, $con);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an object to the instance pool.
|
||||
*
|
||||
* Propel keeps cached copies of objects in an instance pool when they are retrieved
|
||||
* from the database. In some cases -- especially when you override doSelect*()
|
||||
* methods in your stub classes -- you may need to explicitly add objects
|
||||
* to the cache in order to ensure that the same objects are always returned by doSelect*()
|
||||
* and retrieveByPK*() calls.
|
||||
*
|
||||
* @param CcTracktypes $obj A CcTracktypes object.
|
||||
* @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
|
||||
*/
|
||||
public static function addInstanceToPool($obj, $key = null)
|
||||
{
|
||||
if (Propel::isInstancePoolingEnabled()) {
|
||||
if ($key === null) {
|
||||
$key = (string) $obj->getDbId();
|
||||
} // if key === null
|
||||
CcTracktypesPeer::$instances[$key] = $obj;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes an object from the instance pool.
|
||||
*
|
||||
* Propel keeps cached copies of objects in an instance pool when they are retrieved
|
||||
* from the database. In some cases -- especially when you override doDelete
|
||||
* methods in your stub classes -- you may need to explicitly remove objects
|
||||
* from the cache in order to prevent returning objects that no longer exist.
|
||||
*
|
||||
* @param mixed $value A CcTracktypes object or a primary key value.
|
||||
*
|
||||
* @return void
|
||||
* @throws PropelException - if the value is invalid.
|
||||
*/
|
||||
public static function removeInstanceFromPool($value)
|
||||
{
|
||||
if (Propel::isInstancePoolingEnabled() && $value !== null) {
|
||||
if (is_object($value) && $value instanceof CcTracktypes) {
|
||||
$key = (string) $value->getDbId();
|
||||
} elseif (is_scalar($value)) {
|
||||
// assume we've been passed a primary key
|
||||
$key = (string) $value;
|
||||
} else {
|
||||
$e = new PropelException("Invalid value passed to removeInstanceFromPool(). Expected primary key or CcTracktypes object; got " . (is_object($value) ? get_class($value) . ' object.' : var_export($value,true)));
|
||||
throw $e;
|
||||
}
|
||||
|
||||
unset(CcTracktypesPeer::$instances[$key]);
|
||||
}
|
||||
} // removeInstanceFromPool()
|
||||
|
||||
/**
|
||||
* Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table.
|
||||
*
|
||||
* For tables with a single-column primary key, that simple pkey value will be returned. For tables with
|
||||
* a multi-column primary key, a serialize()d version of the primary key will be returned.
|
||||
*
|
||||
* @param string $key The key (@see getPrimaryKeyHash()) for this instance.
|
||||
* @return CcTracktypes Found object or null if 1) no instance exists for specified key or 2) instance pooling has been disabled.
|
||||
* @see getPrimaryKeyHash()
|
||||
*/
|
||||
public static function getInstanceFromPool($key)
|
||||
{
|
||||
if (Propel::isInstancePoolingEnabled()) {
|
||||
if (isset(CcTracktypesPeer::$instances[$key])) {
|
||||
return CcTracktypesPeer::$instances[$key];
|
||||
}
|
||||
}
|
||||
|
||||
return null; // just to be explicit
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear the instance pool.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function clearInstancePool($and_clear_all_references = false)
|
||||
{
|
||||
if ($and_clear_all_references) {
|
||||
foreach (CcTracktypesPeer::$instances as $instance) {
|
||||
$instance->clearAllReferences(true);
|
||||
}
|
||||
}
|
||||
CcTracktypesPeer::$instances = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to invalidate the instance pool of all tables related to cc_track_types
|
||||
* by a foreign key with ON DELETE CASCADE
|
||||
*/
|
||||
public static function clearRelatedInstancePool()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table.
|
||||
*
|
||||
* For tables with a single-column primary key, that simple pkey value will be returned. For tables with
|
||||
* a multi-column primary key, a serialize()d version of the primary key will be returned.
|
||||
*
|
||||
* @param array $row PropelPDO resultset row.
|
||||
* @param int $startcol The 0-based offset for reading from the resultset row.
|
||||
* @return string A string version of PK or null if the components of primary key in result array are all null.
|
||||
*/
|
||||
public static function getPrimaryKeyHashFromRow($row, $startcol = 0)
|
||||
{
|
||||
// If the PK cannot be derived from the row, return null.
|
||||
if ($row[$startcol] === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (string) $row[$startcol];
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the primary key from the DB resultset row
|
||||
* For tables with a single-column primary key, that simple pkey value will be returned. For tables with
|
||||
* a multi-column primary key, an array of the primary key columns will be returned.
|
||||
*
|
||||
* @param array $row PropelPDO resultset row.
|
||||
* @param int $startcol The 0-based offset for reading from the resultset row.
|
||||
* @return mixed The primary key of the row
|
||||
*/
|
||||
public static function getPrimaryKeyFromRow($row, $startcol = 0)
|
||||
{
|
||||
|
||||
return (int) $row[$startcol];
|
||||
}
|
||||
|
||||
/**
|
||||
* The returned array will contain objects of the default type or
|
||||
* objects that inherit from the default.
|
||||
*
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function populateObjects(PDOStatement $stmt)
|
||||
{
|
||||
$results = array();
|
||||
|
||||
// set the class once to avoid overhead in the loop
|
||||
$cls = CcTracktypesPeer::getOMClass();
|
||||
// populate the object(s)
|
||||
while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
|
||||
$key = CcTracktypesPeer::getPrimaryKeyHashFromRow($row, 0);
|
||||
if (null !== ($obj = CcTracktypesPeer::getInstanceFromPool($key))) {
|
||||
// We no longer rehydrate the object, since this can cause data loss.
|
||||
// See http://www.propelorm.org/ticket/509
|
||||
// $obj->hydrate($row, 0, true); // rehydrate
|
||||
$results[] = $obj;
|
||||
} else {
|
||||
$obj = new $cls();
|
||||
$obj->hydrate($row);
|
||||
$results[] = $obj;
|
||||
CcTracktypesPeer::addInstanceToPool($obj, $key);
|
||||
} // if key exists
|
||||
}
|
||||
$stmt->closeCursor();
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
/**
|
||||
* Populates an object of the default type or an object that inherit from the default.
|
||||
*
|
||||
* @param array $row PropelPDO resultset row.
|
||||
* @param int $startcol The 0-based offset for reading from the resultset row.
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
* @return array (CcTracktypes object, last column rank)
|
||||
*/
|
||||
public static function populateObject($row, $startcol = 0)
|
||||
{
|
||||
$key = CcTracktypesPeer::getPrimaryKeyHashFromRow($row, $startcol);
|
||||
if (null !== ($obj = CcTracktypesPeer::getInstanceFromPool($key))) {
|
||||
// We no longer rehydrate the object, since this can cause data loss.
|
||||
// See http://www.propelorm.org/ticket/509
|
||||
// $obj->hydrate($row, $startcol, true); // rehydrate
|
||||
$col = $startcol + CcTracktypesPeer::NUM_HYDRATE_COLUMNS;
|
||||
} else {
|
||||
$cls = CcTracktypesPeer::OM_CLASS;
|
||||
$obj = new $cls();
|
||||
$col = $obj->hydrate($row, $startcol);
|
||||
CcTracktypesPeer::addInstanceToPool($obj, $key);
|
||||
}
|
||||
|
||||
return array($obj, $col);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the TableMap related to this peer.
|
||||
* This method is not needed for general use but a specific application could have a need.
|
||||
* @return TableMap
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function getTableMap()
|
||||
{
|
||||
return Propel::getDatabaseMap(CcTracktypesPeer::DATABASE_NAME)->getTable(CcTracktypesPeer::TABLE_NAME);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a TableMap instance to the database for this peer class.
|
||||
*/
|
||||
public static function buildTableMap()
|
||||
{
|
||||
$dbMap = Propel::getDatabaseMap(BaseCcTracktypesPeer::DATABASE_NAME);
|
||||
if (!$dbMap->hasTable(BaseCcTracktypesPeer::TABLE_NAME)) {
|
||||
$dbMap->addTableObject(new \CcTracktypesTableMap());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The class that the Peer will make instances of.
|
||||
*
|
||||
*
|
||||
* @return string ClassName
|
||||
*/
|
||||
public static function getOMClass($row = 0, $colnum = 0)
|
||||
{
|
||||
return CcTracktypesPeer::OM_CLASS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs an INSERT on the database, given a CcTracktypes or Criteria object.
|
||||
*
|
||||
* @param mixed $values Criteria or CcTracktypes object containing data that is used to create the INSERT statement.
|
||||
* @param PropelPDO $con the PropelPDO connection to use
|
||||
* @return mixed The new primary key.
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function doInsert($values, PropelPDO $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
|
||||
}
|
||||
|
||||
if ($values instanceof Criteria) {
|
||||
$criteria = clone $values; // rename for clarity
|
||||
} else {
|
||||
$criteria = $values->buildCriteria(); // build Criteria from CcTracktypes object
|
||||
}
|
||||
|
||||
if ($criteria->containsKey(CcTracktypesPeer::ID) && $criteria->keyContainsValue(CcTracktypesPeer::ID) ) {
|
||||
throw new PropelException('Cannot insert a value for auto-increment primary key ('.CcTracktypesPeer::ID.')');
|
||||
}
|
||||
|
||||
|
||||
// Set the correct dbName
|
||||
$criteria->setDbName(CcTracktypesPeer::DATABASE_NAME);
|
||||
|
||||
try {
|
||||
// use transaction because $criteria could contain info
|
||||
// for more than one table (I guess, conceivably)
|
||||
$con->beginTransaction();
|
||||
$pk = BasePeer::doInsert($criteria, $con);
|
||||
$con->commit();
|
||||
} catch (Exception $e) {
|
||||
$con->rollBack();
|
||||
throw $e;
|
||||
}
|
||||
|
||||
return $pk;
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs an UPDATE on the database, given a CcTracktypes or Criteria object.
|
||||
*
|
||||
* @param mixed $values Criteria or CcTracktypes object containing data that is used to create the UPDATE statement.
|
||||
* @param PropelPDO $con The connection to use (specify PropelPDO connection object to exert more control over transactions).
|
||||
* @return int The number of affected rows (if supported by underlying database driver).
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function doUpdate($values, PropelPDO $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
|
||||
}
|
||||
|
||||
$selectCriteria = new Criteria(CcTracktypesPeer::DATABASE_NAME);
|
||||
|
||||
if ($values instanceof Criteria) {
|
||||
$criteria = clone $values; // rename for clarity
|
||||
|
||||
$comparison = $criteria->getComparison(CcTracktypesPeer::ID);
|
||||
$value = $criteria->remove(CcTracktypesPeer::ID);
|
||||
if ($value) {
|
||||
$selectCriteria->add(CcTracktypesPeer::ID, $value, $comparison);
|
||||
} else {
|
||||
$selectCriteria->setPrimaryTableName(CcTracktypesPeer::TABLE_NAME);
|
||||
}
|
||||
|
||||
} else { // $values is CcTracktypes object
|
||||
$criteria = $values->buildCriteria(); // gets full criteria
|
||||
$selectCriteria = $values->buildPkeyCriteria(); // gets criteria w/ primary key(s)
|
||||
}
|
||||
|
||||
// set the correct dbName
|
||||
$criteria->setDbName(CcTracktypesPeer::DATABASE_NAME);
|
||||
|
||||
return BasePeer::doUpdate($selectCriteria, $criteria, $con);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes all rows from the cc_track_types table.
|
||||
*
|
||||
* @param PropelPDO $con the connection to use
|
||||
* @return int The number of affected rows (if supported by underlying database driver).
|
||||
* @throws PropelException
|
||||
*/
|
||||
public static function doDeleteAll(PropelPDO $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
|
||||
}
|
||||
$affectedRows = 0; // initialize var to track total num of affected rows
|
||||
try {
|
||||
// use transaction because $criteria could contain info
|
||||
// for more than one table or we could emulating ON DELETE CASCADE, etc.
|
||||
$con->beginTransaction();
|
||||
$affectedRows += BasePeer::doDeleteAll(CcTracktypesPeer::TABLE_NAME, $con, CcTracktypesPeer::DATABASE_NAME);
|
||||
// Because this db requires some delete cascade/set null emulation, we have to
|
||||
// clear the cached instance *after* the emulation has happened (since
|
||||
// instances get re-added by the select statement contained therein).
|
||||
CcTracktypesPeer::clearInstancePool();
|
||||
CcTracktypesPeer::clearRelatedInstancePool();
|
||||
$con->commit();
|
||||
|
||||
return $affectedRows;
|
||||
} catch (Exception $e) {
|
||||
$con->rollBack();
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs a DELETE on the database, given a CcTracktypes or Criteria object OR a primary key value.
|
||||
*
|
||||
* @param mixed $values Criteria or CcTracktypes object or primary key or array of primary keys
|
||||
* which is used to create the DELETE statement
|
||||
* @param PropelPDO $con the connection to use
|
||||
* @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows
|
||||
* if supported by native driver or if emulated using Propel.
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function doDelete($values, PropelPDO $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
|
||||
}
|
||||
|
||||
if ($values instanceof Criteria) {
|
||||
// invalidate the cache for all objects of this type, since we have no
|
||||
// way of knowing (without running a query) what objects should be invalidated
|
||||
// from the cache based on this Criteria.
|
||||
CcTracktypesPeer::clearInstancePool();
|
||||
// rename for clarity
|
||||
$criteria = clone $values;
|
||||
} elseif ($values instanceof CcTracktypes) { // it's a model object
|
||||
// invalidate the cache for this single object
|
||||
CcTracktypesPeer::removeInstanceFromPool($values);
|
||||
// create criteria based on pk values
|
||||
$criteria = $values->buildPkeyCriteria();
|
||||
} else { // it's a primary key, or an array of pks
|
||||
$criteria = new Criteria(CcTracktypesPeer::DATABASE_NAME);
|
||||
$criteria->add(CcTracktypesPeer::ID, (array) $values, Criteria::IN);
|
||||
// invalidate the cache for this object(s)
|
||||
foreach ((array) $values as $singleval) {
|
||||
CcTracktypesPeer::removeInstanceFromPool($singleval);
|
||||
}
|
||||
}
|
||||
|
||||
// Set the correct dbName
|
||||
$criteria->setDbName(CcTracktypesPeer::DATABASE_NAME);
|
||||
|
||||
$affectedRows = 0; // initialize var to track total num of affected rows
|
||||
|
||||
try {
|
||||
// use transaction because $criteria could contain info
|
||||
// for more than one table or we could emulating ON DELETE CASCADE, etc.
|
||||
$con->beginTransaction();
|
||||
|
||||
$affectedRows += BasePeer::doDelete($criteria, $con);
|
||||
CcTracktypesPeer::clearRelatedInstancePool();
|
||||
$con->commit();
|
||||
|
||||
return $affectedRows;
|
||||
} catch (Exception $e) {
|
||||
$con->rollBack();
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates all modified columns of given CcTracktypes object.
|
||||
* If parameter $columns is either a single column name or an array of column names
|
||||
* than only those columns are validated.
|
||||
*
|
||||
* NOTICE: This does not apply to primary or foreign keys for now.
|
||||
*
|
||||
* @param CcTracktypes $obj The object to validate.
|
||||
* @param mixed $cols Column name or array of column names.
|
||||
*
|
||||
* @return mixed TRUE if all columns are valid or the error message of the first invalid column.
|
||||
*/
|
||||
public static function doValidate($obj, $cols = null)
|
||||
{
|
||||
$columns = array();
|
||||
|
||||
if ($cols) {
|
||||
$dbMap = Propel::getDatabaseMap(CcTracktypesPeer::DATABASE_NAME);
|
||||
$tableMap = $dbMap->getTable(CcTracktypesPeer::TABLE_NAME);
|
||||
|
||||
if (! is_array($cols)) {
|
||||
$cols = array($cols);
|
||||
}
|
||||
|
||||
foreach ($cols as $colName) {
|
||||
if ($tableMap->hasColumn($colName)) {
|
||||
$get = 'get' . $tableMap->getColumn($colName)->getPhpName();
|
||||
$columns[$colName] = $obj->$get();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
return BasePeer::doValidate(CcTracktypesPeer::DATABASE_NAME, CcTracktypesPeer::TABLE_NAME, $columns);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a single object by pkey.
|
||||
*
|
||||
* @param int $pk the primary key.
|
||||
* @param PropelPDO $con the connection to use
|
||||
* @return CcTracktypes
|
||||
*/
|
||||
public static function retrieveByPK($pk, PropelPDO $con = null)
|
||||
{
|
||||
|
||||
if (null !== ($obj = CcTracktypesPeer::getInstanceFromPool((string) $pk))) {
|
||||
return $obj;
|
||||
}
|
||||
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_READ);
|
||||
}
|
||||
|
||||
$criteria = new Criteria(CcTracktypesPeer::DATABASE_NAME);
|
||||
$criteria->add(CcTracktypesPeer::ID, $pk);
|
||||
|
||||
$v = CcTracktypesPeer::doSelect($criteria, $con);
|
||||
|
||||
return !empty($v) > 0 ? $v[0] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve multiple objects by pkey.
|
||||
*
|
||||
* @param array $pks List of primary keys
|
||||
* @param PropelPDO $con the connection to use
|
||||
* @return CcTracktypes[]
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function retrieveByPKs($pks, PropelPDO $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_READ);
|
||||
}
|
||||
|
||||
$objs = null;
|
||||
if (empty($pks)) {
|
||||
$objs = array();
|
||||
} else {
|
||||
$criteria = new Criteria(CcTracktypesPeer::DATABASE_NAME);
|
||||
$criteria->add(CcTracktypesPeer::ID, $pks, Criteria::IN);
|
||||
$objs = CcTracktypesPeer::doSelect($criteria, $con);
|
||||
}
|
||||
|
||||
return $objs;
|
||||
}
|
||||
|
||||
} // BaseCcTracktypesPeer
|
||||
|
||||
// This is the static code needed to register the TableMap for this table with the main Propel class.
|
||||
//
|
||||
BaseCcTracktypesPeer::buildTableMap();
|
||||
|
|
@ -0,0 +1,407 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Base class that represents a query for the 'cc_track_types' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
* @method CcTracktypesQuery orderByDbId($order = Criteria::ASC) Order by the id column
|
||||
* @method CcTracktypesQuery orderByDbCOde($order = Criteria::ASC) Order by the code column
|
||||
* @method CcTracktypesQuery orderByDbVisibility($order = Criteria::ASC) Order by the visibility column
|
||||
* @method CcTracktypesQuery orderByDbTypeName($order = Criteria::ASC) Order by the type_name column
|
||||
* @method CcTracktypesQuery orderByDbDescription($order = Criteria::ASC) Order by the description column
|
||||
|
||||
* @method CcTracktypesQuery groupByDbId() Group by the id column
|
||||
* @method CcTracktypesQuery groupByDbCOde() Group by the code column
|
||||
* @method CcTracktypesQuery groupByDbVisibility() Group by the visibility column
|
||||
* @method CcTracktypesQuery groupByDbTypeName() Group by the type_name column
|
||||
* @method CcTracktypesQuery groupByDbDescription() Group by the description column
|
||||
|
||||
* @method CcTracktypesQuery leftJoin($relation) Adds a LEFT JOIN clause to the query
|
||||
* @method CcTracktypesQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query
|
||||
* @method CcTracktypesQuery innerJoin($relation) Adds a INNER JOIN clause to the query
|
||||
*
|
||||
* @method CcTracktypes findOne(PropelPDO $con = null) Return the first CcTracktypes matching the query
|
||||
* @method CcTracktypes findOneOrCreate(PropelPDO $con = null) Return the first CcTracktypes matching the query, or a new CcTracktypes object populated from the query conditions when no match is found
|
||||
*
|
||||
* @method CcTracktypes findOneByDbCode(string $code) Return the first CcTracktypes filtered by the code column
|
||||
* @method CcTracktypes findOneByDbVisibility(string $visibility) Return the first CcTracktypes filtered by the visibility column
|
||||
* @method CcTracktypes findOneByDbTypeName(string $type_name) Return the first CcTracktypes filtered by the type_name column
|
||||
* @method CcTracktypes findOneByDbDescription(string $description) Return the first CcTracktypes filtered by the description column
|
||||
|
||||
* @method array findByDbId(int $id) Return CcTracktypes objects filtered by the id column
|
||||
* @method array findByDbCode(string $code) Return CcTracktypes objects filtered by the code column
|
||||
* @method array findByDbVisibility(string $visibility) Return CcTracktypes objects filtered by the visibility column
|
||||
* @method array findByDbTypeName(string $type_name) Return CcTracktypes objects filtered by the type_name column
|
||||
* @method array findByDbDescription(string $description) Return CcTracktypes objects filtered by the description column
|
||||
|
||||
* @package propel.generator.airtime.om
|
||||
*/
|
||||
abstract class BaseCcTracktypesQuery extends ModelCriteria
|
||||
{
|
||||
/**
|
||||
* Initializes internal state of BaseCcTracktypesQuery object.
|
||||
*
|
||||
* @param string $dbName The dabase name
|
||||
* @param string $modelName The phpName of a model, e.g. 'Book'
|
||||
* @param string $modelAlias The alias for the model in this query, e.g. 'b'
|
||||
*/
|
||||
public function __construct($dbName = null, $modelName = null, $modelAlias = null)
|
||||
{
|
||||
if (null === $dbName) {
|
||||
$dbName = 'airtime';
|
||||
}
|
||||
if (null === $modelName) {
|
||||
$modelName = 'CcTracktypes';
|
||||
}
|
||||
parent::__construct($dbName, $modelName, $modelAlias);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a new CcTracktypesQuery object.
|
||||
*
|
||||
* @param string $modelAlias The alias of a model in the query
|
||||
* @param CcTracktypesQuery|Criteria $criteria Optional Criteria to build the query from
|
||||
*
|
||||
* @return CcTracktypesQuery
|
||||
*/
|
||||
public static function create($modelAlias = null, $criteria = null)
|
||||
{
|
||||
if ($criteria instanceof CcTracktypesQuery) {
|
||||
return $criteria;
|
||||
}
|
||||
$query = new CcTracktypesQuery(null, null, $modelAlias);
|
||||
|
||||
if ($criteria instanceof Criteria) {
|
||||
$query->mergeWith($criteria);
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find object by primary key.
|
||||
* Propel uses the instance pool to skip the database if the object exists.
|
||||
* Go fast if the query is untouched.
|
||||
*
|
||||
* <code>
|
||||
* $obj = $c->findPk(12, $con);
|
||||
* </code>
|
||||
*
|
||||
* @param mixed $key Primary key to use for the query
|
||||
* @param PropelPDO $con an optional connection object
|
||||
*
|
||||
* @return CcTracktypes|CcTracktypes[]|mixed the result, formatted by the current formatter
|
||||
*/
|
||||
public function findPk($key, $con = null)
|
||||
{
|
||||
if ($key === null) {
|
||||
return null;
|
||||
}
|
||||
if ((null !== ($obj = CcTracktypesPeer::getInstanceFromPool((string) $key))) && !$this->formatter) {
|
||||
// the object is already in the instance pool
|
||||
return $obj;
|
||||
}
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_READ);
|
||||
}
|
||||
$this->basePreSelect($con);
|
||||
if ($this->formatter || $this->modelAlias || $this->with || $this->select
|
||||
|| $this->selectColumns || $this->asColumns || $this->selectModifiers
|
||||
|| $this->map || $this->having || $this->joins) {
|
||||
return $this->findPkComplex($key, $con);
|
||||
} else {
|
||||
return $this->findPkSimple($key, $con);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Alias of findPk to use instance pooling
|
||||
*
|
||||
* @param mixed $key Primary key to use for the query
|
||||
* @param PropelPDO $con A connection object
|
||||
*
|
||||
* @return CcTracktypes A model object, or null if the key is not found
|
||||
* @throws PropelException
|
||||
*/
|
||||
public function findOneByDbId($key, $con = null)
|
||||
{
|
||||
return $this->findPk($key, $con);
|
||||
}
|
||||
|
||||
/**
|
||||
* Find object by primary key using raw SQL to go fast.
|
||||
* Bypass doSelect() and the object formatter by using generated code.
|
||||
*
|
||||
* @param mixed $key Primary key to use for the query
|
||||
* @param PropelPDO $con A connection object
|
||||
*
|
||||
* @return CcTracktypes A model object, or null if the key is not found
|
||||
* @throws PropelException
|
||||
*/
|
||||
protected function findPkSimple($key, $con)
|
||||
{
|
||||
$sql = 'SELECT "id", "code", "visibility", "type_name", "description" FROM "cc_track_types" WHERE "id" = :p0';
|
||||
try {
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->bindValue(':p0', $key, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
} catch (Exception $e) {
|
||||
Propel::log($e->getMessage(), Propel::LOG_ERR);
|
||||
throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), $e);
|
||||
}
|
||||
$obj = null;
|
||||
if ($row = $stmt->fetch(PDO::FETCH_NUM)) {
|
||||
$obj = new CcTracktypes();
|
||||
$obj->hydrate($row);
|
||||
CcTracktypesPeer::addInstanceToPool($obj, (string) $key);
|
||||
}
|
||||
$stmt->closeCursor();
|
||||
|
||||
return $obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find object by primary key.
|
||||
*
|
||||
* @param mixed $key Primary key to use for the query
|
||||
* @param PropelPDO $con A connection object
|
||||
*
|
||||
* @return CcTracktypes|CcTracktypes[]|mixed the result, formatted by the current formatter
|
||||
*/
|
||||
protected function findPkComplex($key, $con)
|
||||
{
|
||||
// As the query uses a PK condition, no limit(1) is necessary.
|
||||
$criteria = $this->isKeepQuery() ? clone $this : $this;
|
||||
$stmt = $criteria
|
||||
->filterByPrimaryKey($key)
|
||||
->doSelect($con);
|
||||
|
||||
return $criteria->getFormatter()->init($criteria)->formatOne($stmt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Find objects by primary key
|
||||
* <code>
|
||||
* $objs = $c->findPks(array(12, 56, 832), $con);
|
||||
* </code>
|
||||
* @param array $keys Primary keys to use for the query
|
||||
* @param PropelPDO $con an optional connection object
|
||||
*
|
||||
* @return PropelObjectCollection|CcTracktypes[]|mixed the list of results, formatted by the current formatter
|
||||
*/
|
||||
public function findPks($keys, $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection($this->getDbName(), Propel::CONNECTION_READ);
|
||||
}
|
||||
$this->basePreSelect($con);
|
||||
$criteria = $this->isKeepQuery() ? clone $this : $this;
|
||||
$stmt = $criteria
|
||||
->filterByPrimaryKeys($keys)
|
||||
->doSelect($con);
|
||||
|
||||
return $criteria->getFormatter()->init($criteria)->format($stmt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query by primary key
|
||||
*
|
||||
* @param mixed $key Primary key to use for the query
|
||||
*
|
||||
* @return CcTracktypesQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByPrimaryKey($key)
|
||||
{
|
||||
|
||||
return $this->addUsingAlias(CcTracktypesPeer::ID, $key, Criteria::EQUAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query by a list of primary keys
|
||||
*
|
||||
* @param array $keys The list of primary key to use for the query
|
||||
*
|
||||
* @return CcTracktypesQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByPrimaryKeys($keys)
|
||||
{
|
||||
|
||||
return $this->addUsingAlias(CcTracktypesPeer::ID, $keys, Criteria::IN);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the id column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByDbId(1234); // WHERE id = 1234
|
||||
* $query->filterByDbId(array(12, 34)); // WHERE id IN (12, 34)
|
||||
* $query->filterByDbId(array('min' => 12)); // WHERE id >= 12
|
||||
* $query->filterByDbId(array('max' => 12)); // WHERE id <= 12
|
||||
* </code>
|
||||
*
|
||||
* @param mixed $dbId The value to use as filter.
|
||||
* Use scalar values for equality.
|
||||
* Use array values for in_array() equivalent.
|
||||
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return CcTracktypesQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByDbId($dbId = null, $comparison = null)
|
||||
{
|
||||
if (is_array($dbId)) {
|
||||
$useMinMax = false;
|
||||
if (isset($dbId['min'])) {
|
||||
$this->addUsingAlias(CcTracktypesPeer::ID, $dbId['min'], Criteria::GREATER_EQUAL);
|
||||
$useMinMax = true;
|
||||
}
|
||||
if (isset($dbId['max'])) {
|
||||
$this->addUsingAlias(CcTracktypesPeer::ID, $dbId['max'], Criteria::LESS_EQUAL);
|
||||
$useMinMax = true;
|
||||
}
|
||||
if ($useMinMax) {
|
||||
return $this;
|
||||
}
|
||||
if (null === $comparison) {
|
||||
$comparison = Criteria::IN;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(CcTracktypesPeer::ID, $dbId, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the code column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByDbCode('fooValue'); // WHERE code = 'fooValue'
|
||||
* $query->filterByDbCode('%fooValue%'); // WHERE code LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $dbCode 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 CcTracktypesQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByDbCode($dbCode = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($dbCode)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $dbCode)) {
|
||||
$dbCode = str_replace('*', '%', $dbCode);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(CcTracktypesPeer::CODE, $dbCode, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the visibility column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByDbVisibility('fooValue'); // WHERE visibility = 'fooValue'
|
||||
* $query->filterByDbVisibility('%fooValue%'); // WHERE visibility LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $dbVisibility 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 CcTracktypesQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByDbVisibility($dbVisibility = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($dbVisibility)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $dbVisibility)) {
|
||||
$dbVisibility = str_replace('*', '%', $dbVisibility);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(CcTracktypesPeer::VISIBILITY, $dbVisibility, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the first_name column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByDbTypeName('fooValue'); // WHERE type_name = 'fooValue'
|
||||
* $query->filterByDbTypeName('%fooValue%'); // WHERE type_name LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $dbFirstName 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 CcTracktypesQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByDbFirstName($dbFirstName = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($dbFirstName)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $dbFirstName)) {
|
||||
$dbFirstName = str_replace('*', '%', $dbFirstName);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(CcTracktypesPeer::FIRST_NAME, $dbFirstName, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the last_name column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByDbLastName('fooValue'); // WHERE last_name = 'fooValue'
|
||||
* $query->filterByDbLastName('%fooValue%'); // WHERE last_name LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $dbLastName 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 CcTracktypesQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByDbLastName($dbLastName = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($dbLastName)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $dbLastName)) {
|
||||
$dbLastName = str_replace('*', '%', $dbLastName);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(CcTracktypesPeer::LAST_NAME, $dbLastName, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Exclude object from result
|
||||
*
|
||||
* @param CcTracktypes $ccTracktypes Object to remove from the list of results
|
||||
*
|
||||
* @return CcTracktypesQuery The current query, for fluid interface
|
||||
*/
|
||||
public function prune($ccTracktypes = null)
|
||||
{
|
||||
if ($ccTracktypes) {
|
||||
$this->addUsingAlias(CcTracktypesPeer::ID, $ccTracktypes->getDbId(), Criteria::NOT_EQUAL);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
|
@ -516,41 +516,41 @@ class Application_Service_HistoryService
|
|||
|
||||
return $filteredShows;
|
||||
}
|
||||
|
||||
|
||||
public function insertWebstreamMetadata($schedId, $startDT, $data) {
|
||||
|
||||
|
||||
$this->con->beginTransaction();
|
||||
|
||||
|
||||
try {
|
||||
|
||||
|
||||
$item = CcScheduleQuery::create()->findPK($schedId, $this->con);
|
||||
|
||||
|
||||
//TODO figure out how to combine these all into 1 query.
|
||||
$showInstance = $item->getCcShowInstances($this->con);
|
||||
$show = $showInstance->getCcShow($this->con);
|
||||
|
||||
|
||||
$webstream = $item->getCcWebstream($this->con);
|
||||
|
||||
|
||||
$metadata = array();
|
||||
$metadata["showname"] = $show->getDbName();
|
||||
$metadata[MDATA_KEY_TITLE] = $data->title;
|
||||
$metadata[MDATA_KEY_CREATOR] = $webstream->getDbName();
|
||||
|
||||
|
||||
$history = new CcPlayoutHistory();
|
||||
$history->setDbStarts($startDT);
|
||||
$history->setDbEnds(null);
|
||||
$history->setDbInstanceId($item->getDbInstanceId());
|
||||
|
||||
|
||||
foreach ($metadata as $key => $val) {
|
||||
$meta = new CcPlayoutHistoryMetaData();
|
||||
$meta->setDbKey($key);
|
||||
$meta->setDbValue($val);
|
||||
|
||||
|
||||
$history->addCcPlayoutHistoryMetaData($meta);
|
||||
}
|
||||
|
||||
|
||||
$history->save($this->con);
|
||||
|
||||
|
||||
$this->con->commit();
|
||||
}
|
||||
catch (Exception $e) {
|
||||
|
@ -586,36 +586,36 @@ class Application_Service_HistoryService
|
|||
$itemEnd = $item->getDbEnds(null);
|
||||
$recordStart = $item->getDbStarts(null);
|
||||
$recordEnd = ($instanceEnd < $itemEnd) ? $instanceEnd : $itemEnd;
|
||||
|
||||
|
||||
//first check if this is a duplicate
|
||||
// (caused by restarting liquidsoap)
|
||||
|
||||
|
||||
$prevRecord = CcPlayoutHistoryQuery::create()
|
||||
->filterByDbStarts($recordStart)
|
||||
->filterByDbEnds($recordEnd)
|
||||
->filterByDbFileId($fileId)
|
||||
->findOne($this->con);
|
||||
|
||||
|
||||
if (empty($prevRecord)) {
|
||||
|
||||
|
||||
$history = new CcPlayoutHistory();
|
||||
$history->setDbFileId($fileId);
|
||||
$history->setDbStarts($recordStart);
|
||||
$history->setDbEnds($recordEnd);
|
||||
$history->setDbInstanceId($item->getDbInstanceId());
|
||||
|
||||
|
||||
foreach ($metadata as $key => $val) {
|
||||
$meta = new CcPlayoutHistoryMetaData();
|
||||
$meta->setDbKey($key);
|
||||
$meta->setDbValue($val);
|
||||
|
||||
|
||||
$history->addCcPlayoutHistoryMetaData($meta);
|
||||
}
|
||||
|
||||
|
||||
$history->save($this->con);
|
||||
$this->con->commit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$this->con->rollback();
|
||||
|
@ -1126,6 +1126,7 @@ class Application_Service_HistoryService
|
|||
array("name"=> MDATA_KEY_TRACKNUMBER, "label"=> _("Track"), "type"=> TEMPLATE_INT),
|
||||
array("name"=> MDATA_KEY_CONDUCTOR, "label"=> _("Conductor"), "type"=> TEMPLATE_STRING),
|
||||
array("name"=> MDATA_KEY_LANGUAGE, "label"=> _("Language"), "type"=> TEMPLATE_STRING),
|
||||
array("name"=> MDATA_KEY_TRACK_TYPE, "label"=> _("Track Type"), "type"=> TEMPLATE_STRING),
|
||||
);
|
||||
|
||||
return $fileMD;
|
||||
|
|
|
@ -613,4 +613,15 @@ class AirtimeUpgrader300alpha9_1 extends AirtimeUpgrader
|
|||
}
|
||||
}
|
||||
|
||||
class AirtimeUpgrader300alpha9_2 extends AirtimeUpgrader
|
||||
{
|
||||
protected function getSupportedSchemaVersions() {
|
||||
return array(
|
||||
'3.0.0-alpha.9.1'
|
||||
);
|
||||
}
|
||||
|
||||
public function getNewVersion() {
|
||||
return '3.0.0-alpha.9.2';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ foreach ($this->md as $key => &$value) {
|
|||
<tr><td><?php echo _("Artwork:"); ?></td><td><?php echo ($this->md["MDATA_KEY_ARTWORK"]);?></td></tr>
|
||||
<tr><td><?php echo _("Artwork Data:"); ?></td><td><?php echo ($this->md["MDATA_KEY_ARTWORK_DATA"]);?></td></tr>
|
||||
<tr><td><?php echo _("Language:"); ?></td><td><?php echo ($this->md["MDATA_KEY_LANGUAGE"]);?></td></tr>
|
||||
<tr><td><?php echo _("Track Type:"); ?></td><td><?php echo ($this->md["MDATA_KEY_TRACK_TYPE"]);?></td></tr>
|
||||
<tr><td class='file-md-qtip-nowrap'><?php echo _("File Path:"); ?></td><td><?php echo ($this->md["MDATA_KEY_FILEPATH"]);?></td></tr>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
|
|
@ -13,9 +13,60 @@
|
|||
$disk = $partitions[0];
|
||||
$used = $disk->totalSpace-$disk->totalFreeSpace;
|
||||
$total = $disk->totalSpace;
|
||||
$tracktypes = Application_Model_Tracktype::getTracktypes();
|
||||
if(count($tracktypes) == 0) {
|
||||
$hasTracktypes = "disabled";
|
||||
$showTracktypesDropdown = false;
|
||||
} else {
|
||||
$hasTracktypes = "";
|
||||
$showTracktypesDropdown = true;
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
if (isset($_COOKIE['tt_upload'])) {
|
||||
$ttsaved = $_COOKIE['tt_upload'];
|
||||
} else {
|
||||
// Use default track type
|
||||
$ttsaved = "MUS";
|
||||
}
|
||||
?>
|
||||
|
||||
<div id="upload_wrapper">
|
||||
<H2>Upload Audio Files</H2>
|
||||
|
||||
<div id="track_type_selection">
|
||||
<form>
|
||||
<?php
|
||||
if ($showTracktypesDropdown != false) { ?>
|
||||
<select id="select_type" class="form-control" <?php echo $hasTracktypes; ?>>
|
||||
<?php
|
||||
echo "<option value=''>Select Track Type</option>";
|
||||
foreach ($tracktypes as $key => $tt) {
|
||||
$selected = "";
|
||||
if ($ttsaved == $tt['code']) {
|
||||
$selected = "selected";
|
||||
}
|
||||
$code = $tt['code'];
|
||||
$typename = $tt['type_name'];
|
||||
echo "<option value='$code' $selected>$typename</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<?php } ?>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if ($showTracktypesDropdown) {
|
||||
$ttTitle = "";
|
||||
foreach ($tracktypes as $key => $tt) {
|
||||
if ($ttsaved == $tt['code']) {
|
||||
$ttTitle = $tt['type_name'];
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
<H2><?php echo _("Upload")?> <span id="upload_type" <?php echo ($showTracktypesDropdown && $ttTitle!="") ? 'style="color:#ff611f"' : "" ?>>
|
||||
<?php echo ($showTracktypesDropdown && $ttTitle!="") ? $ttTitle : "Tracks"; ?></span></H2>
|
||||
<form action="/rest/media" method="post" id="add-media-dropzone" class="dropzone dz-clickable">
|
||||
<?php echo $this->form->getElement('csrf') ?>
|
||||
<div class="dz-message">
|
||||
|
@ -53,7 +104,7 @@
|
|||
<input type="radio" name="upload_status" id="upload_status_all" checked /><label for="upload_status_all"><?php echo _("All")?></label>
|
||||
<input type="radio" name="upload_status" id="upload_status_failed" /><label for="upload_status_failed"><?php echo _("Failed")?></label>
|
||||
<input type="radio" name="upload_status" id="upload_status_pending" /><label for="upload_status_pending"><?php echo _("Pending")?></label>
|
||||
</form>
|
||||
</form>
|
||||
</div>
|
||||
<H2><?php echo _("Recent Uploads")?></H2>
|
||||
<table id="recent_uploads_table" class="datatable lib-content ui-widget ui-widget-content block-shadow"
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
|
||||
<div class="ui-widget prefpanel clearfix padded-strong tracktype-management">
|
||||
|
||||
<h2><?php echo _("Manage Track Types") ?></h2>
|
||||
<div class="tracktype-list-wrapper">
|
||||
<div id="tracktypes_wrapper" class="dataTables_wrapper">
|
||||
|
||||
<div class="button-holder">
|
||||
<button type="button" id="add_tracktype_button" name="search_add_group" class="ui-button ui-widget ui-button-text-icon-primary btn">
|
||||
<span class="ui-icon ui-icon-plusthick"></span>
|
||||
<span class="ui-button-text"><?php echo _("New Track Type")?></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<table cellspacing="0" cellpadding="0" style="" id="tracktypes_datatable" class="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo _("id") ?></th>
|
||||
<th><?php echo _("Code") ?></th>
|
||||
<th><?php echo _("Label")?></th>
|
||||
<th><?php echo _("Description")?></th>
|
||||
<th><?php echo _("Visibility")?></th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tracktype-data simple-formblock" id="tracktype_details">
|
||||
<?php echo $this->successMessage ?>
|
||||
<fieldset class="padded">
|
||||
<?php echo $this->form ?>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,3 @@
|
|||
<?php
|
||||
echo $this->entries;
|
||||
?>
|
|
@ -0,0 +1,3 @@
|
|||
<?php
|
||||
echo $this->entries;
|
||||
?>
|
|
@ -85,6 +85,7 @@
|
|||
<column name="filesize" phpName="DbFilesize" type="Integer" required="true" defaultValue="0"/>
|
||||
<column name="description" phpName="DbDescription" type="VARCHAR" size="512" />
|
||||
<column name="artwork" phpName="DbArtwork" type="VARCHAR" size="512" required="false"/>
|
||||
<column name="track_type" phpName="DbTrackType" type="VARCHAR" size="16" required="false"/>
|
||||
<foreign-key foreignTable="cc_subjs" phpName="FkOwner" name="cc_files_owner_fkey">
|
||||
<reference local="owner_id" foreign="id"/>
|
||||
</foreign-key>
|
||||
|
@ -101,6 +102,19 @@
|
|||
<index-column name="name"/>
|
||||
</index>
|
||||
</table>
|
||||
<table name="cc_track_types" phpName="CcTracktypes">
|
||||
<column name="id" phpName="DbId" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
|
||||
<column name="code" phpName="DbCode" type="VARCHAR" size="16" required="true" defaultValue=""/>
|
||||
<column name="visibility" phpName="DbVisibility" type="BOOLEAN" required="true" defaultValue="true"/>
|
||||
<column name="type_name" phpName="DbTypeName" type="VARCHAR" size="64" required="true" defaultValue=""/>
|
||||
<column name="description" phpName="DbDescription" type="VARCHAR" size="255" required="true" defaultValue=""/>
|
||||
<unique name="cc_track_types_id_idx">
|
||||
<unique-column name="id"/>
|
||||
</unique>
|
||||
<unique name="cc_track_types_code_idx">
|
||||
<unique-column name="code"/>
|
||||
</unique>
|
||||
</table>
|
||||
<!-- Class Table Inheritance -->
|
||||
<table name="cloud_file" phpName="CloudFile">
|
||||
<column name="id" phpName="DbId" required="true" primaryKey="true" autoIncrement="true" type="INTEGER"/>
|
||||
|
|
|
@ -97,6 +97,7 @@ CREATE TABLE "cc_files"
|
|||
"filesize" INTEGER DEFAULT 0 NOT NULL,
|
||||
"description" VARCHAR(512),
|
||||
"artwork" VARCHAR(512),
|
||||
"track_type" VARCHAR(16),
|
||||
PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
|
@ -104,6 +105,24 @@ CREATE INDEX "cc_files_md5_idx" ON "cc_files" ("md5");
|
|||
|
||||
CREATE INDEX "cc_files_name_idx" ON "cc_files" ("name");
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- cc_track_types
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
DROP TABLE IF EXISTS "cc_track_types" CASCADE;
|
||||
|
||||
CREATE TABLE "cc_track_types"
|
||||
(
|
||||
"id" serial NOT NULL,
|
||||
"code" VARCHAR(16) DEFAULT '' NOT NULL,
|
||||
"type_name" VARCHAR(64) DEFAULT '' NOT NULL,
|
||||
"description" VARCHAR(255) DEFAULT '' NOT NULL,
|
||||
"visibility" boolean DEFAULT true NOT NULL,
|
||||
PRIMARY KEY ("id"),
|
||||
CONSTRAINT "cc_track_types_id_idx" UNIQUE ("id"),
|
||||
CONSTRAINT "cc_track_types_code_idx" UNIQUE ("code")
|
||||
);
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- cloud_file
|
||||
-----------------------------------------------------------------------
|
||||
|
|
|
@ -640,3 +640,9 @@ table#recent_uploads_table td
|
|||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#track_type_selection {
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
top: 0;
|
||||
}
|
||||
|
|
|
@ -99,7 +99,8 @@
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.library_year {
|
||||
.library_year,
|
||||
.library_track_type {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
@ -141,7 +142,46 @@ tr.lib-selected > td > div.library_actions_btn:hover {
|
|||
color: #eee;
|
||||
}
|
||||
|
||||
.library_import {
|
||||
td.library_track_type
|
||||
{
|
||||
padding: 0px !important;
|
||||
}
|
||||
|
||||
.library_track_type_btn {
|
||||
font-weight: 600;
|
||||
font-size: 13px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 1px;
|
||||
margin: 5px 6px !important;
|
||||
line-height: 13px !important;
|
||||
padding: 5px 6px !important;
|
||||
}
|
||||
|
||||
.library_track_type_btn:hover {
|
||||
background: #555;
|
||||
}
|
||||
tr.lib-selected > td > div.library_track_type_btn {
|
||||
border-color: #000;
|
||||
}
|
||||
tr.lib-selected > td > div.library_track_type_btn:hover {
|
||||
background: #000;
|
||||
color: #eee;
|
||||
}
|
||||
.track-type-tip{
|
||||
overflow: visible;
|
||||
overflow-y: visible;
|
||||
margin-left: -30px;
|
||||
margin-top: -61px;
|
||||
z-index: 10000 !important;
|
||||
}
|
||||
|
||||
.track-type-tip.qtip-pos-tl{
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.library_import {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
|
@ -244,7 +284,7 @@ tr.lib-selected > td > div.library_actions_btn:hover {
|
|||
vertical-align: middle;
|
||||
margin: 0 !important;
|
||||
line-height: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.sb-timerange input {
|
||||
-webkit-box-sizing: border-box;
|
||||
|
@ -256,4 +296,4 @@ tr.lib-selected > td > div.library_actions_btn:hover {
|
|||
height: 26px;
|
||||
outline: none;
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
}
|
|
@ -1725,11 +1725,13 @@ h2#scheduled_playlist_name span {
|
|||
padding: 4px 0 8px;
|
||||
}
|
||||
|
||||
.user-form-label {
|
||||
.user-form-label,
|
||||
.tracktype-form-label {
|
||||
width: 30% !important;
|
||||
}
|
||||
|
||||
.user-form-element {
|
||||
.user-form-element,
|
||||
.tracktype-form-element {
|
||||
width: 65% !important;
|
||||
}
|
||||
|
||||
|
@ -1818,27 +1820,32 @@ button, input {
|
|||
margin-bottom:0;
|
||||
}
|
||||
|
||||
#user_details
|
||||
#user_details,
|
||||
#tracktype_details
|
||||
{
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.user-management {
|
||||
.user-management,
|
||||
.tracktype-management {
|
||||
min-width: 910px;
|
||||
min-height: 410px;
|
||||
}
|
||||
|
||||
.user-management-expanded {
|
||||
.user-management-expanded,
|
||||
.tracktype-management-expanded {
|
||||
width: 910px;
|
||||
}
|
||||
|
||||
.user-data {
|
||||
.user-data,
|
||||
.tracktype-data {
|
||||
float:right;
|
||||
width:420px;
|
||||
margin-left:10px;
|
||||
}
|
||||
|
||||
.user-list-wrapper {
|
||||
.user-list-wrapper,
|
||||
.tracktype-list-wrapper {
|
||||
float:left;
|
||||
width:480px;
|
||||
position: absolute;
|
||||
|
@ -1846,59 +1853,72 @@ button, input {
|
|||
/*margin-right:10px;*/
|
||||
}
|
||||
|
||||
#users_datatable {
|
||||
#users_datatable,
|
||||
#tracktypes_datatable {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#users_datatable_wrapper td {
|
||||
#users_datatable_wrapper td,
|
||||
#tracktypes_datatable_wrapper td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.user-management div.user-list-wrapper .ui-widget-header:first-child {
|
||||
.user-management div.user-list-wrapper .ui-widget-header:first-child,
|
||||
.tracktype-management div.tracktype-list-wrapper .ui-widget-header:first-child {
|
||||
background: none repeat scroll 0 0 transparent;
|
||||
border-width: 0;
|
||||
color: #444444;
|
||||
font-weight: bold;
|
||||
}
|
||||
.user-list-wrapper .ui-widget-header:first-child .dataTables_filter {
|
||||
.user-list-wrapper .ui-widget-header:first-child .dataTables_filter,
|
||||
.tracktype-list-wrapper .ui-widget-header:first-child .dataTables_filter {
|
||||
margin:0;
|
||||
}
|
||||
.user-management h2 {
|
||||
.user-management h2,
|
||||
.tracktype-management h2 {
|
||||
font-size: 1.7em;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
.user-management .dataTables_filter input {
|
||||
.user-management .dataTables_filter input,
|
||||
.tracktype-management .dataTables_filter input {
|
||||
width: 100%;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
margin-bottom:8px;
|
||||
}
|
||||
.user-data.simple-formblock dd {
|
||||
.user-data.simple-formblock dd,
|
||||
.tracktype-data.simple-formblock dd {
|
||||
width: 73%;
|
||||
}
|
||||
|
||||
.user-data fieldset {
|
||||
.user-data fieldset,
|
||||
.tracktype-data fieldset {
|
||||
margin-bottom:8px;
|
||||
}
|
||||
.user-data fieldset:last-child {
|
||||
.user-data fieldset:last-child,
|
||||
.tracktype-data fieldset:last-child {
|
||||
margin-bottom:0;
|
||||
}
|
||||
|
||||
.user-list-wrapper .button-holder {
|
||||
.user-list-wrapper .button-holder,
|
||||
.tracktype-list-wrapper .button-holder {
|
||||
padding:0;
|
||||
height:37px;
|
||||
}
|
||||
.user-list-wrapper .button-holder .ui-button {
|
||||
.user-list-wrapper .button-holder .ui-button,
|
||||
.tracktype-list-wrapper .button-holder .ui-button {
|
||||
margin:0;
|
||||
}
|
||||
.ui-widget-content .user-list-wrapper .ui-icon.ui-icon-closethick {
|
||||
.ui-widget-content .user-list-wrapper .ui-icon.ui-icon-closethick,
|
||||
.ui-widget-content .tracktype-list-wrapper .ui-icon.ui-icon-closethick {
|
||||
background-image:url(redmond/images/ui-icons_666666_256x240.png);
|
||||
cursor:pointer;
|
||||
float:right;
|
||||
margin-right:5px;
|
||||
}
|
||||
.ui-widget-content .user-list-wrapper .ui-icon.ui-icon-closethick:hover {
|
||||
.ui-widget-content .user-list-wrapper .ui-icon.ui-icon-closethick:hover,
|
||||
.ui-widget-content .tracktype-list-wrapper .ui-icon.ui-icon-closethick:hover {
|
||||
background-image:url(redmond/images/ui-icons_ff5d1a_256x240.png);
|
||||
}
|
||||
|
||||
|
@ -3929,12 +3949,14 @@ li .ui-state-hover {
|
|||
flex: 1;
|
||||
}
|
||||
|
||||
#user_list_inner_wrapper {
|
||||
#user_list_inner_wrapper,
|
||||
#tracktype_list_inner_wrapper {
|
||||
height: 272px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#users_datatable_wrapper {
|
||||
#users_datatable_wrapper,
|
||||
#tracktypes_datatable_wrapper {
|
||||
display: -webkit-box;
|
||||
display: -moz-box;
|
||||
display: -ms-flexbox;
|
||||
|
@ -3944,11 +3966,13 @@ li .ui-state-hover {
|
|||
flex-flow: column;
|
||||
}
|
||||
|
||||
#users_datatable {
|
||||
#users_datatable,
|
||||
#tracktypes_datatable {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#users_datatable tbody {
|
||||
#users_datatable tbody,
|
||||
#tracktypes_datatable tbody {
|
||||
|
||||
vertical-align: top !important;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
@charset "utf-8";
|
||||
|
||||
.dataTables_filter input {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.dataTables_processing {
|
||||
top: 20px;
|
||||
}
|
|
@ -54,7 +54,8 @@ var AIRTIME = (function(AIRTIME) {
|
|||
"owner_id" : "s",
|
||||
"info_url" : "s",
|
||||
"replay_gain" : "n",
|
||||
"artwork" : "s"
|
||||
"artwork" : "s",
|
||||
"track_type" : "tt"
|
||||
};
|
||||
|
||||
if (AIRTIME.library === undefined) {
|
||||
|
@ -591,6 +592,7 @@ var AIRTIME = (function(AIRTIME) {
|
|||
/* Cue Out */ { "sTitle" : $.i18n._("Cue Out") , "mDataProp" : "cueout" , "bVisible" : false , "sClass" : "library_length" , "sWidth" : "80px" },
|
||||
/* Description */ { "sTitle" : $.i18n._("Description") , "mDataProp" : "description" , "bVisible" : false , "sClass" : "library_description" , "sWidth" : "150px" },
|
||||
/* Encoded */ { "sTitle" : $.i18n._("Encoded By") , "mDataProp" : "encoded_by" , "bVisible" : false , "sClass" : "library_encoded" , "sWidth" : "150px" },
|
||||
/* Track Type */ { "sTitle" : $.i18n._("Type") , "mDataProp" : "track_type" , "sClass" : "library_track_type" , "sWidth" : "60px" },
|
||||
/* Genre */ { "sTitle" : $.i18n._("Genre") , "mDataProp" : "genre" , "sClass" : "library_genre" , "sWidth" : "100px" },
|
||||
/* ISRC Number */ { "sTitle" : $.i18n._("ISRC") , "mDataProp" : "isrc_number" , "bVisible" : false , "sClass" : "library_isrc" , "sWidth" : "150px" },
|
||||
/* Label */ { "sTitle" : $.i18n._("Label") , "mDataProp" : "label" , "bVisible" : false , "sClass" : "library_label" , "sWidth" : "125px" },
|
||||
|
@ -615,7 +617,7 @@ var AIRTIME = (function(AIRTIME) {
|
|||
);
|
||||
}
|
||||
|
||||
var colExclude = onDashboard ? [0, 1, 2, 33] : [0, 1, 2];
|
||||
var colExclude = onDashboard ? [0, 1, 2, 3, 34] : [0, 1, 2];
|
||||
|
||||
/* ############################################
|
||||
DATATABLES
|
||||
|
@ -764,6 +766,60 @@ var AIRTIME = (function(AIRTIME) {
|
|||
.on('click', function (e) {
|
||||
$(this).contextMenu({x: $(e.target).offset().left, y: $(e.target).offset().top})
|
||||
}).html("<div class='library_actions_btn'>...</div>");
|
||||
|
||||
$(nRow).find('td.library_track_type')
|
||||
.on('click', function (e) {
|
||||
|
||||
$.getJSON(
|
||||
baseUrl + "api/track-types",
|
||||
function(json){
|
||||
var type_enabled = false;
|
||||
$.each(json, function(key, value) {
|
||||
|
||||
if(value['code'] == aData.track_type){
|
||||
$("#au_"+aData.id+" td.library_track_type div.library_track_type_btn").qtip({
|
||||
overwrite: false,
|
||||
content: {
|
||||
text: value['type_name']
|
||||
},
|
||||
style: {
|
||||
classes: 'track-type-tip',
|
||||
widget: true,
|
||||
def: false,
|
||||
position: {
|
||||
target: $("#au_"+aData.id+" td.library_track_type"), // my target
|
||||
my: 'bottom center',
|
||||
at: 'top center',
|
||||
adjust: {
|
||||
x: 50
|
||||
}
|
||||
},
|
||||
tip: {
|
||||
height: 5,
|
||||
width: 12,
|
||||
corner: 'bottom left',
|
||||
mimic: 'left'
|
||||
}
|
||||
},
|
||||
show: {
|
||||
ready: true
|
||||
},
|
||||
hide: {
|
||||
delay: 200,
|
||||
fixed: true,
|
||||
}
|
||||
});
|
||||
|
||||
type_enabled = true;
|
||||
}
|
||||
});
|
||||
|
||||
if(type_enabled == false){
|
||||
alert("This type is disabled.");
|
||||
}
|
||||
});
|
||||
|
||||
}).html("<div class='library_track_type_btn'>"+aData.track_type+"</div>");
|
||||
}
|
||||
|
||||
// add audio preview image/button
|
||||
|
@ -852,9 +908,12 @@ var AIRTIME = (function(AIRTIME) {
|
|||
|
||||
var inputClass = 'filter_column filter_number_text';
|
||||
var labelStyle = "style='margin-right:35px;'";
|
||||
if (libraryColumnTypes[ele.mDataProp] != "s") {
|
||||
if (libraryColumnTypes[ele.mDataProp] == "n" || libraryColumnTypes[ele.mDataProp] == "i") {
|
||||
inputClass = 'filterColumn filter_number_range';
|
||||
labelStyle = "";
|
||||
} else if (libraryColumnTypes[ele.mDataProp] == "tt") {
|
||||
inputClass = 'filterColumn filter_track_type_select';
|
||||
labelStyle = "";
|
||||
}
|
||||
|
||||
if (ele.bVisible) {
|
||||
|
@ -873,6 +932,8 @@ var AIRTIME = (function(AIRTIME) {
|
|||
|
||||
if (libraryColumnTypes[ele.mDataProp] == "s") {
|
||||
var obj = { sSelector: "#"+ele.mDataProp }
|
||||
} else if (libraryColumnTypes[ele.mDataProp] == "tt") {
|
||||
var obj = { sSelector: "#"+ele.mDataProp, type: "select" }
|
||||
} else {
|
||||
var obj = { sSelector: "#"+ele.mDataProp, type: "number-range" }
|
||||
}
|
||||
|
@ -1597,9 +1658,29 @@ var validationTypes = {
|
|||
"track_number" : "i",
|
||||
"info_url" : "s",
|
||||
"artwork" : "s",
|
||||
"track_type" : "s",
|
||||
"year" : "i"
|
||||
};
|
||||
|
||||
function airtimeScheduleJsonpError(jqXHR, textStatus, errorThrown){
|
||||
}
|
||||
|
||||
function tracktypesJson() {
|
||||
$(function() {
|
||||
jQuery.getJSON(
|
||||
baseUrl + "api/track-types",
|
||||
function(json){
|
||||
var ttSelect = $('#track_type .filter_select .select_filter');
|
||||
$.each(json, function(key, value) {
|
||||
var option = $("<option/>", {
|
||||
value: value['code'],
|
||||
text: value['type_name']
|
||||
});
|
||||
ttSelect.append(option);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function readArtworkURL(input, id) {
|
||||
|
||||
|
@ -1666,6 +1747,8 @@ var resampleImg = (function (canvas) {
|
|||
|
||||
|
||||
$(document).ready(function() {
|
||||
tracktypesJson();
|
||||
|
||||
if (window.location.href.indexOf("showbuilder") > -1) {
|
||||
AIRTIME.library.initPodcastDatatable();
|
||||
}
|
||||
|
|
|
@ -203,4 +203,17 @@ $(document).ready(function () {
|
|||
self.recentUploadsTable = self.setupRecentUploadsTable();
|
||||
|
||||
//$("#recent_uploads_table.div.fg-toolbar").prepend('<b>Custom tool bar! Text/images etc.</b>');
|
||||
|
||||
$("#select_type").on("change",function(){
|
||||
var ttValue = $("#select_type").val();
|
||||
var ttText = $('#select_type option[value="'+ttValue+'"]').text();
|
||||
if (ttValue != ""){
|
||||
$("#upload_type").text(" " + ttText);
|
||||
$("#upload_type").css("color", "#ff611f");
|
||||
} else {
|
||||
$("#upload_type").text(" Tracks");
|
||||
$("#upload_type").css("color", "#ffffff");
|
||||
}
|
||||
Cookies.set('tt_upload', ttValue);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -8,7 +8,7 @@ function setSmartBlockEvents() {
|
|||
|
||||
/********** ADD CRITERIA ROW **********/
|
||||
form.find('#criteria_add').live('click', function(){
|
||||
|
||||
|
||||
var div = $('dd[id="sp_criteria-element"]').children('div:visible:last');
|
||||
|
||||
if (div.length == 0) {
|
||||
|
@ -26,7 +26,7 @@ function setSmartBlockEvents() {
|
|||
|
||||
div.find('.db-logic-label').text('and').css('display', 'table');
|
||||
div.removeClass('search-row-or').addClass('search-row-and');
|
||||
|
||||
|
||||
div = div.next().show();
|
||||
|
||||
div.children().removeAttr('disabled');
|
||||
|
@ -45,11 +45,11 @@ function setSmartBlockEvents() {
|
|||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/********** ADD MODIFIER ROW **********/
|
||||
form.find('a[id^="modifier_add"]').live('click', function(){
|
||||
var criteria_value = $(this).siblings('select[name^="sp_criteria_field"]').val();
|
||||
|
||||
|
||||
|
||||
//make new modifier row
|
||||
var newRow = $(this).parent().clone(),
|
||||
|
@ -63,13 +63,13 @@ function setSmartBlockEvents() {
|
|||
if (newRow.children().hasClass('errors sp-errors')) {
|
||||
newRow.find('span[class="errors sp-errors"]').remove();
|
||||
}
|
||||
|
||||
|
||||
//hide the critieria field select box
|
||||
newRowCrit.addClass('sp-invisible');
|
||||
|
||||
|
||||
//keep criteria value the same
|
||||
newRowCrit.val(criteria_value);
|
||||
|
||||
|
||||
//reset all other values
|
||||
newRowMod.val('0');
|
||||
newRowVal.val('');
|
||||
|
@ -78,12 +78,12 @@ function setSmartBlockEvents() {
|
|||
disableAndHideDateTimeDropdown(newRowVal);
|
||||
disableAndHideExtraDateTimeDropdown(newRowVal);
|
||||
sizeTextBoxes(newRowVal, 'sp_extra_input_text', 'sp_input_text');
|
||||
|
||||
|
||||
//remove the 'criteria add' button from new modifier row
|
||||
newRow.find('#criteria_add').remove();
|
||||
|
||||
$(this).parent().after(newRow);
|
||||
|
||||
|
||||
// remove extra spacing from previous row
|
||||
newRow.prev().removeClass('search-row-and').addClass('search-row-or');
|
||||
|
||||
|
@ -93,7 +93,7 @@ function setSmartBlockEvents() {
|
|||
removeButtonCheck();
|
||||
groupCriteriaRows();
|
||||
});
|
||||
|
||||
|
||||
/********** REMOVE ROW **********/
|
||||
form.find('a[id^="criteria_remove"]').live('click', function(){
|
||||
var curr = $(this).parent();
|
||||
|
@ -128,10 +128,10 @@ function setSmartBlockEvents() {
|
|||
|
||||
for (var i=0; i<count; i++) {
|
||||
index = getRowIndex(curr);
|
||||
|
||||
|
||||
var criteria = next.find('[name^="sp_criteria_field"]').val();
|
||||
curr.find('[name^="sp_criteria_field"]').val(criteria);
|
||||
|
||||
|
||||
var modifier = next.find('[name^="sp_criteria_modifier"]').val();
|
||||
populateModifierSelect(curr.find('[name^="sp_criteria_field"]'), false);
|
||||
curr.find('[name^="sp_criteria_modifier"]').val(modifier);
|
||||
|
@ -148,7 +148,7 @@ function setSmartBlockEvents() {
|
|||
*/
|
||||
if (curr.find('[name^="sp_criteria_extra"]').attr("disabled") != "disabled"
|
||||
&& next.find('#extra_criteria').is(':visible')) {
|
||||
|
||||
|
||||
var criteria_extra = next.find('[name^="sp_criteria_extra"]').val();
|
||||
curr.find('[name^="sp_criteria_extra"]').val(criteria_extra);
|
||||
disableAndHideExtraField(next.find(':first-child'), getRowIndex(next));
|
||||
|
@ -159,7 +159,7 @@ function setSmartBlockEvents() {
|
|||
} else if (curr.find('[name^="sp_criteria_extra"]').attr("disabled") != "disabled"
|
||||
&& next.find('#extra_criteria').not(':visible')) {
|
||||
disableAndHideExtraField(curr.find(':first-child'), index);
|
||||
|
||||
|
||||
/* if only the next row has the extra criteria value,
|
||||
* then add the extra criteria element to current row
|
||||
* and assign next row's value to it
|
||||
|
@ -231,12 +231,12 @@ function setSmartBlockEvents() {
|
|||
curr.find('select[name^="sp_criteria_field"]').removeClass('sp-invisible');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
curr = next;
|
||||
next = curr.next();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Disable the last visible row since it holds the values the user removed
|
||||
* Reset the values to empty and resize the criteria value textbox
|
||||
* in case the row had the extra criteria textbox
|
||||
|
@ -255,12 +255,12 @@ function setSmartBlockEvents() {
|
|||
.find('[name^="sp_criteria_value"]').val('').end()
|
||||
.find('[name^="sp_criteria_extra"]').val('')
|
||||
.find('[name^="sp_criteria_extra_datetime_select"]').end();
|
||||
|
||||
|
||||
sizeTextBoxes(item_to_hide.find('[name^="sp_criteria_value"]'), 'sp_extra_input_text', 'sp_input_text');
|
||||
item_to_hide.hide();
|
||||
|
||||
list.next().show();
|
||||
|
||||
|
||||
//check if last row is a modifier row
|
||||
var last_row = list.find('div:visible:last');
|
||||
if (last_row.find('[name^="sp_criteria_field"]').val() == last_row.prev().find('[name^="sp_criteria_field"]').val()) {
|
||||
|
@ -268,22 +268,22 @@ function setSmartBlockEvents() {
|
|||
last_row.find('select[name^="sp_criteria_field"]').addClass('sp-invisible');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// always put '+' button on the last enabled row
|
||||
appendAddButton();
|
||||
|
||||
|
||||
reindexElements();
|
||||
|
||||
|
||||
// always put '+' button on the last modifier row
|
||||
appendModAddButton();
|
||||
|
||||
|
||||
// remove the 'x' button if only one row is enabled
|
||||
removeButtonCheck();
|
||||
|
||||
groupCriteriaRows();
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
/********** SAVE ACTION **********/
|
||||
// moved to spl.js
|
||||
|
||||
|
@ -291,12 +291,12 @@ function setSmartBlockEvents() {
|
|||
activeTab.find('button[id="generate_button"]').live("click", function(){
|
||||
buttonClickAction('generate', 'playlist/smart-block-generate');
|
||||
});
|
||||
|
||||
|
||||
/********** SHUFFLE ACTION **********/
|
||||
activeTab.find('button[id="shuffle_button"]').live("click", function(){
|
||||
buttonClickAction('shuffle', 'playlist/smart-block-shuffle');
|
||||
});
|
||||
|
||||
|
||||
/********** CHANGE PLAYLIST TYPE **********/
|
||||
form.find('dd[id="sp_type-element"]').live("change", function(){
|
||||
//buttonClickAction('generate', 'playlist/empty-content');
|
||||
|
@ -318,7 +318,7 @@ function setSmartBlockEvents() {
|
|||
|
||||
|
||||
/********** CRITERIA CHANGE **********/
|
||||
form.find('select[id^="sp_criteria"]:not([id^="sp_criteria_modifier"]):not([id^="sp_criteria_datetime"]):not([id^="sp_criteria_extra_datetime"])').live("change", function(){
|
||||
form.find('select[id^="sp_criteria"]:not([id^="sp_criteria_modifier"]):not([id^="sp_criteria_datetime"]):not([id^="sp_criteria_extra_datetime"]):not([id^="sp_criteria_value"])').live("change", function(){
|
||||
var index = getRowIndex($(this).parent());
|
||||
//need to change the criteria value for any modifier rows
|
||||
var critVal = $(this).val();
|
||||
|
@ -334,14 +334,21 @@ function setSmartBlockEvents() {
|
|||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// disable extra field and hide the span
|
||||
disableAndHideExtraField($(this), index);
|
||||
disableAndHideDateTimeDropdown($(this), index);
|
||||
disableAndHideExtraDateTimeDropdown($(this),index);
|
||||
populateModifierSelect(this, true);
|
||||
|
||||
if ($( "#sp_criteria_field_" + index +" option:selected" ).val() === 'track_type') {
|
||||
populateTracktypeSelect(this, false);
|
||||
} else {
|
||||
disableAndHideTracktypeDropdown($(this),index);
|
||||
populateModifierSelect(this, true);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
/********** MODIFIER CHANGE **********/
|
||||
form.find('select[id^="sp_criteria_modifier"]').live("change", function(){
|
||||
var criteria_value = $(this).next(),
|
||||
|
@ -370,6 +377,16 @@ function setSmartBlockEvents() {
|
|||
else {
|
||||
disableAndHideExtraDateTimeDropdown(criteria_value,index_num);
|
||||
}
|
||||
|
||||
var get_crit_field = $(this).siblings(':first-child');
|
||||
var crit_field = get_crit_field[0]["id"];
|
||||
if ($( "#" + crit_field +" option:selected" ).val() === 'track_type') {
|
||||
if ($(this).val() == "is" || $(this).val() == "is not") {
|
||||
enableAndShowTracktypeDropdown(criteria_value, index_num);
|
||||
} else {
|
||||
disableAndHideTracktypeDropdown(criteria_value, index_num);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
setupUI();
|
||||
|
@ -384,7 +401,7 @@ function getRowIndex(ele) {
|
|||
start = 3,
|
||||
tokens = id.split(delimiter).slice(start),
|
||||
index = tokens.join(delimiter);
|
||||
|
||||
|
||||
return index;
|
||||
}
|
||||
|
||||
|
@ -428,7 +445,7 @@ function reindexElements() {
|
|||
|
||||
$.each(divs, function(i, div){
|
||||
if (i > 0 && index < 26) {
|
||||
|
||||
|
||||
/* If the current row's criteria field is hidden we know it is
|
||||
* a modifier row
|
||||
*/
|
||||
|
@ -444,13 +461,15 @@ function reindexElements() {
|
|||
index++;
|
||||
modIndex = 0;
|
||||
}
|
||||
|
||||
|
||||
$(div).find('select[name^="sp_criteria_field"]').attr('name', 'sp_criteria_field_'+index+'_'+modIndex);
|
||||
$(div).find('select[name^="sp_criteria_field"]').attr('id', 'sp_criteria_field_'+index+'_'+modIndex);
|
||||
$(div).find('select[name^="sp_criteria_modifier"]').attr('name', 'sp_criteria_modifier_'+index+'_'+modIndex);
|
||||
$(div).find('select[name^="sp_criteria_modifier"]').attr('id', 'sp_criteria_modifier_'+index+'_'+modIndex);
|
||||
$(div).find('input[name^="sp_criteria_value"]').attr('name', 'sp_criteria_value_'+index+'_'+modIndex);
|
||||
$(div).find('input[name^="sp_criteria_value"]').attr('id', 'sp_criteria_value_'+index+'_'+modIndex);
|
||||
$(div).find('select[name^="sp_criteria_value"]').attr('name', 'sp_criteria_value_'+index+'_'+modIndex);
|
||||
$(div).find('select[name^="sp_criteria_value"]').attr('id', 'sp_criteria_value_'+index+'_'+modIndex);
|
||||
$(div).find('input[name^="sp_criteria_extra"]').attr('name', 'sp_criteria_extra_'+index+'_'+modIndex);
|
||||
$(div).find('input[name^="sp_criteria_extra"]').attr('id', 'sp_criteria_extra_'+index+'_'+modIndex);
|
||||
$(div).find('a[name^="modifier_add"]').attr('id', 'modifier_add_'+index);
|
||||
|
@ -464,7 +483,7 @@ function reindexElements() {
|
|||
function buttonClickAction(clickType, url){
|
||||
var data = $('.active-tab .smart-block-form').serializeArray(),
|
||||
obj_id = $('.active-tab .obj_id').val();
|
||||
|
||||
|
||||
enableLoadingIcon();
|
||||
$.post(url, {format: "json", data: data, obj_id: obj_id, obj_type: "block",
|
||||
modified: AIRTIME.playlist.getModified()
|
||||
|
@ -499,7 +518,7 @@ function setupUI() {
|
|||
shuffleButton.addClass('ui-state-disabled');
|
||||
shuffleButton.attr('disabled', 'disabled');
|
||||
}
|
||||
|
||||
|
||||
if (activeTab.find('.obj_type').val() == 'block') {
|
||||
if (playlist_type == "1") {
|
||||
shuffleButton.removeAttr("disabled");
|
||||
|
@ -514,7 +533,7 @@ function setupUI() {
|
|||
//sortable.children().hide();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$(".playlist_type_help_icon").qtip({
|
||||
content: {
|
||||
text: $.i18n._("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.")+"<br /><br />" +
|
||||
|
@ -536,7 +555,7 @@ function setupUI() {
|
|||
at: "right center"
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$(".repeat_tracks_help_icon").qtip({
|
||||
content: {
|
||||
text: sprintf($.i18n._("The desired block length will not be reached if %s 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."), PRODUCT_NAME)
|
||||
|
@ -586,6 +605,19 @@ function setupUI() {
|
|||
});
|
||||
}
|
||||
|
||||
function enableAndShowTracktypeDropdown(valEle, index) {
|
||||
console.log('tracktype show');
|
||||
$("#sp_criteria_value_"+index).replaceWith('<select name="sp_criteria_value_'+index+'" id="sp_criteria_value_'+index+'" class="input_select sp_input_select"></select>');
|
||||
$.each(stringTracktypeOptions, function(key, value){
|
||||
$("#sp_criteria_value_"+index).append($('<option></option>').attr('value', key).text(value));
|
||||
});
|
||||
}
|
||||
|
||||
function disableAndHideTracktypeDropdown(valEle, index) {
|
||||
console.log('tracktype hide');
|
||||
$("#sp_criteria_value_"+index).replaceWith('<input type="text" name="sp_criteria_value_'+index+'" id="sp_criteria_value_'+index+'" value="" class="input_text sp_input_text">');
|
||||
}
|
||||
|
||||
/* Utilizing jQuery this function finds the #datetime_select element on the given row
|
||||
* and shows the criteria drop-down
|
||||
*/
|
||||
|
@ -661,7 +693,7 @@ function disableAndHideExtraField(valEle, index) {
|
|||
spanExtra.children('#sp_criteria_extra_'+index).val("").attr("disabled", "disabled");
|
||||
spanExtra.hide();
|
||||
console.log('hidden');
|
||||
|
||||
|
||||
//make value input larger since we don't have extra field now
|
||||
var criteria_value = $('#sp_criteria_value_'+index);
|
||||
sizeTextBoxes(criteria_value, 'sp_extra_input_text', 'sp_input_text');
|
||||
|
@ -682,18 +714,19 @@ function sizeTextBoxes(ele, classToRemove, classToAdd) {
|
|||
}
|
||||
|
||||
function populateModifierSelect(e, popAllMods) {
|
||||
|
||||
var criteria_type = getCriteriaOptionType(e),
|
||||
index = getRowIndex($(e).parent()),
|
||||
divs;
|
||||
|
||||
|
||||
if (popAllMods) {
|
||||
index = index.substring(0, 1);
|
||||
}
|
||||
divs = $(e).parents().find('select[id^="sp_criteria_modifier_'+index+'"]');
|
||||
|
||||
|
||||
$.each(divs, function(i, div){
|
||||
$(div).children().remove();
|
||||
|
||||
|
||||
if (criteria_type == 's') {
|
||||
$.each(stringCriteriaOptions, function(key, value){
|
||||
$(div).append($('<option></option>')
|
||||
|
@ -708,6 +741,13 @@ function populateModifierSelect(e, popAllMods) {
|
|||
.text(value));
|
||||
});
|
||||
}
|
||||
else if(criteria_type == 'tt') {
|
||||
$.each(stringIsNotOptions, function(key, value){
|
||||
$(div).append($('<option></option>')
|
||||
.attr('value', key)
|
||||
.text(value));
|
||||
});
|
||||
}
|
||||
else {
|
||||
$.each(numericCriteriaOptions, function(key, value){
|
||||
$(div).append($('<option></option>')
|
||||
|
@ -718,11 +758,36 @@ function populateModifierSelect(e, popAllMods) {
|
|||
});
|
||||
}
|
||||
|
||||
function populateTracktypeSelect(e, popAllMods) {
|
||||
|
||||
var criteria_type = getTracktype(e),
|
||||
index = getRowIndex($(e).parent()),
|
||||
divs;
|
||||
|
||||
if (popAllMods) {
|
||||
index = index.substring(0, 1);
|
||||
}
|
||||
divs = $(e).parents().find('select[id^="sp_criteria_modifier_'+index+'"]');
|
||||
$.each(divs, function(i, div){
|
||||
$(div).children().remove();
|
||||
$.each(stringIsNotOptions, function(key, value){
|
||||
$(div).append($('<option></option>')
|
||||
.attr('value', key)
|
||||
.text(value));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function getCriteriaOptionType(e) {
|
||||
var criteria = $(e).val();
|
||||
return criteriaTypes[criteria];
|
||||
}
|
||||
|
||||
function getTracktype(e) {
|
||||
var type = $(e).val();
|
||||
return stringTracktypeOptions[type];
|
||||
}
|
||||
|
||||
function callback(json, type) {
|
||||
var dt = $('table[id="library_display"]').dataTable(),
|
||||
form = $('.active-tab .smart-block-form');
|
||||
|
@ -777,7 +842,7 @@ function appendAddButton() {
|
|||
enabled = rows.find('select[name^="sp_criteria_field"]:enabled');
|
||||
|
||||
rows.find('#criteria_add').remove();
|
||||
|
||||
|
||||
if (enabled.length > 1) {
|
||||
rows.find('select[name^="sp_criteria_field"]:enabled:last')
|
||||
.siblings('a[id^="criteria_remove"]')
|
||||
|
@ -821,7 +886,7 @@ function disableLoadingIcon() {
|
|||
|
||||
function groupCriteriaRows() {
|
||||
// check whether rows should be "grouped" and shown with an "or" "logic label", or separated by an "and" "logic label"
|
||||
var visibleRows = $("#sp_criteria-element > div:visible"),
|
||||
var visibleRows = $("#sp_criteria-element > div:visible"),
|
||||
prevRowGroup = "0";
|
||||
|
||||
visibleRows.each(function (index){
|
||||
|
@ -837,7 +902,7 @@ function groupCriteriaRows() {
|
|||
}
|
||||
});
|
||||
|
||||
// ensure spacing below last visible row
|
||||
// ensure spacing below last visible row
|
||||
$("#sp_criteria-element > div:visible:last").addClass("search-row-and").removeClass("search-row-or");
|
||||
}
|
||||
|
||||
|
@ -874,7 +939,8 @@ var criteriaTypes = {
|
|||
"track_title" : "s",
|
||||
"track_number" : "n",
|
||||
"info_url" : "s",
|
||||
"year" : "n"
|
||||
"year" : "n",
|
||||
"track_type" : "tt"
|
||||
};
|
||||
|
||||
var stringCriteriaOptions = {
|
||||
|
@ -886,7 +952,7 @@ var stringCriteriaOptions = {
|
|||
"starts with" : $.i18n._("starts with"),
|
||||
"ends with" : $.i18n._("ends with")
|
||||
};
|
||||
|
||||
|
||||
var numericCriteriaOptions = {
|
||||
"0" : $.i18n._("Select modifier"),
|
||||
"is" : $.i18n._("is"),
|
||||
|
@ -907,3 +973,12 @@ var dateTimeCriteriaOptions = {
|
|||
"is less than" : $.i18n._("is less than"),
|
||||
"is in the range" : $.i18n._("is in the range")
|
||||
};
|
||||
|
||||
var stringIsNotOptions = {
|
||||
"0" : $.i18n._("Select modifier"),
|
||||
"is" : $.i18n._("is"),
|
||||
"is not" : $.i18n._("is not")
|
||||
};
|
||||
|
||||
let tracktypes = TRACKTYPES;
|
||||
var stringTracktypeOptions = Object.assign({"": "Select Track Type"}, tracktypes);
|
|
@ -0,0 +1,151 @@
|
|||
|
||||
function populateForm(entries){
|
||||
|
||||
$('.errors').remove();
|
||||
$('.success').remove();
|
||||
|
||||
$('#tracktype_id').val(entries.id);
|
||||
$('#code').val(entries.code);
|
||||
$('#type_name').val(entries.type_name);
|
||||
$('#description').val(entries.description);
|
||||
|
||||
if (entries.visibility) {
|
||||
var visibility_value = 1;
|
||||
} else {
|
||||
var visibility_value = 0;
|
||||
}
|
||||
$('#visibility').val(visibility_value);
|
||||
|
||||
if (entries.id.length != 0){
|
||||
$('#code').attr('readonly', 'readonly');
|
||||
} else {
|
||||
$('#code').removeAttr('readonly');
|
||||
}
|
||||
}
|
||||
|
||||
function rowClickCallback(row_id){
|
||||
$.ajax({ url: baseUrl+'Tracktype/get-tracktype-data/id/'+ row_id +'/format/json', dataType:"json", success:function(data){
|
||||
populateForm(data.entries);
|
||||
$("#tracktype_details").css("visibility", "visible");
|
||||
}});
|
||||
}
|
||||
|
||||
function removeTracktypeCallback(row_id, nRow) {
|
||||
if (confirm($.i18n._("Are you sure you want to delete this tracktype?"))) {
|
||||
$.ajax({
|
||||
url: baseUrl + 'Tracktype/remove-tracktype/id/' + row_id + '/format/json',
|
||||
dataType: "text",
|
||||
success: function (data) {
|
||||
var o = $('#tracktypes_datatable').dataTable().fnDeleteRow(nRow);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function rowCallback( nRow, aData, iDisplayIndex ){
|
||||
$(nRow).click(function(){rowClickCallback(aData['id'])});
|
||||
if( aData['delete'] != "self"){
|
||||
$('td:eq(4)', nRow).append( '<span class="ui-icon ui-icon-closethick"></span>').children('span').click(function(e){e.stopPropagation(); removeTracktypeCallback(aData['id'], nRow)});
|
||||
}else{
|
||||
$('td:eq(4)', nRow).empty().append( '<span class="ui-icon ui-icon-closethick"></span>').children('span').click(function(e){e.stopPropagation(); alert("Can't delete yourself!")});
|
||||
}
|
||||
|
||||
if ( aData['visibility'] == "1" ) {
|
||||
$('td:eq(3)', nRow).html( $.i18n._('Enabled') );
|
||||
} else {
|
||||
$('td:eq(3)', nRow).html( $.i18n._('Disabled') );
|
||||
}
|
||||
|
||||
return nRow;
|
||||
}
|
||||
|
||||
function populateTracktypeTable() {
|
||||
var dt = $('#tracktypes_datatable');
|
||||
dt.dataTable( {
|
||||
"bProcessing": true,
|
||||
"bServerSide": true,
|
||||
"sAjaxSource": baseUrl+"Tracktype/get-tracktype-data-table-info/format/json",
|
||||
"fnServerData": function ( sSource, aoData, fnCallback ) {
|
||||
$.ajax( {
|
||||
"dataType": 'json',
|
||||
"type": "POST",
|
||||
"url": sSource,
|
||||
"data": aoData,
|
||||
"success": fnCallback
|
||||
} );
|
||||
},
|
||||
"fnRowCallback": rowCallback,
|
||||
"aoColumns": [
|
||||
/* Id */ { "sName": "id", "bSearchable": false, "bVisible": false, "mDataProp": "id" },
|
||||
/* code */ { "sName": "code", "mDataProp": "code" },
|
||||
/* type_name */ { "sName": "type_name", "mDataProp": "type_name" },
|
||||
/* description */ { "sName": "description", "mDataProp": "description" },
|
||||
/* visibility */ { "sName": "visibility", "bSearchable": false, "mDataProp": "visibility" },
|
||||
/* del button */ { "sName": "null as delete", "bSearchable": false, "bSortable": false, "mDataProp": "delete"}
|
||||
],
|
||||
"bJQueryUI": true,
|
||||
"bAutoWidth": false,
|
||||
"bLengthChange": false,
|
||||
"oLanguage": getDatatablesStrings({
|
||||
"sEmptyTable": $.i18n._("No track types were found."),
|
||||
"sEmptyTable": $.i18n._("No track types found"),
|
||||
"sZeroRecords": $.i18n._("No matching track types found"),
|
||||
"sInfo": $.i18n._("Showing _START_ to _END_ of _TOTAL_ track types"),
|
||||
"sInfoEmpty": $.i18n._("Showing 0 to 0 of 0 track types"),
|
||||
"sInfoFiltered": $.i18n._("(filtered from _MAX_ total track types)"),
|
||||
}),
|
||||
"sDom": '<"H"lf<"dt-process-rel"r>><"#tracktype_list_inner_wrapper"t><"F"ip>'
|
||||
});
|
||||
}
|
||||
|
||||
function sizeFormElements() {
|
||||
$("dt[id$='label']").addClass('tracktype-form-label');
|
||||
$("dd[id$='element']").addClass('tracktype-form-element');
|
||||
}
|
||||
|
||||
function initTracktypeData() {
|
||||
var visibility = $('#visibility');
|
||||
|
||||
var table = $("#tracktypes_datable");//.DataTable();
|
||||
$('.datatable tbody').on( 'click', 'tr', function () {
|
||||
$(this).parent().find('tr.selected').removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
} );
|
||||
|
||||
$('#button').click( function () {
|
||||
table.row('.selected').remove().draw( false );
|
||||
} );
|
||||
|
||||
var newTracktype = {code:"", type_name:"", description:"", visibility:"1", id:""};
|
||||
|
||||
$('#add_tracktype_button').live('click', function(){
|
||||
populateForm(newTracktype);
|
||||
$("#tracktype_details").css("visibility", "visible");
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
populateTracktypeTable();
|
||||
initTracktypeData();
|
||||
|
||||
$('#save_tracktype').live('click', function(){
|
||||
var data = $('#tracktype_form').serialize();
|
||||
var url = baseUrl+'Tracktype/add-tracktype';
|
||||
|
||||
$.post(url, {format: "json", data: data}, function(json){
|
||||
if (json.valid === "true") {
|
||||
$('#content').empty().append(json.html);
|
||||
populateTracktypeTable();
|
||||
init(); // Reinitialize
|
||||
} else {
|
||||
//if form is invalid we only need to redraw the form
|
||||
$('#tracktype_form').empty().append($(json.html).find('#tracktype_form').children());
|
||||
}
|
||||
setTimeout(removeSuccessMsg, 5000);
|
||||
sizeFormElements();
|
||||
});
|
||||
});
|
||||
|
||||
sizeFormElements();
|
||||
});
|
|
@ -42,18 +42,13 @@ You can also set options for RabbitMQ messaging, the LibreTime server and SoundC
|
|||
[demo]
|
||||
demo = 0
|
||||
|
||||
Save and close the file with **Ctrl+O** and **Ctrl+X**. If you have changed the database settings, you should now run the command:
|
||||
Save and close the file with **Ctrl+O** and **Ctrl+X**. In order to update the configuration
|
||||
used by the various components of LibreTime, run the following commands
|
||||
|
||||
sudo airtime-update-db-settings
|
||||
|
||||
to make sure all of LibreTime's database configuration files are updated. This command should output the following text to the server console:
|
||||
|
||||
LibreTime root folder found at /usr/share/airtime
|
||||
Updating /usr/share/airtime/application/configs/application.ini
|
||||
Updating /usr/share/airtime/build/build.properties
|
||||
Updating /usr/share/airtime/build/runtime-conf.xml
|
||||
Success!
|
||||
|
||||
sudo systemctl restart airtime-liquidsoap
|
||||
sudo systemctl restart airtime-playout
|
||||
sudo systemctl restart airtime-celery
|
||||
sudo systemctl restart airtime_analyzer
|
||||
|
||||
API client configuration
|
||||
------------------------
|
||||
|
@ -73,7 +68,7 @@ Playout and recorder settings
|
|||
|
||||
Settings for pypo, the playout and recording engine used by LibreTime, are found in the file */etc/airtime/airtime.conf*. After making changes to this file, you will have to issue the command:
|
||||
|
||||
sudo /etc/init.d/airtime-playout restart
|
||||
sudo systemctl restart airtime-playout
|
||||
|
||||
for the changes to take effect.
|
||||
|
||||
|
@ -107,7 +102,7 @@ for the changes to take effect.
|
|||
|
||||
############################################
|
||||
# Liquidsoap settings #
|
||||
############################################
|
||||
############################################
|
||||
ls_host = 127.0.0.1
|
||||
ls_port = 1234
|
||||
|
||||
|
@ -141,21 +136,7 @@ for the changes to take effect.
|
|||
#
|
||||
push_interval = 1# in seconds
|
||||
|
||||
# 'pre' or 'otf'. 'pre' cues while playlist preparation
|
||||
# 'pre' or 'otf'. 'pre' cues while playlist preparation
|
||||
# while 'otf' (on the fly) cues while loading into ls
|
||||
# (needs the post_processor patch)
|
||||
cue_style = pre
|
||||
|
||||
############################################
|
||||
# Recorded Audio settings #
|
||||
############################################
|
||||
record_bitrate = 256
|
||||
record_samplerate = 44100
|
||||
record_channels = 2
|
||||
record_sample_size = 16
|
||||
|
||||
#can be either ogg|mp3, mp3 recording requires installation of the package "lame"
|
||||
record_file_type = ogg
|
||||
|
||||
# base path to store recorded shows at
|
||||
base_recorded_files = /var/tmp/airtime/show-recorder/
|
||||
|
|
|
@ -12,3 +12,6 @@ The following are step-by-step instructions derived from the LibreTime tutorials
|
|||
* [How to setup an intro playlist](intro-playlist.md)
|
||||
* [How to setup an outro playlist with ambient music](outro-playlist.md)
|
||||
* [How to setup latest podcast episode to play with autoloading playlist](podcast.md)
|
||||
|
||||
##Adminstrators How Tos##
|
||||
* [How to add track types](track-types.md)
|
|
@ -0,0 +1,42 @@
|
|||
# How to add track types
|
||||
|
||||
**Audience**: Adminstrators
|
||||
|
||||
## Using track types when uploading tracks
|
||||
|
||||
1. Click **Upload**
|
||||
1. The default track type is 'Music'
|
||||
1. Click the drop down menu to select another type
|
||||
|
||||
Now when uploading tracks, you have the option to set a track type. This helps better identify and organize track files. If you have a group of files for commercials that needs to be uploaded, you can "Commercial" in the drop down menu and then upload the files. Commercial is included by default with LT, but you can create your own type in settings.
|
||||
|
||||
## Create track types
|
||||
|
||||
1. Click **Settings**
|
||||
1. Click **Track Types**
|
||||
1. Click **New Track Type**
|
||||
1. On the "Code" field, type a unique code that can be easily identifiable. Example, for Music use "MUS" or for Sound Effects use something like "FX".
|
||||
1. On the "Type Name" field, type a the name of the type of tracks. Example, "Station IDs".
|
||||
1. On the "Description" field, enter the description of the type given.
|
||||
1. On the "Visibility" drop down menu, choose to enable or disable the track type. By default, it is enabled. If disabled, it won't be shown across Libretime or in the API for developers.
|
||||
1. Click **Save**.
|
||||
|
||||
## Using track types with the uploaded tracks
|
||||
|
||||
1. Click **Tracks**.
|
||||
1. Select a track and click **Edit**
|
||||
1. On "Track Type" drop down menu, select the type you would like use. Only the enabled track types that were added in Settings > Track Types will be shown here.
|
||||
1. Click **Save**.
|
||||
|
||||
## Using track types with advanced search
|
||||
|
||||
1. Click **Tracks**.
|
||||
1. Click on the down caret **▼** that is to the right inside search box
|
||||
1. On **Type** select the type of track you're searching for.
|
||||
|
||||
## Using track types in Smart Blocks
|
||||
|
||||
1. Click **Smart Blocks**.
|
||||
1. On "Select criteria" drop down menu, select "Track Type"
|
||||
1. On "Select modifier" drop down menu, select "is" or "is not"
|
||||
1. On "Select Track Type" drop down menu, select the track type.
|
|
@ -1,25 +1,20 @@
|
|||
If your Airtime server is not working as expected, individual components of the system can be started, stopped, restarted or checked in the server console using the <span style="font-weight: bold;">invok</span>**e-rc.d** command:
|
||||
If your Airtime server is not working as expected, individual components of the system can be started, stopped, restarted or checked in the server console using the **systemctl** command:
|
||||
|
||||
sudo invoke-rc.d airtime-liquidsoap start|stop|restart|status
|
||||
sudo invoke-rc.d airtime-playout start|stop|restart|status
|
||||
sudo invoke-rc.d airtime-analyzer start|stop|restart|status
|
||||
sudo invoke-rc.d apache2 start|stop|restart|status
|
||||
sudo invoke-rc.d rabbitmq-server start|stop|restart|status
|
||||
sudo systemctl start|stop|restart|status airtime-liquidsoap
|
||||
sudo systemctl start|stop|restart|status airtime-playout
|
||||
sudo systemctl start|stop|restart|status airtime-celery
|
||||
sudo systemctl start|stop|restart|status airtime_analyzer
|
||||
sudo systemctl start|stop|restart|status apache2
|
||||
sudo systemctl start|stop|restart|status rabbitmq-server
|
||||
|
||||
For example, to restart the Airtime playout engine, you could enter the command:
|
||||
|
||||
sudo invoke-rc.d airtime-playout restart
|
||||
|
||||
The server should respond:
|
||||
|
||||
Restarting Airtime Playout: Done.
|
||||
|
||||
The **status** option for **airtime-playout** and **airtime-analyzer** runs the **airtime-check-system** script to confirm that all of Airtime's dependencies are installed and running correctly.
|
||||
sudo systemctl restart airtime-analyzer
|
||||
|
||||
Log files
|
||||
---------
|
||||
|
||||
Airtime stores log files under the directory path */var/log/airtime/* which can be useful for diagnosing the cause of any problems. Copies of these log files may be requested by Sourcefabric engineers while they are providing technical support for your Airtime deployment. See the chapter *The airtime-log command* for more details.
|
||||
Airtime stores log files under the directory path */var/log/airtime/* which can be useful for diagnosing the cause of any problems. Copies of these log files may be requested by LibreTime developers while they are providing technical support for your Airtime deployment.
|
||||
|
||||
Test tones
|
||||
----------
|
||||
|
@ -58,7 +53,7 @@ If the Airtime logs indicate failures to connect to the RabbitMQ server, such as
|
|||
2013-10-31 08:21:11,255 ERROR - [pypomessagehandler.py : main() : line
|
||||
99] - Error connecting to RabbitMQ Server. Trying again in few seconds
|
||||
|
||||
2013-10-31 08:21:11,255 ERROR - \[pypomessagehandler.py : main() : line 99\] - Error connecting to RabbitMQ Server. Trying again in few seconds - See more at: http://forum.sourcefabric.org/discussion/16050/\#sthash.W8OJrNFm.dpuf
|
||||
2013-10-31 08:21:11,255 ERROR - \[pypomessagehandler.py : main() : line 99\] - Error connecting to RabbitMQ Server. Trying again in few seconds - See more at: http://forum.sourcefabric.org/discussion/16050/\#sthash.W8OJrNFm.dpuf
|
||||
|
||||
but the RabbitMQ server is running normally, this error might be due to a change in the server's hostname since Airtime installation. Directory names under */var/lib/rabbitmq/mnesia/* indicate that RabbitMQ's database files are organised according to the hostname of the server, for example:
|
||||
|
||||
|
@ -72,13 +67,13 @@ where the hostname is *airtime.example.com*. If the hostname has changed, it may
|
|||
|
||||
2. Restart RabbitMQ:
|
||||
|
||||
sudo invoke-rc.d rabbitmq-server restart
|
||||
sudo systemctl restart rabbitmq-server
|
||||
|
||||
3. Enter the following commands to set up authentication and grant permissions. The *rabbitmqctl add\_user* command requires the RabbitMQ password from the /etc/airtime/airtime.conf file as an argument. The *rabbitmqctl set\_permissions* command should be entered on one line, with the list of Airtime services repeated three times:
|
||||
|
||||
rabbitmqctl add_vhost /airtime
|
||||
rabbitmqctl add_user airtime XXXXXXXXXXXXXXXXXXXX
|
||||
rabbitmqctl set_permissions -p /airtime airtime
|
||||
rabbitmqctl add_user airtime XXXXXXXXXXXXXXXXXXXX
|
||||
rabbitmqctl set_permissions -p /airtime airtime
|
||||
"airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor"
|
||||
"airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor"
|
||||
"airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor"
|
||||
|
|
4
install
4
install
|
@ -906,7 +906,7 @@ if [ "$icecast" = "t" ]; then
|
|||
icecast_config="/etc/icecast.xml"
|
||||
fi
|
||||
# only update icecast password if
|
||||
if [ ! -f "/etc/airtime/airtime.conf" ] && [ !-f "/etc/airtime/airtime.conf.tmp" ]; then
|
||||
if [ ! -e "/etc/airtime/airtime.conf" ] && [ ! -e "/etc/airtime/airtime.conf.tmp" ]; then
|
||||
icecast_pass=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-12};)
|
||||
echo $icecast_pass > /tmp/icecast_pass
|
||||
loud "\n New install detected setting icecast password to random value."
|
||||
|
@ -1121,7 +1121,7 @@ if [ ! -d "/etc/airtime" ]; then
|
|||
mkdir /etc/airtime
|
||||
fi
|
||||
|
||||
if [ ! -f "/etc/airtime/airtime.conf" ] && [ !-f "/etc/airtime/airtime.conf.tmp" ]; then
|
||||
if [ ! -e "/etc/airtime/airtime.conf" ] && [ ! -e "/etc/airtime/airtime.conf.tmp" ]; then
|
||||
# need to copy the icecast_pass from temp to /etc/airtime so web-based installer can read it
|
||||
cp /tmp/icecast_pass /etc/airtime/icecast_pass
|
||||
fi
|
||||
|
|
|
@ -9,6 +9,7 @@ audio/aac aac
|
|||
audio/aacp aac
|
||||
audio/mp4 m4a
|
||||
audio/x-flac flac
|
||||
audio/flac flac
|
||||
audio/wav wav
|
||||
audio/x-wav wav
|
||||
audio/mp2 mp2
|
||||
|
|
Loading…
Reference in New Issue