diff options
author | msquare <msquare@notrademark.de> | 2016-11-09 17:43:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-09 17:43:56 +0100 |
commit | d43eb41d25d0d5c0509417247030dd6c21118cf6 (patch) | |
tree | 2c3f78bf8fbd4215e70af7dbc2ce30cfef674816 /includes/view/ShiftsFilterRenderer.php | |
parent | d5d2acc7d80920eef5f0ed779a3738a12d5db348 (diff) | |
parent | 22520532c78b3a032aec6ececb7623ba094da8de (diff) |
Merge pull request #274 from engelsystem/task-164-shift-view
Task 164 shift view
Diffstat (limited to 'includes/view/ShiftsFilterRenderer.php')
-rw-r--r-- | includes/view/ShiftsFilterRenderer.php | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/includes/view/ShiftsFilterRenderer.php b/includes/view/ShiftsFilterRenderer.php new file mode 100644 index 00000000..301f31a2 --- /dev/null +++ b/includes/view/ShiftsFilterRenderer.php @@ -0,0 +1,69 @@ +<?php + +namespace Engelsystem; + +class ShiftsFilterRenderer { + + /** + * The shiftFilter to render. + * + * @var ShiftsFilter + */ + private $shiftsFilter; + + /** + * Should the filter display a day selection. + * + * @var boolean + */ + private $daySelectionEnabled = false; + + /** + * Days that can be selected. + * Format Y-m-d + * + * @var string[] + */ + private $days = []; + + public function __construct(ShiftsFilter $shiftsFilter) { + $this->shiftsFilter = $shiftsFilter; + } + + /** + * Renders the filter. + * + * @return Generated HTML + */ + public function render($link_base) { + $toolbar = []; + if ($this->daySelectionEnabled && ! empty($this->days)) { + $selected_day = date("Y-m-d", $this->shiftsFilter->getStartTime()); + $day_dropdown_items = []; + foreach ($this->days as $day) { + $day_dropdown_items[] = toolbar_item_link($link_base . '&shifts_filter_day=' . $day, '', $day); + } + $toolbar[] = toolbar_dropdown('', $selected_day, $day_dropdown_items, 'active'); + } + return div('form-group', [ + toolbar_pills($toolbar) + ]); + } + + /** + * Should the filter display a day selection. + */ + public function enableDaySelection($days) { + $this->daySelectionEnabled = true; + $this->days = $days; + } + + /** + * Should the filter display a day selection. + */ + public function isDaySelectionEnabled() { + return $this->daySelectionEnabled; + } +} + +?>
\ No newline at end of file |