]> git.openstreetmap.org Git - rails.git/blob - app/views/layouts/_header.html.erb
Merge remote-tracking branch 'upstream/pull/4200'
[rails.git] / app / views / layouts / _header.html.erb
1 <header class="d-flex bg-body text-nowrap closed z-3">
2   <h1 class="d-flex m-0 fw-semibold">
3     <a href="<%= root_path %>" class="icon-link gap-1 text-body-emphasis text-decoration-none geolink">
4       <%= image_tag "osm_logo.svg", :alt => t("layouts.logo.alt_text"), :size => 30 %>
5       <%= t "layouts.project_name.h1" %>
6     </a>
7   </h1>
8   <a href="#" id="menu-icon"></a>
9   <nav class='primary'>
10     <%= content_for :header %>
11     <div id="edit_tab" class="btn-group">
12       <%= link_to t("layouts.edit"),
13                   edit_path,
14                   :class => "btn btn-outline-primary geolink editlink",
15                   :id => "editanchor",
16                   :data => { :editor => preferred_editor } %>
17       <button class='btn btn-outline-primary dropdown-toggle dropdown-toggle-split flex-grow-0' type='button' data-bs-toggle='dropdown'></button>
18       <ul class='dropdown-menu'>
19         <% Editors::RECOMMENDED_EDITORS.each do |editor| %>
20           <li>
21             <%= link_to t("layouts.edit_with", :editor => t("editor.#{editor}.description")),
22                         edit_path(:editor => editor),
23                         :data => { :editor => editor },
24                         :class => "geolink editlink dropdown-item" %>
25           </li>
26         <% end %>
27       </ul>
28     </div>
29   </nav>
30   <nav class='secondary d-flex gap-2 align-items-center'>
31     <ul class='nav flex-nowrap'>
32       <% if Settings.status != "database_offline" && can?(:index, Issue) %>
33         <li class="compact-hide nav-item">
34           <%= link_to issues_path(:status => "open"), :class => header_nav_link_class(issues_path) do %>
35             <%= t("layouts.issues") %>
36             <%= open_issues_count %>
37           <% end -%>
38         </li>
39       <% end %>
40       <li class="compact-hide nav-item">
41         <%= link_to t("layouts.history"), history_path, :class => header_nav_link_class(history_path) %>
42       </li>
43       <li class="compact-hide nav-item">
44         <%= link_to t("layouts.export"), export_path, :class => header_nav_link_class(export_path) %>
45       </li>
46       <li class="compact-hide nav-item">
47         <%= link_to t("layouts.gps_traces"), traces_path, :class => header_nav_link_class(traces_path) %>
48       </li>
49       <li class="compact-hide nav-item">
50         <%= link_to t("layouts.user_diaries"), diary_entries_path, :class => header_nav_link_class(diary_entries_path) %>
51       </li>
52       <li class="compact-hide nav-item">
53         <%= link_to t("layouts.communities"), communities_path, :class => header_nav_link_class(communities_path) %>
54       </li>
55       <li class="compact-hide nav-item">
56         <%= link_to t("layouts.copyright"), copyright_path, :class => header_nav_link_class(copyright_path) %>
57       </li>
58       <li class="compact-hide nav-item">
59         <%= link_to t("layouts.help"), help_path, :class => header_nav_link_class(help_path) %>
60       </li>
61       <li class="compact-hide nav-item">
62         <%= link_to t("layouts.about"), about_path, :class => header_nav_link_class(about_path) %>
63       </li>
64       <li id="compact-secondary-nav" class="dropdown nav-item">
65         <button class="dropdown-toggle nav-link btn btn-outline-secondary border-0 bg-body text-secondary" type="button" data-bs-toggle="dropdown"><%= t "layouts.more" %></button>
66         <ul class="dropdown-menu">
67           <% if Settings.status != "database_offline" && can?(:index, Issue) %>
68             <li>
69               <%= link_to issues_path(:status => "open"), :class => "dropdown-item" do %>
70                 <%= t("layouts.issues") %>
71                 <%= open_issues_count %>
72               <% end -%>
73             </li>
74           <% end %>
75           <li><%= link_to t("layouts.history"), history_path, :class => "dropdown-item" %></li>
76           <li><%= link_to t("layouts.export"), export_path, :class => "dropdown-item" %></li>
77           <li><%= link_to t("layouts.gps_traces"), traces_path, :class => "dropdown-item" %></li>
78           <li><%= link_to t("layouts.user_diaries"), diary_entries_path, :class => "dropdown-item" %></li>
79           <li><%= link_to t("layouts.communities"), communities_path, :class => "dropdown-item" %></li>
80           <li><%= link_to t("layouts.copyright"), copyright_path, :class => "dropdown-item" %></li>
81           <li><%= link_to t("layouts.help"), help_path, :class => "dropdown-item" %></li>
82           <li><%= link_to t("layouts.about"), about_path, :class => "dropdown-item" %></li>
83         </ul>
84       </li>
85     </ul>
86     <% if current_user && current_user.id %>
87       <div class='d-inline-flex dropdown user-menu logged-in'>
88         <button class='d-flex gap-1 align-items-center justify-content-center dropdown-toggle btn btn-outline-secondary border-secondary-subtle bg-body text-secondary px-2 py-1 flex-grow-1 mw-100' type='button' data-bs-toggle='dropdown'>
89           <%= user_thumbnail_tiny(current_user, :class => "user_thumbnail_tiny rounded-1 bg-body") %>
90           <% if current_user.new_messages.size > 0 %>
91             <span class="badge count-number position-static m-1"><%= current_user.new_messages.size %></span>
92           <% end %>
93           <span class='username align-middle text-truncate' dir='auto'>
94             <%= current_user.display_name %>
95           </span>
96         </button>
97         <div class='dropdown-menu dropdown-menu-end'>
98           <%= link_to t("users.show.my_dashboard"), dashboard_path, :class => "dropdown-item" %>
99           <%= link_to inbox_messages_path, :class => "dropdown-item" do %>
100             <%= t("users.show.my messages") %>
101             <span class='badge count-number'><%= number_with_delimiter(current_user.new_messages.size) %></span>
102           <% end %>
103           <%= link_to t("users.show.my profile"), current_user, :class => "dropdown-item" %>
104           <%= link_to t("users.show.my settings"), edit_account_path, :class => "dropdown-item" %>
105           <%= link_to t("users.show.my_preferences"), preferences_path, :class => "dropdown-item" %>
106           <div class="dropdown-divider"></div>
107           <%= yield :greeting %>
108           <%= link_to t("layouts.logout"), logout_path(:referer => request.fullpath), :method => "post", :class => "geolink dropdown-item" %>
109         </div>
110       </div>
111     <% else %>
112       <div class="d-inline-flex btn-group login-menu" role="">
113         <%= link_to t("layouts.log_in"), login_path(:referer => request.fullpath), :class => "geolink btn btn-outline-secondary" %>
114         <%= link_to t("layouts.sign_up"), user_new_path, :class => "btn btn-outline-secondary" %>
115       </div>
116     <% end %>
117   </nav>
118 </header>