{% extends "layouts/mobile_base.twig" %} {% set active_nav = 'schedule' %} {% block title %}{{ translations.schedule ?? 'Schedule' }}{% endblock %} {% block page_title %}{{ translations.schedule ?? 'Schedule' }}{% endblock %} {% block page_subtitle %} {{ date_from }} → {{ date_to }} {% endblock %} {% block head %} {% endblock %} {% block content %} {# 1) Normalizacja danych #} {% set entries = schedule|default([]) %} {# 2) Budowa listy dni od date_from do date_to (max 31 dni) #} {% set range_dates = [] %} {% for i in 0..30 %} {% set dt = date_from|date_modify('+' ~ i ~ ' day')|date('Y-m-d') %} {% if dt <= date_to %} {% set range_dates = range_dates|merge([dt]) %} {% endif %} {% endfor %} {# 3) Domyślny aktywny dzień #} {% set today = "now"|date("Y-m-d") %} {% if selected_date is defined and selected_date %} {% set initial_date = selected_date %} {% elseif today >= date_from and today <= date_to %} {% set initial_date = today %} {% else %} {% set initial_date = date_from %} {% endif %} {# --- Panel wyboru zakresu dat (GET) --- #} {# --- Panel wyboru zakresu dat (GET) --- #} {% set today = "now"|date("Y-m-d") %} {% set d7 = "now"|date_modify("+6 day")|date("Y-m-d") %} {% set d14 = "now"|date_modify("+13 day")|date("Y-m-d") %} {% set d30 = "now"|date_modify("+29 day")|date("Y-m-d") %}
{{ translations.date_range ?? 'Date range' }}
{{ translations.date_range_subtitle ?? 'Choose the range to display your schedule.' }}
{# QUICK RANGES (GET links) #}
{{ translations.quick_ranges ?? 'Quick ranges' }}
{{ translations.quick_ranges_hint ?? 'Use quick ranges for the fastest access. You can set custom dates below.' }}

{# MANUAL RANGE (fallback) #}
{{ translations.custom_range ?? 'Custom range' }}
{% if selected_date is defined and selected_date %} {% endif %}
{{ translations.tip_short_range ?? 'Tip: keep the range short (e.g., 7–14 days) for faster browsing.' }}
{# Jeśli zakres jest pusty / błędny #} {% if range_dates is empty %}
{{ translations.no_date_range ?? 'No date range' }}
{{ translations.provide_date_range ?? 'Provide date_from and date_to.' }}
{% else %} {# --- Info o przewijaniu suwaka --- #}
{{ translations.swipe_hint ?? 'Swipe left/right on the dates to move through the range.' }}
{# --- Pasek dni (suwak) --- #}
{{ translations.schedule_range ?? 'Selected range' }}
{{ range_dates|length }} {{ translations.days ?? 'days' }}
{% for dt in range_dates %} {% set day_entries = entries|filter(e => e.getWorkDate() == dt) %} {% set is_active = dt == initial_date %} {% set is_today = dt == today %}
{{ dt|date('D') }}
{{ dt|date('d') }}
{% if day_entries|length == 0 %} {{ translations.day_off ?? 'Off' }} {% else %} {{ day_entries|length }} {{ day_entries|length == 1 ? (translations.shift ?? 'shift') : (translations.shifts ?? 'shifts') }} {% endif %}
{% endfor %}
{# --- Agenda --- #}
{{ translations.agenda ?? 'Agenda' }}
{% for dt in range_dates %} {% set day_entries = entries|filter(e => e.getWorkDate() == dt) %} {% set is_active = dt == initial_date %}
{% if day_entries is empty %}
{{ translations.no_shifts ?? 'No shifts' }}
{{ translations.day_off_subtitle ?? 'Enjoy your day off.' }}
{% else %}
{% for s in day_entries %}

{{ s.getStartHour()|slice(0,5) }}–{{ s.getEndHour()|slice(0,5) }}

{{ translations.shop ?? 'Shop' }} #{{ s.getIdShop() }}
{{ translations.planned ?? 'Planned' }}
{% endfor %}
{% endif %}
{% endfor %} {% endif %} {% endblock %} {% block scripts %} {% endblock %}