CC-3035 : Should be able to resize a show, have it affect all future instances of the show
added a new resize function to Shows.php, should not use ShowInstance resize method, since you cannot resize just one instance currently.
This commit is contained in:
parent
129feb573b
commit
12172e5ad5
|
@ -110,14 +110,14 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
{
|
{
|
||||||
$deltaDay = $this->_getParam('day');
|
$deltaDay = $this->_getParam('day');
|
||||||
$deltaMin = $this->_getParam('min');
|
$deltaMin = $this->_getParam('min');
|
||||||
$showInstanceId = $this->_getParam('showInstanceId');
|
$showId = $this->_getParam('showId');
|
||||||
|
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
$user = new Application_Model_User($userInfo->id);
|
$user = new Application_Model_User($userInfo->id);
|
||||||
|
|
||||||
if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) {
|
if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) {
|
||||||
try{
|
try{
|
||||||
$show = new Application_Model_ShowInstance($showInstanceId);
|
$show = new Application_Model_Show($showId);
|
||||||
}catch(Exception $e){
|
}catch(Exception $e){
|
||||||
$this->view->show_error = true;
|
$this->view->show_error = true;
|
||||||
return false;
|
return false;
|
||||||
|
@ -296,12 +296,12 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
|
|
||||||
public function getCurrentPlaylistAction()
|
public function getCurrentPlaylistAction()
|
||||||
{
|
{
|
||||||
|
|
||||||
$range = Application_Model_Schedule::GetPlayOrderRange();
|
$range = Application_Model_Schedule::GetPlayOrderRange();
|
||||||
|
|
||||||
/* Convert all UTC times to localtime before sending back to user. */
|
/* Convert all UTC times to localtime before sending back to user. */
|
||||||
if (isset($range["previous"])){
|
if (isset($range["previous"])){
|
||||||
$range["previous"]["starts"] = Application_Model_DateHelper::ConvertToLocalDateTimeString($range["previous"]["starts"]);
|
$range["previous"]["starts"] = Application_Model_DateHelper::ConvertToLocalDateTimeString($range["previous"]["starts"]);
|
||||||
$range["previous"]["ends"] = Application_Model_DateHelper::ConvertToLocalDateTimeString($range["previous"]["ends"]);
|
$range["previous"]["ends"] = Application_Model_DateHelper::ConvertToLocalDateTimeString($range["previous"]["ends"]);
|
||||||
}
|
}
|
||||||
if (isset($range["current"])){
|
if (isset($range["current"])){
|
||||||
|
@ -312,10 +312,10 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
$range["next"]["starts"] = Application_Model_DateHelper::ConvertToLocalDateTimeString($range["next"]["starts"]);
|
$range["next"]["starts"] = Application_Model_DateHelper::ConvertToLocalDateTimeString($range["next"]["starts"]);
|
||||||
$range["next"]["ends"] = Application_Model_DateHelper::ConvertToLocalDateTimeString($range["next"]["ends"]);
|
$range["next"]["ends"] = Application_Model_DateHelper::ConvertToLocalDateTimeString($range["next"]["ends"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
Application_Model_Show::ConvertToLocalTimeZone($range["currentShow"], array("starts", "ends", "start_timestamp", "end_timestamp"));
|
Application_Model_Show::ConvertToLocalTimeZone($range["currentShow"], array("starts", "ends", "start_timestamp", "end_timestamp"));
|
||||||
Application_Model_Show::ConvertToLocalTimeZone($range["nextShow"], array("starts", "ends", "start_timestamp", "end_timestamp"));
|
Application_Model_Show::ConvertToLocalTimeZone($range["nextShow"], array("starts", "ends", "start_timestamp", "end_timestamp"));
|
||||||
|
|
||||||
$this->view->entries = $range;
|
$this->view->entries = $range;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -105,6 +105,35 @@ class Application_Model_Show {
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function resizeShow($deltaDay, $deltaMin)
|
||||||
|
{
|
||||||
|
global $CC_DBC;
|
||||||
|
|
||||||
|
$hours = $deltaMin/60;
|
||||||
|
if($hours > 0)
|
||||||
|
$hours = floor($hours);
|
||||||
|
else
|
||||||
|
$hours = ceil($hours);
|
||||||
|
|
||||||
|
$mins = abs($deltaMin%60);
|
||||||
|
|
||||||
|
//current timesamp in UTC.
|
||||||
|
$current_timestamp = Application_Model_DateHelper::ConvertToUtcDateTime(date("Y-m-d H:i:s"))->format("Y-m-d H:i:s");
|
||||||
|
|
||||||
|
//update all cc_show_instances that are in the future.
|
||||||
|
$sql = "UPDATE cc_show_instances SET ends = (ends + interval '{$deltaDay} days' + interval '{$hours}:{$mins}')
|
||||||
|
WHERE (show_id = {$this->_showId} AND starts > '$current_timestamp');";
|
||||||
|
|
||||||
|
//update cc_show_days so future shows can be created with the new duration.
|
||||||
|
$sql = $sql . " UPDATE cc_show_days SET duration = (CAST(duration AS interval) + interval '{$deltaDay} days' + interval '{$hours}:{$mins}')
|
||||||
|
WHERE show_id = {$this->_showId}";
|
||||||
|
|
||||||
|
//do both the queries at once.
|
||||||
|
$CC_DBC->query($sql);
|
||||||
|
|
||||||
|
Application_Model_RabbitMq::PushSchedule();
|
||||||
|
}
|
||||||
|
|
||||||
public function cancelShow($day_timestamp)
|
public function cancelShow($day_timestamp)
|
||||||
{
|
{
|
||||||
global $CC_DBC;
|
global $CC_DBC;
|
||||||
|
|
|
@ -239,6 +239,11 @@ class Application_Model_ShowInstance {
|
||||||
Application_Model_RabbitMq::PushSchedule();
|
Application_Model_RabbitMq::PushSchedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FUNCTION SHOULD NOT BE CALLED
|
||||||
|
* - we are removing ability to resize just a single show instance
|
||||||
|
* -please use the resize method on the Show.php class.
|
||||||
|
*/
|
||||||
public function resizeShow($deltaDay, $deltaMin)
|
public function resizeShow($deltaDay, $deltaMin)
|
||||||
{
|
{
|
||||||
global $CC_DBC;
|
global $CC_DBC;
|
||||||
|
|
|
@ -319,7 +319,7 @@ function eventResize( event, dayDelta, minuteDelta, revertFunc, jsEvent, ui, vie
|
||||||
url = '/Schedule/resize-show/format/json';
|
url = '/Schedule/resize-show/format/json';
|
||||||
|
|
||||||
$.post(url,
|
$.post(url,
|
||||||
{day: dayDelta, min: minuteDelta, showInstanceId: event.id},
|
{day: dayDelta, min: minuteDelta, showId: event.showId},
|
||||||
function(json){
|
function(json){
|
||||||
if(json.show_error == true){
|
if(json.show_error == true){
|
||||||
alertShowErrorAndReload();
|
alertShowErrorAndReload();
|
||||||
|
|
Loading…
Reference in New Issue