openstreetmap-website/app/views/layouts/_header.html.erb
2024-03-21 18:07:56 +03:00

114 lines
6.5 KiB
Text

<header class="d-flex text-nowrap closed">
<h1 class="m-0 fw-semibold">
<a href="<%= root_path %>" class="text-black text-decoration-none geolink">
<%= image_tag "osm_logo.png", :srcset => image_path("osm_logo.svg"), :alt => t("layouts.logo.alt_text"), :width => 30, :height => 30, :class => "logo" %>
<%= t "layouts.project_name.h1" %>
</a>
</h1>
<a href="#" id="menu-icon"></a>
<nav class='primary'>
<%= content_for :header %>
<div class="btn-group">
<div id="edit_tab" class="btn-group">
<%= link_to t("layouts.edit"),
edit_path,
:class => "btn btn-outline-primary geolink editlink",
:id => "editanchor",
:data => { :editor => preferred_editor } %>
<button class='btn btn-outline-primary dropdown-toggle dropdown-toggle-split' type='button' data-bs-toggle='dropdown'></button>
<ul class='dropdown-menu'>
<% Editors::RECOMMENDED_EDITORS.each do |editor| %>
<li>
<%= link_to t("layouts.edit_with", :editor => t("editor.#{editor}.description")),
edit_path(:editor => editor),
:data => { :editor => editor },
:class => "geolink editlink dropdown-item" %>
</li>
<% end %>
</ul>
</div>
<%= link_to t("layouts.history"), history_path, :class => "btn btn-outline-primary geolink flex-grow-1", :id => "history_tab" %>
<%= link_to t("layouts.export"), export_path, :class => "btn btn-outline-primary geolink", :id => "export_tab" %>
</div>
</nav>
<nav class='secondary'>
<ul class='mx-1 px-0'>
<% if Settings.status != "database_offline" && can?(:index, Issue) %>
<li class="compact-hide nav-item <%= current_page_class(issues_path) %>">
<%= link_to issues_path(:status => "open"), :class => "nav-link" do %>
<%= t("layouts.issues") %>
<%= open_issues_count %>
<% end -%>
</li>
<% end %>
<li class="compact-hide nav-item <%= current_page_class(traces_path) %>">
<%= link_to t("layouts.gps_traces"), traces_path, :class => "nav-link" %>
</li>
<li class="compact-hide nav-item <%= current_page_class(diary_entries_path) %>">
<%= link_to t("layouts.user_diaries"), diary_entries_path, :class => "nav-link" %>
</li>
<li class="compact-hide nav-item <%= current_page_class(communities_path) %>">
<%= link_to t("layouts.communities"), communities_path, :class => "nav-link" %>
</li>
<li class="compact-hide nav-item <%= current_page_class(copyright_path) %>">
<%= link_to t("layouts.copyright"), copyright_path, :class => "nav-link" %>
</li>
<li class="compact-hide nav-item <%= current_page_class(help_path) %>">
<%= link_to t("layouts.help"), help_path, :class => "nav-link" %>
</li>
<li class="compact-hide nav-item <%= current_page_class(about_path) %>">
<%= link_to t("layouts.about"), about_path, :class => "nav-link" %>
</li>
<li id="compact-secondary-nav" class="dropdown nav-item">
<button class="dropdown-toggle nav-link btn btn-outline-secondary border-0 bg-white text-secondary" type="button" data-bs-toggle="dropdown"><%= t "layouts.more" %></button>
<ul class="dropdown-menu">
<% if Settings.status != "database_offline" && can?(:index, Issue) %>
<li class="<%= current_page_class(issues_path) %>">
<%= link_to issues_path(:status => "open"), :class => "dropdown-item" do %>
<%= t("layouts.issues") %>
<%= open_issues_count %>
<% end -%>
</li>
<% end %>
<li class="<%= current_page_class(traces_path) %>"><%= link_to t("layouts.gps_traces"), traces_path, :class => "dropdown-item" %></li>
<li class="<%= current_page_class(diary_entries_path) %>"><%= link_to t("layouts.user_diaries"), diary_entries_path, :class => "dropdown-item" %></li>
<li class="<%= current_page_class(communities_path) %>"><%= link_to t("layouts.communities"), communities_path, :class => "dropdown-item" %></li>
<li class="<%= current_page_class(copyright_path) %>"><%= link_to t("layouts.copyright"), copyright_path, :class => "dropdown-item" %></li>
<li class="<%= current_page_class(help_path) %>"><%= link_to t("layouts.help"), help_path, :class => "dropdown-item" %></li>
<li class="<%= current_page_class(about_path) %>"><%= link_to t("layouts.about"), about_path, :class => "dropdown-item" %></li>
</ul>
</li>
</ul>
<% if current_user && current_user.id %>
<div class='d-inline-flex dropdown user-menu logged-in'>
<button class='dropdown-toggle btn btn-outline-secondary border-grey bg-white text-secondary px-2 py-1 flex-grow-1' type='button' data-bs-toggle='dropdown'>
<%= user_thumbnail_tiny(current_user, :width => 25, :height => 25, :class => "user_thumbnail_tiny rounded-1") %>
<%= render :partial => "layouts/inbox" %>
<span class="user-button">
<span class='username'>
<%= current_user.display_name %>
</span>
</span>
</button>
<div class='dropdown-menu dropdown-menu-end'>
<%= link_to t("users.show.my_dashboard"), dashboard_path, :class => "dropdown-item" %>
<%= link_to inbox_messages_path, :class => "dropdown-item" do %>
<%= t("users.show.my messages") %>
<span class='badge count-number'><%= number_with_delimiter(current_user.new_messages.size) %></span>
<% end %>
<%= link_to t("users.show.my profile"), current_user, :class => "dropdown-item" %>
<%= link_to t("users.show.my settings"), edit_account_path, :class => "dropdown-item" %>
<%= link_to t("users.show.my_preferences"), preferences_path, :class => "dropdown-item" %>
<div class="dropdown-divider"></div>
<%= yield :greeting %>
<%= link_to t("layouts.logout"), logout_path(:referer => request.fullpath), :method => "post", :class => "geolink dropdown-item" %>
</div>
</div>
<% else %>
<div class="d-inline-flex btn-group login-menu" role="">
<%= link_to t("layouts.log_in"), login_path(:referer => request.fullpath), :class => "geolink btn btn-outline-secondary" %>
<%= link_to t("layouts.sign_up"), user_new_path, :class => "btn btn-outline-secondary" %>
</div>
<% end %>
</nav>
</header>