From 07a4117bd47e83784357dbb08dec702e5ed55657 Mon Sep 17 00:00:00 2001 From: Codenift Date: Wed, 16 Oct 2019 20:20:34 -0400 Subject: [PATCH 01/17] Media Type for tracks. Same PR from before with a couple minor fixes --- airtime_mvc/application/configs/constants.php | 1 + .../airtime_3.0.0-alpha.9.2/upgrade.sql | 1 + airtime_mvc/application/forms/EditAudioMD.php | 28 ++++++ .../application/forms/SmartBlockCriteria.php | 19 ++-- airtime_mvc/application/models/Block.php | 75 +++++++-------- airtime_mvc/application/models/StoredFile.php | 5 +- .../models/airtime/map/CcFilesTableMap.php | 1 + .../models/airtime/om/BaseCcFiles.php | 55 +++++++++++ .../models/airtime/om/BaseCcFilesPeer.php | 27 +++--- .../models/airtime/om/BaseCcFilesQuery.php | 35 ++++++- .../application/services/HistoryService.php | 43 ++++----- airtime_mvc/application/upgrade/Upgrades.php | 11 +++ .../library/get-file-metadata.ajax.phtml | 1 + airtime_mvc/build/schema.xml | 1 + airtime_mvc/build/sql/schema.sql | 1 + airtime_mvc/public/css/media_library.css | 9 +- .../public/js/airtime/library/library.js | 7 +- .../js/airtime/playlist/smart_blockbuilder.js | 91 ++++++++++--------- 18 files changed, 281 insertions(+), 130 deletions(-) create mode 100644 airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql diff --git a/airtime_mvc/application/configs/constants.php b/airtime_mvc/application/configs/constants.php index a56a908b5..29157c556 100644 --- a/airtime_mvc/application/configs/constants.php +++ b/airtime_mvc/application/configs/constants.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_MEDIA_TYPE' , 'media_type'); define('UI_MDATA_VALUE_FORMAT_FILE' , 'File'); define('UI_MDATA_VALUE_FORMAT_STREAM' , 'live stream'); diff --git a/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql b/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql new file mode 100644 index 000000000..93d05bb02 --- /dev/null +++ b/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql @@ -0,0 +1 @@ +ALTER TABLE cc_files ADD COLUMN media_type VARCHAR(16); diff --git a/airtime_mvc/application/forms/EditAudioMD.php b/airtime_mvc/application/forms/EditAudioMD.php index 62a83f66c..ecc1ec135 100644 --- a/airtime_mvc/application/forms/EditAudioMD.php +++ b/airtime_mvc/application/forms/EditAudioMD.php @@ -74,6 +74,34 @@ class Application_Form_EditAudioMD extends Zend_Form $owner_id->setMultiOptions($user_options); $this->addelement($owner_id); + // Add media type dropdown + $media_type_options = array(); + $media_types = array( + '' => '--- Select Media Type ---', + 'MUS' => 'Music (MUS)', + 'SID' => 'Station ID (SID)', + 'INT' => 'Intro (INT)', + 'OUT' => 'Outro (OUT)', + 'SWP' => 'Sweeper (SWP)', + 'JIN' => 'Jingle (JIN)', + 'PRO' => 'Promo (PRO)', + 'SHO' => 'Shout Out (SHO)', + 'NWS' => 'News (NWS)', + 'COM' => 'Commercial (COM)', + 'ITV' => 'Interview (ITV)', + 'VTR' => 'Voice Tracking (VTR)', + ); + + foreach ($media_types as $key => $mt) { + $media_type_options[$key] = $mt; + } + + $media_type = new Zend_Form_Element_Select('media_type'); + $media_type->class = 'input_text'; + $media_type->setLabel(_('Media Type:')); + $media_type->setMultiOptions($media_type_options); + $this->addelement($media_type); + // Description field $description = new Zend_Form_Element_Textarea('description'); $description->class = 'input_text'; diff --git a/airtime_mvc/application/forms/SmartBlockCriteria.php b/airtime_mvc/application/forms/SmartBlockCriteria.php index e539c551c..b67efb401 100644 --- a/airtime_mvc/application/forms/SmartBlockCriteria.php +++ b/airtime_mvc/application/forms/SmartBlockCriteria.php @@ -42,7 +42,8 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm "track_title" => "s", "track_number" => "n", "info_url" => "s", - "year" => "n" + "year" => "n", + "media_type" => "s" ); private function getCriteriaOptions($option = null) @@ -68,6 +69,7 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm "mtime" => _("Last Modified"), "lptime" => _("Last Played"), "length" => _("Length"), + "media_type" => _("Media Type"), "mime" => _("Mime"), "mood" => _("Mood"), "owner_id" => _("Owner"), @@ -183,18 +185,18 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm 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 +248,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"]); @@ -470,7 +472,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')) @@ -721,7 +723,8 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm "sample_rate" => "DbSampleRate", "track_title" => "DbTrackTitle", "track_number" => "DbTrackNumber", - "year" => "DbYear" + "year" => "DbYear", + "media_type" => "DbMediaType" ); // things we need to check diff --git a/airtime_mvc/application/models/Block.php b/airtime_mvc/application/models/Block.php index f40945742..aeb064df3 100644 --- a/airtime_mvc/application/models/Block.php +++ b/airtime_mvc/application/models/Block.php @@ -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", + "media_type" => "DbMediaType" ); 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"), + "media_type" => _("Media Type"), "mime" => _("Mime"), "mood" => _("Mood"), "owner_id" => _("Owner"), @@ -1550,6 +1552,7 @@ SQL; "mtime" => _("Last Modified"), "lptime" => _("Last Played"), "length" => _("Length"), + "media_type" => _("Media 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']; diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index 8e8211378..ac0736278 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -54,7 +54,8 @@ class Application_Model_StoredFile "cuein" => "DbCueIn", "cueout" => "DbCueOut", "description" => "DbDescription", - "artwork" => "DbArtwork" + "artwork" => "DbArtwork", + "media_type" => "DbMediaType" ); 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", "media_type" ); } public static function searchLibraryFiles($datatables) diff --git a/airtime_mvc/application/models/airtime/map/CcFilesTableMap.php b/airtime_mvc/application/models/airtime/map/CcFilesTableMap.php index e68a15637..a2a917e16 100644 --- a/airtime_mvc/application/models/airtime/map/CcFilesTableMap.php +++ b/airtime_mvc/application/models/airtime/map/CcFilesTableMap.php @@ -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('media_type', 'DbMediaType', 'VARCHAR', false, 16, null); // validators } // initialize() diff --git a/airtime_mvc/application/models/airtime/om/BaseCcFiles.php b/airtime_mvc/application/models/airtime/om/BaseCcFiles.php index 7cf46f514..7dca9e23a 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcFiles.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcFiles.php @@ -294,6 +294,12 @@ abstract class BaseCcFiles extends BaseObject implements Persistent */ protected $artwork; + /** + * The value for the media_type field. + * @var string + */ + protected $media_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 [media_type] column value. + * + * @return string + */ + public function getDbMediaType() + { + + return $this->media_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 [media_type] column. + * + * @param string $v new value + * @return CcFiles The current object (for fluent API support) + */ + public function setDbMediaType($v) + { + if ($v !== null && is_numeric($v)) { + $v = (string) $v; + } + + if ($this->media_type !== $v) { + $this->media_type = $v; + $this->modifiedColumns[] = CcFilesPeer::MEDIA_TYPE; + } + + return $this; + } // setDbMediaType() + /** * 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->media_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::MEDIA_TYPE)) { + $modifiedColumns[':p' . $index++] = '"media_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 '"media_type"': + $stmt->bindValue($identifier, $this->media_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->getDbMediaType(); + 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->getDbMediaType(), ); $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->setDbMediaType($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->setDbMediaType($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::MEDIA_TYPE)) $criteria->add(CcFilesPeer::MEDIA_TYPE, $this->media_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->setDbMediaType($this->getDbMediaType()); 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->media_type = null; $this->alreadyInSave = false; $this->alreadyInValidation = false; $this->alreadyInClearAllReferencesDeep = false; diff --git a/airtime_mvc/application/models/airtime/om/BaseCcFilesPeer.php b/airtime_mvc/application/models/airtime/om/BaseCcFilesPeer.php index 8b61968b2..635d6a99a 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcFilesPeer.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcFilesPeer.php @@ -251,6 +251,9 @@ abstract class BaseCcFilesPeer /** the column name for the artwork field */ const ARTWORK = 'cc_files.artwork'; + /** the column name for the media_type field */ + const MEDIA_TYPE = 'cc_files.media_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', 'DbMediaType', ), + 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', 'dbMediaType', ), + 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::MEDIA_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', 'MEDIA_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', 'media_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, 'DbMediaType' => 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, 'dbMediaType' => 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, 'MEDIA_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, 'media_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::MEDIA_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 . '.media_type'); } } diff --git a/airtime_mvc/application/models/airtime/om/BaseCcFilesQuery.php b/airtime_mvc/application/models/airtime/om/BaseCcFilesQuery.php index 6c5afc688..f026dee8a 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcFilesQuery.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcFilesQuery.php @@ -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 orderByDbMediaType($order = Criteria::ASC) Order by the media_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 groupByDbMediaType() Group by the media_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 findOneByDbMediaType(string $media_type) Return the first CcFiles filtered by the media_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 findByDbMediaType(string $media_type) Return CcFiles objects filtered by the media_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", "media_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 media_type column + * + * Example usage: + * + * $query->filterByDbMediaType('fooValue'); // WHERE media_type = 'fooValue' + * $query->filterByDbMediaType('%fooValue%'); // WHERE media_type LIKE '%fooValue%' + * + * + * @param string $dbMediaType 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 filterByDbMediaType($dbMediaType = null, $comparison = null) + { + if (null === $comparison) { + if (is_array($dbMediaType)) { + $comparison = Criteria::IN; + } elseif (preg_match('/[\%\*]/', $dbMediaType)) { + $dbMediaType = str_replace('*', '%', $dbMediaType); + $comparison = Criteria::LIKE; + } + } + + return $this->addUsingAlias(CcFilesPeer::MEDIA_TYPE, $dbMediaType, $comparison); + } + /** * Filter the query on the artist_url column * diff --git a/airtime_mvc/application/services/HistoryService.php b/airtime_mvc/application/services/HistoryService.php index 4ac58e2ed..9fb1d3108 100644 --- a/airtime_mvc/application/services/HistoryService.php +++ b/airtime_mvc/application/services/HistoryService.php @@ -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_MEDIA_TYPE, "label"=> _("Media Type"), "type"=> TEMPLATE_STRING), ); return $fileMD; diff --git a/airtime_mvc/application/upgrade/Upgrades.php b/airtime_mvc/application/upgrade/Upgrades.php index facc3b935..8c8742187 100644 --- a/airtime_mvc/application/upgrade/Upgrades.php +++ b/airtime_mvc/application/upgrade/Upgrades.php @@ -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'; + } +} diff --git a/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml b/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml index 31d873803..e2102af55 100644 --- a/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml +++ b/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml @@ -26,6 +26,7 @@ foreach ($this->md as $key => &$value) { md["MDATA_KEY_ARTWORK"]);?> md["MDATA_KEY_ARTWORK_DATA"]);?> md["MDATA_KEY_LANGUAGE"]);?> +md["MDATA_KEY_MEDIA_TYPE"]);?> md["MDATA_KEY_FILEPATH"]);?> diff --git a/airtime_mvc/build/schema.xml b/airtime_mvc/build/schema.xml index acf54453b..91baa6229 100644 --- a/airtime_mvc/build/schema.xml +++ b/airtime_mvc/build/schema.xml @@ -85,6 +85,7 @@ + diff --git a/airtime_mvc/build/sql/schema.sql b/airtime_mvc/build/sql/schema.sql index a148a56da..f03ea0dd5 100644 --- a/airtime_mvc/build/sql/schema.sql +++ b/airtime_mvc/build/sql/schema.sql @@ -97,6 +97,7 @@ CREATE TABLE "cc_files" "filesize" INTEGER DEFAULT 0 NOT NULL, "description" VARCHAR(512), "artwork" VARCHAR(512), + "media_type" VARCHAR(16), PRIMARY KEY ("id") ); diff --git a/airtime_mvc/public/css/media_library.css b/airtime_mvc/public/css/media_library.css index ac397dee9..997459af2 100644 --- a/airtime_mvc/public/css/media_library.css +++ b/airtime_mvc/public/css/media_library.css @@ -99,7 +99,8 @@ text-align: center; } -.library_year { +.library_year, +.library_media_type { text-align: center; } @@ -141,7 +142,7 @@ tr.lib-selected > td > div.library_actions_btn:hover { color: #eee; } -.library_import { +.library_import { padding-bottom: 5px; } @@ -244,7 +245,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 +257,4 @@ tr.lib-selected > td > div.library_actions_btn:hover { height: 26px; outline: none; vertical-align: middle !important; - } \ No newline at end of file + } \ No newline at end of file diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index 38a675e81..b5a9578c3 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -54,7 +54,8 @@ var AIRTIME = (function(AIRTIME) { "owner_id" : "s", "info_url" : "s", "replay_gain" : "n", - "artwork" : "s" + "artwork" : "s", + "media_type" : "s" }; 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" }, + /* Media Type */ { "sTitle" : $.i18n._("Type") , "mDataProp" : "media_type" , "bVisible" : false , "sClass" : "library_media_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 @@ -1597,6 +1599,7 @@ var validationTypes = { "track_number" : "i", "info_url" : "s", "artwork" : "s", + "media_type" : "s", "year" : "i" }; diff --git a/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js b/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js index fddf6ca34..d69da00b5 100644 --- a/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js +++ b/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js @@ -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 0 && index < 26) { - + /* If the current row's criteria field is hidden we know it is * a modifier row */ @@ -444,7 +444,7 @@ 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); @@ -464,7 +464,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 +499,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 +514,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.")+"

