app/views/community/appointments/index.html.erb
<% if @appointment -%>
<ul class="container">
<li class="card">
<h4 class="card-header">Sua vacinação agendada:</h4>
<ul class="list-group list-group-flush">
<li class="list-group-item">
<%= render @appointment %>
</li>
<li class="list-group-item">
<div class="row">
<div class="col">
<%= link_to "« Voltar e manter meu agendamento",
home_community_appointments_path,
class: "btn btn-secondary btn-block" %>
</div>
</div>
</li>
</ul>
</li>
</ul>
<% end -%>
<div class="container">
<div class="row">
<div class="col">
<% if current_patient.doses.exists? -%>
<div class="alert alert-info">
Serão exibidas apenas as unidades definidas pela Secretaria da Saúde para receber reagendamento da dose de reforço.
</div>
<% else -%>
<div class="alert alert-info">
Para agendar, escolha um dia, unidade e clique no horário disponível desejado.
</div>
<% end -%>
</div>
</div>
</div>
<div class="container">
<div class="row mt-3">
<div class="col">
<nav aria-label="Page navigation">
<ul class="pagination justify-content-center">
<%=
content_tag :li, class: "page-item #{@days <= 0 ? :disabled : :active}" do
link_to "« Dia anterior",
community_appointments_path(page: @days - 1),
class: "page-link",
data: { cy: "previousDayButton" }
end
%>
<li class="page-item active disabled">
<a class="page-link" href="#">
<%= l @days.days.from_now, format: :short_date %>
</a>
</li>
<%=
content_tag :li, class: "page-item #{@days >= Rails.configuration.x.schedule_up_to_days ? :disabled : :active}" do
link_to "Próximo dia »",
community_appointments_path(page: @days + 1),
class: "page-link",
data: { cy: "nextDayButton" }
end
%>
</ul>
</nav>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col">
<div class="card">
<div class="card-header">
<h4 class="mt-2 card-title">Unidades com disponibilidade nesta data:</h4>
<p class="card-text">Clique no nome da unidade para ver os horários disponíveis na mesma.</p>
</div>
<ul class="list-group list-group-flush">
<% if @appointments.empty? -%>
<li class="list-group-item">
<h4 class="text-muted mt-5 mb-5 text-center">Nenhuma vaga disponível.</h4>
</li>
<% end -%>
<% @appointments.each do |ubs, slots| -%>
<li class="list-group-item mt-2">
<a class=""
data-toggle="collapse" role="button" aria-expanded="false"
href="#ubs<%= ubs.id %>"
aria-controls="ubs<%= ubs.id %>"
data-cy="ubs<%= ubs.id %>Button"
>
<h5>
<%= ubs.name %>
<small>
<%= ubs.full_address %>
</small>
<% if ubs.neighborhood_id == current_patient.neighborhood_id -%>
<span class="badge badge-success">No seu bairro</span>
<% end -%>
</h5>
</a>
<div class="collapse" id="ubs<%= ubs.id %>">
<p>Escolha um horário abaixo. Clicando no botão, tentaremos agendar a vaga imediatamente.</p>
<%= form_with url: community_appointments_path, method: :post, local: true do |f| %>
<%= hidden_field_tag "appointment[ubs_id]", ubs.id %>
<% slots.in_groups_of(4) do |slot_group| -%>
<div class="row">
<% slot_group.each do |slot| -%>
<div class="col-sm mt-4">
<% if slot -%>
<%= f.button name: "appointment[start]",
value: slot.start,
class: "btn btn-primary btn-lg btn-block",
data: { cy: "scheduleTimeButton" } do %>
<%= l(slot.start, format: :short_hour) %>
<% end -%>
<% end -%>
</div>
<% end -%>
</div>
<% end -%>
<% end -%>
</div>
</li>
<% end -%>
</ul>
</div>
</div>
</div>
</div>