diff --git a/airtime_mvc/application/common/DateHelper.php b/airtime_mvc/application/common/DateHelper.php index d1764c28a..fc9d72b7d 100644 --- a/airtime_mvc/application/common/DateHelper.php +++ b/airtime_mvc/application/common/DateHelper.php @@ -121,26 +121,6 @@ class Application_Common_DateHelper $this->_dateTime = $dateTime->getTimestamp(); } - /** - * Calculate and return the timestamp for end of day today - * in local time. - * - * For example, if local time is 2PM on 2011-11-01, - * then the function would return 2011-11-02 00:00:00 - * - * @return End of day timestamp in local timezone - */ - public static function GetDayEndTimestamp($time = "") { - $dateTime = $time == "" ? new DateTime(date("Y-m-d")) : new DateTime($time); - $dateTime->add(new DateInterval('P1D')); - return $dateTime->format('Y-m-d H:i:s'); - } - - public static function GetDayEndTimestampInUtc($time = "") { - $dayEndTimestamp = Application_Common_DateHelper::GetDayEndTimestamp($time); - return Application_Common_DateHelper::ConvertToUtcDateTimeString($dayEndTimestamp); - } - /** * Find the epoch timestamp difference from "now" to the beginning of today. */ @@ -272,26 +252,6 @@ class Application_Common_DateHelper return $dateTime; } - - public static function ConvertToSpecificTimezoneDateTime($p_dateString, $timezone){ - $dateTime = new DateTime($p_dateString, new DateTimeZone("UTC")); - $dateTime->setTimezone(new DateTimeZone($timezone)); - - return $dateTime; - } - - public static function ConvertToLocalDateTime($p_dateString){ - $dateTime = new DateTime($p_dateString, new DateTimeZone("UTC")); - $dateTime->setTimezone(new DateTimeZone(Application_Model_Preference::GetTimezone())); - - return $dateTime; - } - - public static function ConvertToUtcDateTimeString($p_dateString, $p_format="Y-m-d H:i:s"){ - if (is_null($p_dateString) || strlen($p_dateString) == 0) - return $p_dateString; - return self::ConvertToUtcDateTime($p_dateString)->format($p_format); - } /* * Example input: "00:02:32.746562". Output is a DateInterval object diff --git a/airtime_mvc/application/forms/SmartBlockCriteria.php b/airtime_mvc/application/forms/SmartBlockCriteria.php index 52ea8d86d..990d5bde9 100644 --- a/airtime_mvc/application/forms/SmartBlockCriteria.php +++ b/airtime_mvc/application/forms/SmartBlockCriteria.php @@ -127,6 +127,31 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm public function init() { } + + /* + * converts UTC timestamp citeria into user timezone strings. + */ + private function convertTimestamps(&$criteria) + { + $columns = array("utime", "mtime", "lptime"); + + foreach ($columns as $column) { + + if (isset($criteria[$column])) { + + foreach ($criteria[$column] as &$constraint) { + + $constraint['value'] = + Application_Common_DateHelper::UTCStringToUserTimezoneString($constraint['value']); + + if (isset($constraint['extra'])) { + $constraint['extra'] = + Application_Common_DateHelper::UTCStringToUserTimezoneString($constraint['extra']); + } + } + } + } + } public function startForm($p_blockId, $p_isValid = false) { @@ -150,6 +175,9 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $bl = new Application_Model_Block($p_blockId); $storedCrit = $bl->getCriteria(); + + //need to convert criteria to be displayed in the user's timezone if there's some timestamp type. + self::convertTimestamps($storedCrit["crit"]); /* $modRoadMap stores the number of same criteria * Ex: 3 Album titles, and 2 Track titles diff --git a/airtime_mvc/application/models/Block.php b/airtime_mvc/application/models/Block.php index f63d1d861..babef06a5 100644 --- a/airtime_mvc/application/models/Block.php +++ b/airtime_mvc/application/models/Block.php @@ -1197,13 +1197,26 @@ SQL; $critKeys = array_keys($p_criteriaData['criteria']); for ($i = 0; $i < count($critKeys); $i++) { foreach ($p_criteriaData['criteria'][$critKeys[$i]] as $d) { + + $field = $d['sp_criteria_field']; + $value = $d['sp_criteria_value']; + + if ($field == 'utime' || $field == 'mtime' || $field == 'lptime') { + $value = Application_Common_DateHelper::UserTimezoneStringToUTCString($value); + } + $qry = new CcBlockcriteria(); - $qry->setDbCriteria($d['sp_criteria_field']) + $qry->setDbCriteria($field) ->setDbModifier($d['sp_criteria_modifier']) - ->setDbValue($d['sp_criteria_value']) + ->setDbValue($value) ->setDbBlockId($this->id); if (isset($d['sp_criteria_extra'])) { + + if ($field == 'utime' || $field == 'mtime' || $field == 'lptime') { + $d['sp_criteria_extra'] = Application_Common_DateHelper::UserTimezoneStringToUTCString($d['sp_criteria_extra']); + } + $qry->setDbExtra($d['sp_criteria_extra']); } $qry->save(); @@ -1413,28 +1426,18 @@ SQL; foreach ($storedCrit["crit"] as $crit) { $i = 0; foreach ($crit as $criteria) { - //$spCriteriaPhpName = self::$criteria2PeerMap[$criteria['criteria']]; $spCriteria = $criteria['criteria']; $spCriteriaModifier = $criteria['modifier']; $column = CcFilesPeer::getTableMap()->getColumnByPhpName(self::$criteria2PeerMap[$spCriteria]); - // if the column is timestamp, convert it into UTC - if ($column->getType() == PropelColumnTypes::TIMESTAMP) { - $spCriteriaValue = Application_Common_DateHelper::ConvertToUtcDateTimeString($criteria['value']); - /* Check if only a date was supplied and trim - * the time after it is converted to UTC time - */ - if (strlen($criteria['value']) <= 10) { - //extract date only from timestamp in db - $spCriteria = 'date('.$spCriteria.')'; - $spCriteriaValue = substr($spCriteriaValue, 0, 10); - } + //data should already be in UTC, do we have to do anything special here anymore? + if ($column->getType() == PropelColumnTypes::TIMESTAMP) { + + $spCriteriaValue = $criteria['value']; + if (isset($criteria['extra'])) { - $spCriteriaExtra = Application_Common_DateHelper::ConvertToUtcDateTimeString($criteria['extra']); - if (strlen($criteria['extra']) <= 10) { - $spCriteriaExtra = substr($spCriteriaExtra, 0, 10); - } + $spCriteriaExtra = $criteria['extra']; } } elseif ($spCriteria == "bit_rate" || $spCriteria == 'sample_rate') { // multiply 1000 because we store only number value diff --git a/airtime_mvc/application/models/Datatables.php b/airtime_mvc/application/models/Datatables.php index f74d0fecc..53acb440f 100644 --- a/airtime_mvc/application/models/Datatables.php +++ b/airtime_mvc/application/models/Datatables.php @@ -52,8 +52,7 @@ class Application_Model_Datatables } } } - - Logging::info($where); + return $where; } /* diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index 4ede9facb..118ff8846 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -569,7 +569,7 @@ input.input_text.sp_input_text{ } input.input_text.sp_extra_input_text{ - width: 60px !important; + width: 139px !important; } .sp_text_font{