" + @@ -536,7 +536,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) @@ -661,7 +661,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'); @@ -685,15 +685,15 @@ 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($('') @@ -777,7 +777,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 +821,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 +837,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 +874,8 @@ var criteriaTypes = { "track_title" : "s", "track_number" : "n", "info_url" : "s", - "year" : "n" + "year" : "n", + "media_type" : "s" }; var stringCriteriaOptions = { @@ -886,7 +887,7 @@ var stringCriteriaOptions = { "starts with" : $.i18n._("starts with"), "ends with" : $.i18n._("ends with") }; - + var numericCriteriaOptions = { "0" : $.i18n._("Select modifier"), "is" : $.i18n._("is"), From d5b04b30cc0d17953d7b346aff3d1ed405520fda Mon Sep 17 00:00:00 2001 From: Codenift Date: Wed, 16 Oct 2019 21:22:50 -0400 Subject: [PATCH 02/17] Added media_type downgrade --- .../downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql diff --git a/airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql b/airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql new file mode 100644 index 000000000..05065daec --- /dev/null +++ b/airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql @@ -0,0 +1 @@ +ALTER TABLE cc_files DROP COLUMN IF EXISTS media_type; From 3338e9289a157dbb8b4268272cf90c05fce9da8a Mon Sep 17 00:00:00 2001 From: Codenift Date: Thu, 7 Nov 2019 15:31:09 -0500 Subject: [PATCH 03/17] Set to media type on upload. Music being default. --- .../application/common/FileDataHelper.php | 16 ++++++ .../application/models/airtime/CcFiles.php | 2 + .../views/scripts/plupload/index.phtml | 55 ++++++++++++++++++- airtime_mvc/public/css/addmedia.css | 6 ++ .../public/js/airtime/library/plupload.js | 7 +++ 5 files changed, 84 insertions(+), 2 deletions(-) diff --git a/airtime_mvc/application/common/FileDataHelper.php b/airtime_mvc/application/common/FileDataHelper.php index 3c576f685..865f5eec1 100644 --- a/airtime_mvc/application/common/FileDataHelper.php +++ b/airtime_mvc/application/common/FileDataHelper.php @@ -349,4 +349,20 @@ class FileDataHelper { } } + /** + * Media Type + * + * @return string Media type key value + */ + public static function saveMediaType() + { + if (isset($_COOKIE['mt_upload'])) { + $mt = $_COOKIE['mt_upload']; + } else { + // Use default media type + $mt = "MUS"; + } + return $mt; + } + } diff --git a/airtime_mvc/application/models/airtime/CcFiles.php b/airtime_mvc/application/models/airtime/CcFiles.php index fcc390a46..5c9d4c5be 100644 --- a/airtime_mvc/application/models/airtime/CcFiles.php +++ b/airtime_mvc/application/models/airtime/CcFiles.php @@ -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); + $mediaType = FileDataHelper::saveMediaType(); $file->fromArray($fileArray); $file->setDbOwnerId(self::getOwnerId()); $now = new DateTime("now", new DateTimeZone("UTC")); $file->setDbTrackTitle($originalFilename); $file->setDbArtwork($artwork); + $file->setDbMediaType($mediaType); $file->setDbUtime($now); $file->setDbHidden(true); $file->save(); diff --git a/airtime_mvc/application/views/scripts/plupload/index.phtml b/airtime_mvc/application/views/scripts/plupload/index.phtml index bdf6a485e..e02b5283e 100644 --- a/airtime_mvc/application/views/scripts/plupload/index.phtml +++ b/airtime_mvc/application/views/scripts/plupload/index.phtml @@ -14,8 +14,59 @@ $used = $disk->totalSpace-$disk->totalFreeSpace; $total = $disk->totalSpace; ?> + + 'Music', + 'SID' => 'Station IDs', + 'INT' => 'Intros', + 'OUT' => 'Outros', + 'SWP' => 'Sweepers', + 'JIN' => 'Jingles', + 'PRO' => 'Promos', + 'SHO' => 'Shout Outs', + 'NWS' => 'News', + 'COM' => 'Commercials', + 'ITV' => 'Interviews', + 'VTR' => 'Voice Trackings', + ); + ?> + +
-

Upload Audio Files

+ +
+
+ +
+
+ + $mt) { + if ($mtsaved == $key) { + $mtTitle = $mt; + } + } + ?> +

form->getElement('csrf') ?>
@@ -53,7 +104,7 @@ - +

