From 69afc715d1292669ec8683faad9660f746a89a83 Mon Sep 17 00:00:00 2001 From: Naomi Date: Mon, 22 Jul 2013 18:11:44 -0400 Subject: [PATCH] creating templates for validation. --- airtime_mvc/application/configs/constants.php | 9 + .../application/configs/navigation.php | 28 +- .../controllers/PlayouthistoryController.php | 52 ++- .../application/forms/EditHistoryItem.php | 213 ++++++++- airtime_mvc/application/models/Preference.php | 8 + .../map/CcPlayoutHistoryMetaDataTableMap.php | 2 + .../CcPlayoutHistoryTemplateTagTableMap.php | 1 + .../models/airtime/map/CcTagTableMap.php | 2 + .../airtime/om/BaseCcPlayoutHistory.php | 25 ++ .../om/BaseCcPlayoutHistoryMetaData.php | 145 +++++- .../om/BaseCcPlayoutHistoryMetaDataPeer.php | 418 +++++++++++++++++- .../om/BaseCcPlayoutHistoryMetaDataQuery.php | 103 +++++ .../om/BaseCcPlayoutHistoryTemplateTag.php | 50 ++- .../BaseCcPlayoutHistoryTemplateTagPeer.php | 31 +- .../BaseCcPlayoutHistoryTemplateTagQuery.php | 35 ++ .../models/airtime/om/BaseCcTag.php | 246 ++++++++++- .../models/airtime/om/BaseCcTagPeer.php | 34 +- .../models/airtime/om/BaseCcTagQuery.php | 94 ++++ .../application/services/HistoryService.php | 87 +++- .../scripts/form/edit-history-item.phtml | 3 + .../views/scripts/playouthistory/index.phtml | 9 +- airtime_mvc/build/schema.xml | 8 +- airtime_mvc/build/sql/schema.sql | 7 +- .../js/airtime/playouthistory/historytable.js | 24 + 24 files changed, 1552 insertions(+), 82 deletions(-) diff --git a/airtime_mvc/application/configs/constants.php b/airtime_mvc/application/configs/constants.php index 4a1f3e55a..6020c0983 100644 --- a/airtime_mvc/application/configs/constants.php +++ b/airtime_mvc/application/configs/constants.php @@ -38,6 +38,15 @@ define('MDATA_KEY_CUE_OUT' , 'cueout'); define('UI_MDATA_VALUE_FORMAT_FILE' , 'File'); define('UI_MDATA_VALUE_FORMAT_STREAM' , 'live stream'); +//Constants for playout history template fields +define('TEMPLATE_DATE', 'date'); +define('TEMPLATE_TIME', 'time'); +define('TEMPLATE_DATETIME', 'datetime'); +define('TEMPLATE_STRING', 'string'); +define('TEMPLATE_BOOLEAN', 'boolean'); +define('TEMPLATE_INT', 'integer'); +define('TEMPLATE_FLOAT', 'float'); + // Session Keys define('UI_PLAYLISTCONTROLLER_OBJ_SESSNAME', 'PLAYLISTCONTROLLER_OBJ'); /*define('UI_PLAYLIST_SESSNAME', 'PLAYLIST'); diff --git a/airtime_mvc/application/configs/navigation.php b/airtime_mvc/application/configs/navigation.php index 32b4af39d..ebbe7b12a 100644 --- a/airtime_mvc/application/configs/navigation.php +++ b/airtime_mvc/application/configs/navigation.php @@ -79,13 +79,6 @@ $pages = array( 'action' => 'index', 'resource' => 'systemstatus' ), - array( - 'label' => _('Playout History'), - 'module' => 'default', - 'controller' => 'playouthistory', - 'action' => 'index', - 'resource' => 'playouthistory' - ), array( 'label' => _('Listener Stats'), 'module' => 'default', @@ -95,6 +88,27 @@ $pages = array( ) ) ), + array( + 'label' => _('History'), + 'uri' => '#', + 'resource' => 'playouthistory', + 'pages' => array( + array( + 'label' => _('Playout History'), + 'module' => 'default', + 'controller' => 'playouthistory', + 'action' => 'index', + 'resource' => 'playouthistory' + ), + array( + 'label' => _('History Templates'), + 'module' => 'default', + 'controller' => 'playouthistory', + 'action' => 'template', + 'resource' => 'playouthistory' + ), + ) + ), array( 'label' => _('Help'), 'uri' => '#', diff --git a/airtime_mvc/application/controllers/PlayouthistoryController.php b/airtime_mvc/application/controllers/PlayouthistoryController.php index e43e992ea..2c7e0ca83 100644 --- a/airtime_mvc/application/controllers/PlayouthistoryController.php +++ b/airtime_mvc/application/controllers/PlayouthistoryController.php @@ -11,7 +11,13 @@ class PlayouthistoryController extends Zend_Controller_Action ->addActionContext('edit-aggregate-item', 'json') ->addActionContext('create-list-item', 'json') ->addActionContext('edit-list-item', 'json') + ->addActionContext('update-list-item', 'json') ->addActionContext('update-aggregate-item', 'json') + ->addActionContext('create-template', 'json') + ->addActionContext('edit-template', 'json') + ->addActionContext('delete-template', 'json') + ->addActionContext('create-template-field', 'json') + ->addActionContext('delete-template-field', 'json') ->initContext(); } @@ -134,13 +140,25 @@ class PlayouthistoryController extends Zend_Controller_Action $file_id = $this->_getParam('id'); $historyService = new Application_Service_HistoryService(); - $form = $historyService->makeHistoryFileForm($file_id); + $form = $historyService->makeHistoryItemForm($file_id); $this->view->form = $form; - $this->view->dialog = $this->view->render('form/edit-history-file.phtml'); + $this->view->dialog = $this->view->render('form/edit-history-item.phtml'); unset($this->view->form); } + + public function updateListItemAction() + { + $request = $this->getRequest(); + $params = $request->getPost(); + Logging::info($params); + + $historyService = new Application_Service_HistoryService(); + $json = $historyService->editPlayedItem($params); + + $this->view->data = $json; + } public function updateAggregateItemAction() { @@ -153,4 +171,34 @@ class PlayouthistoryController extends Zend_Controller_Action $this->view->data = $json; } + + public function templateAction() + { + + } + + public function createTemplateAction() + { + + } + + public function editTemplateAction() + { + + } + + public function deleteTemplateAction() + { + + } + + public function createTemplateFieldAction() + { + + } + + public function deleteTemplateFieldAction() + { + + } } diff --git a/airtime_mvc/application/forms/EditHistoryItem.php b/airtime_mvc/application/forms/EditHistoryItem.php index 19ce8f79b..99ae87c8d 100644 --- a/airtime_mvc/application/forms/EditHistoryItem.php +++ b/airtime_mvc/application/forms/EditHistoryItem.php @@ -2,22 +2,209 @@ class Application_Form_EditHistoryItem extends Zend_Form { + const VALIDATE_DATETIME_FORMAT = 'yyyy-MM-dd HH-mm-ss'; + const VALIDATE_DATE_FORMAT = 'yyyy-MM-dd'; + const VALIDATE_TIME_FORMAT = 'HH-mm-ss'; + + const ID_PREFIX = "his_item_"; + + const ITEM_TYPE = "type"; + const ITEM_CLASS = "class"; + const ITEM_ID_SUFFIX = "name"; + + private $formElTypes = array( + TEMPLATE_DATE => array( + "class" => "Zend_Form_Element_Text", + "attrs" => array( + "class" => "input_text" + ), + "validators" => array( + array( + "class" => "Zend_Validate_Date", + "params" => array( + "format" => self::VALIDATE_DATE_FORMAT + ) + ) + ), + "filters" => array( + "StringTrim" + ) + ), + TEMPLATE_TIME => array( + "class" => "Zend_Form_Element_Text", + "attrs" => array( + "class" => "input_text" + ), + "validators" => array( + array( + "class" => "Zend_Validate_Date", + "params" => array( + "format" => self::VALIDATE_TIME_FORMAT + ) + ) + ), + "filters" => array( + "StringTrim" + ) + ), + TEMPLATE_DATETIME => array( + "class" => "Zend_Form_Element_Text", + "attrs" => array( + "class" => "input_text" + ), + "validators" => array( + array( + "class" => "Zend_Validate_Date", + "params" => array( + "format" => self::VALIDATE_DATETIME_FORMAT + ) + ) + ), + "filters" => array( + "StringTrim" + ) + ), + TEMPLATE_STRING => array( + "class" => "Zend_Form_Element_Text", + "attrs" => array( + "class" => "input_text" + ), + "filters" => array( + "StringTrim" + ) + ), + TEMPLATE_BOOLEAN => array( + "class" => "Zend_Form_Element_Checkbox", + "filters" => array( + "Boolean" + ) + ), + TEMPLATE_INT => array( + "class" => "Zend_Form_Element_Text", + "validators" => array( + array( + "class" => "Zend_Validate_Int", + ) + ), + "attrs" => array( + "class" => "input_text" + ), + "filters" => array( + "Int" + ) + ), + TEMPLATE_FLOAT => array( + "class" => "Zend_Form_Element_Text", + "attrs" => array( + "class" => "input_text" + ), + "validators" => array( + array( + "class" => "Zend_Validate_Float", + ) + ) + ), + ); + public function init() { - $file_id = new Zend_Form_Element_Hidden('his_file_id'); - $file_id->setValidators(array( - new Zend_Validate_Int() + $history_id = new Zend_Form_Element_Hidden(self::ID_PREFIX.'id'); + $history_id->setValidators(array( + new Zend_Validate_Int() )); - $this->addElement($file_id); - - - /* Title form element */ - $title = new Zend_Form_Element_Text('his_file_title'); - $title->setLabel(_('Title:')); - $title->setAttrib('class', 'input_text'); - $title->addFilter('StringTrim'); - //$title->setDecorators(array('viewHelper')); - $this->addElement($title); + $this->addElement($history_id); + } + + public function createFromTemplate($template) { + + for ($i = 0, $len = count($template); $i < $len; $i++) { + + $item = $template[$i]; + + $formElType = $this->formElTypes[$item[self::ITEM_TYPE]]; + + $label = $item[self::ITEM_ID_SUFFIX]; + $id = self::ID_PREFIX.$label; + $el = new $formElType[self::ITEM_CLASS]($id); + + //cleaning up presentation of tag name for labels. + $label = implode(" ", explode("_", $label)); + $label = ucwords($label); + $el->setLabel(_($label)); + + if (isset($formElType["attrs"])) { + + $attrs = $formElType["filters"]; + + foreach ($attrs as $key => $value) { + $el->setAttrib($key, $value); + } + } + if (isset($formElType["filters"])) { + + $filters = $formElType["filters"]; + + foreach ($filters as $filter) { + $el->addFilter($filter); + } + } + + if (isset($formElType["validators"])) { + + $validators = $formElType["validators"]; + + foreach ($validators as $index => $arr) { + $validator = new $arr[self::ITEM_CLASS](); + + //extra validator info + if (isset($arr["params"])) { + + foreach ($arr["params"] as $key => $value) { + $method = "set".ucfirst($key); + $validator->$method($value); + } + } + + $el->addValidator($validator); + } + } + + $this->addElement($el); + } + + // Add the submit button + $this->addElement('button', 'his_item_save', array( + 'ignore' => true, + 'class' => 'btn his_item_save', + 'label' => _('Save'), + 'decorators' => array( + 'ViewHelper' + ) + )); + + // Add the cancel button + $this->addElement('button', 'his_item_cancel', array( + 'ignore' => true, + 'class' => 'btn his_item_cancel', + 'label' => _('Cancel'), + 'decorators' => array( + 'ViewHelper' + ) + )); + + $this->addDisplayGroup( + array( + 'his_item_save', + 'his_item_cancel' + ), + 'submitButtons', + array( + 'decorators' => array( + 'FormElements', + 'DtDdWrapper' + ) + ) + ); } } \ No newline at end of file diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index 5df8d878f..b5f17900f 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -1369,4 +1369,12 @@ class Application_Model_Preference { self::setValue("replay_gain_modifier", $rg_modifier, true); } + + public static function SetHistoryItemTemplate($value) { + self::setValue("history_item_template", $value); + } + + public static function GetHistoryItemTemplate() { + return self::getValue("history_item_template"); + } } diff --git a/airtime_mvc/application/models/airtime/map/CcPlayoutHistoryMetaDataTableMap.php b/airtime_mvc/application/models/airtime/map/CcPlayoutHistoryMetaDataTableMap.php index 8e937f6e5..4a7fe7d69 100644 --- a/airtime_mvc/application/models/airtime/map/CcPlayoutHistoryMetaDataTableMap.php +++ b/airtime_mvc/application/models/airtime/map/CcPlayoutHistoryMetaDataTableMap.php @@ -40,6 +40,7 @@ class CcPlayoutHistoryMetaDataTableMap extends TableMap { // columns $this->addPrimaryKey('ID', 'DbId', 'INTEGER', true, null, null); $this->addForeignKey('HISTORY_ID', 'DbHistoryId', 'INTEGER', 'cc_playout_history', 'ID', true, null, null); + $this->addForeignKey('TAG_ID', 'DbTagId', 'INTEGER', 'cc_tag', 'ID', true, null, null); $this->addColumn('KEY', 'DbKey', 'VARCHAR', true, 128, null); $this->addColumn('VALUE', 'DbValue', 'VARCHAR', true, 128, null); // validators @@ -51,6 +52,7 @@ class CcPlayoutHistoryMetaDataTableMap extends TableMap { public function buildRelations() { $this->addRelation('CcPlayoutHistory', 'CcPlayoutHistory', RelationMap::MANY_TO_ONE, array('history_id' => 'id', ), 'CASCADE', null); + $this->addRelation('CcTag', 'CcTag', RelationMap::MANY_TO_ONE, array('tag_id' => 'id', ), 'CASCADE', null); } // buildRelations() } // CcPlayoutHistoryMetaDataTableMap diff --git a/airtime_mvc/application/models/airtime/map/CcPlayoutHistoryTemplateTagTableMap.php b/airtime_mvc/application/models/airtime/map/CcPlayoutHistoryTemplateTagTableMap.php index f4b18104f..a9e105c07 100644 --- a/airtime_mvc/application/models/airtime/map/CcPlayoutHistoryTemplateTagTableMap.php +++ b/airtime_mvc/application/models/airtime/map/CcPlayoutHistoryTemplateTagTableMap.php @@ -41,6 +41,7 @@ class CcPlayoutHistoryTemplateTagTableMap extends TableMap { $this->addPrimaryKey('ID', 'DbId', 'INTEGER', true, null, null); $this->addForeignKey('TEMPLATE_ID', 'DbTemplateId', 'INTEGER', 'cc_playout_history_template', 'ID', true, null, null); $this->addForeignKey('TAG_ID', 'DbTagId', 'INTEGER', 'cc_tag', 'ID', true, null, null); + $this->addColumn('POSITION', 'DbTagPosition', 'INTEGER', true, null, null); // validators } // initialize() diff --git a/airtime_mvc/application/models/airtime/map/CcTagTableMap.php b/airtime_mvc/application/models/airtime/map/CcTagTableMap.php index b9934edf6..0cfbcbb2c 100644 --- a/airtime_mvc/application/models/airtime/map/CcTagTableMap.php +++ b/airtime_mvc/application/models/airtime/map/CcTagTableMap.php @@ -40,6 +40,7 @@ class CcTagTableMap extends TableMap { // columns $this->addPrimaryKey('ID', 'DbId', 'INTEGER', true, null, null); $this->addColumn('TAG_NAME', 'DbTagName', 'VARCHAR', true, 128, null); + $this->addColumn('TAG_TYPE', 'DbTagType', 'VARCHAR', true, 128, 'boolean'); // validators } // initialize() @@ -49,6 +50,7 @@ class CcTagTableMap extends TableMap { public function buildRelations() { $this->addRelation('CcFileTag', 'CcFileTag', RelationMap::ONE_TO_MANY, array('id' => 'tag_id', ), 'CASCADE', null); + $this->addRelation('CcPlayoutHistoryMetaData', 'CcPlayoutHistoryMetaData', RelationMap::ONE_TO_MANY, array('id' => 'tag_id', ), 'CASCADE', null); $this->addRelation('CcPlayoutHistoryTemplateTag', 'CcPlayoutHistoryTemplateTag', RelationMap::ONE_TO_MANY, array('id' => 'tag_id', ), 'CASCADE', null); } // buildRelations() diff --git a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistory.php b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistory.php index bdae214d1..5001da76c 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistory.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistory.php @@ -1099,6 +1099,31 @@ abstract class BaseCcPlayoutHistory extends BaseObject implements Persistent } } + + /** + * If this collection has already been initialized with + * an identical criteria, it returns the collection. + * Otherwise if this CcPlayoutHistory is new, it will return + * an empty collection; or if this CcPlayoutHistory has previously + * been saved, it will retrieve related CcPlayoutHistoryMetaDatas from storage. + * + * This method is protected by default in order to keep the public + * api reasonable. You can provide public methods for those you + * actually need in CcPlayoutHistory. + * + * @param Criteria $criteria optional Criteria object to narrow the query + * @param PropelPDO $con optional connection object + * @param string $join_behavior optional join type to use (defaults to Criteria::LEFT_JOIN) + * @return PropelCollection|array CcPlayoutHistoryMetaData[] List of CcPlayoutHistoryMetaData objects + */ + public function getCcPlayoutHistoryMetaDatasJoinCcTag($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN) + { + $query = CcPlayoutHistoryMetaDataQuery::create(null, $criteria); + $query->joinWith('CcTag', $join_behavior); + + return $this->getCcPlayoutHistoryMetaDatas($query, $con); + } + /** * Clears the current object and sets all attributes to their default values */ diff --git a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaData.php b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaData.php index a0cbb9539..a1da0ea27 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaData.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaData.php @@ -36,6 +36,12 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi */ protected $history_id; + /** + * The value for the tag_id field. + * @var int + */ + protected $tag_id; + /** * The value for the key field. * @var string @@ -53,6 +59,11 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi */ protected $aCcPlayoutHistory; + /** + * @var CcTag + */ + protected $aCcTag; + /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -87,6 +98,16 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi return $this->history_id; } + /** + * Get the [tag_id] column value. + * + * @return int + */ + public function getDbTagId() + { + return $this->tag_id; + } + /** * Get the [key] column value. * @@ -151,6 +172,30 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi return $this; } // setDbHistoryId() + /** + * Set the value of [tag_id] column. + * + * @param int $v new value + * @return CcPlayoutHistoryMetaData The current object (for fluent API support) + */ + public function setDbTagId($v) + { + if ($v !== null) { + $v = (int) $v; + } + + if ($this->tag_id !== $v) { + $this->tag_id = $v; + $this->modifiedColumns[] = CcPlayoutHistoryMetaDataPeer::TAG_ID; + } + + if ($this->aCcTag !== null && $this->aCcTag->getDbId() !== $v) { + $this->aCcTag = null; + } + + return $this; + } // setDbTagId() + /** * Set the value of [key] column. * @@ -225,8 +270,9 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi $this->id = ($row[$startcol + 0] !== null) ? (int) $row[$startcol + 0] : null; $this->history_id = ($row[$startcol + 1] !== null) ? (int) $row[$startcol + 1] : null; - $this->key = ($row[$startcol + 2] !== null) ? (string) $row[$startcol + 2] : null; - $this->value = ($row[$startcol + 3] !== null) ? (string) $row[$startcol + 3] : null; + $this->tag_id = ($row[$startcol + 2] !== null) ? (int) $row[$startcol + 2] : null; + $this->key = ($row[$startcol + 3] !== null) ? (string) $row[$startcol + 3] : null; + $this->value = ($row[$startcol + 4] !== null) ? (string) $row[$startcol + 4] : null; $this->resetModified(); $this->setNew(false); @@ -235,7 +281,7 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi $this->ensureConsistency(); } - return $startcol + 4; // 4 = CcPlayoutHistoryMetaDataPeer::NUM_COLUMNS - CcPlayoutHistoryMetaDataPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 5; // 5 = CcPlayoutHistoryMetaDataPeer::NUM_COLUMNS - CcPlayoutHistoryMetaDataPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating CcPlayoutHistoryMetaData object", $e); @@ -261,6 +307,9 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi if ($this->aCcPlayoutHistory !== null && $this->history_id !== $this->aCcPlayoutHistory->getDbId()) { $this->aCcPlayoutHistory = null; } + if ($this->aCcTag !== null && $this->tag_id !== $this->aCcTag->getDbId()) { + $this->aCcTag = null; + } } // ensureConsistency /** @@ -301,6 +350,7 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi if ($deep) { // also de-associate any related objects? $this->aCcPlayoutHistory = null; + $this->aCcTag = null; } // if (deep) } @@ -423,6 +473,13 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi $this->setCcPlayoutHistory($this->aCcPlayoutHistory); } + if ($this->aCcTag !== null) { + if ($this->aCcTag->isModified() || $this->aCcTag->isNew()) { + $affectedRows += $this->aCcTag->save($con); + } + $this->setCcTag($this->aCcTag); + } + if ($this->isNew() ) { $this->modifiedColumns[] = CcPlayoutHistoryMetaDataPeer::ID; } @@ -523,6 +580,12 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi } } + if ($this->aCcTag !== null) { + if (!$this->aCcTag->validate($columns)) { + $failureMap = array_merge($failureMap, $this->aCcTag->getValidationFailures()); + } + } + if (($retval = CcPlayoutHistoryMetaDataPeer::doValidate($this, $columns)) !== true) { $failureMap = array_merge($failureMap, $retval); @@ -569,9 +632,12 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi return $this->getDbHistoryId(); break; case 2: - return $this->getDbKey(); + return $this->getDbTagId(); break; case 3: + return $this->getDbKey(); + break; + case 4: return $this->getDbValue(); break; default: @@ -600,13 +666,17 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi $result = array( $keys[0] => $this->getDbId(), $keys[1] => $this->getDbHistoryId(), - $keys[2] => $this->getDbKey(), - $keys[3] => $this->getDbValue(), + $keys[2] => $this->getDbTagId(), + $keys[3] => $this->getDbKey(), + $keys[4] => $this->getDbValue(), ); if ($includeForeignObjects) { if (null !== $this->aCcPlayoutHistory) { $result['CcPlayoutHistory'] = $this->aCcPlayoutHistory->toArray($keyType, $includeLazyLoadColumns, true); } + if (null !== $this->aCcTag) { + $result['CcTag'] = $this->aCcTag->toArray($keyType, $includeLazyLoadColumns, true); + } } return $result; } @@ -645,9 +715,12 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi $this->setDbHistoryId($value); break; case 2: - $this->setDbKey($value); + $this->setDbTagId($value); break; case 3: + $this->setDbKey($value); + break; + case 4: $this->setDbValue($value); break; } // switch() @@ -676,8 +749,9 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi if (array_key_exists($keys[0], $arr)) $this->setDbId($arr[$keys[0]]); if (array_key_exists($keys[1], $arr)) $this->setDbHistoryId($arr[$keys[1]]); - if (array_key_exists($keys[2], $arr)) $this->setDbKey($arr[$keys[2]]); - if (array_key_exists($keys[3], $arr)) $this->setDbValue($arr[$keys[3]]); + if (array_key_exists($keys[2], $arr)) $this->setDbTagId($arr[$keys[2]]); + if (array_key_exists($keys[3], $arr)) $this->setDbKey($arr[$keys[3]]); + if (array_key_exists($keys[4], $arr)) $this->setDbValue($arr[$keys[4]]); } /** @@ -691,6 +765,7 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi if ($this->isColumnModified(CcPlayoutHistoryMetaDataPeer::ID)) $criteria->add(CcPlayoutHistoryMetaDataPeer::ID, $this->id); if ($this->isColumnModified(CcPlayoutHistoryMetaDataPeer::HISTORY_ID)) $criteria->add(CcPlayoutHistoryMetaDataPeer::HISTORY_ID, $this->history_id); + if ($this->isColumnModified(CcPlayoutHistoryMetaDataPeer::TAG_ID)) $criteria->add(CcPlayoutHistoryMetaDataPeer::TAG_ID, $this->tag_id); if ($this->isColumnModified(CcPlayoutHistoryMetaDataPeer::KEY)) $criteria->add(CcPlayoutHistoryMetaDataPeer::KEY, $this->key); if ($this->isColumnModified(CcPlayoutHistoryMetaDataPeer::VALUE)) $criteria->add(CcPlayoutHistoryMetaDataPeer::VALUE, $this->value); @@ -755,6 +830,7 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi public function copyInto($copyObj, $deepCopy = false) { $copyObj->setDbHistoryId($this->history_id); + $copyObj->setDbTagId($this->tag_id); $copyObj->setDbKey($this->key); $copyObj->setDbValue($this->value); @@ -849,6 +925,55 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi return $this->aCcPlayoutHistory; } + /** + * Declares an association between this object and a CcTag object. + * + * @param CcTag $v + * @return CcPlayoutHistoryMetaData The current object (for fluent API support) + * @throws PropelException + */ + public function setCcTag(CcTag $v = null) + { + if ($v === null) { + $this->setDbTagId(NULL); + } else { + $this->setDbTagId($v->getDbId()); + } + + $this->aCcTag = $v; + + // Add binding for other direction of this n:n relationship. + // If this object has already been added to the CcTag object, it will not be re-added. + if ($v !== null) { + $v->addCcPlayoutHistoryMetaData($this); + } + + return $this; + } + + + /** + * Get the associated CcTag object + * + * @param PropelPDO Optional Connection object. + * @return CcTag The associated CcTag object. + * @throws PropelException + */ + public function getCcTag(PropelPDO $con = null) + { + if ($this->aCcTag === null && ($this->tag_id !== null)) { + $this->aCcTag = CcTagQuery::create()->findPk($this->tag_id, $con); + /* The following can be used additionally to + guarantee the related object contains a reference + to this object. This level of coupling may, however, be + undesirable since it could result in an only partially populated collection + in the referenced object. + $this->aCcTag->addCcPlayoutHistoryMetaDatas($this); + */ + } + return $this->aCcTag; + } + /** * Clears the current object and sets all attributes to their default values */ @@ -856,6 +981,7 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi { $this->id = null; $this->history_id = null; + $this->tag_id = null; $this->key = null; $this->value = null; $this->alreadyInSave = false; @@ -881,6 +1007,7 @@ abstract class BaseCcPlayoutHistoryMetaData extends BaseObject implements Persi } // if ($deep) $this->aCcPlayoutHistory = null; + $this->aCcTag = null; } /** diff --git a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaDataPeer.php b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaDataPeer.php index 0b980ec4e..51ab1cc20 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaDataPeer.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaDataPeer.php @@ -26,7 +26,7 @@ abstract class BaseCcPlayoutHistoryMetaDataPeer { const TM_CLASS = 'CcPlayoutHistoryMetaDataTableMap'; /** The total number of columns. */ - const NUM_COLUMNS = 4; + const NUM_COLUMNS = 5; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -37,6 +37,9 @@ abstract class BaseCcPlayoutHistoryMetaDataPeer { /** the column name for the HISTORY_ID field */ const HISTORY_ID = 'cc_playout_history_metadata.HISTORY_ID'; + /** the column name for the TAG_ID field */ + const TAG_ID = 'cc_playout_history_metadata.TAG_ID'; + /** the column name for the KEY field */ const KEY = 'cc_playout_history_metadata.KEY'; @@ -59,12 +62,12 @@ abstract class BaseCcPlayoutHistoryMetaDataPeer { * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('DbId', 'DbHistoryId', 'DbKey', 'DbValue', ), - BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbHistoryId', 'dbKey', 'dbValue', ), - BasePeer::TYPE_COLNAME => array (self::ID, self::HISTORY_ID, self::KEY, self::VALUE, ), - BasePeer::TYPE_RAW_COLNAME => array ('ID', 'HISTORY_ID', 'KEY', 'VALUE', ), - BasePeer::TYPE_FIELDNAME => array ('id', 'history_id', 'key', 'value', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, ) + BasePeer::TYPE_PHPNAME => array ('DbId', 'DbHistoryId', 'DbTagId', 'DbKey', 'DbValue', ), + BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbHistoryId', 'dbTagId', 'dbKey', 'dbValue', ), + BasePeer::TYPE_COLNAME => array (self::ID, self::HISTORY_ID, self::TAG_ID, self::KEY, self::VALUE, ), + BasePeer::TYPE_RAW_COLNAME => array ('ID', 'HISTORY_ID', 'TAG_ID', 'KEY', 'VALUE', ), + BasePeer::TYPE_FIELDNAME => array ('id', 'history_id', 'tag_id', 'key', 'value', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -74,12 +77,12 @@ abstract class BaseCcPlayoutHistoryMetaDataPeer { * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbHistoryId' => 1, 'DbKey' => 2, 'DbValue' => 3, ), - BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbHistoryId' => 1, 'dbKey' => 2, 'dbValue' => 3, ), - BasePeer::TYPE_COLNAME => array (self::ID => 0, self::HISTORY_ID => 1, self::KEY => 2, self::VALUE => 3, ), - BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'HISTORY_ID' => 1, 'KEY' => 2, 'VALUE' => 3, ), - BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'history_id' => 1, 'key' => 2, 'value' => 3, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, ) + BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbHistoryId' => 1, 'DbTagId' => 2, 'DbKey' => 3, 'DbValue' => 4, ), + BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbHistoryId' => 1, 'dbTagId' => 2, 'dbKey' => 3, 'dbValue' => 4, ), + BasePeer::TYPE_COLNAME => array (self::ID => 0, self::HISTORY_ID => 1, self::TAG_ID => 2, self::KEY => 3, self::VALUE => 4, ), + BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'HISTORY_ID' => 1, 'TAG_ID' => 2, 'KEY' => 3, 'VALUE' => 4, ), + BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'history_id' => 1, 'tag_id' => 2, 'key' => 3, 'value' => 4, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -153,11 +156,13 @@ abstract class BaseCcPlayoutHistoryMetaDataPeer { if (null === $alias) { $criteria->addSelectColumn(CcPlayoutHistoryMetaDataPeer::ID); $criteria->addSelectColumn(CcPlayoutHistoryMetaDataPeer::HISTORY_ID); + $criteria->addSelectColumn(CcPlayoutHistoryMetaDataPeer::TAG_ID); $criteria->addSelectColumn(CcPlayoutHistoryMetaDataPeer::KEY); $criteria->addSelectColumn(CcPlayoutHistoryMetaDataPeer::VALUE); } else { $criteria->addSelectColumn($alias . '.ID'); $criteria->addSelectColumn($alias . '.HISTORY_ID'); + $criteria->addSelectColumn($alias . '.TAG_ID'); $criteria->addSelectColumn($alias . '.KEY'); $criteria->addSelectColumn($alias . '.VALUE'); } @@ -495,6 +500,56 @@ abstract class BaseCcPlayoutHistoryMetaDataPeer { } + /** + * Returns the number of rows matching criteria, joining the related CcTag table + * + * @param Criteria $criteria + * @param boolean $distinct Whether to select only distinct columns; deprecated: use Criteria->setDistinct() instead. + * @param PropelPDO $con + * @param String $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN + * @return int Number of matching rows. + */ + public static function doCountJoinCcTag(Criteria $criteria, $distinct = false, PropelPDO $con = null, $join_behavior = Criteria::LEFT_JOIN) + { + // we're going to 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(CcPlayoutHistoryMetaDataPeer::TABLE_NAME); + + if ($distinct && !in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) { + $criteria->setDistinct(); + } + + if (!$criteria->hasSelectClause()) { + CcPlayoutHistoryMetaDataPeer::addSelectColumns($criteria); + } + + $criteria->clearOrderByColumns(); // ORDER BY won't ever affect the count + + // Set the correct dbName + $criteria->setDbName(self::DATABASE_NAME); + + if ($con === null) { + $con = Propel::getConnection(CcPlayoutHistoryMetaDataPeer::DATABASE_NAME, Propel::CONNECTION_READ); + } + + $criteria->addJoin(CcPlayoutHistoryMetaDataPeer::TAG_ID, CcTagPeer::ID, $join_behavior); + + $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 a collection of CcPlayoutHistoryMetaData objects pre-filled with their CcPlayoutHistory objects. * @param Criteria $criteria @@ -561,6 +616,72 @@ abstract class BaseCcPlayoutHistoryMetaDataPeer { } + /** + * Selects a collection of CcPlayoutHistoryMetaData objects pre-filled with their CcTag objects. + * @param Criteria $criteria + * @param PropelPDO $con + * @param String $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN + * @return array Array of CcPlayoutHistoryMetaData objects. + * @throws PropelException Any exceptions caught during processing will be + * rethrown wrapped into a PropelException. + */ + public static function doSelectJoinCcTag(Criteria $criteria, $con = null, $join_behavior = Criteria::LEFT_JOIN) + { + $criteria = clone $criteria; + + // Set the correct dbName if it has not been overridden + if ($criteria->getDbName() == Propel::getDefaultDB()) { + $criteria->setDbName(self::DATABASE_NAME); + } + + CcPlayoutHistoryMetaDataPeer::addSelectColumns($criteria); + $startcol = (CcPlayoutHistoryMetaDataPeer::NUM_COLUMNS - CcPlayoutHistoryMetaDataPeer::NUM_LAZY_LOAD_COLUMNS); + CcTagPeer::addSelectColumns($criteria); + + $criteria->addJoin(CcPlayoutHistoryMetaDataPeer::TAG_ID, CcTagPeer::ID, $join_behavior); + + $stmt = BasePeer::doSelect($criteria, $con); + $results = array(); + + while ($row = $stmt->fetch(PDO::FETCH_NUM)) { + $key1 = CcPlayoutHistoryMetaDataPeer::getPrimaryKeyHashFromRow($row, 0); + if (null !== ($obj1 = CcPlayoutHistoryMetaDataPeer::getInstanceFromPool($key1))) { + // We no longer rehydrate the object, since this can cause data loss. + // See http://www.propelorm.org/ticket/509 + // $obj1->hydrate($row, 0, true); // rehydrate + } else { + + $cls = CcPlayoutHistoryMetaDataPeer::getOMClass(false); + + $obj1 = new $cls(); + $obj1->hydrate($row); + CcPlayoutHistoryMetaDataPeer::addInstanceToPool($obj1, $key1); + } // if $obj1 already loaded + + $key2 = CcTagPeer::getPrimaryKeyHashFromRow($row, $startcol); + if ($key2 !== null) { + $obj2 = CcTagPeer::getInstanceFromPool($key2); + if (!$obj2) { + + $cls = CcTagPeer::getOMClass(false); + + $obj2 = new $cls(); + $obj2->hydrate($row, $startcol); + CcTagPeer::addInstanceToPool($obj2, $key2); + } // if obj2 already loaded + + // Add the $obj1 (CcPlayoutHistoryMetaData) to $obj2 (CcTag) + $obj2->addCcPlayoutHistoryMetaData($obj1); + + } // if joined row was not null + + $results[] = $obj1; + } + $stmt->closeCursor(); + return $results; + } + + /** * Returns the number of rows matching criteria, joining all related tables * @@ -599,6 +720,8 @@ abstract class BaseCcPlayoutHistoryMetaDataPeer { $criteria->addJoin(CcPlayoutHistoryMetaDataPeer::HISTORY_ID, CcPlayoutHistoryPeer::ID, $join_behavior); + $criteria->addJoin(CcPlayoutHistoryMetaDataPeer::TAG_ID, CcTagPeer::ID, $join_behavior); + $stmt = BasePeer::doCount($criteria, $con); if ($row = $stmt->fetch(PDO::FETCH_NUM)) { @@ -635,8 +758,13 @@ abstract class BaseCcPlayoutHistoryMetaDataPeer { CcPlayoutHistoryPeer::addSelectColumns($criteria); $startcol3 = $startcol2 + (CcPlayoutHistoryPeer::NUM_COLUMNS - CcPlayoutHistoryPeer::NUM_LAZY_LOAD_COLUMNS); + CcTagPeer::addSelectColumns($criteria); + $startcol4 = $startcol3 + (CcTagPeer::NUM_COLUMNS - CcTagPeer::NUM_LAZY_LOAD_COLUMNS); + $criteria->addJoin(CcPlayoutHistoryMetaDataPeer::HISTORY_ID, CcPlayoutHistoryPeer::ID, $join_behavior); + $criteria->addJoin(CcPlayoutHistoryMetaDataPeer::TAG_ID, CcTagPeer::ID, $join_behavior); + $stmt = BasePeer::doSelect($criteria, $con); $results = array(); @@ -672,6 +800,270 @@ abstract class BaseCcPlayoutHistoryMetaDataPeer { $obj2->addCcPlayoutHistoryMetaData($obj1); } // if joined row not null + // Add objects for joined CcTag rows + + $key3 = CcTagPeer::getPrimaryKeyHashFromRow($row, $startcol3); + if ($key3 !== null) { + $obj3 = CcTagPeer::getInstanceFromPool($key3); + if (!$obj3) { + + $cls = CcTagPeer::getOMClass(false); + + $obj3 = new $cls(); + $obj3->hydrate($row, $startcol3); + CcTagPeer::addInstanceToPool($obj3, $key3); + } // if obj3 loaded + + // Add the $obj1 (CcPlayoutHistoryMetaData) to the collection in $obj3 (CcTag) + $obj3->addCcPlayoutHistoryMetaData($obj1); + } // if joined row not null + + $results[] = $obj1; + } + $stmt->closeCursor(); + return $results; + } + + + /** + * Returns the number of rows matching criteria, joining the related CcPlayoutHistory table + * + * @param Criteria $criteria + * @param boolean $distinct Whether to select only distinct columns; deprecated: use Criteria->setDistinct() instead. + * @param PropelPDO $con + * @param String $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN + * @return int Number of matching rows. + */ + public static function doCountJoinAllExceptCcPlayoutHistory(Criteria $criteria, $distinct = false, PropelPDO $con = null, $join_behavior = Criteria::LEFT_JOIN) + { + // we're going to 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(CcPlayoutHistoryMetaDataPeer::TABLE_NAME); + + if ($distinct && !in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) { + $criteria->setDistinct(); + } + + if (!$criteria->hasSelectClause()) { + CcPlayoutHistoryMetaDataPeer::addSelectColumns($criteria); + } + + $criteria->clearOrderByColumns(); // ORDER BY should not affect count + + // Set the correct dbName + $criteria->setDbName(self::DATABASE_NAME); + + if ($con === null) { + $con = Propel::getConnection(CcPlayoutHistoryMetaDataPeer::DATABASE_NAME, Propel::CONNECTION_READ); + } + + $criteria->addJoin(CcPlayoutHistoryMetaDataPeer::TAG_ID, CcTagPeer::ID, $join_behavior); + + $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; + } + + + /** + * Returns the number of rows matching criteria, joining the related CcTag table + * + * @param Criteria $criteria + * @param boolean $distinct Whether to select only distinct columns; deprecated: use Criteria->setDistinct() instead. + * @param PropelPDO $con + * @param String $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN + * @return int Number of matching rows. + */ + public static function doCountJoinAllExceptCcTag(Criteria $criteria, $distinct = false, PropelPDO $con = null, $join_behavior = Criteria::LEFT_JOIN) + { + // we're going to 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(CcPlayoutHistoryMetaDataPeer::TABLE_NAME); + + if ($distinct && !in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) { + $criteria->setDistinct(); + } + + if (!$criteria->hasSelectClause()) { + CcPlayoutHistoryMetaDataPeer::addSelectColumns($criteria); + } + + $criteria->clearOrderByColumns(); // ORDER BY should not affect count + + // Set the correct dbName + $criteria->setDbName(self::DATABASE_NAME); + + if ($con === null) { + $con = Propel::getConnection(CcPlayoutHistoryMetaDataPeer::DATABASE_NAME, Propel::CONNECTION_READ); + } + + $criteria->addJoin(CcPlayoutHistoryMetaDataPeer::HISTORY_ID, CcPlayoutHistoryPeer::ID, $join_behavior); + + $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 a collection of CcPlayoutHistoryMetaData objects pre-filled with all related objects except CcPlayoutHistory. + * + * @param Criteria $criteria + * @param PropelPDO $con + * @param String $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN + * @return array Array of CcPlayoutHistoryMetaData objects. + * @throws PropelException Any exceptions caught during processing will be + * rethrown wrapped into a PropelException. + */ + public static function doSelectJoinAllExceptCcPlayoutHistory(Criteria $criteria, $con = null, $join_behavior = Criteria::LEFT_JOIN) + { + $criteria = clone $criteria; + + // Set the correct dbName if it has not been overridden + // $criteria->getDbName() will return the same object if not set to another value + // so == check is okay and faster + if ($criteria->getDbName() == Propel::getDefaultDB()) { + $criteria->setDbName(self::DATABASE_NAME); + } + + CcPlayoutHistoryMetaDataPeer::addSelectColumns($criteria); + $startcol2 = (CcPlayoutHistoryMetaDataPeer::NUM_COLUMNS - CcPlayoutHistoryMetaDataPeer::NUM_LAZY_LOAD_COLUMNS); + + CcTagPeer::addSelectColumns($criteria); + $startcol3 = $startcol2 + (CcTagPeer::NUM_COLUMNS - CcTagPeer::NUM_LAZY_LOAD_COLUMNS); + + $criteria->addJoin(CcPlayoutHistoryMetaDataPeer::TAG_ID, CcTagPeer::ID, $join_behavior); + + + $stmt = BasePeer::doSelect($criteria, $con); + $results = array(); + + while ($row = $stmt->fetch(PDO::FETCH_NUM)) { + $key1 = CcPlayoutHistoryMetaDataPeer::getPrimaryKeyHashFromRow($row, 0); + if (null !== ($obj1 = CcPlayoutHistoryMetaDataPeer::getInstanceFromPool($key1))) { + // We no longer rehydrate the object, since this can cause data loss. + // See http://www.propelorm.org/ticket/509 + // $obj1->hydrate($row, 0, true); // rehydrate + } else { + $cls = CcPlayoutHistoryMetaDataPeer::getOMClass(false); + + $obj1 = new $cls(); + $obj1->hydrate($row); + CcPlayoutHistoryMetaDataPeer::addInstanceToPool($obj1, $key1); + } // if obj1 already loaded + + // Add objects for joined CcTag rows + + $key2 = CcTagPeer::getPrimaryKeyHashFromRow($row, $startcol2); + if ($key2 !== null) { + $obj2 = CcTagPeer::getInstanceFromPool($key2); + if (!$obj2) { + + $cls = CcTagPeer::getOMClass(false); + + $obj2 = new $cls(); + $obj2->hydrate($row, $startcol2); + CcTagPeer::addInstanceToPool($obj2, $key2); + } // if $obj2 already loaded + + // Add the $obj1 (CcPlayoutHistoryMetaData) to the collection in $obj2 (CcTag) + $obj2->addCcPlayoutHistoryMetaData($obj1); + + } // if joined row is not null + + $results[] = $obj1; + } + $stmt->closeCursor(); + return $results; + } + + + /** + * Selects a collection of CcPlayoutHistoryMetaData objects pre-filled with all related objects except CcTag. + * + * @param Criteria $criteria + * @param PropelPDO $con + * @param String $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN + * @return array Array of CcPlayoutHistoryMetaData objects. + * @throws PropelException Any exceptions caught during processing will be + * rethrown wrapped into a PropelException. + */ + public static function doSelectJoinAllExceptCcTag(Criteria $criteria, $con = null, $join_behavior = Criteria::LEFT_JOIN) + { + $criteria = clone $criteria; + + // Set the correct dbName if it has not been overridden + // $criteria->getDbName() will return the same object if not set to another value + // so == check is okay and faster + if ($criteria->getDbName() == Propel::getDefaultDB()) { + $criteria->setDbName(self::DATABASE_NAME); + } + + CcPlayoutHistoryMetaDataPeer::addSelectColumns($criteria); + $startcol2 = (CcPlayoutHistoryMetaDataPeer::NUM_COLUMNS - CcPlayoutHistoryMetaDataPeer::NUM_LAZY_LOAD_COLUMNS); + + CcPlayoutHistoryPeer::addSelectColumns($criteria); + $startcol3 = $startcol2 + (CcPlayoutHistoryPeer::NUM_COLUMNS - CcPlayoutHistoryPeer::NUM_LAZY_LOAD_COLUMNS); + + $criteria->addJoin(CcPlayoutHistoryMetaDataPeer::HISTORY_ID, CcPlayoutHistoryPeer::ID, $join_behavior); + + + $stmt = BasePeer::doSelect($criteria, $con); + $results = array(); + + while ($row = $stmt->fetch(PDO::FETCH_NUM)) { + $key1 = CcPlayoutHistoryMetaDataPeer::getPrimaryKeyHashFromRow($row, 0); + if (null !== ($obj1 = CcPlayoutHistoryMetaDataPeer::getInstanceFromPool($key1))) { + // We no longer rehydrate the object, since this can cause data loss. + // See http://www.propelorm.org/ticket/509 + // $obj1->hydrate($row, 0, true); // rehydrate + } else { + $cls = CcPlayoutHistoryMetaDataPeer::getOMClass(false); + + $obj1 = new $cls(); + $obj1->hydrate($row); + CcPlayoutHistoryMetaDataPeer::addInstanceToPool($obj1, $key1); + } // if obj1 already loaded + + // Add objects for joined CcPlayoutHistory rows + + $key2 = CcPlayoutHistoryPeer::getPrimaryKeyHashFromRow($row, $startcol2); + if ($key2 !== null) { + $obj2 = CcPlayoutHistoryPeer::getInstanceFromPool($key2); + if (!$obj2) { + + $cls = CcPlayoutHistoryPeer::getOMClass(false); + + $obj2 = new $cls(); + $obj2->hydrate($row, $startcol2); + CcPlayoutHistoryPeer::addInstanceToPool($obj2, $key2); + } // if $obj2 already loaded + + // Add the $obj1 (CcPlayoutHistoryMetaData) to the collection in $obj2 (CcPlayoutHistory) + $obj2->addCcPlayoutHistoryMetaData($obj1); + + } // if joined row is not null + $results[] = $obj1; } $stmt->closeCursor(); diff --git a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaDataQuery.php b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaDataQuery.php index 7a27c61af..b418a8b36 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaDataQuery.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryMetaDataQuery.php @@ -8,11 +8,13 @@ * * @method CcPlayoutHistoryMetaDataQuery orderByDbId($order = Criteria::ASC) Order by the id column * @method CcPlayoutHistoryMetaDataQuery orderByDbHistoryId($order = Criteria::ASC) Order by the history_id column + * @method CcPlayoutHistoryMetaDataQuery orderByDbTagId($order = Criteria::ASC) Order by the tag_id column * @method CcPlayoutHistoryMetaDataQuery orderByDbKey($order = Criteria::ASC) Order by the key column * @method CcPlayoutHistoryMetaDataQuery orderByDbValue($order = Criteria::ASC) Order by the value column * * @method CcPlayoutHistoryMetaDataQuery groupByDbId() Group by the id column * @method CcPlayoutHistoryMetaDataQuery groupByDbHistoryId() Group by the history_id column + * @method CcPlayoutHistoryMetaDataQuery groupByDbTagId() Group by the tag_id column * @method CcPlayoutHistoryMetaDataQuery groupByDbKey() Group by the key column * @method CcPlayoutHistoryMetaDataQuery groupByDbValue() Group by the value column * @@ -24,16 +26,22 @@ * @method CcPlayoutHistoryMetaDataQuery rightJoinCcPlayoutHistory($relationAlias = '') Adds a RIGHT JOIN clause to the query using the CcPlayoutHistory relation * @method CcPlayoutHistoryMetaDataQuery innerJoinCcPlayoutHistory($relationAlias = '') Adds a INNER JOIN clause to the query using the CcPlayoutHistory relation * + * @method CcPlayoutHistoryMetaDataQuery leftJoinCcTag($relationAlias = '') Adds a LEFT JOIN clause to the query using the CcTag relation + * @method CcPlayoutHistoryMetaDataQuery rightJoinCcTag($relationAlias = '') Adds a RIGHT JOIN clause to the query using the CcTag relation + * @method CcPlayoutHistoryMetaDataQuery innerJoinCcTag($relationAlias = '') Adds a INNER JOIN clause to the query using the CcTag relation + * * @method CcPlayoutHistoryMetaData findOne(PropelPDO $con = null) Return the first CcPlayoutHistoryMetaData matching the query * @method CcPlayoutHistoryMetaData findOneOrCreate(PropelPDO $con = null) Return the first CcPlayoutHistoryMetaData matching the query, or a new CcPlayoutHistoryMetaData object populated from the query conditions when no match is found * * @method CcPlayoutHistoryMetaData findOneByDbId(int $id) Return the first CcPlayoutHistoryMetaData filtered by the id column * @method CcPlayoutHistoryMetaData findOneByDbHistoryId(int $history_id) Return the first CcPlayoutHistoryMetaData filtered by the history_id column + * @method CcPlayoutHistoryMetaData findOneByDbTagId(int $tag_id) Return the first CcPlayoutHistoryMetaData filtered by the tag_id column * @method CcPlayoutHistoryMetaData findOneByDbKey(string $key) Return the first CcPlayoutHistoryMetaData filtered by the key column * @method CcPlayoutHistoryMetaData findOneByDbValue(string $value) Return the first CcPlayoutHistoryMetaData filtered by the value column * * @method array findByDbId(int $id) Return CcPlayoutHistoryMetaData objects filtered by the id column * @method array findByDbHistoryId(int $history_id) Return CcPlayoutHistoryMetaData objects filtered by the history_id column + * @method array findByDbTagId(int $tag_id) Return CcPlayoutHistoryMetaData objects filtered by the tag_id column * @method array findByDbKey(string $key) Return CcPlayoutHistoryMetaData objects filtered by the key column * @method array findByDbValue(string $value) Return CcPlayoutHistoryMetaData objects filtered by the value column * @@ -193,6 +201,37 @@ abstract class BaseCcPlayoutHistoryMetaDataQuery extends ModelCriteria return $this->addUsingAlias(CcPlayoutHistoryMetaDataPeer::HISTORY_ID, $dbHistoryId, $comparison); } + /** + * Filter the query on the tag_id column + * + * @param int|array $dbTagId The value to use as filter. + * Accepts an associative array('min' => $minValue, 'max' => $maxValue) + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return CcPlayoutHistoryMetaDataQuery The current query, for fluid interface + */ + public function filterByDbTagId($dbTagId = null, $comparison = null) + { + if (is_array($dbTagId)) { + $useMinMax = false; + if (isset($dbTagId['min'])) { + $this->addUsingAlias(CcPlayoutHistoryMetaDataPeer::TAG_ID, $dbTagId['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($dbTagId['max'])) { + $this->addUsingAlias(CcPlayoutHistoryMetaDataPeer::TAG_ID, $dbTagId['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + return $this->addUsingAlias(CcPlayoutHistoryMetaDataPeer::TAG_ID, $dbTagId, $comparison); + } + /** * Filter the query on the key column * @@ -301,6 +340,70 @@ abstract class BaseCcPlayoutHistoryMetaDataQuery extends ModelCriteria ->useQuery($relationAlias ? $relationAlias : 'CcPlayoutHistory', 'CcPlayoutHistoryQuery'); } + /** + * Filter the query by a related CcTag object + * + * @param CcTag $ccTag the related object to use as filter + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return CcPlayoutHistoryMetaDataQuery The current query, for fluid interface + */ + public function filterByCcTag($ccTag, $comparison = null) + { + return $this + ->addUsingAlias(CcPlayoutHistoryMetaDataPeer::TAG_ID, $ccTag->getDbId(), $comparison); + } + + /** + * Adds a JOIN clause to the query using the CcTag relation + * + * @param string $relationAlias optional alias for the relation + * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' + * + * @return CcPlayoutHistoryMetaDataQuery The current query, for fluid interface + */ + public function joinCcTag($relationAlias = '', $joinType = Criteria::INNER_JOIN) + { + $tableMap = $this->getTableMap(); + $relationMap = $tableMap->getRelation('CcTag'); + + // create a ModelJoin object for this join + $join = new ModelJoin(); + $join->setJoinType($joinType); + $join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias); + if ($previousJoin = $this->getPreviousJoin()) { + $join->setPreviousJoin($previousJoin); + } + + // add the ModelJoin to the current object + if($relationAlias) { + $this->addAlias($relationAlias, $relationMap->getRightTable()->getName()); + $this->addJoinObject($join, $relationAlias); + } else { + $this->addJoinObject($join, 'CcTag'); + } + + return $this; + } + + /** + * Use the CcTag relation CcTag object + * + * @see useQuery() + * + * @param string $relationAlias optional alias for the relation, + * to be used as main alias in the secondary query + * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' + * + * @return CcTagQuery A secondary query class using the current class as primary query + */ + public function useCcTagQuery($relationAlias = '', $joinType = Criteria::INNER_JOIN) + { + return $this + ->joinCcTag($relationAlias, $joinType) + ->useQuery($relationAlias ? $relationAlias : 'CcTag', 'CcTagQuery'); + } + /** * Exclude object from result * diff --git a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTag.php b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTag.php index 5a7808729..40cf15fd4 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTag.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTag.php @@ -42,6 +42,12 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe */ protected $tag_id; + /** + * The value for the position field. + * @var int + */ + protected $position; + /** * @var CcPlayoutHistoryTemplate */ @@ -96,6 +102,16 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe return $this->tag_id; } + /** + * Get the [position] column value. + * + * @return int + */ + public function getDbTagPosition() + { + return $this->position; + } + /** * Set the value of [id] column. * @@ -164,6 +180,26 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe return $this; } // setDbTagId() + /** + * Set the value of [position] column. + * + * @param int $v new value + * @return CcPlayoutHistoryTemplateTag The current object (for fluent API support) + */ + public function setDbTagPosition($v) + { + if ($v !== null) { + $v = (int) $v; + } + + if ($this->position !== $v) { + $this->position = $v; + $this->modifiedColumns[] = CcPlayoutHistoryTemplateTagPeer::POSITION; + } + + return $this; + } // setDbTagPosition() + /** * Indicates whether the columns in this object are only set to default values. * @@ -199,6 +235,7 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe $this->id = ($row[$startcol + 0] !== null) ? (int) $row[$startcol + 0] : null; $this->template_id = ($row[$startcol + 1] !== null) ? (int) $row[$startcol + 1] : null; $this->tag_id = ($row[$startcol + 2] !== null) ? (int) $row[$startcol + 2] : null; + $this->position = ($row[$startcol + 3] !== null) ? (int) $row[$startcol + 3] : null; $this->resetModified(); $this->setNew(false); @@ -207,7 +244,7 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe $this->ensureConsistency(); } - return $startcol + 3; // 3 = CcPlayoutHistoryTemplateTagPeer::NUM_COLUMNS - CcPlayoutHistoryTemplateTagPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 4; // 4 = CcPlayoutHistoryTemplateTagPeer::NUM_COLUMNS - CcPlayoutHistoryTemplateTagPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating CcPlayoutHistoryTemplateTag object", $e); @@ -560,6 +597,9 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe case 2: return $this->getDbTagId(); break; + case 3: + return $this->getDbTagPosition(); + break; default: return null; break; @@ -587,6 +627,7 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe $keys[0] => $this->getDbId(), $keys[1] => $this->getDbTemplateId(), $keys[2] => $this->getDbTagId(), + $keys[3] => $this->getDbTagPosition(), ); if ($includeForeignObjects) { if (null !== $this->aCcPlayoutHistoryTemplate) { @@ -635,6 +676,9 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe case 2: $this->setDbTagId($value); break; + case 3: + $this->setDbTagPosition($value); + break; } // switch() } @@ -662,6 +706,7 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe if (array_key_exists($keys[0], $arr)) $this->setDbId($arr[$keys[0]]); if (array_key_exists($keys[1], $arr)) $this->setDbTemplateId($arr[$keys[1]]); if (array_key_exists($keys[2], $arr)) $this->setDbTagId($arr[$keys[2]]); + if (array_key_exists($keys[3], $arr)) $this->setDbTagPosition($arr[$keys[3]]); } /** @@ -676,6 +721,7 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe if ($this->isColumnModified(CcPlayoutHistoryTemplateTagPeer::ID)) $criteria->add(CcPlayoutHistoryTemplateTagPeer::ID, $this->id); if ($this->isColumnModified(CcPlayoutHistoryTemplateTagPeer::TEMPLATE_ID)) $criteria->add(CcPlayoutHistoryTemplateTagPeer::TEMPLATE_ID, $this->template_id); if ($this->isColumnModified(CcPlayoutHistoryTemplateTagPeer::TAG_ID)) $criteria->add(CcPlayoutHistoryTemplateTagPeer::TAG_ID, $this->tag_id); + if ($this->isColumnModified(CcPlayoutHistoryTemplateTagPeer::POSITION)) $criteria->add(CcPlayoutHistoryTemplateTagPeer::POSITION, $this->position); return $criteria; } @@ -739,6 +785,7 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe { $copyObj->setDbTemplateId($this->template_id); $copyObj->setDbTagId($this->tag_id); + $copyObj->setDbTagPosition($this->position); $copyObj->setNew(true); $copyObj->setDbId(NULL); // this is a auto-increment column, so set to default value @@ -888,6 +935,7 @@ abstract class BaseCcPlayoutHistoryTemplateTag extends BaseObject implements Pe $this->id = null; $this->template_id = null; $this->tag_id = null; + $this->position = null; $this->alreadyInSave = false; $this->alreadyInValidation = false; $this->clearAllReferences(); diff --git a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTagPeer.php b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTagPeer.php index 76e232d4a..922f55183 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTagPeer.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTagPeer.php @@ -26,7 +26,7 @@ abstract class BaseCcPlayoutHistoryTemplateTagPeer { const TM_CLASS = 'CcPlayoutHistoryTemplateTagTableMap'; /** The total number of columns. */ - const NUM_COLUMNS = 3; + const NUM_COLUMNS = 4; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -40,6 +40,9 @@ abstract class BaseCcPlayoutHistoryTemplateTagPeer { /** the column name for the TAG_ID field */ const TAG_ID = 'cc_playout_history_template_tag.TAG_ID'; + /** the column name for the POSITION field */ + const POSITION = 'cc_playout_history_template_tag.POSITION'; + /** * An identiy map to hold any loaded instances of CcPlayoutHistoryTemplateTag objects. * This must be public so that other peer classes can access this when hydrating from JOIN @@ -56,12 +59,12 @@ abstract class BaseCcPlayoutHistoryTemplateTagPeer { * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('DbId', 'DbTemplateId', 'DbTagId', ), - BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbTemplateId', 'dbTagId', ), - BasePeer::TYPE_COLNAME => array (self::ID, self::TEMPLATE_ID, self::TAG_ID, ), - BasePeer::TYPE_RAW_COLNAME => array ('ID', 'TEMPLATE_ID', 'TAG_ID', ), - BasePeer::TYPE_FIELDNAME => array ('id', 'template_id', 'tag_id', ), - BasePeer::TYPE_NUM => array (0, 1, 2, ) + BasePeer::TYPE_PHPNAME => array ('DbId', 'DbTemplateId', 'DbTagId', 'DbTagPosition', ), + BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbTemplateId', 'dbTagId', 'dbTagPosition', ), + BasePeer::TYPE_COLNAME => array (self::ID, self::TEMPLATE_ID, self::TAG_ID, self::POSITION, ), + BasePeer::TYPE_RAW_COLNAME => array ('ID', 'TEMPLATE_ID', 'TAG_ID', 'POSITION', ), + BasePeer::TYPE_FIELDNAME => array ('id', 'template_id', 'tag_id', 'position', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, ) ); /** @@ -71,12 +74,12 @@ abstract class BaseCcPlayoutHistoryTemplateTagPeer { * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbTemplateId' => 1, 'DbTagId' => 2, ), - BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbTemplateId' => 1, 'dbTagId' => 2, ), - BasePeer::TYPE_COLNAME => array (self::ID => 0, self::TEMPLATE_ID => 1, self::TAG_ID => 2, ), - BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'TEMPLATE_ID' => 1, 'TAG_ID' => 2, ), - BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'template_id' => 1, 'tag_id' => 2, ), - BasePeer::TYPE_NUM => array (0, 1, 2, ) + BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbTemplateId' => 1, 'DbTagId' => 2, 'DbTagPosition' => 3, ), + BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbTemplateId' => 1, 'dbTagId' => 2, 'dbTagPosition' => 3, ), + BasePeer::TYPE_COLNAME => array (self::ID => 0, self::TEMPLATE_ID => 1, self::TAG_ID => 2, self::POSITION => 3, ), + BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'TEMPLATE_ID' => 1, 'TAG_ID' => 2, 'POSITION' => 3, ), + BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'template_id' => 1, 'tag_id' => 2, 'position' => 3, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, ) ); /** @@ -151,10 +154,12 @@ abstract class BaseCcPlayoutHistoryTemplateTagPeer { $criteria->addSelectColumn(CcPlayoutHistoryTemplateTagPeer::ID); $criteria->addSelectColumn(CcPlayoutHistoryTemplateTagPeer::TEMPLATE_ID); $criteria->addSelectColumn(CcPlayoutHistoryTemplateTagPeer::TAG_ID); + $criteria->addSelectColumn(CcPlayoutHistoryTemplateTagPeer::POSITION); } else { $criteria->addSelectColumn($alias . '.ID'); $criteria->addSelectColumn($alias . '.TEMPLATE_ID'); $criteria->addSelectColumn($alias . '.TAG_ID'); + $criteria->addSelectColumn($alias . '.POSITION'); } } diff --git a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTagQuery.php b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTagQuery.php index 24ef4a191..0dec085ab 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTagQuery.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcPlayoutHistoryTemplateTagQuery.php @@ -9,10 +9,12 @@ * @method CcPlayoutHistoryTemplateTagQuery orderByDbId($order = Criteria::ASC) Order by the id column * @method CcPlayoutHistoryTemplateTagQuery orderByDbTemplateId($order = Criteria::ASC) Order by the template_id column * @method CcPlayoutHistoryTemplateTagQuery orderByDbTagId($order = Criteria::ASC) Order by the tag_id column + * @method CcPlayoutHistoryTemplateTagQuery orderByDbTagPosition($order = Criteria::ASC) Order by the position column * * @method CcPlayoutHistoryTemplateTagQuery groupByDbId() Group by the id column * @method CcPlayoutHistoryTemplateTagQuery groupByDbTemplateId() Group by the template_id column * @method CcPlayoutHistoryTemplateTagQuery groupByDbTagId() Group by the tag_id column + * @method CcPlayoutHistoryTemplateTagQuery groupByDbTagPosition() Group by the position column * * @method CcPlayoutHistoryTemplateTagQuery leftJoin($relation) Adds a LEFT JOIN clause to the query * @method CcPlayoutHistoryTemplateTagQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query @@ -32,10 +34,12 @@ * @method CcPlayoutHistoryTemplateTag findOneByDbId(int $id) Return the first CcPlayoutHistoryTemplateTag filtered by the id column * @method CcPlayoutHistoryTemplateTag findOneByDbTemplateId(int $template_id) Return the first CcPlayoutHistoryTemplateTag filtered by the template_id column * @method CcPlayoutHistoryTemplateTag findOneByDbTagId(int $tag_id) Return the first CcPlayoutHistoryTemplateTag filtered by the tag_id column + * @method CcPlayoutHistoryTemplateTag findOneByDbTagPosition(int $position) Return the first CcPlayoutHistoryTemplateTag filtered by the position column * * @method array findByDbId(int $id) Return CcPlayoutHistoryTemplateTag objects filtered by the id column * @method array findByDbTemplateId(int $template_id) Return CcPlayoutHistoryTemplateTag objects filtered by the template_id column * @method array findByDbTagId(int $tag_id) Return CcPlayoutHistoryTemplateTag objects filtered by the tag_id column + * @method array findByDbTagPosition(int $position) Return CcPlayoutHistoryTemplateTag objects filtered by the position column * * @package propel.generator.airtime.om */ @@ -224,6 +228,37 @@ abstract class BaseCcPlayoutHistoryTemplateTagQuery extends ModelCriteria return $this->addUsingAlias(CcPlayoutHistoryTemplateTagPeer::TAG_ID, $dbTagId, $comparison); } + /** + * Filter the query on the position column + * + * @param int|array $dbTagPosition The value to use as filter. + * Accepts an associative array('min' => $minValue, 'max' => $maxValue) + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return CcPlayoutHistoryTemplateTagQuery The current query, for fluid interface + */ + public function filterByDbTagPosition($dbTagPosition = null, $comparison = null) + { + if (is_array($dbTagPosition)) { + $useMinMax = false; + if (isset($dbTagPosition['min'])) { + $this->addUsingAlias(CcPlayoutHistoryTemplateTagPeer::POSITION, $dbTagPosition['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($dbTagPosition['max'])) { + $this->addUsingAlias(CcPlayoutHistoryTemplateTagPeer::POSITION, $dbTagPosition['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + return $this->addUsingAlias(CcPlayoutHistoryTemplateTagPeer::POSITION, $dbTagPosition, $comparison); + } + /** * Filter the query by a related CcPlayoutHistoryTemplate object * diff --git a/airtime_mvc/application/models/airtime/om/BaseCcTag.php b/airtime_mvc/application/models/airtime/om/BaseCcTag.php index c071c8972..af656868b 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcTag.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcTag.php @@ -36,11 +36,23 @@ abstract class BaseCcTag extends BaseObject implements Persistent */ protected $tag_name; + /** + * The value for the tag_type field. + * Note: this column has a database default value of: 'boolean' + * @var string + */ + protected $tag_type; + /** * @var array CcFileTag[] Collection to store aggregation of CcFileTag objects. */ protected $collCcFileTags; + /** + * @var array CcPlayoutHistoryMetaData[] Collection to store aggregation of CcPlayoutHistoryMetaData objects. + */ + protected $collCcPlayoutHistoryMetaDatas; + /** * @var array CcPlayoutHistoryTemplateTag[] Collection to store aggregation of CcPlayoutHistoryTemplateTag objects. */ @@ -60,6 +72,27 @@ abstract class BaseCcTag extends BaseObject implements Persistent */ protected $alreadyInValidation = false; + /** + * Applies default values to this object. + * This method should be called from the object's constructor (or + * equivalent initialization method). + * @see __construct() + */ + public function applyDefaultValues() + { + $this->tag_type = 'boolean'; + } + + /** + * Initializes internal state of BaseCcTag object. + * @see applyDefaults() + */ + public function __construct() + { + parent::__construct(); + $this->applyDefaultValues(); + } + /** * Get the [id] column value. * @@ -80,6 +113,16 @@ abstract class BaseCcTag extends BaseObject implements Persistent return $this->tag_name; } + /** + * Get the [tag_type] column value. + * + * @return string + */ + public function getDbTagType() + { + return $this->tag_type; + } + /** * Set the value of [id] column. * @@ -120,6 +163,26 @@ abstract class BaseCcTag extends BaseObject implements Persistent return $this; } // setDbTagName() + /** + * Set the value of [tag_type] column. + * + * @param string $v new value + * @return CcTag The current object (for fluent API support) + */ + public function setDbTagType($v) + { + if ($v !== null) { + $v = (string) $v; + } + + if ($this->tag_type !== $v || $this->isNew()) { + $this->tag_type = $v; + $this->modifiedColumns[] = CcTagPeer::TAG_TYPE; + } + + return $this; + } // setDbTagType() + /** * Indicates whether the columns in this object are only set to default values. * @@ -130,6 +193,10 @@ abstract class BaseCcTag extends BaseObject implements Persistent */ public function hasOnlyDefaultValues() { + if ($this->tag_type !== 'boolean') { + return false; + } + // otherwise, everything was equal, so return TRUE return true; } // hasOnlyDefaultValues() @@ -154,6 +221,7 @@ abstract class BaseCcTag extends BaseObject implements Persistent $this->id = ($row[$startcol + 0] !== null) ? (int) $row[$startcol + 0] : null; $this->tag_name = ($row[$startcol + 1] !== null) ? (string) $row[$startcol + 1] : null; + $this->tag_type = ($row[$startcol + 2] !== null) ? (string) $row[$startcol + 2] : null; $this->resetModified(); $this->setNew(false); @@ -162,7 +230,7 @@ abstract class BaseCcTag extends BaseObject implements Persistent $this->ensureConsistency(); } - return $startcol + 2; // 2 = CcTagPeer::NUM_COLUMNS - CcTagPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 3; // 3 = CcTagPeer::NUM_COLUMNS - CcTagPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating CcTag object", $e); @@ -226,6 +294,8 @@ abstract class BaseCcTag extends BaseObject implements Persistent $this->collCcFileTags = null; + $this->collCcPlayoutHistoryMetaDatas = null; + $this->collCcPlayoutHistoryTemplateTags = null; } // if (deep) @@ -369,6 +439,14 @@ abstract class BaseCcTag extends BaseObject implements Persistent } } + if ($this->collCcPlayoutHistoryMetaDatas !== null) { + foreach ($this->collCcPlayoutHistoryMetaDatas as $referrerFK) { + if (!$referrerFK->isDeleted()) { + $affectedRows += $referrerFK->save($con); + } + } + } + if ($this->collCcPlayoutHistoryTemplateTags !== null) { foreach ($this->collCcPlayoutHistoryTemplateTags as $referrerFK) { if (!$referrerFK->isDeleted()) { @@ -456,6 +534,14 @@ abstract class BaseCcTag extends BaseObject implements Persistent } } + if ($this->collCcPlayoutHistoryMetaDatas !== null) { + foreach ($this->collCcPlayoutHistoryMetaDatas as $referrerFK) { + if (!$referrerFK->validate($columns)) { + $failureMap = array_merge($failureMap, $referrerFK->getValidationFailures()); + } + } + } + if ($this->collCcPlayoutHistoryTemplateTags !== null) { foreach ($this->collCcPlayoutHistoryTemplateTags as $referrerFK) { if (!$referrerFK->validate($columns)) { @@ -503,6 +589,9 @@ abstract class BaseCcTag extends BaseObject implements Persistent case 1: return $this->getDbTagName(); break; + case 2: + return $this->getDbTagType(); + break; default: return null; break; @@ -528,6 +617,7 @@ abstract class BaseCcTag extends BaseObject implements Persistent $result = array( $keys[0] => $this->getDbId(), $keys[1] => $this->getDbTagName(), + $keys[2] => $this->getDbTagType(), ); return $result; } @@ -565,6 +655,9 @@ abstract class BaseCcTag extends BaseObject implements Persistent case 1: $this->setDbTagName($value); break; + case 2: + $this->setDbTagType($value); + break; } // switch() } @@ -591,6 +684,7 @@ abstract class BaseCcTag extends BaseObject implements Persistent if (array_key_exists($keys[0], $arr)) $this->setDbId($arr[$keys[0]]); if (array_key_exists($keys[1], $arr)) $this->setDbTagName($arr[$keys[1]]); + if (array_key_exists($keys[2], $arr)) $this->setDbTagType($arr[$keys[2]]); } /** @@ -604,6 +698,7 @@ abstract class BaseCcTag extends BaseObject implements Persistent if ($this->isColumnModified(CcTagPeer::ID)) $criteria->add(CcTagPeer::ID, $this->id); if ($this->isColumnModified(CcTagPeer::TAG_NAME)) $criteria->add(CcTagPeer::TAG_NAME, $this->tag_name); + if ($this->isColumnModified(CcTagPeer::TAG_TYPE)) $criteria->add(CcTagPeer::TAG_TYPE, $this->tag_type); return $criteria; } @@ -666,6 +761,7 @@ abstract class BaseCcTag extends BaseObject implements Persistent public function copyInto($copyObj, $deepCopy = false) { $copyObj->setDbTagName($this->tag_name); + $copyObj->setDbTagType($this->tag_type); if ($deepCopy) { // important: temporarily setNew(false) because this affects the behavior of @@ -678,6 +774,12 @@ abstract class BaseCcTag extends BaseObject implements Persistent } } + foreach ($this->getCcPlayoutHistoryMetaDatas() as $relObj) { + if ($relObj !== $this) { // ensure that we don't try to copy a reference to ourselves + $copyObj->addCcPlayoutHistoryMetaData($relObj->copy($deepCopy)); + } + } + foreach ($this->getCcPlayoutHistoryTemplateTags() as $relObj) { if ($relObj !== $this) { // ensure that we don't try to copy a reference to ourselves $copyObj->addCcPlayoutHistoryTemplateTag($relObj->copy($deepCopy)); @@ -863,6 +965,140 @@ abstract class BaseCcTag extends BaseObject implements Persistent return $this->getCcFileTags($query, $con); } + /** + * Clears out the collCcPlayoutHistoryMetaDatas collection + * + * This does not modify the database; however, it will remove any associated objects, causing + * them to be refetched by subsequent calls to accessor method. + * + * @return void + * @see addCcPlayoutHistoryMetaDatas() + */ + public function clearCcPlayoutHistoryMetaDatas() + { + $this->collCcPlayoutHistoryMetaDatas = null; // important to set this to NULL since that means it is uninitialized + } + + /** + * Initializes the collCcPlayoutHistoryMetaDatas collection. + * + * By default this just sets the collCcPlayoutHistoryMetaDatas collection to an empty array (like clearcollCcPlayoutHistoryMetaDatas()); + * however, you may wish to override this method in your stub class to provide setting appropriate + * to your application -- for example, setting the initial array to the values stored in database. + * + * @return void + */ + public function initCcPlayoutHistoryMetaDatas() + { + $this->collCcPlayoutHistoryMetaDatas = new PropelObjectCollection(); + $this->collCcPlayoutHistoryMetaDatas->setModel('CcPlayoutHistoryMetaData'); + } + + /** + * Gets an array of CcPlayoutHistoryMetaData objects which contain a foreign key that references this object. + * + * If the $criteria is not null, it is used to always fetch the results from the database. + * Otherwise the results are fetched from the database the first time, then cached. + * Next time the same method is called without $criteria, the cached collection is returned. + * If this CcTag is new, it will return + * an empty collection or the current collection; the criteria is ignored on a new object. + * + * @param Criteria $criteria optional Criteria object to narrow the query + * @param PropelPDO $con optional connection object + * @return PropelCollection|array CcPlayoutHistoryMetaData[] List of CcPlayoutHistoryMetaData objects + * @throws PropelException + */ + public function getCcPlayoutHistoryMetaDatas($criteria = null, PropelPDO $con = null) + { + if(null === $this->collCcPlayoutHistoryMetaDatas || null !== $criteria) { + if ($this->isNew() && null === $this->collCcPlayoutHistoryMetaDatas) { + // return empty collection + $this->initCcPlayoutHistoryMetaDatas(); + } else { + $collCcPlayoutHistoryMetaDatas = CcPlayoutHistoryMetaDataQuery::create(null, $criteria) + ->filterByCcTag($this) + ->find($con); + if (null !== $criteria) { + return $collCcPlayoutHistoryMetaDatas; + } + $this->collCcPlayoutHistoryMetaDatas = $collCcPlayoutHistoryMetaDatas; + } + } + return $this->collCcPlayoutHistoryMetaDatas; + } + + /** + * Returns the number of related CcPlayoutHistoryMetaData objects. + * + * @param Criteria $criteria + * @param boolean $distinct + * @param PropelPDO $con + * @return int Count of related CcPlayoutHistoryMetaData objects. + * @throws PropelException + */ + public function countCcPlayoutHistoryMetaDatas(Criteria $criteria = null, $distinct = false, PropelPDO $con = null) + { + if(null === $this->collCcPlayoutHistoryMetaDatas || null !== $criteria) { + if ($this->isNew() && null === $this->collCcPlayoutHistoryMetaDatas) { + return 0; + } else { + $query = CcPlayoutHistoryMetaDataQuery::create(null, $criteria); + if($distinct) { + $query->distinct(); + } + return $query + ->filterByCcTag($this) + ->count($con); + } + } else { + return count($this->collCcPlayoutHistoryMetaDatas); + } + } + + /** + * Method called to associate a CcPlayoutHistoryMetaData object to this object + * through the CcPlayoutHistoryMetaData foreign key attribute. + * + * @param CcPlayoutHistoryMetaData $l CcPlayoutHistoryMetaData + * @return void + * @throws PropelException + */ + public function addCcPlayoutHistoryMetaData(CcPlayoutHistoryMetaData $l) + { + if ($this->collCcPlayoutHistoryMetaDatas === null) { + $this->initCcPlayoutHistoryMetaDatas(); + } + if (!$this->collCcPlayoutHistoryMetaDatas->contains($l)) { // only add it if the **same** object is not already associated + $this->collCcPlayoutHistoryMetaDatas[]= $l; + $l->setCcTag($this); + } + } + + + /** + * If this collection has already been initialized with + * an identical criteria, it returns the collection. + * Otherwise if this CcTag is new, it will return + * an empty collection; or if this CcTag has previously + * been saved, it will retrieve related CcPlayoutHistoryMetaDatas from storage. + * + * This method is protected by default in order to keep the public + * api reasonable. You can provide public methods for those you + * actually need in CcTag. + * + * @param Criteria $criteria optional Criteria object to narrow the query + * @param PropelPDO $con optional connection object + * @param string $join_behavior optional join type to use (defaults to Criteria::LEFT_JOIN) + * @return PropelCollection|array CcPlayoutHistoryMetaData[] List of CcPlayoutHistoryMetaData objects + */ + public function getCcPlayoutHistoryMetaDatasJoinCcPlayoutHistory($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN) + { + $query = CcPlayoutHistoryMetaDataQuery::create(null, $criteria); + $query->joinWith('CcPlayoutHistory', $join_behavior); + + return $this->getCcPlayoutHistoryMetaDatas($query, $con); + } + /** * Clears out the collCcPlayoutHistoryTemplateTags collection * @@ -1004,9 +1240,11 @@ abstract class BaseCcTag extends BaseObject implements Persistent { $this->id = null; $this->tag_name = null; + $this->tag_type = null; $this->alreadyInSave = false; $this->alreadyInValidation = false; $this->clearAllReferences(); + $this->applyDefaultValues(); $this->resetModified(); $this->setNew(true); $this->setDeleted(false); @@ -1029,6 +1267,11 @@ abstract class BaseCcTag extends BaseObject implements Persistent $o->clearAllReferences($deep); } } + if ($this->collCcPlayoutHistoryMetaDatas) { + foreach ((array) $this->collCcPlayoutHistoryMetaDatas as $o) { + $o->clearAllReferences($deep); + } + } if ($this->collCcPlayoutHistoryTemplateTags) { foreach ((array) $this->collCcPlayoutHistoryTemplateTags as $o) { $o->clearAllReferences($deep); @@ -1037,6 +1280,7 @@ abstract class BaseCcTag extends BaseObject implements Persistent } // if ($deep) $this->collCcFileTags = null; + $this->collCcPlayoutHistoryMetaDatas = null; $this->collCcPlayoutHistoryTemplateTags = null; } diff --git a/airtime_mvc/application/models/airtime/om/BaseCcTagPeer.php b/airtime_mvc/application/models/airtime/om/BaseCcTagPeer.php index 486f0ea42..6a68b6ede 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcTagPeer.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcTagPeer.php @@ -26,7 +26,7 @@ abstract class BaseCcTagPeer { const TM_CLASS = 'CcTagTableMap'; /** The total number of columns. */ - const NUM_COLUMNS = 2; + const NUM_COLUMNS = 3; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -37,6 +37,9 @@ abstract class BaseCcTagPeer { /** the column name for the TAG_NAME field */ const TAG_NAME = 'cc_tag.TAG_NAME'; + /** the column name for the TAG_TYPE field */ + const TAG_TYPE = 'cc_tag.TAG_TYPE'; + /** * An identiy map to hold any loaded instances of CcTag objects. * This must be public so that other peer classes can access this when hydrating from JOIN @@ -53,12 +56,12 @@ abstract class BaseCcTagPeer { * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('DbId', 'DbTagName', ), - BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbTagName', ), - BasePeer::TYPE_COLNAME => array (self::ID, self::TAG_NAME, ), - BasePeer::TYPE_RAW_COLNAME => array ('ID', 'TAG_NAME', ), - BasePeer::TYPE_FIELDNAME => array ('id', 'tag_name', ), - BasePeer::TYPE_NUM => array (0, 1, ) + BasePeer::TYPE_PHPNAME => array ('DbId', 'DbTagName', 'DbTagType', ), + BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbTagName', 'dbTagType', ), + BasePeer::TYPE_COLNAME => array (self::ID, self::TAG_NAME, self::TAG_TYPE, ), + BasePeer::TYPE_RAW_COLNAME => array ('ID', 'TAG_NAME', 'TAG_TYPE', ), + BasePeer::TYPE_FIELDNAME => array ('id', 'tag_name', 'tag_type', ), + BasePeer::TYPE_NUM => array (0, 1, 2, ) ); /** @@ -68,12 +71,12 @@ abstract class BaseCcTagPeer { * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbTagName' => 1, ), - BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbTagName' => 1, ), - BasePeer::TYPE_COLNAME => array (self::ID => 0, self::TAG_NAME => 1, ), - BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'TAG_NAME' => 1, ), - BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'tag_name' => 1, ), - BasePeer::TYPE_NUM => array (0, 1, ) + BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbTagName' => 1, 'DbTagType' => 2, ), + BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbTagName' => 1, 'dbTagType' => 2, ), + BasePeer::TYPE_COLNAME => array (self::ID => 0, self::TAG_NAME => 1, self::TAG_TYPE => 2, ), + BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'TAG_NAME' => 1, 'TAG_TYPE' => 2, ), + BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'tag_name' => 1, 'tag_type' => 2, ), + BasePeer::TYPE_NUM => array (0, 1, 2, ) ); /** @@ -147,9 +150,11 @@ abstract class BaseCcTagPeer { if (null === $alias) { $criteria->addSelectColumn(CcTagPeer::ID); $criteria->addSelectColumn(CcTagPeer::TAG_NAME); + $criteria->addSelectColumn(CcTagPeer::TAG_TYPE); } else { $criteria->addSelectColumn($alias . '.ID'); $criteria->addSelectColumn($alias . '.TAG_NAME'); + $criteria->addSelectColumn($alias . '.TAG_TYPE'); } } @@ -346,6 +351,9 @@ abstract class BaseCcTagPeer { // Invalidate objects in CcFileTagPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. CcFileTagPeer::clearInstancePool(); + // Invalidate objects in CcPlayoutHistoryMetaDataPeer instance pool, + // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. + CcPlayoutHistoryMetaDataPeer::clearInstancePool(); // Invalidate objects in CcPlayoutHistoryTemplateTagPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. CcPlayoutHistoryTemplateTagPeer::clearInstancePool(); diff --git a/airtime_mvc/application/models/airtime/om/BaseCcTagQuery.php b/airtime_mvc/application/models/airtime/om/BaseCcTagQuery.php index f5dd5f9a3..c90d8cb09 100644 --- a/airtime_mvc/application/models/airtime/om/BaseCcTagQuery.php +++ b/airtime_mvc/application/models/airtime/om/BaseCcTagQuery.php @@ -8,9 +8,11 @@ * * @method CcTagQuery orderByDbId($order = Criteria::ASC) Order by the id column * @method CcTagQuery orderByDbTagName($order = Criteria::ASC) Order by the tag_name column + * @method CcTagQuery orderByDbTagType($order = Criteria::ASC) Order by the tag_type column * * @method CcTagQuery groupByDbId() Group by the id column * @method CcTagQuery groupByDbTagName() Group by the tag_name column + * @method CcTagQuery groupByDbTagType() Group by the tag_type column * * @method CcTagQuery leftJoin($relation) Adds a LEFT JOIN clause to the query * @method CcTagQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query @@ -20,6 +22,10 @@ * @method CcTagQuery rightJoinCcFileTag($relationAlias = '') Adds a RIGHT JOIN clause to the query using the CcFileTag relation * @method CcTagQuery innerJoinCcFileTag($relationAlias = '') Adds a INNER JOIN clause to the query using the CcFileTag relation * + * @method CcTagQuery leftJoinCcPlayoutHistoryMetaData($relationAlias = '') Adds a LEFT JOIN clause to the query using the CcPlayoutHistoryMetaData relation + * @method CcTagQuery rightJoinCcPlayoutHistoryMetaData($relationAlias = '') Adds a RIGHT JOIN clause to the query using the CcPlayoutHistoryMetaData relation + * @method CcTagQuery innerJoinCcPlayoutHistoryMetaData($relationAlias = '') Adds a INNER JOIN clause to the query using the CcPlayoutHistoryMetaData relation + * * @method CcTagQuery leftJoinCcPlayoutHistoryTemplateTag($relationAlias = '') Adds a LEFT JOIN clause to the query using the CcPlayoutHistoryTemplateTag relation * @method CcTagQuery rightJoinCcPlayoutHistoryTemplateTag($relationAlias = '') Adds a RIGHT JOIN clause to the query using the CcPlayoutHistoryTemplateTag relation * @method CcTagQuery innerJoinCcPlayoutHistoryTemplateTag($relationAlias = '') Adds a INNER JOIN clause to the query using the CcPlayoutHistoryTemplateTag relation @@ -29,9 +35,11 @@ * * @method CcTag findOneByDbId(int $id) Return the first CcTag filtered by the id column * @method CcTag findOneByDbTagName(string $tag_name) Return the first CcTag filtered by the tag_name column + * @method CcTag findOneByDbTagType(string $tag_type) Return the first CcTag filtered by the tag_type column * * @method array findByDbId(int $id) Return CcTag objects filtered by the id column * @method array findByDbTagName(string $tag_name) Return CcTag objects filtered by the tag_name column + * @method array findByDbTagType(string $tag_type) Return CcTag objects filtered by the tag_type column * * @package propel.generator.airtime.om */ @@ -180,6 +188,28 @@ abstract class BaseCcTagQuery extends ModelCriteria return $this->addUsingAlias(CcTagPeer::TAG_NAME, $dbTagName, $comparison); } + /** + * Filter the query on the tag_type column + * + * @param string $dbTagType 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 CcTagQuery The current query, for fluid interface + */ + public function filterByDbTagType($dbTagType = null, $comparison = null) + { + if (null === $comparison) { + if (is_array($dbTagType)) { + $comparison = Criteria::IN; + } elseif (preg_match('/[\%\*]/', $dbTagType)) { + $dbTagType = str_replace('*', '%', $dbTagType); + $comparison = Criteria::LIKE; + } + } + return $this->addUsingAlias(CcTagPeer::TAG_TYPE, $dbTagType, $comparison); + } + /** * Filter the query by a related CcFileTag object * @@ -244,6 +274,70 @@ abstract class BaseCcTagQuery extends ModelCriteria ->useQuery($relationAlias ? $relationAlias : 'CcFileTag', 'CcFileTagQuery'); } + /** + * Filter the query by a related CcPlayoutHistoryMetaData object + * + * @param CcPlayoutHistoryMetaData $ccPlayoutHistoryMetaData the related object to use as filter + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return CcTagQuery The current query, for fluid interface + */ + public function filterByCcPlayoutHistoryMetaData($ccPlayoutHistoryMetaData, $comparison = null) + { + return $this + ->addUsingAlias(CcTagPeer::ID, $ccPlayoutHistoryMetaData->getDbTagId(), $comparison); + } + + /** + * Adds a JOIN clause to the query using the CcPlayoutHistoryMetaData relation + * + * @param string $relationAlias optional alias for the relation + * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' + * + * @return CcTagQuery The current query, for fluid interface + */ + public function joinCcPlayoutHistoryMetaData($relationAlias = '', $joinType = Criteria::INNER_JOIN) + { + $tableMap = $this->getTableMap(); + $relationMap = $tableMap->getRelation('CcPlayoutHistoryMetaData'); + + // create a ModelJoin object for this join + $join = new ModelJoin(); + $join->setJoinType($joinType); + $join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias); + if ($previousJoin = $this->getPreviousJoin()) { + $join->setPreviousJoin($previousJoin); + } + + // add the ModelJoin to the current object + if($relationAlias) { + $this->addAlias($relationAlias, $relationMap->getRightTable()->getName()); + $this->addJoinObject($join, $relationAlias); + } else { + $this->addJoinObject($join, 'CcPlayoutHistoryMetaData'); + } + + return $this; + } + + /** + * Use the CcPlayoutHistoryMetaData relation CcPlayoutHistoryMetaData object + * + * @see useQuery() + * + * @param string $relationAlias optional alias for the relation, + * to be used as main alias in the secondary query + * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' + * + * @return CcPlayoutHistoryMetaDataQuery A secondary query class using the current class as primary query + */ + public function useCcPlayoutHistoryMetaDataQuery($relationAlias = '', $joinType = Criteria::INNER_JOIN) + { + return $this + ->joinCcPlayoutHistoryMetaData($relationAlias, $joinType) + ->useQuery($relationAlias ? $relationAlias : 'CcPlayoutHistoryMetaData', 'CcPlayoutHistoryMetaDataQuery'); + } + /** * Filter the query by a related CcPlayoutHistoryTemplateTag object * diff --git a/airtime_mvc/application/services/HistoryService.php b/airtime_mvc/application/services/HistoryService.php index 48d32ae6a..103a73049 100644 --- a/airtime_mvc/application/services/HistoryService.php +++ b/airtime_mvc/application/services/HistoryService.php @@ -131,6 +131,7 @@ class Application_Service_HistoryService $history->setDbStarts($item->getDbStarts(null)); $history->setDbEnds($item->getDbEnds(null)); + /* foreach ($metadata as $key => $val) { $meta = new CcPlayoutHistoryMetaData(); $meta->setDbKey($key); @@ -138,6 +139,7 @@ class Application_Service_HistoryService $history->addCcPlayoutHistoryMetaData($meta); } + */ $history->save($this->con); } @@ -151,8 +153,20 @@ class Application_Service_HistoryService } /* id is an id in cc_playout_history */ - public function makeHistoryItemForm($id) { - + public function makeHistoryItemForm() { + + try { + $form = new Application_Form_EditHistoryItem(); + $template = $this->getItemTemplate(); + + $form->createFromTemplate($template); + + return $form; + } + catch (Exception $e) { + Logging::info($e); + throw $e; + } } /* id is an id in cc_files */ @@ -176,16 +190,51 @@ class Application_Service_HistoryService } catch (Exception $e) { Logging::info($e); + throw $e; } } - public function createPlayedItem() { + public function createPlayedItem($data) { + try { + $form = $this->makeHistoryItemForm(); + + $json = $form->processAjax($data); + Logging::info($json); + + if ($form->isValid($data)) { + $values = $form->getElementsAndSubFormsOrdered(); + Logging::info("created list item"); + Logging::info($values); + } + + return $json; + } + catch (Exception $e) { + Logging::info($e); + } } /* id is an id in cc_playout_history */ public function editPlayedItem($id) { + try { + $form = $this->makeHistoryItemForm(); + + $json = $form->processAjax($data); + Logging::info($json); + + if ($form->isValid($data)) { + $values = $form->getElementsAndSubFormsOrdered(); + Logging::info("edited list item"); + Logging::info($values); + } + + return $json; + } + catch (Exception $e) { + Logging::info($e); + } } /* id is an id in cc_files */ @@ -213,5 +262,37 @@ class Application_Service_HistoryService return $json; } + + + //---------------- Following code is for History Templates --------------------------// + + + private function defaultItemTemplate() { + + $fields = array(); + + //array index is the position of the item in the history template table. + $fields[] = array("name" => "start", "type" => TEMPLATE_DATETIME, "isFileMd" => false); + $fields[] = array("name" => "end", "type" => TEMPLATE_DATETIME, "isFileMd" => false); + $fields[] = array("name" => MDATA_KEY_TITLE, "type" => TEMPLATE_STRING, "isFileMd" => true); //these fields can be populated from an associated file. + $fields[] = array("name" => MDATA_KEY_CREATOR, "type" => TEMPLATE_STRING, "isFileMd" => true); + + return $fields; + } + + private function getItemTemplate() { + + $template_id = Application_Model_Preference::GetHistoryItemTemplate(); + + if (is_numeric($template_id)) { + Logging::info("template id is: $template_id"); + } + else { + Logging::info("Using default template"); + $template = $this->defaultItemTemplate(); + } + + return $template; + } } \ No newline at end of file diff --git a/airtime_mvc/application/views/scripts/form/edit-history-item.phtml b/airtime_mvc/application/views/scripts/form/edit-history-item.phtml index e69de29bb..886790693 100644 --- a/airtime_mvc/application/views/scripts/form/edit-history-item.phtml +++ b/airtime_mvc/application/views/scripts/form/edit-history-item.phtml @@ -0,0 +1,3 @@ +
+ form; ?> +
\ No newline at end of file diff --git a/airtime_mvc/application/views/scripts/playouthistory/index.phtml b/airtime_mvc/application/views/scripts/playouthistory/index.phtml index 7d2fb43f3..86da61578 100644 --- a/airtime_mvc/application/views/scripts/playouthistory/index.phtml +++ b/airtime_mvc/application/views/scripts/playouthistory/index.phtml @@ -1,17 +1,16 @@
date_form; ?> -
    -
  • -
  • +
  • +
