]> git.openstreetmap.org Git - rails.git/blob - app/views/layouts/_header.html.erb
Extend starting/ending version lists containing active items
[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   <%= render "layouts/select_language_button", :extra_classes => ["border-secondary border-opacity-10 d-md-none position-absolute"] %>
9   <a href="#" id="menu-icon"></a>
10   <nav class='primary'>
11     <%= content_for :header %>
12     <div id="edit_tab" class="btn-group">
13       <%= link_to t("layouts.edit"),
14                   edit_path,
15                   :class => "btn btn-outline-primary geolink editlink",
16                   :id => "editanchor",
17                   :data => { :editor => preferred_editor } %>
18       <button class='btn btn-outline-primary dropdown-toggle dropdown-toggle-split flex-grow-0' type='button' data-bs-toggle='dropdown'></button>
19       <ul class='dropdown-menu'>
20         <% Editors::RECOMMENDED_EDITORS.each do |editor| %>
21           <li>
22             <%= link_to t("layouts.edit_with", :editor => t("editor.#{editor}.description")),
23                         edit_path(:editor => editor),
24                         :data => { :editor => editor },
25                         :class => "geolink editlink dropdown-item" %>
26           </li>
27         <% end %>
28       </ul>
29     </div>
30   </nav>
31   <nav class='secondary d-flex gap-2 flex-grow-1 align-items-center'>
32     <ul id='secondary-nav-menu' class='nav flex-grow-1' data-turbo-permanent>
33       <% if Settings.status != "database_offline" && can?(:index, Issue) %>
34         <li class="nav-item">
35           <%= link_to issues_path(:status => "open"), :class => header_nav_link_class(issues_path) do %>
36             <%= t("layouts.issues") %>
37             <%= open_issues_count %>
38           <% end -%>
39         </li>
40       <% end %>
41       <li class="nav-item">
42         <%= link_to t("layouts.history"), history_path, :class => header_nav_link_class(history_path) %>
43       </li>
44       <li class="nav-item">
45         <%= link_to t("layouts.export"), export_path, :class => header_nav_link_class(export_path) %>
46       </li>
47       <li class="nav-item">
48         <%= link_to t("layouts.gps_traces"), traces_path, :class => header_nav_link_class(traces_path) %>
49       </li>
50       <li class="nav-item">
51         <%= link_to t("layouts.user_diaries"), diary_entries_path, :class => header_nav_link_class(diary_entries_path) %>
52       </li>
53       <li class="nav-item">
54         <%= link_to t("layouts.communities"), communities_path, :class => header_nav_link_class(communities_path) %>
55       </li>
56       <li class="nav-item">
57         <%= link_to t("layouts.copyright"), copyright_path, :class => header_nav_link_class(copyright_path) %>
58       </li>
59       <li class="nav-item">
60         <%= link_to t("layouts.help"), help_path, :class => header_nav_link_class(help_path) %>
61       </li>
62       <li class="nav-item">
63         <%= link_to t("layouts.about"), about_path, :class => header_nav_link_class(about_path) %>
64       </li>
65       <li id="compact-secondary-nav" class="dropdown nav-item ms-auto">
66         <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>
67         <ul class="dropdown-menu">
68         </ul>
69       </li>
70     </ul>
71
72     <%= render "layouts/select_language_button", :extra_classes => ["d-none d-md-block", { "border-secondary-subtle" => current_user&.id }] %>
73     <% if current_user && current_user.id %>
74       <div class='d-inline-flex dropdown user-menu logged-in'>
75         <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'>
76           <%= user_thumbnail_tiny(current_user, :class => "user_thumbnail_tiny rounded-1 bg-body") %>
77           <% if current_user.new_messages.size > 0 %>
78             <span class="badge count-number position-static m-1"><%= current_user.new_messages.size %></span>
79           <% end %>
80           <span class='username align-middle text-truncate' dir='auto'>
81             <%= current_user.display_name_was %>
82           </span>
83         </button>
84         <div class='dropdown-menu dropdown-menu-end'>
85           <%= link_to t("users.show.my_dashboard"), dashboard_path, :class => "dropdown-item" %>
86           <%= link_to messages_inbox_path, :class => "dropdown-item" do %>
87             <%= t("users.show.my messages") %>
88             <span class='badge count-number'><%= number_with_delimiter(current_user.new_messages.size) %></span>
89           <% end %>
90           <%= link_to t("users.show.my profile"), current_user, :class => "dropdown-item" %>
91           <%= link_to t("users.show.my_account"), account_path, :class => "dropdown-item" %>
92           <%= link_to t("users.show.my_preferences"), basic_preferences_path, :class => "dropdown-item" %>
93           <div class="dropdown-divider"></div>
94           <% if current_user.home_location? %>
95             <%= link_to t("layouts.home"), account_home_path, :class => "dropdown-item" %>
96           <% end %>
97           <%= link_to t("layouts.logout"), logout_path(:referer => request.fullpath), :method => "post", :class => "geolink dropdown-item" %>
98         </div>
99       </div>
100     <% else %>
101       <div class="d-inline-flex btn-group login-menu" role="">
102         <%= link_to t("layouts.log_in"), login_path(:referer => request.fullpath), :class => "geolink btn btn-outline-secondary" %>
103         <%= link_to t("layouts.sign_up"), new_user_path, :class => "btn btn-outline-secondary" %>
104       </div>
105     <% end %>
106   </nav>
107 </header>
108
109 <div class="modal fade" id="select_language_dialog" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="select_language_dialog_label" aria-hidden="true">
110   <div class="modal-dialog modal-lg modal-dialog-scrollable">
111     <div class="modal-content">
112       <div class="modal-header">
113         <h1 class="modal-title fs-5" id="select_language_dialog_label"><%= t ".select_language" %></h1>
114         <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="<%= t "javascripts.close" %>"></button>
115       </div>
116       <div class="modal-body px-1">
117         <% if current_user&.id %>
118           <%= form_tag basic_preferences_path, :method => "PUT" do %>
119             <%= hidden_field_tag "referer", request.fullpath %>
120             <%= hidden_field_tag "language", I18n.locale %>
121             <%= render "layouts/select_language_list" %>
122           <% end %>
123         <% else %>
124           <%= render "layouts/select_language_list" %>
125         <% end %>
126       </div>
127     </div>
128   </div>
129 </div>