fix shift calendar headers
This commit is contained in:
parent
54f3253c32
commit
ac53559fea
|
@ -37,8 +37,18 @@ function user_shifts() {
|
|||
* The shiftfilter to update.
|
||||
*/
|
||||
function update_ShiftsFilter_timerange(ShiftsFilter $shiftsFilter, $days) {
|
||||
$shiftsFilter->setStartTime(check_request_datetime('start_day', 'start_time', $days, time()));
|
||||
$shiftsFilter->setEndTime(check_request_datetime('end_day', 'end_time', $days, time() + 24 * 60 * 60));
|
||||
$start_time = $shiftsFilter->getStartTime();
|
||||
if ($start_time == null) {
|
||||
$start_time = time();
|
||||
}
|
||||
|
||||
$end_time = $shiftsFilter->getEndTime();
|
||||
if ($end_time == null) {
|
||||
$end_time = $start_time + 24 * 60 * 60;
|
||||
}
|
||||
|
||||
$shiftsFilter->setStartTime(check_request_datetime('start_day', 'start_time', $days, $start_time));
|
||||
$shiftsFilter->setEndTime(check_request_datetime('end_day', 'end_time', $days, $end_time));
|
||||
|
||||
if ($shiftsFilter->getStartTime() > $shiftsFilter->getEndTime()) {
|
||||
$shiftsFilter->setEndTime($shiftsFilter->getStartTime() + 24 * 60 * 60);
|
||||
|
@ -57,18 +67,10 @@ function update_ShiftsFilter_timerange(ShiftsFilter $shiftsFilter, $days) {
|
|||
*/
|
||||
function update_ShiftsFilter(ShiftsFilter $shiftsFilter, $user_shifts_admin, $days) {
|
||||
$shiftsFilter->setUserShiftsAdmin($user_shifts_admin);
|
||||
if (isset($_REQUEST['filled'])) {
|
||||
$shiftsFilter->setFilled(check_request_int_array('filled'));
|
||||
}
|
||||
if (isset($_REQUEST['rooms'])) {
|
||||
$shiftsFilter->setRooms(check_request_int_array('rooms'));
|
||||
}
|
||||
if (isset($_REQUEST['types'])) {
|
||||
$shiftsFilter->setTypes(check_request_int_array('types'));
|
||||
}
|
||||
if ((isset($_REQUEST['start_time']) && isset($_REQUEST['start_day']) && isset($_REQUEST['end_time']) && isset($_REQUEST['end_day'])) || $shiftsFilter->getStartTime() == null || $shiftsFilter->getEndTime() == null) {
|
||||
$shiftsFilter->setFilled(check_request_int_array('filled', $shiftsFilter->getFilled()));
|
||||
$shiftsFilter->setRooms(check_request_int_array('rooms', $shiftsFilter->getRooms()));
|
||||
$shiftsFilter->setTypes(check_request_int_array('types', $shiftsFilter->getTypes()));
|
||||
update_ShiftsFilter_timerange($shiftsFilter, $days);
|
||||
}
|
||||
}
|
||||
|
||||
function load_rooms() {
|
||||
|
|
|
@ -89,12 +89,14 @@ function select_array($data, $key_name, $value_name) {
|
|||
*
|
||||
* @param String $name
|
||||
* Name of the request param
|
||||
* @param array<int> $default
|
||||
* Default return value, if param is not set
|
||||
*/
|
||||
function check_request_int_array($name) {
|
||||
function check_request_int_array($name, $default = []) {
|
||||
if (isset($_REQUEST[$name]) && is_array($_REQUEST[$name])) {
|
||||
return array_filter($_REQUEST[$name], 'is_numeric');
|
||||
}
|
||||
return [];
|
||||
return $default;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -56,12 +56,12 @@ class ShiftCalendarRenderer {
|
|||
|
||||
foreach ($shifts as $shift) {
|
||||
$room_id = $shift['RID'];
|
||||
if (! isset($lanes[$room_id])) {
|
||||
// initialize room with one lane
|
||||
$header = Room_name_render([
|
||||
'RID' => $room_id,
|
||||
'Name' => $shift['room_name']
|
||||
]);
|
||||
if (! isset($lanes[$room_id])) {
|
||||
// initialize room with one lane
|
||||
$lanes[$room_id] = [
|
||||
new ShiftCalendarLane($header, $this->getFirstBlockStartTime(), $this->getBlocksPerSlot())
|
||||
];
|
||||
|
@ -108,6 +108,9 @@ class ShiftCalendarRenderer {
|
|||
* @return the generated html
|
||||
*/
|
||||
public function render() {
|
||||
if (count($this->lanes) == 0) {
|
||||
return '';
|
||||
}
|
||||
return div('shift-calendar', [
|
||||
$this->renderTimeLane(),
|
||||
$this->renderShiftLanes()
|
||||
|
|
Loading…
Reference in New Issue