-
+
-
+
diff --git a/airtime_mvc/build/schema.xml b/airtime_mvc/build/schema.xml index 12261e16a..37b274cd9 100644 --- a/airtime_mvc/build/schema.xml +++ b/airtime_mvc/build/schema.xml @@ -482,6 +482,7 @@ +
@@ -490,7 +491,7 @@ - +
@@ -506,11 +507,15 @@ + + + +
@@ -520,6 +525,7 @@ + diff --git a/airtime_mvc/build/sql/schema.sql b/airtime_mvc/build/sql/schema.sql index bbc885877..f77e3cd98 100644 --- a/airtime_mvc/build/sql/schema.sql +++ b/airtime_mvc/build/sql/schema.sql @@ -764,6 +764,7 @@ CREATE TABLE "cc_tag" ( "id" serial NOT NULL, "tag_name" VARCHAR(128) NOT NULL, + "tag_type" VARCHAR(128) default 'boolean' NOT NULL, PRIMARY KEY ("id") ); @@ -821,6 +822,7 @@ CREATE TABLE "cc_playout_history_metadata" ( "id" serial NOT NULL, "history_id" INTEGER NOT NULL, + "tag_id" INTEGER NOT NULL, "key" VARCHAR(128) NOT NULL, "value" VARCHAR(128) NOT NULL, PRIMARY KEY ("id") @@ -860,6 +862,7 @@ CREATE TABLE "cc_playout_history_template_tag" "id" serial NOT NULL, "template_id" INTEGER NOT NULL, "tag_id" INTEGER NOT NULL, + "position" INTEGER NOT NULL, PRIMARY KEY ("id") ); @@ -925,12 +928,14 @@ ALTER TABLE "cc_listener_count" ADD CONSTRAINT "cc_mount_name_inst_fkey" FOREIGN ALTER TABLE "cc_file_tag" ADD CONSTRAINT "cc_file_tag_file_fkey" FOREIGN KEY ("file_id") REFERENCES "cc_files" ("id") ON DELETE CASCADE; -ALTER TABLE "cc_file_tag" ADD CONSTRAINT "c_file_tag_tag_fkey" FOREIGN KEY ("tag_id") REFERENCES "cc_tag" ("id") ON DELETE CASCADE; +ALTER TABLE "cc_file_tag" ADD CONSTRAINT "cc_file_tag_tag_fkey" FOREIGN KEY ("tag_id") REFERENCES "cc_tag" ("id") ON DELETE CASCADE; ALTER TABLE "cc_playout_history" ADD CONSTRAINT "cc_playout_history_file_tag_fkey" FOREIGN KEY ("file_id") REFERENCES "cc_files" ("id") ON DELETE CASCADE; ALTER TABLE "cc_playout_history_metadata" ADD CONSTRAINT "cc_playout_history_metadata_entry_fkey" FOREIGN KEY ("history_id") REFERENCES "cc_playout_history" ("id") ON DELETE CASCADE; +ALTER TABLE "cc_playout_history_metadata" ADD CONSTRAINT "c_playout_metadata_tag_fkey" FOREIGN KEY ("tag_id") REFERENCES "cc_tag" ("id") ON DELETE CASCADE; + ALTER TABLE "cc_playout_history_template_tag" ADD CONSTRAINT "cc_playout_history_template_template_fkey" FOREIGN KEY ("template_id") REFERENCES "cc_playout_history_template" ("id") ON DELETE CASCADE; ALTER TABLE "cc_playout_history_template_tag" ADD CONSTRAINT "cc_playout_history_template_tag_fkey" FOREIGN KEY ("tag_id") REFERENCES "cc_tag" ("id") ON DELETE CASCADE; diff --git a/airtime_mvc/public/js/airtime/playouthistory/historytable.js b/airtime_mvc/public/js/airtime/playouthistory/historytable.js index 24ffe2a72..9a7b8e248 100644 --- a/airtime_mvc/public/js/airtime/playouthistory/historytable.js +++ b/airtime_mvc/public/js/airtime/playouthistory/historytable.js @@ -295,6 +295,30 @@ var AIRTIME = (function(AIRTIME) { }); + $('body').on("click", ".his_item_save", function(e) { + + e.preventDefault(); + + var $form = $(this).parents("form"); + var data = $form.serializeArray(); + + var url = baseUrl+"Playouthistory/update-list-item/format/json"; + + $.post(url, data, function(json) { + + //TODO put errors on form. + if (json.data !== "true") { + //makeHistoryDialog(json.dialog); + } + else { + removeHistoryDialog(); + oTable.fnDraw(); + } + + }, "json"); + + }); + $historyContentDiv.find("#his_submit").click(function(ev){ var fn, oRange;