diff --git a/workflow/engine/classes/class.labelsGmail.php b/workflow/engine/classes/class.labelsGmail.php
index 4c07f82fc..d7321233a 100644
--- a/workflow/engine/classes/class.labelsGmail.php
+++ b/workflow/engine/classes/class.labelsGmail.php
@@ -292,6 +292,7 @@ class labelsGmail
public function addRelabelingToQueue($caseId, $index, $actualLastIndex, $unassigned=false)
{
$labelingQueue = new GmailRelabeling();
+ $labelingQueue->setCreateDate(date('Y-m-d H:i:s'));
$labelingQueue->setAppUid($caseId);
$labelingQueue->setDelIndex($index);
$labelingQueue->setCurrentLastIndex($actualLastIndex);
diff --git a/workflow/engine/classes/model/map/GmailRelabelingMapBuilder.php b/workflow/engine/classes/model/map/GmailRelabelingMapBuilder.php
index db6e01849..306ca3d6c 100644
--- a/workflow/engine/classes/model/map/GmailRelabelingMapBuilder.php
+++ b/workflow/engine/classes/model/map/GmailRelabelingMapBuilder.php
@@ -65,9 +65,11 @@ class GmailRelabelingMapBuilder
$tMap->setUseIdGenerator(false);
- $tMap->addPrimaryKey('APP_UID', 'AppUid', 'string', CreoleTypes::VARCHAR, true, 32);
+ $tMap->addColumn('CREATE_DATE', 'CreateDate', 'int', CreoleTypes::TIMESTAMP, false, null);
- $tMap->addPrimaryKey('DEL_INDEX', 'DelIndex', 'int', CreoleTypes::INTEGER, true, null);
+ $tMap->addColumn('APP_UID', 'AppUid', 'string', CreoleTypes::VARCHAR, true, 32);
+
+ $tMap->addColumn('DEL_INDEX', 'DelIndex', 'int', CreoleTypes::INTEGER, true, null);
$tMap->addColumn('CURRENT_LAST_INDEX', 'CurrentLastIndex', 'int', CreoleTypes::INTEGER, true, null);
diff --git a/workflow/engine/classes/model/om/BaseGmailRelabeling.php b/workflow/engine/classes/model/om/BaseGmailRelabeling.php
index ef8ada700..d8b5441b5 100644
--- a/workflow/engine/classes/model/om/BaseGmailRelabeling.php
+++ b/workflow/engine/classes/model/om/BaseGmailRelabeling.php
@@ -27,6 +27,12 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
*/
protected static $peer;
+ /**
+ * The value for the create_date field.
+ * @var int
+ */
+ protected $create_date;
+
/**
* The value for the app_uid field.
* @var string
@@ -77,6 +83,38 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
*/
protected $alreadyInValidation = false;
+ /**
+ * Get the [optionally formatted] [create_date] column value.
+ *
+ * @param string $format The date/time format string (either date()-style or strftime()-style).
+ * If format is NULL, then the integer unix timestamp will be returned.
+ * @return mixed Formatted date/time value as string or integer unix timestamp (if format is NULL).
+ * @throws PropelException - if unable to convert the date/time to timestamp.
+ */
+ public function getCreateDate($format = 'Y-m-d H:i:s')
+ {
+
+ if ($this->create_date === null || $this->create_date === '') {
+ return null;
+ } elseif (!is_int($this->create_date)) {
+ // a non-timestamp value was set externally, so we convert it
+ $ts = strtotime($this->create_date);
+ if ($ts === -1 || $ts === false) {
+ throw new PropelException("Unable to parse value of [create_date] as date/time value: " .
+ var_export($this->create_date, true));
+ }
+ } else {
+ $ts = $this->create_date;
+ }
+ if ($format === null) {
+ return $ts;
+ } elseif (strpos($format, '%') !== false) {
+ return strftime($format, $ts);
+ } else {
+ return date($format, $ts);
+ }
+ }
+
/**
* Get the [app_uid] column value.
*
@@ -143,6 +181,35 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
return $this->msg_error;
}
+ /**
+ * Set the value of [create_date] column.
+ *
+ * @param int $v new value
+ * @return void
+ */
+ public function setCreateDate($v)
+ {
+
+ if ($v !== null && !is_int($v)) {
+ $ts = strtotime($v);
+ //Date/time accepts null values
+ if ($v == '') {
+ $ts = null;
+ }
+ if ($ts === -1 || $ts === false) {
+ throw new PropelException("Unable to parse date/time value for [create_date] from input: " .
+ var_export($v, true));
+ }
+ } else {
+ $ts = $v;
+ }
+ if ($this->create_date !== $ts) {
+ $this->create_date = $ts;
+ $this->modifiedColumns[] = GmailRelabelingPeer::CREATE_DATE;
+ }
+
+ } // setCreateDate()
+
/**
* Set the value of [app_uid] column.
*
@@ -292,24 +359,26 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
{
try {
- $this->app_uid = $rs->getString($startcol + 0);
+ $this->create_date = $rs->getTimestamp($startcol + 0, null);
- $this->del_index = $rs->getInt($startcol + 1);
+ $this->app_uid = $rs->getString($startcol + 1);
- $this->current_last_index = $rs->getInt($startcol + 2);
+ $this->del_index = $rs->getInt($startcol + 2);
- $this->unassigned = $rs->getInt($startcol + 3);
+ $this->current_last_index = $rs->getInt($startcol + 3);
- $this->status = $rs->getString($startcol + 4);
+ $this->unassigned = $rs->getInt($startcol + 4);
- $this->msg_error = $rs->getString($startcol + 5);
+ $this->status = $rs->getString($startcol + 5);
+
+ $this->msg_error = $rs->getString($startcol + 6);
$this->resetModified();
$this->setNew(false);
// FIXME - using NUM_COLUMNS may be clearer.
- return $startcol + 6; // 6 = GmailRelabelingPeer::NUM_COLUMNS - GmailRelabelingPeer::NUM_LAZY_LOAD_COLUMNS).
+ return $startcol + 7; // 7 = GmailRelabelingPeer::NUM_COLUMNS - GmailRelabelingPeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) {
throw new PropelException("Error populating GmailRelabeling object", $e);
@@ -514,21 +583,24 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
{
switch($pos) {
case 0:
- return $this->getAppUid();
+ return $this->getCreateDate();
break;
case 1:
- return $this->getDelIndex();
+ return $this->getAppUid();
break;
case 2:
- return $this->getCurrentLastIndex();
+ return $this->getDelIndex();
break;
case 3:
- return $this->getUnassigned();
+ return $this->getCurrentLastIndex();
break;
case 4:
- return $this->getStatus();
+ return $this->getUnassigned();
break;
case 5:
+ return $this->getStatus();
+ break;
+ case 6:
return $this->getMsgError();
break;
default:
@@ -551,12 +623,13 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
{
$keys = GmailRelabelingPeer::getFieldNames($keyType);
$result = array(
- $keys[0] => $this->getAppUid(),
- $keys[1] => $this->getDelIndex(),
- $keys[2] => $this->getCurrentLastIndex(),
- $keys[3] => $this->getUnassigned(),
- $keys[4] => $this->getStatus(),
- $keys[5] => $this->getMsgError(),
+ $keys[0] => $this->getCreateDate(),
+ $keys[1] => $this->getAppUid(),
+ $keys[2] => $this->getDelIndex(),
+ $keys[3] => $this->getCurrentLastIndex(),
+ $keys[4] => $this->getUnassigned(),
+ $keys[5] => $this->getStatus(),
+ $keys[6] => $this->getMsgError(),
);
return $result;
}
@@ -589,21 +662,24 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
{
switch($pos) {
case 0:
- $this->setAppUid($value);
+ $this->setCreateDate($value);
break;
case 1:
- $this->setDelIndex($value);
+ $this->setAppUid($value);
break;
case 2:
- $this->setCurrentLastIndex($value);
+ $this->setDelIndex($value);
break;
case 3:
- $this->setUnassigned($value);
+ $this->setCurrentLastIndex($value);
break;
case 4:
- $this->setStatus($value);
+ $this->setUnassigned($value);
break;
case 5:
+ $this->setStatus($value);
+ break;
+ case 6:
$this->setMsgError($value);
break;
} // switch()
@@ -630,27 +706,31 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
$keys = GmailRelabelingPeer::getFieldNames($keyType);
if (array_key_exists($keys[0], $arr)) {
- $this->setAppUid($arr[$keys[0]]);
+ $this->setCreateDate($arr[$keys[0]]);
}
if (array_key_exists($keys[1], $arr)) {
- $this->setDelIndex($arr[$keys[1]]);
+ $this->setAppUid($arr[$keys[1]]);
}
if (array_key_exists($keys[2], $arr)) {
- $this->setCurrentLastIndex($arr[$keys[2]]);
+ $this->setDelIndex($arr[$keys[2]]);
}
if (array_key_exists($keys[3], $arr)) {
- $this->setUnassigned($arr[$keys[3]]);
+ $this->setCurrentLastIndex($arr[$keys[3]]);
}
if (array_key_exists($keys[4], $arr)) {
- $this->setStatus($arr[$keys[4]]);
+ $this->setUnassigned($arr[$keys[4]]);
}
if (array_key_exists($keys[5], $arr)) {
- $this->setMsgError($arr[$keys[5]]);
+ $this->setStatus($arr[$keys[5]]);
+ }
+
+ if (array_key_exists($keys[6], $arr)) {
+ $this->setMsgError($arr[$keys[6]]);
}
}
@@ -664,6 +744,10 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
{
$criteria = new Criteria(GmailRelabelingPeer::DATABASE_NAME);
+ if ($this->isColumnModified(GmailRelabelingPeer::CREATE_DATE)) {
+ $criteria->add(GmailRelabelingPeer::CREATE_DATE, $this->create_date);
+ }
+
if ($this->isColumnModified(GmailRelabelingPeer::APP_UID)) {
$criteria->add(GmailRelabelingPeer::APP_UID, $this->app_uid);
}
@@ -704,42 +788,33 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
{
$criteria = new Criteria(GmailRelabelingPeer::DATABASE_NAME);
- $criteria->add(GmailRelabelingPeer::APP_UID, $this->app_uid);
- $criteria->add(GmailRelabelingPeer::DEL_INDEX, $this->del_index);
return $criteria;
}
/**
- * Returns the composite primary key for this object.
- * The array elements will be in same order as specified in XML.
- * @return array
+ * Returns NULL since this table doesn't have a primary key.
+ * This method exists only for BC and is deprecated!
+ * @return null
*/
public function getPrimaryKey()
{
- $pks = array();
-
- $pks[0] = $this->getAppUid();
-
- $pks[1] = $this->getDelIndex();
-
- return $pks;
+ return null;
}
/**
- * Set the [composite] primary key.
+ * Dummy primary key setter.
*
- * @param array $keys The elements of the composite key (order must match the order in XML file).
- * @return void
+ * This function only exists to preserve backwards compatibility. It is no longer
+ * needed or required by the Persistent interface. It will be removed in next BC-breaking
+ * release of Propel.
+ *
+ * @deprecated
*/
- public function setPrimaryKey($keys)
- {
-
- $this->setAppUid($keys[0]);
-
- $this->setDelIndex($keys[1]);
-
- }
+ public function setPrimaryKey($pk)
+ {
+ // do nothing, because this object doesn't have any primary keys
+ }
/**
* Sets contents of passed object to values from current object.
@@ -754,6 +829,12 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
public function copyInto($copyObj, $deepCopy = false)
{
+ $copyObj->setCreateDate($this->create_date);
+
+ $copyObj->setAppUid($this->app_uid);
+
+ $copyObj->setDelIndex($this->del_index);
+
$copyObj->setCurrentLastIndex($this->current_last_index);
$copyObj->setUnassigned($this->unassigned);
@@ -765,10 +846,6 @@ abstract class BaseGmailRelabeling extends BaseObject implements Persistent
$copyObj->setNew(true);
- $copyObj->setAppUid(''); // this is a pkey column, so set to default value
-
- $copyObj->setDelIndex('0'); // this is a pkey column, so set to default value
-
}
/**
diff --git a/workflow/engine/classes/model/om/BaseGmailRelabelingPeer.php b/workflow/engine/classes/model/om/BaseGmailRelabelingPeer.php
index a180c7fbf..e095b1b08 100644
--- a/workflow/engine/classes/model/om/BaseGmailRelabelingPeer.php
+++ b/workflow/engine/classes/model/om/BaseGmailRelabelingPeer.php
@@ -25,12 +25,15 @@ abstract class BaseGmailRelabelingPeer
const CLASS_DEFAULT = 'classes.model.GmailRelabeling';
/** The total number of columns. */
- const NUM_COLUMNS = 6;
+ const NUM_COLUMNS = 7;
/** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0;
+ /** the column name for the CREATE_DATE field */
+ const CREATE_DATE = 'GMAIL_RELABELING.CREATE_DATE';
+
/** the column name for the APP_UID field */
const APP_UID = 'GMAIL_RELABELING.APP_UID';
@@ -60,10 +63,10 @@ abstract class BaseGmailRelabelingPeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
- BasePeer::TYPE_PHPNAME => array ('AppUid', 'DelIndex', 'CurrentLastIndex', 'Unassigned', 'Status', 'MsgError', ),
- BasePeer::TYPE_COLNAME => array (GmailRelabelingPeer::APP_UID, GmailRelabelingPeer::DEL_INDEX, GmailRelabelingPeer::CURRENT_LAST_INDEX, GmailRelabelingPeer::UNASSIGNED, GmailRelabelingPeer::STATUS, GmailRelabelingPeer::MSG_ERROR, ),
- BasePeer::TYPE_FIELDNAME => array ('APP_UID', 'DEL_INDEX', 'CURRENT_LAST_INDEX', 'UNASSIGNED', 'STATUS', 'MSG_ERROR', ),
- BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, )
+ BasePeer::TYPE_PHPNAME => array ('CreateDate', 'AppUid', 'DelIndex', 'CurrentLastIndex', 'Unassigned', 'Status', 'MsgError', ),
+ BasePeer::TYPE_COLNAME => array (GmailRelabelingPeer::CREATE_DATE, GmailRelabelingPeer::APP_UID, GmailRelabelingPeer::DEL_INDEX, GmailRelabelingPeer::CURRENT_LAST_INDEX, GmailRelabelingPeer::UNASSIGNED, GmailRelabelingPeer::STATUS, GmailRelabelingPeer::MSG_ERROR, ),
+ BasePeer::TYPE_FIELDNAME => array ('CREATE_DATE', 'APP_UID', 'DEL_INDEX', 'CURRENT_LAST_INDEX', 'UNASSIGNED', 'STATUS', 'MSG_ERROR', ),
+ BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, )
);
/**
@@ -73,10 +76,10 @@ abstract class BaseGmailRelabelingPeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
- BasePeer::TYPE_PHPNAME => array ('AppUid' => 0, 'DelIndex' => 1, 'CurrentLastIndex' => 2, 'Unassigned' => 3, 'Status' => 4, 'MsgError' => 5, ),
- BasePeer::TYPE_COLNAME => array (GmailRelabelingPeer::APP_UID => 0, GmailRelabelingPeer::DEL_INDEX => 1, GmailRelabelingPeer::CURRENT_LAST_INDEX => 2, GmailRelabelingPeer::UNASSIGNED => 3, GmailRelabelingPeer::STATUS => 4, GmailRelabelingPeer::MSG_ERROR => 5, ),
- BasePeer::TYPE_FIELDNAME => array ('APP_UID' => 0, 'DEL_INDEX' => 1, 'CURRENT_LAST_INDEX' => 2, 'UNASSIGNED' => 3, 'STATUS' => 4, 'MSG_ERROR' => 5, ),
- BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, )
+ BasePeer::TYPE_PHPNAME => array ('CreateDate' => 0, 'AppUid' => 1, 'DelIndex' => 2, 'CurrentLastIndex' => 3, 'Unassigned' => 4, 'Status' => 5, 'MsgError' => 6, ),
+ BasePeer::TYPE_COLNAME => array (GmailRelabelingPeer::CREATE_DATE => 0, GmailRelabelingPeer::APP_UID => 1, GmailRelabelingPeer::DEL_INDEX => 2, GmailRelabelingPeer::CURRENT_LAST_INDEX => 3, GmailRelabelingPeer::UNASSIGNED => 4, GmailRelabelingPeer::STATUS => 5, GmailRelabelingPeer::MSG_ERROR => 6, ),
+ BasePeer::TYPE_FIELDNAME => array ('CREATE_DATE' => 0, 'APP_UID' => 1, 'DEL_INDEX' => 2, 'CURRENT_LAST_INDEX' => 3, 'UNASSIGNED' => 4, 'STATUS' => 5, 'MSG_ERROR' => 6, ),
+ BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, )
);
/**
@@ -177,6 +180,8 @@ abstract class BaseGmailRelabelingPeer
public static function addSelectColumns(Criteria $criteria)
{
+ $criteria->addSelectColumn(GmailRelabelingPeer::CREATE_DATE);
+
$criteria->addSelectColumn(GmailRelabelingPeer::APP_UID);
$criteria->addSelectColumn(GmailRelabelingPeer::DEL_INDEX);
@@ -191,8 +196,8 @@ abstract class BaseGmailRelabelingPeer
}
- const COUNT = 'COUNT(GMAIL_RELABELING.APP_UID)';
- const COUNT_DISTINCT = 'COUNT(DISTINCT GMAIL_RELABELING.APP_UID)';
+ const COUNT = 'COUNT(*)';
+ const COUNT_DISTINCT = 'COUNT(DISTINCT *)';
/**
* Returns the number of rows matching criteria.
@@ -401,12 +406,6 @@ abstract class BaseGmailRelabelingPeer
if ($values instanceof Criteria) {
$criteria = clone $values; // rename for clarity
- $comparison = $criteria->getComparison(GmailRelabelingPeer::APP_UID);
- $selectCriteria->add(GmailRelabelingPeer::APP_UID, $criteria->remove(GmailRelabelingPeer::APP_UID), $comparison);
-
- $comparison = $criteria->getComparison(GmailRelabelingPeer::DEL_INDEX);
- $selectCriteria->add(GmailRelabelingPeer::DEL_INDEX, $criteria->remove(GmailRelabelingPeer::DEL_INDEX), $comparison);
-
} else {
$criteria = $values->buildCriteria(); // gets full criteria
$selectCriteria = $values->buildPkeyCriteria(); // gets criteria w/ primary key(s)
@@ -464,7 +463,7 @@ abstract class BaseGmailRelabelingPeer
$criteria = clone $values; // rename for clarity
} elseif ($values instanceof GmailRelabeling) {
- $criteria = $values->buildPkeyCriteria();
+ $criteria = $values->buildCriteria();
} else {
// it must be the primary key
$criteria = new Criteria(self::DATABASE_NAME);
@@ -478,12 +477,8 @@ abstract class BaseGmailRelabelingPeer
$vals = array();
foreach ($values as $value) {
- $vals[0][] = $value[0];
- $vals[1][] = $value[1];
}
- $criteria->add(GmailRelabelingPeer::APP_UID, $vals[0], Criteria::IN);
- $criteria->add(GmailRelabelingPeer::DEL_INDEX, $vals[1], Criteria::IN);
}
// Set the correct dbName
@@ -541,26 +536,6 @@ abstract class BaseGmailRelabelingPeer
return BasePeer::doValidate(GmailRelabelingPeer::DATABASE_NAME, GmailRelabelingPeer::TABLE_NAME, $columns);
}
-
- /**
- * Retrieve object using using composite pkey values.
- * @param string $app_uid
- * @param int $del_index
- * @param Connection $con
- * @return GmailRelabeling
- */
- public static function retrieveByPK($app_uid, $del_index, $con = null)
- {
- if ($con === null) {
- $con = Propel::getConnection(self::DATABASE_NAME);
- }
- $criteria = new Criteria();
- $criteria->add(GmailRelabelingPeer::APP_UID, $app_uid);
- $criteria->add(GmailRelabelingPeer::DEL_INDEX, $del_index);
- $v = GmailRelabelingPeer::doSelect($criteria, $con);
-
- return !empty($v) ? $v[0] : null;
- }
}
diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml
index d5afc40c6..cb5ce52cc 100755
--- a/workflow/engine/config/schema.xml
+++ b/workflow/engine/config/schema.xml
@@ -5261,8 +5261,9 @@
-
-
+
+
+
diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql
index 9efa03817..d80c0b358 100755
--- a/workflow/engine/data/mysql/schema.sql
+++ b/workflow/engine/data/mysql/schema.sql
@@ -2938,13 +2938,13 @@ CREATE TABLE `NOTIFICATION_DEVICE`
#-----------------------------------------------------------------------------
CREATE TABLE `GMAIL_RELABELING` (
+ `CREATE_DATE` DATETIME NOT NULL DEFAULT '',
`APP_UID` VARCHAR(32) NOT NULL DEFAULT '',
`DEL_INDEX` INT(11) NOT NULL DEFAULT '0',
`CURRENT_LAST_INDEX` INT(11) NOT NULL DEFAULT '0',
`UNASSIGNED` INT(11) NOT NULL DEFAULT '0',
`STATUS` VARCHAR(32) NOT NULL DEFAULT 'pending',
`MSG_ERROR` TEXT NULL,
- PRIMARY KEY (`APP_UID`, `DEL_INDEX`),
KEY `indexStatus` (`STATUS`)
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Task to synchronize Gmail Labels';
# This restores the fkey checks, after having unset them earlier