Custom tool bar! Text/images etc.'); + + $("#select_type").on("change",function(){ + var mtValue = $("#select_type").val(); + var mtText = $('#select_type option[value="'+mtValue+'"]').text(); + $("#upload_type").text(" " + mtText); + Cookies.set('mt_upload', mtValue); + }); }); From 386918da2bf567f32889a0e90c4ecd35e72e5ebc Mon Sep 17 00:00:00 2001 From: Codenift Date: Mon, 6 Jan 2020 17:15:04 -0500 Subject: [PATCH 04/17] Renamed media type to track type for tracks --- .../application/common/FileDataHelper.php | 16 +++---- airtime_mvc/application/configs/constants.php | 2 +- .../airtime_3.0.0-alpha.9.2/downgrade.sql | 2 +- .../airtime_3.0.0-alpha.9.2/upgrade.sql | 2 +- airtime_mvc/application/forms/EditAudioMD.php | 22 ++++----- .../application/forms/SmartBlockCriteria.php | 6 +-- airtime_mvc/application/models/Block.php | 6 +-- airtime_mvc/application/models/StoredFile.php | 4 +- .../application/models/airtime/CcFiles.php | 4 +- .../models/airtime/map/CcFilesTableMap.php | 2 +- .../models/airtime/om/BaseCcFiles.php | 46 +++++++++---------- .../models/airtime/om/BaseCcFilesPeer.php | 26 +++++------ .../models/airtime/om/BaseCcFilesQuery.php | 28 +++++------ .../application/services/HistoryService.php | 2 +- .../library/get-file-metadata.ajax.phtml | 2 +- .../views/scripts/plupload/index.phtml | 28 +++++------ airtime_mvc/build/schema.xml | 2 +- airtime_mvc/build/sql/schema.sql | 2 +- airtime_mvc/public/css/addmedia.css | 2 +- airtime_mvc/public/css/media_library.css | 2 +- .../public/js/airtime/library/library.js | 6 +-- .../public/js/airtime/library/plupload.js | 8 ++-- .../js/airtime/playlist/smart_blockbuilder.js | 2 +- 23 files changed, 111 insertions(+), 111 deletions(-) diff --git a/airtime_mvc/application/common/FileDataHelper.php b/airtime_mvc/application/common/FileDataHelper.php index 865f5eec1..fc2f2604c 100644 --- a/airtime_mvc/application/common/FileDataHelper.php +++ b/airtime_mvc/application/common/FileDataHelper.php @@ -350,19 +350,19 @@ class FileDataHelper { } /** - * Media Type + * Track Type * - * @return string Media type key value + * @return string Track type key value */ - public static function saveMediaType() + public static function saveTrackType() { - if (isset($_COOKIE['mt_upload'])) { - $mt = $_COOKIE['mt_upload']; + if (isset($_COOKIE['tt_upload'])) { + $tt = $_COOKIE['tt_upload']; } else { - // Use default media type - $mt = "MUS"; + // Use default track type + $tt = "MUS"; } - return $mt; + return $tt; } } diff --git a/airtime_mvc/application/configs/constants.php b/airtime_mvc/application/configs/constants.php index 29157c556..30901efb0 100644 --- a/airtime_mvc/application/configs/constants.php +++ b/airtime_mvc/application/configs/constants.php @@ -83,7 +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_MEDIA_TYPE' , 'media_type'); +define('MDATA_KEY_TRACK_TYPE' , 'track_type'); define('UI_MDATA_VALUE_FORMAT_FILE' , 'File'); define('UI_MDATA_VALUE_FORMAT_STREAM' , 'live stream'); diff --git a/airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql b/airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql index 05065daec..d65001991 100644 --- a/airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql +++ b/airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql @@ -1 +1 @@ -ALTER TABLE cc_files DROP COLUMN IF EXISTS media_type; +ALTER TABLE cc_files DROP COLUMN IF EXISTS track_type; diff --git a/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql b/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql index 93d05bb02..537d49e78 100644 --- a/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql +++ b/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql @@ -1 +1 @@ -ALTER TABLE cc_files ADD COLUMN media_type VARCHAR(16); +ALTER TABLE cc_files ADD COLUMN track_type VARCHAR(16); diff --git a/airtime_mvc/application/forms/EditAudioMD.php b/airtime_mvc/application/forms/EditAudioMD.php index ecc1ec135..3d01ee510 100644 --- a/airtime_mvc/application/forms/EditAudioMD.php +++ b/airtime_mvc/application/forms/EditAudioMD.php @@ -74,10 +74,10 @@ class Application_Form_EditAudioMD extends Zend_Form $owner_id->setMultiOptions($user_options); $this->addelement($owner_id); - // Add media type dropdown - $media_type_options = array(); - $media_types = array( - '' => '--- Select Media Type ---', + // Add track type dropdown + $track_type_options = array(); + $track_types = array( + '' => '--- Select Track Type ---', 'MUS' => 'Music (MUS)', 'SID' => 'Station ID (SID)', 'INT' => 'Intro (INT)', @@ -92,15 +92,15 @@ class Application_Form_EditAudioMD extends Zend_Form 'VTR' => 'Voice Tracking (VTR)', ); - foreach ($media_types as $key => $mt) { - $media_type_options[$key] = $mt; + foreach ($track_types as $key => $tt) { + $track_type_options[$key] = $tt; } - $media_type = new Zend_Form_Element_Select('media_type'); - $media_type->class = 'input_text'; - $media_type->setLabel(_('Media Type:')); - $media_type->setMultiOptions($media_type_options); - $this->addelement($media_type); + $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'); diff --git a/airtime_mvc/application/forms/SmartBlockCriteria.php b/airtime_mvc/application/forms/SmartBlockCriteria.php index b67efb401..adbcc66b9 100644 --- a/airtime_mvc/application/forms/SmartBlockCriteria.php +++ b/airtime_mvc/application/forms/SmartBlockCriteria.php @@ -43,7 +43,7 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm "track_number" => "n", "info_url" => "s", "year" => "n", - "media_type" => "s" + "track_type" => "s" ); private function getCriteriaOptions($option = null) @@ -69,7 +69,7 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm "mtime" => _("Last Modified"), "lptime" => _("Last Played"), "length" => _("Length"), - "media_type" => _("Media Type"), + "track_type" => _("Track Type"), "mime" => _("Mime"), "mood" => _("Mood"), "owner_id" => _("Owner"), @@ -724,7 +724,7 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm "track_title" => "DbTrackTitle", "track_number" => "DbTrackNumber", "year" => "DbYear", - "media_type" => "DbMediaType" + "track_type" => "DbTrackType" ); // things we need to check diff --git a/airtime_mvc/application/models/Block.php b/airtime_mvc/application/models/Block.php index aeb064df3..696b0f31c 100644 --- a/airtime_mvc/application/models/Block.php +++ b/airtime_mvc/application/models/Block.php @@ -86,7 +86,7 @@ class Application_Model_Block implements Application_Model_LibraryEditable "track_title" => "DbTrackTitle", "track_number" => "DbTrackNumber", "year" => "DbYear", - "media_type" => "DbMediaType" + "track_type" => "DbTrackType" ); public function __construct($id=null, $con=null) @@ -1452,7 +1452,7 @@ SQL; "mtime" => _("Last Modified"), "lptime" => _("Last Played"), "length" => _("Length"), - "media_type" => _("Media Type"), + "track_type" => _("Track Type"), "mime" => _("Mime"), "mood" => _("Mood"), "owner_id" => _("Owner"), @@ -1552,7 +1552,7 @@ SQL; "mtime" => _("Last Modified"), "lptime" => _("Last Played"), "length" => _("Length"), - "media_type" => _("Media Type"), + "track_type" => _("Track Type"), "mime" => _("Mime"), "mood" => _("Mood"), "owner_id" => _("Owner"), diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index ac0736278..e0d005391 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -55,7 +55,7 @@ class Application_Model_StoredFile "cueout" => "DbCueOut", "description" => "DbDescription", "artwork" => "DbArtwork", - "media_type" => "DbMediaType" + "track_type" => "DbTrackType" ); function __construct($file, $con) { @@ -673,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", "media_type" ); + "cuein", "cueout", "description", "artwork", "track_type" ); } public static function searchLibraryFiles($datatables) diff --git a/airtime_mvc/application/models/airtime/CcFiles.php b/airtime_mvc/application/models/airtime/CcFiles.php index 5c9d4c5be..b4dfef573 100644 --- a/airtime_mvc/application/models/airtime/CcFiles.php +++ b/airtime_mvc/application/models/airtime/CcFiles.php @@ -150,14 +150,14 @@ class CcFiles extends BaseCcFiles { $importedStorageDir = $storDir->getDirectory() . "imported/" . self::getOwnerId() . "/"; $importedDbPath = "imported/" . self::getOwnerId() . "/"; $artwork = FileDataHelper::saveArtworkData($filePath, $originalFilename, $importedStorageDir, $importedDbPath); - $mediaType = FileDataHelper::saveMediaType(); + $trackType = FileDataHelper::saveTrackType(); $file->fromArray($fileArray); $file->setDbOwnerId(self::getOwnerId()); $now = new DateTime("now", new DateTimeZone("UTC")); $file->setDbTrackTitle($originalFilename); $file->setDbArtwork($artwork); - $file->setDbMediaType($mediaType); + $file->setDbTrackType($trackType); $file->setDbUtime($now); $file->setDbHidden(true); $file->save(); diff --git a/airtime_mvc/application/models/airtime/map/CcFilesTableMap.php b/airtime_mvc/application/models/airtime/map/CcFilesTableMap.php index a2a917e16..0dd7fc766 100644 --- a/airtime_mvc/application/models/airtime/map/CcFilesTableMap.php +++ b/airtime_mvc/application/models/airtime/map/CcFilesTableMap.php @@ -112,7 +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('media_type', 'DbMediaType', 'VARCHAR', false, 16, null); + $this->addColumn('track_type', 'DbTrackType', 'VARCHAR', false, 16, null); // validators } // initialize() diff --git a/airtime_mvc/application/models/airtime/om/BaseCcFiles.php b/airtime_mvc/application/models/airtime/om/BaseCcFiles.php index 7dca9e23a..4ff00b069 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcFiles.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcFiles.php @@ -295,10 +295,10 @@ abstract class BaseCcFiles extends BaseObject implements Persistent protected $artwork; /** - * The value for the media_type field. + * The value for the track_type field. * @var string */ - protected $media_type; + protected $track_type; /** * The value for the artist_url field. @@ -1200,14 +1200,14 @@ abstract class BaseCcFiles extends BaseObject implements Persistent } /** - * Get the [media_type] column value. + * Get the [track_type] column value. * * @return string */ - public function getDbMediaType() + public function getDbTrackType() { - return $this->media_type; + return $this->track_type; } /** @@ -1893,24 +1893,24 @@ abstract class BaseCcFiles extends BaseObject implements Persistent } // setDbArtwork() /** - * Set the value of [media_type] column. + * Set the value of [track_type] column. * * @param string $v new value * @return CcFiles The current object (for fluent API support) */ - public function setDbMediaType($v) + public function setDbTrackType($v) { if ($v !== null && is_numeric($v)) { $v = (string) $v; } - if ($this->media_type !== $v) { - $this->media_type = $v; - $this->modifiedColumns[] = CcFilesPeer::MEDIA_TYPE; + if ($this->track_type !== $v) { + $this->track_type = $v; + $this->modifiedColumns[] = CcFilesPeer::TRACK_TYPE; } return $this; - } // setDbMediaType() + } // setDbTrackType() /** * Set the value of [artist_name] column. @@ -3341,7 +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->media_type = ($row[$startcol + 73] !== null) ? (string) $row[$startcol + 73] : null; + $this->track_type = ($row[$startcol + 73] !== null) ? (string) $row[$startcol + 73] : null; $this->resetModified(); $this->setNew(false); @@ -3982,8 +3982,8 @@ abstract class BaseCcFiles extends BaseObject implements Persistent if ($this->isColumnModified(CcFilesPeer::ARTWORK)) { $modifiedColumns[':p' . $index++] = '"artwork"'; } - if ($this->isColumnModified(CcFilesPeer::MEDIA_TYPE)) { - $modifiedColumns[':p' . $index++] = '"media_type"'; + if ($this->isColumnModified(CcFilesPeer::TRACK_TYPE)) { + $modifiedColumns[':p' . $index++] = '"track_type"'; } $sql = sprintf( @@ -4215,8 +4215,8 @@ abstract class BaseCcFiles extends BaseObject implements Persistent case '"artwork"': $stmt->bindValue($identifier, $this->artwork, PDO::PARAM_STR); break; - case '"media_type"': - $stmt->bindValue($identifier, $this->media_type, PDO::PARAM_STR); + case '"track_type"': + $stmt->bindValue($identifier, $this->track_type, PDO::PARAM_STR); break; } } @@ -4653,7 +4653,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent return $this->getDbArtwork(); break; case 73: - return $this->getDbMediaType(); + return $this->getDbTrackType(); break; default: return null; @@ -4757,7 +4757,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent $keys[70] => $this->getDbFilesize(), $keys[71] => $this->getDbDescription(), $keys[72] => $this->getDbArtwork(), - $keys[73] => $this->getDbMediaType(), + $keys[73] => $this->getDbTrackType(), ); $virtualColumns = $this->virtualColumns; foreach ($virtualColumns as $key => $virtualColumn) { @@ -5052,7 +5052,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent $this->setDbArtwork($value); break; case 73: - $this->setDbMediaType($value); + $this->setDbTrackType($value); break; } // switch() } @@ -5151,7 +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->setDbMediaType($arr[$keys[73]]); + if (array_key_exists($keys[73], $arr)) $this->setDbTrackType($arr[$keys[73]]); } /** @@ -5236,7 +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::MEDIA_TYPE)) $criteria->add(CcFilesPeer::MEDIA_TYPE, $this->media_type); + if ($this->isColumnModified(CcFilesPeer::TRACK_TYPE)) $criteria->add(CcFilesPeer::TRACK_TYPE, $this->track_type); return $criteria; } @@ -5372,7 +5372,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent $copyObj->setDbFilesize($this->getDbFilesize()); $copyObj->setDbDescription($this->getDbDescription()); $copyObj->setDbArtwork($this->getDbArtwork()); - $copyObj->setDbMediaType($this->getDbMediaType()); + $copyObj->setDbTrackType($this->getDbTrackType()); if ($deepCopy && !$this->startCopy) { // important: temporarily setNew(false) because this affects the behavior of @@ -7775,7 +7775,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent $this->filesize = null; $this->description = null; $this->artwork = null; - $this->media_type = null; + $this->track_type = null; $this->alreadyInSave = false; $this->alreadyInValidation = false; $this->alreadyInClearAllReferencesDeep = false; diff --git a/airtime_mvc/application/models/airtime/om/BaseCcFilesPeer.php b/airtime_mvc/application/models/airtime/om/BaseCcFilesPeer.php index 635d6a99a..d6745e607 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcFilesPeer.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcFilesPeer.php @@ -251,8 +251,8 @@ abstract class BaseCcFilesPeer /** the column name for the artwork field */ const ARTWORK = 'cc_files.artwork'; - /** the column name for the media_type field */ - const MEDIA_TYPE = 'cc_files.media_type'; + /** 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'; @@ -273,11 +273,11 @@ 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', 'DbMediaType', ), - 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', 'dbMediaType', ), - 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::MEDIA_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', 'MEDIA_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', 'media_type', ), + 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, ) ); @@ -288,11 +288,11 @@ 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, 'DbMediaType' => 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, 'dbMediaType' => 73, ), + 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, 'MEDIA_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, 'media_type' => 73, ), + 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, ) ); @@ -440,7 +440,7 @@ abstract class BaseCcFilesPeer $criteria->addSelectColumn(CcFilesPeer::FILESIZE); $criteria->addSelectColumn(CcFilesPeer::DESCRIPTION); $criteria->addSelectColumn(CcFilesPeer::ARTWORK); - $criteria->addSelectColumn(CcFilesPeer::MEDIA_TYPE); + $criteria->addSelectColumn(CcFilesPeer::TRACK_TYPE); } else { $criteria->addSelectColumn($alias . '.id'); $criteria->addSelectColumn($alias . '.name'); @@ -515,7 +515,7 @@ abstract class BaseCcFilesPeer $criteria->addSelectColumn($alias . '.filesize'); $criteria->addSelectColumn($alias . '.description'); $criteria->addSelectColumn($alias . '.artwork'); - $criteria->addSelectColumn($alias . '.media_type'); + $criteria->addSelectColumn($alias . '.track_type'); } } diff --git a/airtime_mvc/application/models/airtime/om/BaseCcFilesQuery.php b/airtime_mvc/application/models/airtime/om/BaseCcFilesQuery.php index f026dee8a..781fe5d6a 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcFilesQuery.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcFilesQuery.php @@ -79,7 +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 orderByDbMediaType($order = Criteria::ASC) Order by the media_type 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 @@ -154,7 +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 groupByDbMediaType() Group by the media_type 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 @@ -279,7 +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 findOneByDbMediaType(string $media_type) Return the first CcFiles filtered by the media_type 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 @@ -354,7 +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 findByDbMediaType(string $media_type) Return CcFiles objects filtered by the media_type column + * @method array findByDbTrackType(string $track_type) Return CcFiles objects filtered by the track_type column * * @package propel.generator.airtime.om */ @@ -462,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", "media_type" 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); @@ -1975,32 +1975,32 @@ abstract class BaseCcFilesQuery extends ModelCriteria } /** - * Filter the query on the media_type column + * Filter the query on the track_type column * * Example usage: * - * $query->filterByDbMediaType('fooValue'); // WHERE media_type = 'fooValue' - * $query->filterByDbMediaType('%fooValue%'); // WHERE media_type LIKE '%fooValue%' + * $query->filterByDbTrackType('fooValue'); // WHERE track_type = 'fooValue' + * $query->filterByDbTrackType('%fooValue%'); // WHERE track_type LIKE '%fooValue%' * * - * @param string $dbMediaType The value to use as filter. + * @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 filterByDbMediaType($dbMediaType = null, $comparison = null) + public function filterByDbTrackType($dbTrackType = null, $comparison = null) { if (null === $comparison) { - if (is_array($dbMediaType)) { + if (is_array($dbTrackType)) { $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $dbMediaType)) { - $dbMediaType = str_replace('*', '%', $dbMediaType); + } elseif (preg_match('/[\%\*]/', $dbTrackType)) { + $dbTrackType = str_replace('*', '%', $dbTrackType); $comparison = Criteria::LIKE; } } - return $this->addUsingAlias(CcFilesPeer::MEDIA_TYPE, $dbMediaType, $comparison); + return $this->addUsingAlias(CcFilesPeer::TRACK_TYPE, $dbTrackType, $comparison); } /** diff --git a/airtime_mvc/application/services/HistoryService.php b/airtime_mvc/application/services/HistoryService.php index 9fb1d3108..e85dc4ab7 100644 --- a/airtime_mvc/application/services/HistoryService.php +++ b/airtime_mvc/application/services/HistoryService.php @@ -1126,7 +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_MEDIA_TYPE, "label"=> _("Media Type"), "type"=> TEMPLATE_STRING), + array("name"=> MDATA_KEY_TRACK_TYPE, "label"=> _("Track Type"), "type"=> TEMPLATE_STRING), ); return $fileMD; diff --git a/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml b/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml index e2102af55..ed61cc420 100644 --- a/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml +++ b/airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml @@ -26,7 +26,7 @@ foreach ($this->md as $key => &$value) { - +
md["MDATA_KEY_ARTWORK"]);?>
md["MDATA_KEY_ARTWORK_DATA"]);?>
md["MDATA_KEY_LANGUAGE"]);?>
md["MDATA_KEY_MEDIA_TYPE"]);?>
md["MDATA_KEY_TRACK_TYPE"]);?>
md["MDATA_KEY_FILEPATH"]);?>
diff --git a/airtime_mvc/application/views/scripts/plupload/index.phtml b/airtime_mvc/application/views/scripts/plupload/index.phtml index e02b5283e..e6713e123 100644 --- a/airtime_mvc/application/views/scripts/plupload/index.phtml +++ b/airtime_mvc/application/views/scripts/plupload/index.phtml @@ -16,8 +16,8 @@ ?> 'Music', 'SID' => 'Station IDs', 'INT' => 'Intros', @@ -33,26 +33,26 @@ ); ?>
-
+
@@ -60,13 +60,13 @@
$mt) { - if ($mtsaved == $key) { - $mtTitle = $mt; + foreach ($track_types as $key => $tt) { + if ($ttsaved == $key) { + $ttTitle = $tt; } } ?> -

+

form->getElement('csrf') ?>
diff --git a/airtime_mvc/build/schema.xml b/airtime_mvc/build/schema.xml index 91baa6229..f493e2df6 100644 --- a/airtime_mvc/build/schema.xml +++ b/airtime_mvc/build/schema.xml @@ -85,7 +85,7 @@ - + diff --git a/airtime_mvc/build/sql/schema.sql b/airtime_mvc/build/sql/schema.sql index f03ea0dd5..32c0cca61 100644 --- a/airtime_mvc/build/sql/schema.sql +++ b/airtime_mvc/build/sql/schema.sql @@ -97,7 +97,7 @@ CREATE TABLE "cc_files" "filesize" INTEGER DEFAULT 0 NOT NULL, "description" VARCHAR(512), "artwork" VARCHAR(512), - "media_type" VARCHAR(16), + "track_type" VARCHAR(16), PRIMARY KEY ("id") ); diff --git a/airtime_mvc/public/css/addmedia.css b/airtime_mvc/public/css/addmedia.css index a95399238..f8b2f02ef 100644 --- a/airtime_mvc/public/css/addmedia.css +++ b/airtime_mvc/public/css/addmedia.css @@ -641,7 +641,7 @@ table#recent_uploads_table td right: 0; } -#media_type_selection { +#track_type_selection { position: absolute; right: 2px; top: 0; diff --git a/airtime_mvc/public/css/media_library.css b/airtime_mvc/public/css/media_library.css index 997459af2..875b7e993 100644 --- a/airtime_mvc/public/css/media_library.css +++ b/airtime_mvc/public/css/media_library.css @@ -100,7 +100,7 @@ } .library_year, -.library_media_type { +.library_track_type { text-align: center; } diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index b5a9578c3..75aaf124c 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -55,7 +55,7 @@ var AIRTIME = (function(AIRTIME) { "info_url" : "s", "replay_gain" : "n", "artwork" : "s", - "media_type" : "s" + "track_type" : "s" }; if (AIRTIME.library === undefined) { @@ -592,7 +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" }, - /* Media Type */ { "sTitle" : $.i18n._("Type") , "mDataProp" : "media_type" , "bVisible" : false , "sClass" : "library_media_type" , "sWidth" : "60px" }, + /* Track Type */ { "sTitle" : $.i18n._("Type") , "mDataProp" : "track_type" , "bVisible" : false , "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" }, @@ -1599,7 +1599,7 @@ var validationTypes = { "track_number" : "i", "info_url" : "s", "artwork" : "s", - "media_type" : "s", + "track_type" : "s", "year" : "i" }; diff --git a/airtime_mvc/public/js/airtime/library/plupload.js b/airtime_mvc/public/js/airtime/library/plupload.js index d0b5e752b..bf60df3f5 100644 --- a/airtime_mvc/public/js/airtime/library/plupload.js +++ b/airtime_mvc/public/js/airtime/library/plupload.js @@ -205,9 +205,9 @@ $(document).ready(function () { //$("#recent_uploads_table.div.fg-toolbar").prepend('Custom tool bar! Text/images etc.'); $("#select_type").on("change",function(){ - var mtValue = $("#select_type").val(); - var mtText = $('#select_type option[value="'+mtValue+'"]').text(); - $("#upload_type").text(" " + mtText); - Cookies.set('mt_upload', mtValue); + var ttValue = $("#select_type").val(); + var ttText = $('#select_type option[value="'+ttValue+'"]').text(); + $("#upload_type").text(" " + ttText); + Cookies.set('tt_upload', ttValue); }); }); diff --git a/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js b/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js index d69da00b5..abea3a184 100644 --- a/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js +++ b/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js @@ -875,7 +875,7 @@ var criteriaTypes = { "track_number" : "n", "info_url" : "s", "year" : "n", - "media_type" : "s" + "track_type" : "s" }; var stringCriteriaOptions = { From 33928eaf732a60ca6e28b2c6e47b8fcf56fdc306 Mon Sep 17 00:00:00 2001 From: Codenift Date: Thu, 23 Jan 2020 11:40:18 -0500 Subject: [PATCH 05/17] Documentation - How to use track types --- docs/manual/howtos/index.md | 3 +++ docs/manual/howtos/track-types.md | 38 +++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 docs/manual/howtos/track-types.md diff --git a/docs/manual/howtos/index.md b/docs/manual/howtos/index.md index 099bf9516..7c961f745 100644 --- a/docs/manual/howtos/index.md +++ b/docs/manual/howtos/index.md @@ -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) \ No newline at end of file diff --git a/docs/manual/howtos/track-types.md b/docs/manual/howtos/track-types.md new file mode 100644 index 000000000..f788da840 --- /dev/null +++ b/docs/manual/howtos/track-types.md @@ -0,0 +1,38 @@ +# 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, they will be set with the track type that is selected. This helps organize your track files by the type of audio uploaded. Example, if you have a group of files for commercials that needs to be uploaded, choose "Commercial". Now when uploading that group of files, all your tracks will be set with the "Commercial" type. 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". If no code is typed, it will use the Track Type ID number instead. If admin prefers using ID numbers, leave this field as it is or blank to automatically add it. +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, including in the API for developers. +1. Click **Save**. + +**Audience**: Program Managers and Djs + +## Using track types with the uploaded tracks + +1. Click **Dashboard**. +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 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. From 1d7d937a7f15a84b81cc301cbd66abe3ac884861 Mon Sep 17 00:00:00 2001 From: Codenift Date: Sat, 25 Jan 2020 12:09:19 -0500 Subject: [PATCH 06/17] track type management --- airtime_mvc/application/configs/ACL.php | 2 + .../configs/classmap-airtime-conf.php | 7 + .../application/configs/navigation.php | 8 +- .../application/controllers/ApiController.php | 17 + .../controllers/TracktypeController.php | 109 ++ .../airtime_3.0.0-alpha.9.2/downgrade.sql | 2 + .../airtime_3.0.0-alpha.9.2/upgrade.sql | 24 + .../application/forms/AddTracktype.php | 79 ++ airtime_mvc/application/forms/EditAudioMD.php | 19 +- airtime_mvc/application/models/Tracktype.php | 173 +++ .../models/airtime/CcTracktypes.php | 16 + .../models/airtime/CcTracktypesPeer.php | 18 + .../models/airtime/CcTracktypesQuery.php | 18 + .../airtime/map/CcTracktypesTableMap.php | 56 + .../models/airtime/om/BaseCcTracktypes.php | 1037 +++++++++++++++++ .../airtime/om/BaseCcTracktypesPeer.php | 780 +++++++++++++ .../airtime/om/BaseCcTracktypesQuery.php | 407 +++++++ .../views/scripts/plupload/index.phtml | 62 +- .../scripts/tracktype/add-tracktype.phtml | 36 + .../get-tracktype-data-table-info.phtml | 0 .../tracktype/get-tracktype-data.phtml | 3 + .../views/scripts/tracktype/index.phtml | 0 .../scripts/tracktype/remove-tracktype.phtml | 3 + airtime_mvc/build/schema.xml | 13 + airtime_mvc/build/sql/defaultdata.sql | 17 + airtime_mvc/build/sql/schema.sql | 18 + airtime_mvc/public/css/styles.css | 72 +- airtime_mvc/public/css/tracktypes.css | 9 + .../public/js/airtime/tracktype/tracktype.js | 151 +++ 29 files changed, 3082 insertions(+), 74 deletions(-) create mode 100644 airtime_mvc/application/controllers/TracktypeController.php create mode 100644 airtime_mvc/application/forms/AddTracktype.php create mode 100644 airtime_mvc/application/models/Tracktype.php create mode 100644 airtime_mvc/application/models/airtime/CcTracktypes.php create mode 100644 airtime_mvc/application/models/airtime/CcTracktypesPeer.php create mode 100644 airtime_mvc/application/models/airtime/CcTracktypesQuery.php create mode 100644 airtime_mvc/application/models/airtime/map/CcTracktypesTableMap.php create mode 100644 airtime_mvc/application/models/airtime/om/BaseCcTracktypes.php create mode 100644 airtime_mvc/application/models/airtime/om/BaseCcTracktypesPeer.php create mode 100644 airtime_mvc/application/models/airtime/om/BaseCcTracktypesQuery.php create mode 100644 airtime_mvc/application/views/scripts/tracktype/add-tracktype.phtml create mode 100644 airtime_mvc/application/views/scripts/tracktype/get-tracktype-data-table-info.phtml create mode 100644 airtime_mvc/application/views/scripts/tracktype/get-tracktype-data.phtml create mode 100644 airtime_mvc/application/views/scripts/tracktype/index.phtml create mode 100644 airtime_mvc/application/views/scripts/tracktype/remove-tracktype.phtml create mode 100644 airtime_mvc/public/css/tracktypes.css create mode 100644 airtime_mvc/public/js/airtime/tracktype/tracktype.js diff --git a/airtime_mvc/application/configs/ACL.php b/airtime_mvc/application/configs/ACL.php index 917e70abc..496492562 100644 --- a/airtime_mvc/application/configs/ACL.php +++ b/airtime_mvc/application/configs/ACL.php @@ -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')) @@ -66,6 +67,7 @@ $ccAcl->allow('G', 'index') ->allow('G', 'setup') ->allow('G', 'embeddablewidgets') ->allow('G', 'feeds') + ->allow('P', 'tracktype') ->allow('H', 'soundcloud') ->allow('H', 'rest:show-image') ->allow('H', 'rest:media') diff --git a/airtime_mvc/application/configs/classmap-airtime-conf.php b/airtime_mvc/application/configs/classmap-airtime-conf.php index 4eb58b161..9f307ae86 100644 --- a/airtime_mvc/application/configs/classmap-airtime-conf.php +++ b/airtime_mvc/application/configs/classmap-airtime-conf.php @@ -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', diff --git a/airtime_mvc/application/configs/navigation.php b/airtime_mvc/application/configs/navigation.php index 47776ff54..0c30ba663 100644 --- a/airtime_mvc/application/configs/navigation.php +++ b/airtime_mvc/application/configs/navigation.php @@ -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', diff --git a/airtime_mvc/application/controllers/ApiController.php b/airtime_mvc/application/controllers/ApiController.php index ed0e7c852..88ab0ab04 100644 --- a/airtime_mvc/application/controllers/ApiController.php +++ b/airtime_mvc/application/controllers/ApiController.php @@ -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 */ diff --git a/airtime_mvc/application/controllers/TracktypeController.php b/airtime_mvc/application/controllers/TracktypeController.php new file mode 100644 index 000000000..32d22fa56 --- /dev/null +++ b/airtime_mvc/application/controllers/TracktypeController.php @@ -0,0 +1,109 @@ +_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 = "
"._("Track Type added successfully!")."
"; + } else { + $this->view->successMessage = "
"._("Track Type updated successfully!")."
"; + } + + $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(); + } + +} diff --git a/airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql b/airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql index d65001991..1aa658107 100644 --- a/airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql +++ b/airtime_mvc/application/controllers/downgrade_sql/airtime_3.0.0-alpha.9.2/downgrade.sql @@ -1 +1,3 @@ ALTER TABLE cc_files DROP COLUMN IF EXISTS track_type; + +DROP TABLE IF EXISTS "cc_track_types" CASCADE; \ No newline at end of file diff --git a/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql b/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql index 537d49e78..1db171689 100644 --- a/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql +++ b/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql @@ -1 +1,25 @@ ALTER TABLE cc_files ADD COLUMN track_type VARCHAR(16); + +CREATE TABLE IF NOT EXISTS "cc_track_types" +( + "id" integer DEFAULT nextval('cc_subjs_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); \ No newline at end of file diff --git a/airtime_mvc/application/forms/AddTracktype.php b/airtime_mvc/application/forms/AddTracktype.php new file mode 100644 index 000000000..6cfca6222 --- /dev/null +++ b/airtime_mvc/application/forms/AddTracktype.php @@ -0,0 +1,79 @@ +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; + } + +} diff --git a/airtime_mvc/application/forms/EditAudioMD.php b/airtime_mvc/application/forms/EditAudioMD.php index 3d01ee510..470e00e98 100644 --- a/airtime_mvc/application/forms/EditAudioMD.php +++ b/airtime_mvc/application/forms/EditAudioMD.php @@ -76,24 +76,9 @@ class Application_Form_EditAudioMD extends Zend_Form // Add track type dropdown $track_type_options = array(); - $track_types = array( - '' => '--- Select Track Type ---', - 'MUS' => 'Music (MUS)', - 'SID' => 'Station ID (SID)', - 'INT' => 'Intro (INT)', - 'OUT' => 'Outro (OUT)', - 'SWP' => 'Sweeper (SWP)', - 'JIN' => 'Jingle (JIN)', - 'PRO' => 'Promo (PRO)', - 'SHO' => 'Shout Out (SHO)', - 'NWS' => 'News (NWS)', - 'COM' => 'Commercial (COM)', - 'ITV' => 'Interview (ITV)', - 'VTR' => 'Voice Tracking (VTR)', - ); - + $track_types = Application_Model_Tracktype::getTracktypes(); foreach ($track_types as $key => $tt) { - $track_type_options[$key] = $tt; + $track_type_options[$tt['code']] = $tt['type_name']; } $track_type = new Zend_Form_Element_Select('track_type'); diff --git a/airtime_mvc/application/models/Tracktype.php b/airtime_mvc/application/models/Tracktype.php new file mode 100644 index 000000000..632b50254 --- /dev/null +++ b/airtime_mvc/application/models/Tracktype.php @@ -0,0 +1,173 @@ +_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 &$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 = << $id), 'single'); + } + +} diff --git a/airtime_mvc/application/models/airtime/CcTracktypes.php b/airtime_mvc/application/models/airtime/CcTracktypes.php new file mode 100644 index 000000000..76b1757e8 --- /dev/null +++ b/airtime_mvc/application/models/airtime/CcTracktypes.php @@ -0,0 +1,16 @@ +setName('cc_track_types'); + $this->setPhpName('CcTracktypes'); + $this->setClassname('CcTracktypes'); + $this->setPackage('airtime'); + $this->setUseIdGenerator(true); + $this->setPrimaryKeyMethodInfo('cc_subjs_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 diff --git a/airtime_mvc/application/models/airtime/om/BaseCcTracktypes.php b/airtime_mvc/application/models/airtime/om/BaseCcTracktypes.php new file mode 100644 index 000000000..2b49ba1c3 --- /dev/null +++ b/airtime_mvc/application/models/airtime/om/BaseCcTracktypes.php @@ -0,0 +1,1037 @@ +code = ''; + $this->visibility = true; + $this->type_name = ''; + $this->description = ''; + } + + /** + * Initializes internal state of BaseCcTracktypes object. + * @see applyDefaults() + */ + public function __construct() + { + parent::__construct(); + $this->applyDefaultValues(); + } + + /** + * Get the [id] column value. + * + * @return int + */ + public function getDbId() + { + + return $this->id; + } + + /** + * Get the [code] column value. + * + * @return string + */ + public function getDbCode() + { + + return $this->code; + } + + /** + * Get the [visibility] column value. + * + * @return string + */ + public function getDbVisibility() + { + + return $this->visibility; + } + + /** + * Get the [type_name] column value. + * + * @return string + */ + public function getDbTypeName() + { + + return $this->type_name; + } + + /** + * Get the [description] column value. + * + * @return string + */ + public function getDbDescription() + { + + return $this->description; + } + + /** + * Set the value of [id] column. + * + * @param int $v new value + * @return CcTracktypes The current object (for fluent API support) + */ + public function setDbId($v) + { + if ($v !== null && is_numeric($v)) { + $v = (int) $v; + } + + if ($this->id !== $v) { + $this->id = $v; + $this->modifiedColumns[] = CcTracktypesPeer::ID; + } + + return $this; + } // setDbId() + + /** + * Set the value of [code] column. + * + * @param string $v new value + * @return CcTracktypes The current object (for fluent API support) + */ + public function setDbCode($v) + { + if ($v !== null && is_numeric($v)) { + $v = (string) $v; + } + + if ($this->code !== $v) { + $this->code = $v; + $this->modifiedColumns[] = CcTracktypesPeer::CODE; + } + + return $this; + } // setDbCode() + + /** + * Set the value of [visibility] column. + * + * @param string $v new value + * @return CcTracktypes The current object (for fluent API support) + */ + public function setDbVisibility($v) + { + if ($v !== null && is_numeric($v)) { + $v = (string) $v; + } + + if ($this->visibility !== $v) { + $this->visibility = $v; + $this->modifiedColumns[] = CcTracktypesPeer::VISIBILITY; + } + + return $this; + } // setDbVisibility() + + /** + * Set the value of [type_name] column. + * + * @param string $v new value + * @return CcTracktypes The current object (for fluent API support) + */ + public function setDbTypeName($v) + { + if ($v !== null && is_numeric($v)) { + $v = (string) $v; + } + + if ($this->type_name !== $v) { + $this->type_name = $v; + $this->modifiedColumns[] = CcTracktypesPeer::TYPE_NAME; + } + + return $this; + } // setDbTypeName() + + /** + * Set the value of [description] column. + * + * @param string $v new value + * @return CcTracktypes The current object (for fluent API support) + */ + public function setDbDescription($v) + { + if ($v !== null && is_numeric($v)) { + $v = (string) $v; + } + + if ($this->description !== $v) { + $this->description = $v; + $this->modifiedColumns[] = CcTracktypesPeer::DESCRIPTION; + } + + return $this; + } // setDbDescription() + + /** + * Indicates whether the columns in this object are only set to default values. + * + * This method can be used in conjunction with isModified() to indicate whether an object is both + * modified _and_ has some values set which are non-default. + * + * @return boolean Whether the columns in this object are only been set with default values. + */ + public function hasOnlyDefaultValues() + { + if ($this->code !== '') { + return false; + } + + if ($this->visibility !== '1') { + return false; + } + + if ($this->type_name !== '') { + return false; + } + + if ($this->description !== '') { + return false; + } + + // otherwise, everything was equal, so return true + return true; + } // hasOnlyDefaultValues() + + /** + * Hydrates (populates) the object variables with values from the database resultset. + * + * An offset (0-based "start column") is specified so that objects can be hydrated + * with a subset of the columns in the resultset rows. This is needed, for example, + * for results of JOIN queries where the resultset row includes columns from two or + * more tables. + * + * @param array $row The row returned by PDOStatement->fetch(PDO::FETCH_NUM) + * @param int $startcol 0-based offset column which indicates which resultset column to start with. + * @param boolean $rehydrate Whether this object is being re-hydrated from the database. + * @return int next starting column + * @throws PropelException - Any caught Exception will be rewrapped as a PropelException. + */ + public function hydrate($row, $startcol = 0, $rehydrate = false) + { + try { + + $this->id = ($row[$startcol + 0] !== null) ? (int) $row[$startcol + 0] : null; + $this->code = ($row[$startcol + 1] !== null) ? (string) $row[$startcol + 1] : null; + $this->visibility = ($row[$startcol + 2] !== null) ? (string) $row[$startcol + 2] : null; + $this->type_name = ($row[$startcol + 3] !== null) ? (string) $row[$startcol + 3] : null; + $this->description = ($row[$startcol + 4] !== null) ? (string) $row[$startcol + 4] : null; + $this->resetModified(); + + $this->setNew(false); + + if ($rehydrate) { + $this->ensureConsistency(); + } + $this->postHydrate($row, $startcol, $rehydrate); + + return $startcol + 5; // 5 = CcTracktypesPeer::NUM_HYDRATE_COLUMNS. + + } catch (Exception $e) { + throw new PropelException("Error populating CcTracktypes object", $e); + } + } + + /** + * Checks and repairs the internal consistency of the object. + * + * This method is executed after an already-instantiated object is re-hydrated + * from the database. It exists to check any foreign keys to make sure that + * the objects related to the current object are correct based on foreign key. + * + * You can override this method in the stub class, but you should always invoke + * the base method from the overridden method (i.e. parent::ensureConsistency()), + * in case your model changes. + * + * @throws PropelException + */ + public function ensureConsistency() + { + + } // ensureConsistency + + /** + * Reloads this object from datastore based on primary key and (optionally) resets all associated objects. + * + * This will only work if the object has been saved and has a valid primary key set. + * + * @param boolean $deep (optional) Whether to also de-associated any related objects. + * @param PropelPDO $con (optional) The PropelPDO connection to use. + * @return void + * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db + */ + public function reload($deep = false, PropelPDO $con = null) + { + if ($this->isDeleted()) { + throw new PropelException("Cannot reload a deleted object."); + } + + if ($this->isNew()) { + throw new PropelException("Cannot reload an unsaved object."); + } + + if ($con === null) { + $con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_READ); + } + + // We don't need to alter the object instance pool; we're just modifying this instance + // already in the pool. + + $stmt = CcTracktypesPeer::doSelectStmt($this->buildPkeyCriteria(), $con); + $row = $stmt->fetch(PDO::FETCH_NUM); + $stmt->closeCursor(); + if (!$row) { + throw new PropelException('Cannot find matching row in the database to reload object values.'); + } + $this->hydrate($row, 0, true); // rehydrate + + } + + /** + * Removes this object from datastore and sets delete attribute. + * + * @param PropelPDO $con + * @return void + * @throws PropelException + * @throws Exception + * @see BaseObject::setDeleted() + * @see BaseObject::isDeleted() + */ + public function delete(PropelPDO $con = null) + { + if ($this->isDeleted()) { + throw new PropelException("This object has already been deleted."); + } + + if ($con === null) { + $con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); + } + + $con->beginTransaction(); + try { + $deleteQuery = CcTracktypesQuery::create() + ->filterByPrimaryKey($this->getPrimaryKey()); + $ret = $this->preDelete($con); + if ($ret) { + $deleteQuery->delete($con); + $this->postDelete($con); + $con->commit(); + $this->setDeleted(true); + } else { + $con->commit(); + } + } catch (Exception $e) { + $con->rollBack(); + throw $e; + } + } + + /** + * Persists this object to the database. + * + * If the object is new, it inserts it; otherwise an update is performed. + * All modified related objects will also be persisted in the doSave() + * method. This method wraps all precipitate database operations in a + * single transaction. + * + * @param PropelPDO $con + * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. + * @throws PropelException + * @throws Exception + * @see doSave() + */ + public function save(PropelPDO $con = null) + { + if ($this->isDeleted()) { + throw new PropelException("You cannot save an object that has been deleted."); + } + + if ($con === null) { + $con = Propel::getConnection(CcTracktypesPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); + } + + $con->beginTransaction(); + $isInsert = $this->isNew(); + try { + $ret = $this->preSave($con); + if ($isInsert) { + $ret = $ret && $this->preInsert($con); + } else { + $ret = $ret && $this->preUpdate($con); + } + if ($ret) { + $affectedRows = $this->doSave($con); + if ($isInsert) { + $this->postInsert($con); + } else { + $this->postUpdate($con); + } + $this->postSave($con); + CcTracktypesPeer::addInstanceToPool($this); + } else { + $affectedRows = 0; + } + $con->commit(); + + return $affectedRows; + } catch (Exception $e) { + $con->rollBack(); + throw $e; + } + } + + /** + * Performs the work of inserting or updating the row in the database. + * + * If the object is new, it inserts it; otherwise an update is performed. + * All related objects are also updated in this method. + * + * @param PropelPDO $con + * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. + * @throws PropelException + * @see save() + */ + protected function doSave(PropelPDO $con) + { + $affectedRows = 0; // initialize var to track total num of affected rows + if (!$this->alreadyInSave) { + $this->alreadyInSave = true; + + if ($this->isNew() || $this->isModified()) { + // persist changes + if ($this->isNew()) { + $this->doInsert($con); + } else { + $this->doUpdate($con); + } + $affectedRows += 1; + $this->resetModified(); + } + + $this->alreadyInSave = false; + + } + + return $affectedRows; + } // doSave() + + /** + * Insert the row in the database. + * + * @param PropelPDO $con + * + * @throws PropelException + * @see doSave() + */ + protected function doInsert(PropelPDO $con) + { + $modifiedColumns = array(); + $index = 0; + + $this->modifiedColumns[] = CcTracktypesPeer::ID; + if (null !== $this->id) { + throw new PropelException('Cannot insert a value for auto-increment primary key (' . CcTracktypesPeer::ID . ')'); + } + if (null === $this->id) { + try { + $stmt = $con->query("SELECT nextval('cc_subjs_id_seq')"); + $row = $stmt->fetch(PDO::FETCH_NUM); + $this->id = $row[0]; + } catch (Exception $e) { + throw new PropelException('Unable to get sequence id.', $e); + } + } + + + // check the columns in natural order for more readable SQL queries + if ($this->isColumnModified(CcTracktypesPeer::ID)) { + $modifiedColumns[':p' . $index++] = '"id"'; + } + if ($this->isColumnModified(CcTracktypesPeer::CODE)) { + $modifiedColumns[':p' . $index++] = '"code"'; + } + if ($this->isColumnModified(CcTracktypesPeer::VISIBILITY)) { + $modifiedColumns[':p' . $index++] = '"visibility"'; + } + if ($this->isColumnModified(CcTracktypesPeer::TYPE_NAME)) { + $modifiedColumns[':p' . $index++] = '"type_name"'; + } + if ($this->isColumnModified(CcTracktypesPeer::DESCRIPTION)) { + $modifiedColumns[':p' . $index++] = '"description"'; + } + + $sql = sprintf( + 'INSERT INTO "cc_track_types" (%s) VALUES (%s)', + implode(', ', $modifiedColumns), + implode(', ', array_keys($modifiedColumns)) + ); + + try { + $stmt = $con->prepare($sql); + foreach ($modifiedColumns as $identifier => $columnName) { + switch ($columnName) { + case '"id"': + $stmt->bindValue($identifier, $this->id, PDO::PARAM_INT); + break; + case '"code"': + $stmt->bindValue($identifier, $this->code, PDO::PARAM_STR); + break; + case '"visibility"': + $stmt->bindValue($identifier, $this->visibility, PDO::PARAM_BOOL); + break; + case '"type_name"': + $stmt->bindValue($identifier, $this->type_name, PDO::PARAM_STR); + break; + case '"description"': + $stmt->bindValue($identifier, $this->description, PDO::PARAM_STR); + break; + } + } + $stmt->execute(); + } catch (Exception $e) { + Propel::log($e->getMessage(), Propel::LOG_ERR); + throw new PropelException(sprintf('Unable to execute INSERT statement [%s]', $sql), $e); + } + + $this->setNew(false); + } + + /** + * Update the row in the database. + * + * @param PropelPDO $con + * + * @see doSave() + */ + protected function doUpdate(PropelPDO $con) + { + $selectCriteria = $this->buildPkeyCriteria(); + $valuesCriteria = $this->buildCriteria(); + BasePeer::doUpdate($selectCriteria, $valuesCriteria, $con); + } + + /** + * Array of ValidationFailed objects. + * @var array ValidationFailed[] + */ + protected $validationFailures = array(); + + /** + * Gets any ValidationFailed objects that resulted from last call to validate(). + * + * + * @return array ValidationFailed[] + * @see validate() + */ + public function getValidationFailures() + { + return $this->validationFailures; + } + + /** + * Validates the objects modified field values and all objects related to this table. + * + * If $columns is either a column name or an array of column names + * only those columns are validated. + * + * @param mixed $columns Column name or an array of column names. + * @return boolean Whether all columns pass validation. + * @see doValidate() + * @see getValidationFailures() + */ + public function validate($columns = null) + { + $res = $this->doValidate($columns); + if ($res === true) { + $this->validationFailures = array(); + + return true; + } + + $this->validationFailures = $res; + + return false; + } + + /** + * This function performs the validation work for complex object models. + * + * In addition to checking the current object, all related objects will + * also be validated. If all pass then true is returned; otherwise + * an aggregated array of ValidationFailed objects will be returned. + * + * @param array $columns Array of column names to validate. + * @return mixed true if all validations pass; array of ValidationFailed objects otherwise. + */ + protected function doValidate($columns = null) + { + if (!$this->alreadyInValidation) { + $this->alreadyInValidation = true; + $retval = null; + + $failureMap = array(); + + + if (($retval = CcTracktypesPeer::doValidate($this, $columns)) !== true) { + $failureMap = array_merge($failureMap, $retval); + } + + $this->alreadyInValidation = false; + } + + return (!empty($failureMap) ? $failureMap : true); + } + + /** + * Retrieves a field from the object by name passed in as a string. + * + * @param string $name name + * @param string $type The type of fieldname the $name is of: + * one of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME + * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM. + * Defaults to BasePeer::TYPE_PHPNAME + * @return mixed Value of field. + */ + public function getByName($name, $type = BasePeer::TYPE_PHPNAME) + { + $pos = CcTracktypesPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM); + $field = $this->getByPosition($pos); + + return $field; + } + + /** + * Retrieves a field from the object by Position as specified in the xml schema. + * Zero-based. + * + * @param int $pos position in xml schema + * @return mixed Value of field at $pos + */ + public function getByPosition($pos) + { + switch ($pos) { + case 0: + return $this->getDbId(); + break; + case 1: + return $this->getDbCode(); + break; + case 2: + return $this->getDbVisibility(); + break; + case 3: + return $this->getDbTypeName(); + break; + case 4: + return $this->getDbDescription(); + break; + default: + return null; + break; + } // switch() + } + + /** + * Exports the object as an array. + * + * You can specify the key type of the array by passing one of the class + * type constants. + * + * @param string $keyType (optional) One of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME, + * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM. + * Defaults to BasePeer::TYPE_PHPNAME. + * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy loaded columns. Defaults to true. + * @param array $alreadyDumpedObjects List of objects to skip to avoid recursion + * @param boolean $includeForeignObjects (optional) Whether to include hydrated related objects. Default to FALSE. + * + * @return array an associative array containing the field names (as keys) and field values + */ + public function toArray($keyType = BasePeer::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array(), $includeForeignObjects = false) + { + if (isset($alreadyDumpedObjects['CcTracktypes'][$this->getPrimaryKey()])) { + return '*RECURSION*'; + } + $alreadyDumpedObjects['CcTracktypes'][$this->getPrimaryKey()] = true; + $keys = CcTracktypesPeer::getFieldNames($keyType); + $result = array( + $keys[0] => $this->getDbId(), + $keys[1] => $this->getDbCode(), + $keys[2] => $this->getDbVisibility(), + $keys[3] => $this->getDbTypeName(), + $keys[4] => $this->getDbDescription(), + ); + $virtualColumns = $this->virtualColumns; + foreach ($virtualColumns as $key => $virtualColumn) { + $result[$key] = $virtualColumn; + } + + return $result; + } + + /** + * Sets a field from the object by name passed in as a string. + * + * @param string $name peer name + * @param mixed $value field value + * @param string $type The type of fieldname the $name is of: + * one of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME + * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM. + * Defaults to BasePeer::TYPE_PHPNAME + * @return void + */ + public function setByName($name, $value, $type = BasePeer::TYPE_PHPNAME) + { + $pos = CcTracktypesPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM); + + $this->setByPosition($pos, $value); + } + + /** + * Sets a field from the object by Position as specified in the xml schema. + * Zero-based. + * + * @param int $pos position in xml schema + * @param mixed $value field value + * @return void + */ + public function setByPosition($pos, $value) + { + switch ($pos) { + case 0: + $this->setDbId($value); + break; + case 1: + $this->setDbCode($value); + break; + case 2: + $this->setDbVisibility($value); + break; + case 3: + $this->setDbTypeName($value); + break; + case 4: + $this->setDbDescription($value); + break; + } // switch() + } + + /** + * Populates the object using an array. + * + * This is particularly useful when populating an object from one of the + * request arrays (e.g. $_POST). This method goes through the column + * names, checking to see whether a matching key exists in populated + * array. If so the setByName() method is called for that column. + * + * You can specify the key type of the array by additionally passing one + * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME, + * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM. + * The default key type is the column's BasePeer::TYPE_PHPNAME + * + * @param array $arr An array to populate the object from. + * @param string $keyType The type of keys the array uses. + * @return void + */ + public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) + { + $keys = CcTracktypesPeer::getFieldNames($keyType); + + if (array_key_exists($keys[0], $arr)) $this->setDbId($arr[$keys[0]]); + if (array_key_exists($keys[1], $arr)) $this->setDbCode($arr[$keys[1]]); + if (array_key_exists($keys[3], $arr)) $this->setDbVisibility($arr[$keys[2]]); + if (array_key_exists($keys[4], $arr)) $this->setDbTypeName($arr[$keys[3]]); + if (array_key_exists($keys[5], $arr)) $this->setDbDescription($arr[$keys[4]]); + } + + /** + * Build a Criteria object containing the values of all modified columns in this object. + * + * @return Criteria The Criteria object containing all modified values. + */ + public function buildCriteria() + { + $criteria = new Criteria(CcTracktypesPeer::DATABASE_NAME); + + if ($this->isColumnModified(CcTracktypesPeer::ID)) $criteria->add(CcTracktypesPeer::ID, $this->id); + if ($this->isColumnModified(CcTracktypesPeer::CODE)) $criteria->add(CcTracktypesPeer::CODE, $this->code); + if ($this->isColumnModified(CcTracktypesPeer::VISIBILITY)) $criteria->add(CcTracktypesPeer::VISIBILITY, $this->visibility); + if ($this->isColumnModified(CcTracktypesPeer::TYPE_NAME)) $criteria->add(CcTracktypesPeer::TYPE_NAME, $this->type_name); + if ($this->isColumnModified(CcTracktypesPeer::DESCRIPTION)) $criteria->add(CcTracktypesPeer::DESCRIPTION, $this->description); + + return $criteria; + } + + /** + * Builds a Criteria object containing the primary key for this object. + * + * Unlike buildCriteria() this method includes the primary key values regardless + * of whether or not they have been modified. + * + * @return Criteria The Criteria object containing value(s) for primary key(s). + */ + public function buildPkeyCriteria() + { + $criteria = new Criteria(CcTracktypesPeer::DATABASE_NAME); + $criteria->add(CcTracktypesPeer::ID, $this->id); + + return $criteria; + } + + /** + * Returns the primary key for this object (row). + * @return int + */ + public function getPrimaryKey() + { + return $this->getDbId(); + } + + /** + * Generic method to set the primary key (id column). + * + * @param int $key Primary key. + * @return void + */ + public function setPrimaryKey($key) + { + $this->setDbId($key); + } + + /** + * Returns true if the primary key for this object is null. + * @return boolean + */ + public function isPrimaryKeyNull() + { + + return null === $this->getDbId(); + } + + /** + * Sets contents of passed object to values from current object. + * + * If desired, this method can also make copies of all associated (fkey referrers) + * objects. + * + * @param object $copyObj An object of CcTracktypes (or compatible) type. + * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. + * @param boolean $makeNew Whether to reset autoincrement PKs and make the object new. + * @throws PropelException + */ + public function copyInto($copyObj, $deepCopy = false, $makeNew = true) + { + $copyObj->setDbCode($this->getDbCode()); + $copyObj->setDbVisibility($this->getDbVisibility()); + $copyObj->setDbTypeName($this->getDbTypeName()); + $copyObj->setDbDescription($this->getDbDescription()); + + if ($deepCopy && !$this->startCopy) { + // important: temporarily setNew(false) because this affects the behavior of + // the getter/setter methods for fkey referrer objects. + $copyObj->setNew(false); + // store object hash to prevent cycle + $this->startCopy = true; + + //unflag object copy + $this->startCopy = false; + } // if ($deepCopy) + + if ($makeNew) { + $copyObj->setNew(true); + $copyObj->setDbId(NULL); // this is a auto-increment column, so set to default value + } + } + + /** + * Makes a copy of this object that will be inserted as a new row in table when saved. + * It creates a new object filling in the simple attributes, but skipping any primary + * keys that are defined for the table. + * + * If desired, this method can also make copies of all associated (fkey referrers) + * objects. + * + * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. + * @return CcTracktypes Clone of current object. + * @throws PropelException + */ + public function copy($deepCopy = false) + { + // we use get_class(), because this might be a subclass + $clazz = get_class($this); + $copyObj = new $clazz(); + $this->copyInto($copyObj, $deepCopy); + + return $copyObj; + } + + /** + * Returns a peer instance associated with this om. + * + * Since Peer classes are not to have any instance attributes, this method returns the + * same instance for all member of this class. The method could therefore + * be static, but this would prevent one from overriding the behavior. + * + * @return CcTracktypesPeer + */ + public function getPeer() + { + if (self::$peer === null) { + self::$peer = new CcTracktypesPeer(); + } + + return self::$peer; + } + + /** + * Clears the current object and sets all attributes to their default values + */ + public function clear() + { + $this->id = null; + $this->code = null; + $this->visibility = false; + $this->type_name = null; + $this->description = null; + $this->alreadyInSave = false; + $this->alreadyInValidation = false; + $this->alreadyInClearAllReferencesDeep = false; + $this->clearAllReferences(); + $this->applyDefaultValues(); + $this->resetModified(); + $this->setNew(true); + $this->setDeleted(false); + } + + /** + * Resets all references to other model objects or collections of model objects. + * + * This method is a user-space workaround for PHP's inability to garbage collect + * objects with circular references (even in PHP 5.3). This is currently necessary + * when using Propel in certain daemon or large-volume/high-memory operations. + * + * @param boolean $deep Whether to also clear the references on all referrer objects. + */ + public function clearAllReferences($deep = false) + { + + } + + /** + * return the string representation of this object + * + * @return string + */ + public function __toString() + { + return (string) $this->exportTo(CcTracktypesPeer::DEFAULT_STRING_FORMAT); + } + + /** + * return true is the object is in saving state + * + * @return boolean + */ + public function isAlreadyInSave() + { + return $this->alreadyInSave; + } + +} diff --git a/airtime_mvc/application/models/airtime/om/BaseCcTracktypesPeer.php b/airtime_mvc/application/models/airtime/om/BaseCcTracktypesPeer.php new file mode 100644 index 000000000..583344f1f --- /dev/null +++ b/airtime_mvc/application/models/airtime/om/BaseCcTracktypesPeer.php @@ -0,0 +1,780 @@ + 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. + * + * $c->addAlias("alias1", TablePeer::TABLE_NAME); + * $c->addJoin(TablePeer::alias("alias1", TablePeer::PRIMARY_KEY_COLUMN), TablePeer::PRIMARY_KEY_COLUMN); + * + * @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(); + diff --git a/airtime_mvc/application/models/airtime/om/BaseCcTracktypesQuery.php b/airtime_mvc/application/models/airtime/om/BaseCcTracktypesQuery.php new file mode 100644 index 000000000..104a0ef00 --- /dev/null +++ b/airtime_mvc/application/models/airtime/om/BaseCcTracktypesQuery.php @@ -0,0 +1,407 @@ +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. + * + * + * $obj = $c->findPk(12, $con); + * + * + * @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 + * + * $objs = $c->findPks(array(12, 56, 832), $con); + * + * @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: + * + * $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 + * + * + * @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: + * + * $query->filterByDbCode('fooValue'); // WHERE code = 'fooValue' + * $query->filterByDbCode('%fooValue%'); // WHERE code LIKE '%fooValue%' + * + * + * @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: + * + * $query->filterByDbVisibility('fooValue'); // WHERE visibility = 'fooValue' + * $query->filterByDbVisibility('%fooValue%'); // WHERE visibility LIKE '%fooValue%' + * + * + * @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: + * + * $query->filterByDbTypeName('fooValue'); // WHERE type_name = 'fooValue' + * $query->filterByDbTypeName('%fooValue%'); // WHERE type_name LIKE '%fooValue%' + * + * + * @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: + * + * $query->filterByDbLastName('fooValue'); // WHERE last_name = 'fooValue' + * $query->filterByDbLastName('%fooValue%'); // WHERE last_name LIKE '%fooValue%' + * + * + * @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; + } + +} diff --git a/airtime_mvc/application/views/scripts/plupload/index.phtml b/airtime_mvc/application/views/scripts/plupload/index.phtml index e6713e123..08e2cbb73 100644 --- a/airtime_mvc/application/views/scripts/plupload/index.phtml +++ b/airtime_mvc/application/views/scripts/plupload/index.phtml @@ -13,24 +13,14 @@ $disk = $partitions[0]; $used = $disk->totalSpace-$disk->totalFreeSpace; $total = $disk->totalSpace; - ?> - - 'Music', - 'SID' => 'Station IDs', - 'INT' => 'Intros', - 'OUT' => 'Outros', - 'SWP' => 'Sweepers', - 'JIN' => 'Jingles', - 'PRO' => 'Promos', - 'SHO' => 'Shout Outs', - 'NWS' => 'News', - 'COM' => 'Commercials', - 'ITV' => 'Interviews', - 'VTR' => 'Voice Trackings', - ); + $tracktypes = Application_Model_Tracktype::getTracktypes(); + if(count($tracktypes) == 0) { + $hasTracktypes = "disabled"; + $showTracktypesDropdown = false; + } else { + $hasTracktypes = ""; + $showTracktypesDropdown = true; + } ?> - > + $tt) { + $selected = ""; + if ($ttsaved == $tt['code']) { + $selected = "selected"; + } + $code = $tt['code']; + $typename = $tt['type_name']; + echo ""; } - echo ""; - } - ?> - + ?> + +
$tt) { - if ($ttsaved == $key) { - $ttTitle = $tt; + if ($showTracktypesDropdown) { + foreach ($tracktypes as $key => $tt) { + if ($ttsaved == $key) { + $ttTitle = $tt['type_name']; + } } } ?> -

+

> +

form->getElement('csrf') ?>
diff --git a/airtime_mvc/application/views/scripts/tracktype/add-tracktype.phtml b/airtime_mvc/application/views/scripts/tracktype/add-tracktype.phtml new file mode 100644 index 000000000..db25591da --- /dev/null +++ b/airtime_mvc/application/views/scripts/tracktype/add-tracktype.phtml @@ -0,0 +1,36 @@ + +
+ +

+
+
+ +
+ +
+ + + + + + + + + + + + + +
 
+
+
+
+ successMessage ?> +
+ form ?> +
+
+
diff --git a/airtime_mvc/application/views/scripts/tracktype/get-tracktype-data-table-info.phtml b/airtime_mvc/application/views/scripts/tracktype/get-tracktype-data-table-info.phtml new file mode 100644 index 000000000..e69de29bb diff --git a/airtime_mvc/application/views/scripts/tracktype/get-tracktype-data.phtml b/airtime_mvc/application/views/scripts/tracktype/get-tracktype-data.phtml new file mode 100644 index 000000000..f9696f033 --- /dev/null +++ b/airtime_mvc/application/views/scripts/tracktype/get-tracktype-data.phtml @@ -0,0 +1,3 @@ +entries; +?> diff --git a/airtime_mvc/application/views/scripts/tracktype/index.phtml b/airtime_mvc/application/views/scripts/tracktype/index.phtml new file mode 100644 index 000000000..e69de29bb diff --git a/airtime_mvc/application/views/scripts/tracktype/remove-tracktype.phtml b/airtime_mvc/application/views/scripts/tracktype/remove-tracktype.phtml new file mode 100644 index 000000000..c1d521bb3 --- /dev/null +++ b/airtime_mvc/application/views/scripts/tracktype/remove-tracktype.phtml @@ -0,0 +1,3 @@ +entries; +?> diff --git a/airtime_mvc/build/schema.xml b/airtime_mvc/build/schema.xml index f493e2df6..311db484d 100644 --- a/airtime_mvc/build/schema.xml +++ b/airtime_mvc/build/schema.xml @@ -102,6 +102,19 @@ + + + + + + + + + + + + +
diff --git a/airtime_mvc/build/sql/defaultdata.sql b/airtime_mvc/build/sql/defaultdata.sql index 7712e23f2..f64a6caca 100644 --- a/airtime_mvc/build/sql/defaultdata.sql +++ b/airtime_mvc/build/sql/defaultdata.sql @@ -392,4 +392,21 @@ INSERT INTO cc_pref("keystr", "valstr") VALUES('whats_new_dialog_viewed', 1); --added for LibreTime to turn on podcast album override by default 3.0.0.alpha6 INSERT INTO cc_pref("keystr", "valstr") VALUES('podcast_album_override', 1); INSERT INTO cc_pref("keystr", "valstr") VALUES('podcast_auto_smartblock', 0); + +--added in 3.0.0.alpha9.2 to add default track types +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (1, 'MUS', 'Music', 'This is used for tracks containing music.', true); +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (2, 'SID', 'Station IDs', 'This is used for Station IDs.', true); +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (3, 'INT', 'Show Intros', 'This can be used for organizing all the show introductions.', true); +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (4, 'OUT', 'Show Outros', 'This can be used for organizing all the show outroductions.', true); +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (5, 'SWP', 'Sweepers', 'This is used for segues between songs.', true); +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (6, 'JIN', 'Jingles', 'A short song or tune, normally played during commercial breaks. Contains one or more hooks.', true); +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (7, 'PRO', 'Promos', 'For promotional use.', true); +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (8, 'SHO', 'Shout Outs', 'A message of congratulation, greeting. support, or appreciation.', true); +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (9, 'NWS', 'News', 'This is used for noteworthy information and announcements.', true); +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (10, 'COM', 'Commercials', 'This is used for commerical advertising.', true); +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (11, 'ITV', 'Radio Interviews', 'This is used for radio interviews', true); +INSERT INTO cc_track_types (id, code, type_name, description, visibility) VALUES (12, 'VTR', 'Voice Trackings', 'Also referred as robojock or taped. Play announcements without actually being in the station.', true); + +--end added in 3.0.0.alpha9.2 + -- end \ No newline at end of file diff --git a/airtime_mvc/build/sql/schema.sql b/airtime_mvc/build/sql/schema.sql index 32c0cca61..9d317a3be 100644 --- a/airtime_mvc/build/sql/schema.sql +++ b/airtime_mvc/build/sql/schema.sql @@ -105,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 ----------------------------------------------------------------------- diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index 981ac5f92..d49cd4f2f 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -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; } diff --git a/airtime_mvc/public/css/tracktypes.css b/airtime_mvc/public/css/tracktypes.css new file mode 100644 index 000000000..e21feea85 --- /dev/null +++ b/airtime_mvc/public/css/tracktypes.css @@ -0,0 +1,9 @@ +@charset "utf-8"; + +.dataTables_filter input { + margin-left: 0; +} + +.dataTables_processing { + top: 20px; +} \ No newline at end of file diff --git a/airtime_mvc/public/js/airtime/tracktype/tracktype.js b/airtime_mvc/public/js/airtime/tracktype/tracktype.js new file mode 100644 index 000000000..7c75daa6e --- /dev/null +++ b/airtime_mvc/public/js/airtime/tracktype/tracktype.js @@ -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( '').children('span').click(function(e){e.stopPropagation(); removeTracktypeCallback(aData['id'], nRow)}); + }else{ + $('td:eq(4)', nRow).empty().append( '').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(); +}); From dbb95b7915fb9e5d6b9314a4239140c15b7a55b8 Mon Sep 17 00:00:00 2001 From: Codenift Date: Sat, 25 Jan 2020 17:11:15 -0500 Subject: [PATCH 07/17] Track type dropdown menu for advanced search filter --- .../public/js/airtime/library/library.js | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index 75aaf124c..52a4e402f 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -55,7 +55,7 @@ var AIRTIME = (function(AIRTIME) { "info_url" : "s", "replay_gain" : "n", "artwork" : "s", - "track_type" : "s" + "track_type" : "tt" }; if (AIRTIME.library === undefined) { @@ -592,7 +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" , "bVisible" : false , "sClass" : "library_track_type" , "sWidth" : "60px" }, + /* 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" }, @@ -854,9 +854,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) { @@ -875,6 +878,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" } } @@ -1603,8 +1608,29 @@ var validationTypes = { "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 = $("