Fix for bug #2050 - a playlist spanning multiple hours is not properly plotted on the DAY VIEW. This was supposed to be part of the previous commit (changeset:2668).
This commit is contained in:
parent
9c3108e75b
commit
6375212ac9
|
@ -358,34 +358,57 @@ class uiScheduler extends uiCalendar {
|
||||||
$M = number_format(strftime('%i', $start));
|
$M = number_format(strftime('%i', $start));
|
||||||
|
|
||||||
$id = $this->Base->gb->idFromGunid($val['playlistId']);
|
$id = $this->Base->gb->idFromGunid($val['playlistId']);
|
||||||
// item starts today
|
|
||||||
|
$startHour = (int)strftime('%H', $start);
|
||||||
|
$endHour = (int)strftime('%H', $end);
|
||||||
|
$startTime = substr($val['start'], strpos($val['start'], 'T')+1);
|
||||||
|
$endTime = substr($val['end'], strpos($val['end'], 'T') + 1);
|
||||||
|
$title = $this->Base->getMetadataValue($id, UI_MDATA_KEY_TITLE);
|
||||||
|
$creator = $this->Base->getMetadataValue($id, UI_MDATA_KEY_CREATOR);
|
||||||
|
|
||||||
|
// Item starts today
|
||||||
if (strftime('%Y%m%d', $start) === $thisDay) {
|
if (strftime('%Y%m%d', $start) === $thisDay) {
|
||||||
$items[number_format(strftime('%H', $start))]['start'][] = array(
|
$endsToday = (strftime('%d', $start) === strftime('%d', $end)) ? TRUE : FALSE;
|
||||||
'id' => $id,
|
$endsHere = strftime('%H', $start) === strftime('%H', $end) ? TRUE : FALSE;
|
||||||
'scheduleid'=> $val['id'],
|
$items[$startHour]['start'][] =
|
||||||
'start' => substr($val['start'], strpos($val['start'], 'T')+1),
|
array('id' => $id,
|
||||||
'end' => substr($val['end'], strpos($val['end'], 'T') + 1),
|
'scheduleid' => $val['id'],
|
||||||
'title' => $this->Base->getMetadataValue($id, UI_MDATA_KEY_TITLE),
|
'start' => $startTime,
|
||||||
'creator' => $this->Base->getMetadataValue($id, UI_MDATA_KEY_CREATOR),
|
'end' => $endTime,
|
||||||
'type' => 'Playlist',
|
'title' => $title,
|
||||||
'endstoday' => strftime('%d', $start) === strftime('%d', $end) ? TRUE : FALSE,
|
'creator' => $creator,
|
||||||
'endshere' => strftime('%H', $start) === strftime('%H', $end) ? TRUE : FALSE
|
'type' => 'Playlist',
|
||||||
);
|
'endstoday' => $endsToday,
|
||||||
|
'endshere' => $endsHere);
|
||||||
}
|
}
|
||||||
|
|
||||||
// item ends today
|
// Item ends today
|
||||||
if (strftime('%Y%m%d', $end) === $thisDay && strftime('%H', $start) !== strftime('%H', $end)) {
|
if ( (strftime('%Y%m%d', $end) === $thisDay) && ($startHour !== $endHour) ) {
|
||||||
$items[number_format(strftime('%H', $end))]['end'][] =
|
$startsYesterday = (strftime('%d', $start) === strftime('%d', $end)) ? FALSE : TRUE;
|
||||||
array(
|
|
||||||
'id' => $id,
|
$items[$endHour]['end'][] =
|
||||||
'scheduleid'=> $val['id'],
|
array('id' => $id,
|
||||||
'start' => substr($val['start'], strpos($val['start'], 'T')+1),
|
'scheduleid' => $val['id'],
|
||||||
'end' => substr($val['end'], strpos($val['end'], 'T') + 1),
|
'start' => $startTime,
|
||||||
'title' => $this->Base->getMetadataValue($id, UI_MDATA_KEY_TITLE),
|
'end' => $endTime,
|
||||||
'creator' => $this->Base->getMetadataValue($id, UI_MDATA_KEY_CREATOR),
|
'title' => $title,
|
||||||
'type' => 'Playlist',
|
'creator' => $creator,
|
||||||
'startsyesterday' => strftime('%d', $start) === strftime('%d', $end) ? FALSE : TRUE,
|
'type' => 'Playlist',
|
||||||
);
|
'startsyesterday' => $startsYesterday);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the item spans more than one hour
|
||||||
|
if ( ($endHour - $startHour) > 1) {
|
||||||
|
for ($i = $startHour + 1; $i < $endHour; $i++) {
|
||||||
|
$items[$i]['span'][] =
|
||||||
|
array('id' => $id,
|
||||||
|
'scheduleid' => $val['id'],
|
||||||
|
'start' => $startTime,
|
||||||
|
'end' => $endTime,
|
||||||
|
'title' => $title,
|
||||||
|
'creator' => $creator,
|
||||||
|
'type' => 'Playlist');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $items;
|
return $items;
|
||||||
|
@ -932,6 +955,15 @@ class uiScheduler extends uiCalendar {
|
||||||
} // fn removeFromScheduleMethod
|
} // fn removeFromScheduleMethod
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the scheduled items between the $from and $to dates.
|
||||||
|
*
|
||||||
|
* @param string $from
|
||||||
|
* In the format YYYMMDDTHH:MM:SS
|
||||||
|
* @param string $to
|
||||||
|
* In the format YYYMMDDTHH:MM:SS
|
||||||
|
* @return array|false
|
||||||
|
*/
|
||||||
function displayScheduleMethod($from, $to)
|
function displayScheduleMethod($from, $to)
|
||||||
{
|
{
|
||||||
$r = $this->spc->displayScheduleMethod($this->Base->sessid, $from, $to);
|
$r = $this->spc->displayScheduleMethod($this->Base->sessid, $from, $to);
|
||||||
|
|
Loading…
Reference in New Issue