MakersNetwork/agenda-saude

View on GitHub
app/views/layouts/application.html.erb

Summary

Maintainability
Test Coverage
<!DOCTYPE html>
<html>
  <head>
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-CNHJDWQXG7"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());

      gtag('config', 'G-CNHJDWQXG7');
    </script>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title><%= [@page_title, @page&.title, Rails.configuration.x.site_title].compact.join(" | ") %></title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
    <%= javascript_include_tag 'application' %>
    <%= stylesheet_link_tag 'application', "https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;700;800&display=swap", media: 'all', 'data-turbolinks-track' => true %>
    <%= favicon_link_tag %>
    <%= yield :head %>
  </head>

  <body>
    <nav class="navbar navbar-expand-lg navbar-default bg-primary bg-background mb-5">
      <a class="navbar-brand mr-auto" href="/" target='blank'>
        <%= image_tag "logo.png", class: "navbar__logo" %>
      </a>
      <button class="navbar-toggler p-1" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon">
          <svg viewBox="-42 0 512 512.002" width="16" height="16" fill="white" xmlns="http://www.w3.org/2000/svg"><path d="m210.351562 246.632812c33.882813 0 63.222657-12.152343 87.195313-36.128906 23.972656-23.972656 36.125-53.304687 36.125-87.191406 0-33.875-12.152344-63.210938-36.128906-87.191406-23.976563-23.96875-53.3125-36.121094-87.191407-36.121094-33.886718 0-63.21875 12.152344-87.191406 36.125s-36.128906 53.308594-36.128906 87.1875c0 33.886719 12.15625 63.222656 36.132812 87.195312 23.976563 23.96875 53.3125 36.125 87.1875 36.125zm0 0"/><path d="m426.128906 393.703125c-.691406-9.976563-2.089844-20.859375-4.148437-32.351563-2.078125-11.578124-4.753907-22.523437-7.957031-32.527343-3.308594-10.339844-7.808594-20.550781-13.371094-30.335938-5.773438-10.15625-12.554688-19-20.164063-26.277343-7.957031-7.613282-17.699219-13.734376-28.964843-18.199219-11.226563-4.441407-23.667969-6.691407-36.976563-6.691407-5.226563 0-10.28125 2.144532-20.042969 8.5-6.007812 3.917969-13.035156 8.449219-20.878906 13.460938-6.707031 4.273438-15.792969 8.277344-27.015625 11.902344-10.949219 3.542968-22.066406 5.339844-33.039063 5.339844-10.972656 0-22.085937-1.796876-33.046874-5.339844-11.210938-3.621094-20.296876-7.625-26.996094-11.898438-7.769532-4.964844-14.800782-9.496094-20.898438-13.46875-9.75-6.355468-14.808594-8.5-20.035156-8.5-13.3125 0-25.75 2.253906-36.972656 6.699219-11.257813 4.457031-21.003906 10.578125-28.96875 18.199219-7.605469 7.28125-14.390625 16.121094-20.15625 26.273437-5.558594 9.785157-10.058594 19.992188-13.371094 30.339844-3.199219 10.003906-5.875 20.945313-7.953125 32.523437-2.058594 11.476563-3.457031 22.363282-4.148437 32.363282-.679688 9.796875-1.023438 19.964844-1.023438 30.234375 0 26.726562 8.496094 48.363281 25.25 64.320312 16.546875 15.746094 38.441406 23.734375 65.066406 23.734375h246.53125c26.625 0 48.511719-7.984375 65.0625-23.734375 16.757813-15.945312 25.253906-37.585937 25.253906-64.324219-.003906-10.316406-.351562-20.492187-1.035156-30.242187zm0 0"/></svg>
          </span>
      </button>

      <% if current_user %>
        <div class="btn-group" role="group" aria-label="Button group with nested dropdown">
          <div class="btn-group" role="group">
            <button id="operatorDropdownTopMenu" type="button" class="btn btn-light dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              Menu
            </button>
            <div class="dropdown-menu dropdown-menu-right" aria-labelledby="operatorDropdownTopMenu">
              <h6 class="dropdown-header">Administração:</h6>
              <%= link_to("Agendamentos", admin_appointments_path, class: "dropdown-item") %>
              <%= link_to("Bairros", admin_neighborhoods_path, class: "dropdown-item") if current_user.admin? %>
              <%= link_to("Condições", admin_conditions_path, class: "dropdown-item") if current_user.admin? %>
              <%= link_to("Grupos", admin_groups_path, class: "dropdown-item") if current_user.admin? %>
              <%= link_to("Inquérito", admin_inquiry_questions_path, class: "dropdown-item") if current_user.admin? %>
              <%= link_to("Operadores", admin_users_path, class: "dropdown-item") if current_user.admin? %>
              <%= link_to("Pacientes", admin_patients_path, class: "dropdown-item") %>
              <%= link_to("Páginas", admin_pages_path, class: "dropdown-item") if current_user.admin? %>
              <%= link_to("Unidades", admin_ubs_index_path, class: "dropdown-item") if current_user.admin? %>
              <%= link_to("Vacinas", admin_vaccines_path, class: "dropdown-item") if current_user.admin? %>

              <% if current_user.ubs.any? -%>
                <h6 class="dropdown-header">Unidades:</h6>
                <% current_user.ubs.order(:name).each do |ubs| -%>
                  <%= link_to ubs.name, operator_ubs_appointments_path(ubs), class: "dropdown-item" %>
                <% end -%>
              <% end -%>
            </div>
          </div>

          <%= link_to destroy_user_session_path, method: :delete, class: "btn btn-danger", data: { cy: "operatorLogoutButton" } do %>
            Sair
          <% end %>
        </div>

      <% elsif current_patient %>
        <div class="btn-group" role="group">
          <%= link_to current_patient.name.truncate(30), "#",
                      class: "btn btn-light disabled",
                      data: { cy: "patientNameButton" } %>
          <%= link_to "Alterar meus dados", edit_community_patient_path,
                      class: "btn btn-light",
                      data: { cy: "patientEditButton" } %>
          <%= link_to "Sair", community_session_path, method: :delete,
                      class: "btn btn-danger",
                      data: { cy: "patientLogoutButton" } %>
        </div>
      <% else %>
        <div class="collapse navbar-collapse ml-auto flex-shrink-1 flex-grow-0" id="navbarTogglerDemo01">
          <%= link_to "Entrar como Operador", new_user_session_path, class: "btn btn-primary w-100 mt-2", data: { cy: "userLoginButton" } %>
        </div>
      <% end %>
    </nav>
    <div class="container">
      <div class="container d-print-none">
        <% if flash[:notice].present? || flash[:notice_title].present?%>
          <div class="alert alert-success alert-dismissible fade show" data-cy="noticeMessage">
            <% if flash[:notice_title].present? -%>
              <h4 class="alert-heading">
                <%= flash[:notice_title] %>
              </h4>
            <% end -%>
            <%= flash[:notice] %>

            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
              <span aria-hidden="true">&times;</span>
            </button>
          </div>
        <% end %>
        <% if flash[:alert].present? %>
          <div class="alert alert-warning alert-dismissible fade show" data-cy="<%= flash[:cy] %>">
            <%= flash[:alert] %>

            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
              <span aria-hidden="true">&times;</span>
            </button>
          </div>
        <% end %>
        <% if flash[:error].present? %>
          <div class="alert alert-danger alert-dismissible fade show" data-cy="errorMessage">
            <%= flash[:error] %>

            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
              <span aria-hidden="true">&times;</span>
            </button>
          </div>
        <% end %>
      </div>

      <%= yield %>
    </div>
    <footer class="footer">
      <div class="container p-5"></div>
      <hr>

      <div class="text-center p-3">
        <%= embedded_page :footer %>
      </div>
    </footer>
  </body>
</html>