Removed unused function.

Removed commented out code.
Renamed fillNewLinkedInstances to fillLinkedInstances.
Streamline show instance content if a show goes from unlinked to linked.
This commit is contained in:
drigato 2014-08-21 16:40:01 -04:00
parent 11de8bd988
commit 6249deb1ac
4 changed files with 53 additions and 52 deletions

View File

@ -295,24 +295,6 @@ class CcShow extends BaseCcShow {
} }
return $instanceIds; return $instanceIds;
} }
/*
* Returns all show instances ordered by 'starts' column in desc order.
*/
public function getInstanceIdsSortedByMostRecentStartTime()
{
$instances = CcShowInstancesQuery::create()
->filterByCcShow($this)
->filterByDbModifiedInstance(false)
->orderByDbStarts(Criteria::DESC)
->find();
$instanceIdsDescOrder = array();
foreach ($instances as $instance) {
$instanceIdsDescOrder[] = $instance->getDbId();
}
return $instanceIdsDescOrder;
}
//what is this?? //what is this??
public function getOtherInstances($instanceId) public function getOtherInstances($instanceId)

View File

@ -153,46 +153,59 @@ class Application_Service_SchedulerService
/** /**
* *
* Gets a copy of the linked show's schedule from cc_schedule table * Gets a copy of the linked show's schedule from cc_schedule table
* The schedule is taken from the most recent show instance that existed *
* before new show instances were created. * If $instanceId is not null, we use that variable to grab the linked
* show's schedule from cc_schedule table. (This is likely to be the case
* if a user has edited a show and changed it from un-linked to linked, in
* which case we copy the show content from the show instance that was clicked
* on to edit the show in the calendar.) Otherwise the schedule is taken
* from the most recent show instance that existed before new show
* instances were created. (This is likely to be the case when a user edits a
* show and a new repeat show day is added (i.e. mondays), or moves forward in the
* calendar triggering show creation)
* *
* @param integer $showId * @param integer $showId
* @param array $instancsIdsToFill * @param array $instancsIdsToFill
* @param integer $instanceId
*/ */
public static function getLinkedShowSchedule($showId, $instancsIdsToFill) private static function getLinkedShowSchedule($showId, $instancsIdsToFill, $instanceId)
{ {
$showsPopulatedUntil = Application_Model_Preference::GetShowsPopulatedUntil();
$showInstanceWithMostRecentSchedule = CcShowInstancesQuery::create()
->filterByDbShowId($showId)
->filterByDbStarts($showsPopulatedUntil->format("Y-m-d H:i:s"), Criteria::LESS_THAN)
->filterByDbId($instancsIdsToFill, Criteria::NOT_IN)
->orderByDbStarts(Criteria::DESC)
->limit(1)
->findOne();
$con = Propel::getConnection(); $con = Propel::getConnection();
$instanceId = $showInstanceWithMostRecentSchedule->getDbId();
if (is_null($instanceId)) {
$showsPopulatedUntil = Application_Model_Preference::GetShowsPopulatedUntil();
$showInstanceWithMostRecentSchedule = CcShowInstancesQuery::create()
->filterByDbShowId($showId)
->filterByDbStarts($showsPopulatedUntil->format("Y-m-d H:i:s"), Criteria::LESS_THAN)
->filterByDbId($instancsIdsToFill, Criteria::NOT_IN)
->orderByDbStarts(Criteria::DESC)
->limit(1)
->findOne();
$instanceId = $showInstanceWithMostRecentSchedule->getDbId();
}
$linkedShowSchedule_sql = $con->prepare( $linkedShowSchedule_sql = $con->prepare(
"select * from cc_schedule where instance_id = :instance_id ". "select * from cc_schedule where instance_id = :instance_id ".
"order by starts"); "order by starts");
$linkedShowSchedule_sql->bindParam(':instance_id', $instanceId); $linkedShowSchedule_sql->bindParam(':instance_id', $instanceId);
$linkedShowSchedule_sql->execute(); $linkedShowSchedule_sql->execute();
return $linkedShowSchedule_sql->fetchAll(); return $linkedShowSchedule_sql->fetchAll();
} }
/** /**
* *
* This function gets called after new linked show_instances are created. * This function gets called after new linked show_instances are created, or after
* a show has been edited and went from being un-linked to linked.
* It fills the new show instances' schedules. * It fills the new show instances' schedules.
* *
* @param CcShow_type $ccShow * @param CcShow_type $ccShow
* @param array $instanceIdsToFill ids of the new linked cc_show_instances that * @param array $instanceIdsToFill ids of the new linked cc_show_instances that
* were created and now need their schedules filled * need their schedules filled
*/ */
public static function fillNewLinkedInstances($ccShow, $instanceIdsToFill) public static function fillLinkedInstances($ccShow, $instanceIdsToFill, $instanceId=null)
{ {
//TODO can we remove the code until line 216 ?? //TODO can we remove the code until line 216 ??
@ -230,7 +243,7 @@ class Application_Service_SchedulerService
//Get the "template" schedule for the linked show (contents of the linked show) that will be //Get the "template" schedule for the linked show (contents of the linked show) that will be
//copied into to all the new show instances. //copied into to all the new show instances.
$linkedShowSchedule = self::getLinkedShowSchedule($ccShow->getDbId(), $instanceIdsToFill); $linkedShowSchedule = self::getLinkedShowSchedule($ccShow->getDbId(), $instanceIdsToFill, $instanceId);
//get time_filled so we can update cc_show_instances //get time_filled so we can update cc_show_instances
if (!empty($linkedShowSchedule)) { if (!empty($linkedShowSchedule)) {

View File

@ -15,7 +15,6 @@ class Application_Service_ShowService
private $isRebroadcast; private $isRebroadcast;
private $repeatType; private $repeatType;
private $isUpdate; private $isUpdate;
/*private $linkedShowContent;*/
private $oldShowTimezone; private $oldShowTimezone;
private $localShowStartHour; private $localShowStartHour;
private $localShowStartMin; private $localShowStartMin;
@ -199,6 +198,7 @@ class Application_Service_ShowService
$daysAdded = array(); $daysAdded = array();
if ($this->isUpdate) { if ($this->isUpdate) {
if (!$this->ccShow->getCcShowDayss()->isEmpty()) { if (!$this->ccShow->getCcShowDayss()->isEmpty()) {
$this->storeOrigLocalShowInfo(); $this->storeOrigLocalShowInfo();
} }
@ -371,7 +371,7 @@ class Application_Service_ShowService
foreach ($ccShows as $ccShow) { foreach ($ccShows as $ccShow) {
if (($this->isUpdate || $fillInstances) && $ccShow->isLinked()) { if (($this->isUpdate || $fillInstances) && $ccShow->isLinked()) {
Application_Service_SchedulerService::fillNewLinkedInstances( Application_Service_SchedulerService::fillLinkedInstances(
$ccShow, $this->newInstanceIdsCreated[$ccShow->getDbId()]); $ccShow, $this->newInstanceIdsCreated[$ccShow->getDbId()]);
} }
} }
@ -1145,16 +1145,13 @@ SQL;
if ($this->hasInstance($utcStartDateTime)) { if ($this->hasInstance($utcStartDateTime)) {
$ccShowInstance = $this->getInstance($utcStartDateTime); $ccShowInstance = $this->getInstance($utcStartDateTime);
$newInstance = false; $newInstance = false;
//$updateScheduleStatus = true;
} else { } else {
$newInstance = true; $newInstance = true;
$ccShowInstance = new CcShowInstances(); $ccShowInstance = new CcShowInstances();
//$updateScheduleStatus = false;
} }
} else { } else {
$newInstance = true; $newInstance = true;
$ccShowInstance = new CcShowInstances(); $ccShowInstance = new CcShowInstances();
//$updateScheduleStatus = false;
} }
/* When editing the start/end time of a repeating show, we don't want to /* When editing the start/end time of a repeating show, we don't want to
@ -1247,11 +1244,9 @@ SQL;
if ($this->isUpdate && $this->hasInstance($utcStartDateTime)) { if ($this->isUpdate && $this->hasInstance($utcStartDateTime)) {
$ccShowInstance = $this->getInstance($utcStartDateTime); $ccShowInstance = $this->getInstance($utcStartDateTime);
$newInstance = false; $newInstance = false;
//$updateScheduleStatus = true;
} else { } else {
$newInstance = true; $newInstance = true;
$ccShowInstance = new CcShowInstances(); $ccShowInstance = new CcShowInstances();
//$updateScheduleStatus = false;
} }
/* When editing the start/end time of a repeating show, we don't want to /* When editing the start/end time of a repeating show, we don't want to
@ -1520,10 +1515,14 @@ SQL;
$ccShow->setDbLiveStreamUsingCustomAuth($showData['cb_custom_auth'] == 1); $ccShow->setDbLiveStreamUsingCustomAuth($showData['cb_custom_auth'] == 1);
$ccShow->setDbLiveStreamUser($showData['custom_username']); $ccShow->setDbLiveStreamUser($showData['custom_username']);
$ccShow->setDbLiveStreamPass($showData['custom_password']); $ccShow->setDbLiveStreamPass($showData['custom_password']);
// Once a show is unlinked it cannot be linked again //Here a user has edited a show and linked it.
if ($ccShow->getDbLinked() && !$showData["add_show_linked"]) { //We need to grab the existing show instances ids and fill their content
$ccShow->setDbIsLinkable(false); //with the content from the show instance that was clicked on to edit the show.
//We do this because linked show instances need to have the same content in each.
if ($this->isUpdate && (!$ccShow->getDbLinked() && $showData["add_show_linked"])) {
$existingShowInstanceIds = $ccShow->getFutureInstanceIds(new Criteria());
Application_Service_SchedulerService::fillLinkedInstances($ccShow, $existingShowInstanceIds, $showData["add_show_instance_id"]);
} }
$ccShow->setDbLinked($showData["add_show_linked"]); $ccShow->setDbLinked($showData["add_show_linked"]);

View File

@ -273,9 +273,16 @@ function setAddShowEvents(form) {
} }
return false; return false;
} }
if (!$(this).attr("checked") && $("#show-link-warning").length === 0) { //only display the warning message if a show is being edited
$(this).parent().after("<ul id='show-link-warning' class='errors'><li>"+$.i18n._("Warning: Shows cannot be re-linked")+"</li></ul>"); if ($(".button-bar.bottom").find(".ui-button-text").text() === "Update show") {
if ($(this).attr("checked") && $("#show-link-warning").length === 0) {
$(this).parent().after("<ul id='show-link-warning' class='errors'><li>"+$.i18n._("Warning: A copy of the schedule from the show clicked on to edit this show will get copied to every other show in the repeat series.")+"</li></ul>");
}
if (!$(this).attr("checked") && $("#show-link-warning").length !== 0) {
$("#show-link-warning").remove();
}
} }
}); });