{% import "includes/macros" as macros %}

{% extends "base" %}

{% block content %}
	<div class="max-w-screen-xl w-full grid sm:grid-cols-2 lg:grid-cols-3 gap-4">
		{% if flash %}
			{{ macros::alert(message=flash.1, type=flash.0, class="sm:col-span-2 lg:col-span-3") }}
		{% endif %}

		<h1 class="h1 sm:col-span-2 lg:col-span-3">Ausfahrten</h1>

		{% include "includes/buttons" %}

		{% for day in days %}
			{% set amount_trips = day.planned_events | length + day.trips | length %}
			{% set_global day_cox_needed = false %}
			{% if day.planned_events | length > 0 %}
				{% for planned_event in day.planned_events %}
					{% if planned_event.cox_needed %}
						{% set_global day_cox_needed = true %}
					{% endif %}
				{% endfor %}
			{% endif %}

			<div class="bg-white dark:bg-primary-900 rounded-md flex justify-between flex-col shadow reset-js" style="min-height: 10rem;" data-trips="{{ amount_trips }}" data-month="{{ day.day| date(format='%m') }}" data-coxneeded="{{ day_cox_needed }}">
				<div>
					<h2 class="font-bold uppercase tracking-wide text-center rounded-t-md  {% if day.is_pinned %} text-white bg-primary-950 {% else %} text-primary-950 dark:text-white bg-gray-200 dark:bg-primary-950 bg-opacity-80 {% endif %} text-lg px-3 py-3 ">{{ day.day| date(format="%d.%m.%Y") }}
						<small class="inline-block ml-1 text-xs {% if day.is_pinned %} text-gray-200 {% else %} text-gray-500 dark:text-gray-100 {% endif %}">{{ day.day | date(format="%A", locale="de_AT") }}</small>
					</h2>

					{% if day.planned_events | length > 0 or  day.trips | length > 0 %}
						<div
							class="grid grid-cols-1 gap-3 mb-3">

							{# --- START Events --- #}
							{% if day.planned_events | length > 0 %}
								{% for planned_event in day.planned_events | sort(attribute="planned_starting_time") %}
									{% set amount_cur_cox = planned_event.cox | length %}
									{% set amount_cox_missing = planned_event.planned_amount_cox - amount_cur_cox %}
									<div class="pt-2 px-3 border-t border-gray-200" style="order: {{ planned_event.planned_starting_time | replace(from=":", to="") }}">
										<div class="flex justify-between items-center">
											<div class="mr-1">
												<strong class="text-primary-900 dark:text-white">
													{{ planned_event.planned_starting_time }}
													Uhr
												</strong>
												<small class="text-gray-600 dark:text-gray-100">({{ planned_event.name }}{% if planned_event.trip_type %} - {{ planned_event.trip_type.icon | safe }} {{ planned_event.trip_type.name }}{% endif %})</small><br/>

												<a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>{{ planned_event.planned_starting_time }} Uhr</strong> ({{ planned_event.name }}){% if planned_event.trip_type %}<small class='block'>{{ planned_event.trip_type.desc }}</small>{% endif %}{% if planned_event.notes %}<small class='block'>{{ planned_event.notes }}</small>{% endif %}" data-body="#event{{ planned_event.trip_details_id }}" class="inline-block link-primary mr-3">
													Details
												</a>
											</div>
											<div
												class="text-right grid gap-2">
												{# --- START Row Buttons --- #}
												{% set_global cur_user_participates = false %}
												{% for rower in planned_event.rower%}
													{% if rower.name == loggedin_user.name %}
														{% set_global cur_user_participates = true %}
													{% endif %}
												{% endfor %}
												{% if cur_user_participates %}
													<a href="/planned/remove/{{ planned_event.trip_details_id }}" class="btn btn-attention btn-fw">Abmelden</a>
												{% endif %}
												{% if planned_event.max_people > planned_event.rower | length %}
													{% if cur_user_participates == false %}
														<a href="/planned/join/{{ planned_event.trip_details_id }}" class="btn btn-primary btn-fw" {% if planned_event.trip_type %} onclick="return confirm('{{ planned_event.trip_type.question  }}');" {% endif %}>Mitrudern</a>
													{% endif %}
												{% endif %}
												{# --- END Row Buttons --- #}

												{# --- START Cox Buttons --- #}
												{% if "cox" in loggedin_user.roles %}
													{% set_global cur_user_participates = false %}
													{% for cox in planned_event.cox %}
														{% if cox.name == loggedin_user.name %}
															{% set_global cur_user_participates = true %}
														{% endif %}
													{% endfor %}
													{% if cur_user_participates %}
														<a href="/cox/remove/{{ planned_event.id }}" class="block btn btn-attention btn-fw">
															{% include "includes/cox-icon" %}
															Abmelden
														</a>
													{% else %}
														<a href="/cox/join/{{ planned_event.id }}" class="block btn {% if amount_cox_missing > 0 %} btn-dark {% else %} btn-gray {% endif %} btn-fw" {% if planned_event.trip_type %} onclick="return confirm('{{ planned_event.trip_type.question  }}');" {% endif %}>
															{% include "includes/cox-icon" %}
															Steuern
														</a>
													{% endif %}
												{% endif %}
												{# --- END Cox Buttons --- #}
											</div>
										</div>

										{# --- START Sidebar Content --- #}
										<div class="hidden">
											<div
												id="event{{ planned_event.trip_details_id }}">
												{# --- START List Coxes --- #}
												{% if planned_event.planned_amount_cox > 0 %}
													{% if amount_cox_missing > 0 %}
														{{ macros::box(participants=planned_event.cox, empty_seats=planned_event.planned_amount_cox - amount_cur_cox, header='Noch benötigte Steuerleute:', text='Keine Steuerleute angemeldet') }}
													{% else %}
														{{ macros::box(participants=planned_event.cox, empty_seats="", header='Genügend Steuerleute haben sich angemeldet :-)', text='Keine Steuerleute angemeldet') }}
													{% endif %}
												{% endif %}
												{# --- END List Coxes --- #}

												{# --- START List Rowers --- #}
												{% if planned_event.max_people > 0 %}
													{% set amount_cur_rower = planned_event.rower | length %}
													{{ macros::box(participants=planned_event.rower, empty_seats=planned_event.max_people - amount_cur_rower, bg='primary-100', color='black', trip_details_id=planned_event.trip_details_id, allow_removing="admin" in loggedin_user.roles) }}
												{% endif %}
												{# --- END List Rowers --- #}

													{% if "admin" in loggedin_user.roles %}
														<form action="/join/{{ planned_event.trip_details_id }}" method="get" />
															{{ macros::input(label='Gast', class="input rounded-t", name='user_note', type='text', required=true) }}
															<input value="Gast hinzufügen" class="btn btn-primary w-full rounded-t-none-important" type="submit"/>
														</form>
													{% endif %}


												{% if planned_event.allow_guests %}
													<div class="text-primary-900 bg-primary-50 text-center p-1 mb-4">Gäste willkommen!</div>
												{% endif %}

												{% if "admin" in loggedin_user.roles %}

													{# --- START Edit Form --- #}
													<div class="bg-gray-100 dark:bg-primary-900 p-3 mt-4 rounded-md">
														<h3 class="text-primary-950 dark:text-white font-bold uppercase tracking-wide mb-2">Ausfahrt bearbeiten</h3>
														<form action="/admin/planned-event" method="post" class="grid gap-3">
															<input type="hidden" name="_method" value="put"/>
															<input type="hidden" name="id" value="{{ planned_event.id }}"/>
															{{ macros::input(label='Anzahl Ruderer', name='max_people', type='number', required=true, value=planned_event.max_people, min='0') }}
															{{ macros::input(label='Anzahl Steuerleute', name='planned_amount_cox', type='number', value=planned_event.planned_amount_cox, required=true, min='0') }}
															{{ macros::checkbox(label='Immer anzeigen', name='always_show', id=planned_event.id,checked=planned_event.always_show) }}
															{{ macros::checkbox(label='Gesperrt', name='is_locked', id=planned_event.id,checked=planned_event.is_locked) }}
															{{ macros::input(label='Anmerkungen', name='notes', type='input', value=planned_event.notes) }}

															<input value="Speichern" class="btn btn-primary" type="submit"/>
														</form>
													</div>
													{# --- END Edit Form --- #}

													{# --- START Delete Btn --- #}
													<div class="text-right">
														<a href="/admin/planned-event/{{ planned_event.id }}/delete" class="inline-block btn btn-alert">
															{% include "includes/delete-icon" %}
															Termin löschen
														</a>
													</div>
												{% endif %}
												{# --- END Delete Btn --- #}
											</div>
										</div>
										{# --- END Sidebar Content --- #}
									</div>
								{% endfor %}
							{% endif %}
							{# --- END Events --- #}

							{# --- START Trips --- #}
							{% if day.trips | length > 0 %}
								{% for trip in day.trips | sort(attribute="planned_starting_time") %}
									<div class="pt-2 px-3 reset-js border-t border-gray-200" style="order: {{ trip.planned_starting_time | replace(from=":", to="") }}" data-coxneeded="false">
										<div class="flex justify-between items-center">
											<div class="mr-1">
												{% if trip.max_people == 0 %}
													<strong class="text-[#f43f5e]">&#9888;
														{{ trip.planned_starting_time }}
														Uhr</strong>
													<small class="text-[#f43f5e]">(Absage
														{{ trip.cox_name }}
														{% if trip.trip_type %}
															-
															{{ trip.trip_type.icon | safe }}{{ trip.trip_type.name }}
														{% endif %})</small>
												{% else %}
													<strong class="text-primary-900 dark:text-white">{{ trip.planned_starting_time }}
														Uhr</strong>
													<small class="text-gray-600 dark:text-gray-100">({{ trip.cox_name }}{% if trip.trip_type %} - {{ trip.trip_type.icon | safe }} {{ trip.trip_type.name }}{% endif %})</small>
												{% endif %}
												<br/>
												<a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>{% if trip.max_people == 0 %}&#9888; {% endif %}{{ trip.planned_starting_time }} Uhr</strong> ({{ trip.cox_name }}){% if trip.trip_type %}<small class='block'>{{ trip.trip_type.desc }}</small>{% endif %}{% if trip.notes %}<small class='block'>{{ trip.notes }}</small>{% endif %}" data-body="#trip{{ trip.trip_details_id }}" class="inline-block link-primary mr-3">
													Details
												</a>
											</div>

											<div>
												{% set_global cur_user_participates = false %}
												{% for rower in trip.rower %}
													{% if rower.name == loggedin_user.name %}
														{% set_global cur_user_participates = true %}
													{% endif %}
												{% endfor %}
												{% if cur_user_participates %}
													<a href="/remove/{{ trip.trip_details_id }}" class="btn btn-attention btn-fw">Abmelden</a>
												{% endif %}
												{% if trip.max_people > trip.rower | length and trip.cox_id != loggedin_user.id and cur_user_participates == false%}
													<a href="/join/{{ trip.trip_details_id }}" class="btn btn-primary btn-fw" {% if trip.trip_type %} onclick="return confirm('{{ trip.trip_type.question  }}');" {% endif %}>Mitrudern</a>
												{% endif %}
											</div>
										</div>
										{# --- START Sidebar Content --- #}
										<div class="hidden">
											<div id="trip{{ trip.trip_details_id }}">
												{% if trip.max_people == 0 %}
													{# --- border-[#f43f5e] bg-[#f43f5e] --- #}
													{{ macros::box(participants=trip.rower,bg='[#f43f5e]',header='Absage') }}
												{% else %}
													{% set amount_cur_rower = trip.rower | length %}
													{{ macros::box(participants=trip.rower, empty_seats=trip.max_people - amount_cur_rower, bg='primary-100', color='black', trip_details_id=trip.trip_details_id, allow_removing=loggedin_user.id == trip.cox_id) }}
													{% if trip.cox_id == loggedin_user.id %}
														<form action="/join/{{ trip.trip_details_id }}" method="get" />
															{{ macros::input(label='Gast', class="input rounded-t", name='user_note', type='text', required=true) }}
															<input value="Gast hinzufügen" class="btn btn-primary w-full rounded-t-none-important" type="submit"/>
														</form>
													{% endif %}
												{% endif %}

												{# --- START Edit Form --- #}
												{% if trip.cox_id == loggedin_user.id %}
													<div class="bg-gray-100 dark:bg-primary-900 p-3 mt-4 rounded-md">
														<h3 class="text-primary-950 dark:text-white font-bold uppercase tracking-wide mb-2">Ausfahrt bearbeiten</h3>
														<form action="/cox/trip/{{ trip.id }}" method="post" class="grid gap-3">
															{{ macros::input(label='Anzahl Ruderer', name='max_people', type='number', required=true, value=trip.max_people, min='0') }}
															{{ macros::input(label='Anmerkungen', name='notes', type='input', value=trip.notes) }}
															{{ macros::checkbox(label='Immer anzeigen', name='always_show', id=trip.id,checked=trip.always_show) }}
															{{ macros::checkbox(label='Gesperrt', name='is_locked', id=trip.id,checked=trip.is_locked) }}
															{{ macros::select(label='Typ', name='trip_type', data=trip_types, default='Reguläre Ausfahrt', selected_id=trip.trip_type_id) }}

															<input value="Speichern" class="btn btn-primary" type="submit"/>
														</form>
													</div>
													{% if trip.rower | length == 0 %}
														<div class="text-right mt-6">
															<a href="/cox/remove/trip/{{ trip.id }}" class="inline-block btn btn-alert">
																{% include "includes/delete-icon" %}
																Termin löschen
															</a>
														</div>
													{% endif %}
												{% endif %}
												{# --- END Edit Form --- #}
											</div>
										</div>
										{# --- END Sidebar Content --- #}
									</div>
								{% endfor %}
							{% endif %}
							{# --- END Trips --- #}
						</div>
					{% endif %}
				</div>

				{# --- START Add Buttons --- #}
				{% if "admin" in loggedin_user.roles or "cox" in loggedin_user.roles %}
					<div class="grid {% if "admin" in loggedin_user.roles %} grid-cols-2 {% endif %} text-center">
						{% if "admin" in loggedin_user.roles %}
							<a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>Event</strong> am {{ day.day| date(format='%d.%m.%Y') }} erstellen" data-day="{{ day.day }}" data-body="#addEventForm" class="relative inline-block w-full bg-primary-900 hover:bg-primary-950 focus:bg-primary-950 dark:bg-primary-950 text-white py-2 rounded-bl-md text-sm font-semibold">
								<span class="absolute inset-y-0 left-0 flex items-center pl-3">
									{% include "includes/plus-icon" %}
								</span>
								Event
							</a>
						{% endif %}

						{% if "cox" in loggedin_user.roles %}
							<a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>Ausfahrt</strong> am {{ day.day| date(format='%d.%m.%Y') }} erstellen" data-day="{{ day.day }}" data-body="#sidebarForm" class="relative inline-block w-full py-2 text-primary-900 hover:text-primary-950 dark:bg-primary-600 dark:text-white dark:hover:bg-primary-500 dark:hover:text-white focus:text-primary-950 text-sm font-semibold bg-gray-100 hover:bg-gray-200 focus:bg-gray-200 {% if "admin" in loggedin_user.roles %} rounded-br-md {% else %} rounded-b-md {% endif %}">
								<span class="absolute inset-y-0 left-0 flex items-center pl-3">
									{% include "includes/plus-icon" %}
								</span>
								Ausfahrt
							</a>
						{% endif %}
					</div>
				{% endif %}
				{# --- END Add Buttons --- #}
			</div>
		{% endfor %}
	</div>
</div>

{% if "cox" in loggedin_user.roles %}
	{% include "forms/trip" %}
{% endif %}

{% if "admin" in loggedin_user.roles %}
	{% include "forms/event" %}
{% endif %}{% endblock content %}