]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/layouts/_header.html.erb
Remove simulating clicks on <a> when <li> is clicked
[rails.git] / app / views / layouts / _header.html.erb
index c4f2ebad6d563e04b9397eff14e85d627fad5056..9f3d01b02590d1ac1655f4acd43069e38dc212c6 100644 (file)
-<header>
-  <h1>
-    <a href="<% root_path %>" class="geolink llz layers">
-      <%= image_tag "osm_logo.png", :alt => t('layouts.logo.alt_text'), :class => 'logo' %>
-      <%= t 'layouts.project_name.h1' %>
+<header class="d-flex bg-body text-nowrap closed z-3">
+  <h1 class="m-0 fw-semibold">
+    <a href="<%= root_path %>" class="text-body-emphasis 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>
   </h1>
+  <a href="#" id="menu-icon"></a>
   <nav class='primary'>
   <nav class='primary'>
-    <ul>
-      <li id="view_tab">
-        <%= link_to t('layouts.view'), root_path, :class => 'tab geolink llz layers' %>
-      </li><li id="edit_tab" class="dropdown">
-      <%= link_to t('layouts.edit'), edit_path, :class => "tab geolink llz object",
-                  :id => 'editanchor',
-                  :data => { :editor => preferred_editor }
-      %><a class='dropdown-toggle' data-toggle='dropdown' href='#'><b class="caret"></b></a>
-      <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 llz object" %>
-          </li>
-        <% end %>
-      </ul>
-      </li><li id="history_tab">
-        <%= link_to t('layouts.history'), browse_changesets_path, :class => 'tab geolink llz' %>
-      </li><li id="export_tab">
-        <%= link_to t('layouts.export'), export_path, :class => 'tab geolink llz' %>
-      </li>
-    </ul>
+    <%= 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'>
   </nav>
   <nav class='secondary'>
-    <ul>
-      <li><%= link_to t('layouts.gps_traces'), traces_path %></li>
-      <li><%= link_to t('layouts.user_diaries'), diary_path %></li>
-      <li><%= link_to t('layouts.help'), help_path %></li>
-      <li><%= link_to t('layouts.about'), about_path %></li>
-    </ul>
-    <% if @user %>
-      <div class='dropdown user-menu'>
-        <a class='dropdown-toggle' data-toggle='dropdown' href="#">
-          <%= user_thumbnail_tiny(@user, :size => 20, :width => 20, :height => 20)
-          %><%= render :partial => 'layouts/inbox'
-        %><span class='username'><%= @user.display_name %></span>
-          <b class="caret"></b>
-        </a>
-        <ul class='dropdown-menu'>
-          <li>
-            <%= link_to inbox_path(:display_name => @user.display_name) do %>
-              <span class='count-number'><%= number_with_delimiter(@user.new_messages.size) %></span>
-              <%= t('message.inbox.my_inbox') %>
-            <% end %>
-          </li>
-          <li>
-            <%= link_to t('user.view.my profile'), user_path(:display_name => @user.display_name) %>
-          </li>
-          <li>
-            <%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %>
-          </li>
-          <li class="divider"></li>
-          <li>
-            <%= yield :greeting %>
-          </li>
-          <li>
-            <%= link_to t('layouts.logout'), logout_path(:session => request.session_options[:id], :referer => request.fullpath) %>
-          </li>
+    <ul class='mx-1 px-0'>
+      <% if Settings.status != "database_offline" && can?(:index, Issue) %>
+        <li class="compact-hide nav-item">
+          <%= link_to issues_path(:status => "open"), :class => header_nav_link_class(issues_path) do %>
+            <%= t("layouts.issues") %>
+            <%= open_issues_count %>
+          <% end -%>
+        </li>
+      <% end %>
+      <li class="compact-hide nav-item">
+        <%= link_to t("layouts.gps_traces"), traces_path, :class => header_nav_link_class(traces_path) %>
+      </li>
+      <li class="compact-hide nav-item">
+        <%= link_to t("layouts.user_diaries"), diary_entries_path, :class => header_nav_link_class(diary_entries_path) %>
+      </li>
+      <li class="compact-hide nav-item">
+        <%= link_to t("layouts.communities"), communities_path, :class => header_nav_link_class(communities_path) %>
+      </li>
+      <li class="compact-hide nav-item">
+        <%= link_to t("layouts.copyright"), copyright_path, :class => header_nav_link_class(copyright_path) %>
+      </li>
+      <li class="compact-hide nav-item">
+        <%= link_to t("layouts.help"), help_path, :class => header_nav_link_class(help_path) %>
+      </li>
+      <li class="compact-hide nav-item">
+        <%= link_to t("layouts.about"), about_path, :class => header_nav_link_class(about_path) %>
+      </li>
+      <li id="compact-secondary-nav" class="dropdown nav-item">
+        <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>
+        <ul class="dropdown-menu">
+          <% if Settings.status != "database_offline" && can?(:index, Issue) %>
+            <li>
+              <%= link_to issues_path(:status => "open"), :class => "dropdown-item" do %>
+                <%= t("layouts.issues") %>
+                <%= open_issues_count %>
+              <% end -%>
+            </li>
+          <% end %>
+          <li><%= link_to t("layouts.gps_traces"), traces_path, :class => "dropdown-item" %></li>
+          <li><%= link_to t("layouts.user_diaries"), diary_entries_path, :class => "dropdown-item" %></li>
+          <li><%= link_to t("layouts.communities"), communities_path, :class => "dropdown-item" %></li>
+          <li><%= link_to t("layouts.copyright"), copyright_path, :class => "dropdown-item" %></li>
+          <li><%= link_to t("layouts.help"), help_path, :class => "dropdown-item" %></li>
+          <li><%= link_to t("layouts.about"), about_path, :class => "dropdown-item" %></li>
         </ul>
         </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-secondary-subtle bg-body 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 bg-body") %>
+          <%= 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>
     <% else %>
-      <ul class="user-menu">
-        <li><%= link_to t('layouts.log_in'), login_path(:referer => request.fullpath) %></li>
-        <li><%= link_to t('layouts.sign_up'), user_new_path %></li>
-      </ul>
+      <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>
     <% end %>
   </nav>
 </header>