CC-5076: Calendar -> Context menu -> Remove all content doesn't remove content from linked instances
This commit is contained in:
parent
ff2fde0173
commit
0362f24a4e
|
@ -245,19 +245,14 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
|
|
||||||
public function clearShowAction()
|
public function clearShowAction()
|
||||||
{
|
{
|
||||||
$showInstanceId = $this->_getParam('id');
|
$instanceId = $this->_getParam('id');
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
|
||||||
$user = new Application_Model_User($userInfo->id);
|
|
||||||
try {
|
|
||||||
$show = new Application_Model_ShowInstance($showInstanceId);
|
|
||||||
} catch (Exception $e) {
|
|
||||||
$this->view->show_error = true;
|
|
||||||
|
|
||||||
|
$service_scheduler = new Application_Service_SchedulerService();
|
||||||
|
|
||||||
|
if (!$service_scheduler->emptyShowContent($instanceId)) {
|
||||||
|
$this->view->show_error = true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER)) || $user->isHostOfShow($show->getShowId()))
|
|
||||||
$show->clearShow();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCurrentPlaylistAction()
|
public function getCurrentPlaylistAction()
|
||||||
|
|
|
@ -204,4 +204,40 @@ class Application_Service_SchedulerService
|
||||||
} //if at least one linked instance has content
|
} //if at least one linked instance has content
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function emptyShowContent($instanceId)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$ccShowInstance = CcShowInstancesQuery::create()->findPk($instanceId);
|
||||||
|
|
||||||
|
$instances = array();
|
||||||
|
|
||||||
|
if ($ccShowInstance->getCcShow()->isLinked()) {
|
||||||
|
$instanceIds = array();
|
||||||
|
foreach ($ccShowInstance->getCcShow()->getCcShowInstancess() as $instance) {
|
||||||
|
$instanceIds[] = $instance->getDbId();
|
||||||
|
$instances[] = $instance;
|
||||||
|
}
|
||||||
|
CcScheduleQuery::create()
|
||||||
|
->filterByDbInstanceId($instanceIds, Criteria::IN)
|
||||||
|
->delete();
|
||||||
|
} else {
|
||||||
|
$instances[] = $ccShowInstance;
|
||||||
|
CcScheduleQuery::create()
|
||||||
|
->filterByDbInstanceId($ccShowInstance->getDbId())
|
||||||
|
->delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
Application_Model_RabbitMq::PushSchedule();
|
||||||
|
$con = Propel::getConnection(CcShowInstancesPeer::DATABASE_NAME);
|
||||||
|
foreach ($instances as $instance) {
|
||||||
|
$instance->updateDbTimeFilled($con);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
Logging::info($e->getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue