From a0af8d4624be9ca8579817d291036a6727aeb574 Mon Sep 17 00:00:00 2001 From: msquare Date: Fri, 28 Jul 2017 19:15:52 +0200 Subject: further switching to db exceptions instead of return false --- includes/view/ShiftCalendarRenderer.php | 82 +++++++++++++++++---------------- 1 file changed, 43 insertions(+), 39 deletions(-) (limited to 'includes/view/ShiftCalendarRenderer.php') diff --git a/includes/view/ShiftCalendarRenderer.php b/includes/view/ShiftCalendarRenderer.php index aad0d643..df24ad3b 100644 --- a/includes/view/ShiftCalendarRenderer.php +++ b/includes/view/ShiftCalendarRenderer.php @@ -1,9 +1,9 @@ $room_id, + 'RID' => $room_id, 'Name' => $shift['room_name'] ]); - if (!isset($lanes[$room_id])) { + if (! isset($lanes[$room_id])) { // initialize room with one lane $lanes[$room_id] = [ new ShiftCalendarLane($header, $this->getFirstBlockStartTime(), $this->getBlocksPerSlot()) @@ -92,25 +93,25 @@ class ShiftCalendarRenderer $shift_added = false; foreach ($lanes[$room_id] as $lane) { /** @var ShiftCalendarLane $lane */ - $shift_added = $lane->addShift($shift); - if ($shift_added == true) { + try { + $lane->addShift($shift); + } catch (Exception $e) { break; } } // If all lanes for this room are busy, create a new lane and add shift to it if ($shift_added == false) { $newLane = new ShiftCalendarLane($header, $this->getFirstBlockStartTime(), $this->getBlocksPerSlot()); - if (!$newLane->addShift($shift)) { - engelsystem_error('Unable to add shift to new lane.'); - } + $newLane->addShift($shift); $lanes[$room_id][] = $newLane; } } - + return $lanes; } /** + * * @return int */ public function getFirstBlockStartTime() @@ -119,6 +120,7 @@ class ShiftCalendarRenderer } /** + * * @return int */ public function getLastBlockEndTime() @@ -127,6 +129,7 @@ class ShiftCalendarRenderer } /** + * * @return float */ public function getBlocksPerSlot() @@ -148,9 +151,9 @@ class ShiftCalendarRenderer return ''; } return div('shift-calendar', [ - $this->renderTimeLane(), - $this->renderShiftLanes() - ]) . $this->renderLegend(); + $this->renderTimeLane(), + $this->renderShiftLanes() + ]) . $this->renderLegend(); } /** @@ -166,45 +169,41 @@ class ShiftCalendarRenderer $html .= $this->renderLane($lane); } } - + return $html; } /** * Renders a single lane * - * @param ShiftCalendarLane $lane The lane to render + * @param ShiftCalendarLane $lane + * The lane to render * @return string */ private function renderLane(ShiftCalendarLane $lane) { global $user; - + $shift_renderer = new ShiftCalendarShiftRenderer(); $html = ''; $rendered_until = $this->getFirstBlockStartTime(); - + foreach ($lane->getShifts() as $shift) { while ($rendered_until + ShiftCalendarRenderer::SECONDS_PER_ROW <= $shift['start']) { $html .= $this->renderTick($rendered_until); $rendered_until += ShiftCalendarRenderer::SECONDS_PER_ROW; } - - list($shift_height, $shift_html) = $shift_renderer->render( - $shift, - $this->needed_angeltypes[$shift['SID']], - $this->shift_entries[$shift['SID']], - $user - ); + + list ($shift_height, $shift_html) = $shift_renderer->render($shift, $this->needed_angeltypes[$shift['SID']], $this->shift_entries[$shift['SID']], $user); $html .= $shift_html; $rendered_until += $shift_height * ShiftCalendarRenderer::SECONDS_PER_ROW; } - + while ($rendered_until < $this->getLastBlockEndTime()) { $html .= $this->renderTick($rendered_until); $rendered_until += ShiftCalendarRenderer::SECONDS_PER_ROW; } - + return div('lane', [ div('header', $lane->getHeader()), $html @@ -214,21 +213,23 @@ class ShiftCalendarRenderer /** * Renders a tick/block for given time * - * @param int $time unix timestamp - * @param boolean $label Should time labels be generated? + * @param int $time + * unix timestamp + * @param boolean $label + * Should time labels be generated? * @return string rendered tick html */ private function renderTick($time, $label = false) { if ($time % (24 * 60 * 60) == 23 * 60 * 60) { - if (!$label) { + if (! $label) { return div('tick day'); } return div('tick day', [ date('m-dH:i', $time) ]); } elseif ($time % (60 * 60) == 0) { - if (!$label) { + if (! $label) { return div('tick hour'); } return div('tick hour', [ @@ -250,7 +251,7 @@ class ShiftCalendarRenderer _('Time') ]) ]; - for ($block = 0; $block < $this->getBlocksPerSlot(); $block++) { + for ($block = 0; $block < $this->getBlocksPerSlot(); $block ++) { $thistime = $this->getFirstBlockStartTime() + ($block * ShiftCalendarRenderer::SECONDS_PER_ROW); $time_slot[] = $this->renderTick($thistime, true); } @@ -258,7 +259,8 @@ class ShiftCalendarRenderer } /** - * @param array[] $shifts + * + * @param array[] $shifts * @return int */ private function calcFirstBlockStartTime($shifts) @@ -273,7 +275,8 @@ class ShiftCalendarRenderer } /** - * @param array[] $shifts + * + * @param array[] $shifts * @return int */ private function calcLastBlockEndTime($shifts) @@ -288,6 +291,7 @@ class ShiftCalendarRenderer } /** + * * @return int */ private function calcBlocksPerSlot() -- cgit v1.2.3-54-g00ecf