From: Tom Hughes Date: Wed, 11 Apr 2012 18:19:21 +0000 (+0100) Subject: Fix some issues with the new edit menu code X-Git-Tag: live~6113 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/e2cb47f1ae6c1053ba772ca488a32fab114f2cfd Fix some issues with the new edit menu code Make sure that the arrow icons are always displayed, and that menus are aligned in the requested way. --- diff --git a/app/assets/javascripts/menu.js b/app/assets/javascripts/menu.js index 5e2d9d97a..595b15398 100644 --- a/app/assets/javascripts/menu.js +++ b/app/assets/javascripts/menu.js @@ -23,25 +23,25 @@ function openMenu(anchor, menu, align) { * Setup a menu, triggered by hovering over an anchor for a given time. */ function createMenu(anchorid, menuid, align) { - var $anchor = $("#" + anchorid), - $arrow = $("#" + anchorid + ' .arrow'), - $menu = $("#" + menuid), - $page = $(':not(#' + menuid + ', #' + anchorid + ')'); + var $anchor = $("#" + anchorid); + var $arrow = $("#" + anchorid + " .menuicon"); + var $menu = $("#" + menuid); + var $page = $(":not(#" + menuid + ", #" + anchorid + ")"); function hide() { $menu.hide(); - $page.unbind('click', hide); + $page.off("click", hide); } $arrow.click(function(e) { - e.stopPropagation(); - e.preventDefault(); - if ($menu.is(':visible')) { - $menu.hide(); - $page.unbind('click', hide); - } else { - openMenu($anchor, $menu.show(), 'left'); - $page.bind('click', hide); - } + e.stopPropagation(); + e.preventDefault(); + if ($menu.is(":visible")) { + $menu.hide(); + $page.off("click", hide); + } else { + openMenu($anchor, $menu.show(), align); + $page.on("click", hide); + } }); } diff --git a/app/assets/stylesheets/common.css.scss b/app/assets/stylesheets/common.css.scss index 825d8719e..294d648c2 100644 --- a/app/assets/stylesheets/common.css.scss +++ b/app/assets/stylesheets/common.css.scss @@ -366,7 +366,7 @@ h2 { /* Rules for edit menu */ -.arrow { +.menuicon { padding: 5px; &:hover { @@ -381,17 +381,17 @@ h2 { position: absolute; background-color: #ffffff; border: 1px solid #cccccc; - border-top: 0; + border-top: 0px; } .menu ul { - margin: 0; - padding: 0; + margin: 0px; + padding: 0px; } .menu li { padding: 2px 5px; - margin: 0; + margin: 0px; list-style-type: none; border-top: 1px solid #eee; white-space: nowrap; diff --git a/app/assets/stylesheets/ltr.css.scss b/app/assets/stylesheets/ltr.css.scss index 7e30d18ec..84adc8e72 100644 --- a/app/assets/stylesheets/ltr.css.scss +++ b/app/assets/stylesheets/ltr.css.scss @@ -80,7 +80,7 @@ html body { /* Rules for edit menu */ -.arrow { +.menuicon { margin-left: 10px; border-left: 1px solid #eee; } diff --git a/app/assets/stylesheets/rtl.css.scss b/app/assets/stylesheets/rtl.css.scss index 9b3ebe288..ae142f9ae 100644 --- a/app/assets/stylesheets/rtl.css.scss +++ b/app/assets/stylesheets/rtl.css.scss @@ -80,7 +80,7 @@ html body { /* Rules for edit menu */ -.arrow { +.menuicon { margin-right: 10px; border-right: 1px solid #eee; } diff --git a/app/views/browse/_map.html.erb b/app/views/browse/_map.html.erb index 88619c8e5..2c29a0d00 100644 --- a/app/views/browse/_map.html.erb +++ b/app/views/browse/_map.html.erb @@ -11,12 +11,12 @@ <%= t 'browse.map.loading' %> <%= link_to(t("browse.map.larger.area"), { :controller => :site, :action => :index, :box => "yes" }, { :id => "area_larger_map", :class => "geolink bbox" }) %>
- <%= link_to(h(t("browse.map.edit.area")) + ''.html_safe, { :controller => :site, :action => :edit }, { :id => "area_edit", :class => "geolink bbox" }) %> + <%= link_to(h(t("browse.map.edit.area")) + content_tag(:span, "▾", :class => "menuicon"), { :controller => :site, :action => :edit }, { :id => "area_edit", :class => "geolink bbox" }) %> <% unless map.instance_of? Changeset %>
- <%= link_to("", { :controller => :site, :action => :index }, { :id => "object_larger_map", :class => "geolink object" }) %> + <%= link_to(t("browse.map.larger." + map.class.to_s.downcase), { :controller => :site, :action => :index }, { :id => "object_larger_map", :class => "geolink object" }) %>
- <%= link_to(h("") + ''.html_safe, { :controller => :site, :action => :edit }, { :id => "object_edit", :class => "geolink object" }) %> + <%= link_to(h(t("browse.map.edit." + map.class.to_s.downcase)) + content_tag(:span, "▾", :class => "menuicon"), { :controller => :site, :action => :edit }, { :id => "object_edit", :class => "geolink object" }) %> <% end %> <% else %> <%= t 'browse.map.deleted' %> @@ -110,6 +110,9 @@ url += "/" + previous_version; } + $("#object_larger_map").hide(); + $("#object_edit").hide(); + addObjectToMap(url, true, function(extent) { $("#loading").hide(); $("#browse_map .geolink").show(); @@ -129,7 +132,6 @@ }); <% end -%> - <% unless map.instance_of? Changeset -%> $("#remote_object_edit").click(function (event) { return remoteEditHandler(event, extent, "<%= map.class.to_s.downcase + map.id.to_s %>"); }); @@ -140,9 +142,8 @@ }); <% end -%> - $("#object_larger_map").html("<%=j t('browse.map.larger.' + map.class.to_s.downcase) %>"); - $("#object_edit").html("<%=j t('browse.map.edit.' + map.class.to_s.downcase) %>"); - <% end -%> + $("#object_larger_map").show(); + $("#object_edit").show(); updatelinks(centre.lon, centre.lat, 16, null, extent.left, extent.bottom, extent.right, extent.top, "<%= map.class.to_s.downcase %>", <%= map.id %>); } else { diff --git a/app/views/layouts/site.html.erb b/app/views/layouts/site.html.erb index 67994bc06..41af1d2b6 100644 --- a/app/views/layouts/site.html.erb +++ b/app/views/layouts/site.html.erb @@ -37,7 +37,7 @@ exportclass += ' active' if params['controller'] == 'site' and params['action'] == 'export' %>
  • <%= link_to t('layouts.view'), {:controller => 'site', :action => 'index'}, {:id => 'viewanchor', :title => t('layouts.view_tooltip'), :class => viewclass} %>
  • -
  • <%= link_to h(t('layouts.edit')) + ''.html_safe, {:controller => 'site', :action => 'edit'}, {:id => 'editanchor', :title => t('javascripts.site.edit_tooltip'), :class => editclass} %>
  • +
  • <%= link_to h(t('layouts.edit')) + content_tag(:span, "▾", :class => "menuicon"), {:controller => 'site', :action => 'edit'}, {:id => 'editanchor', :title => t('javascripts.site.edit_tooltip'), :class => editclass} %>
  • <%= link_to t('layouts.history'), {:controller => 'changeset', :action => 'list' }, {:id => 'historyanchor', :title => t('javascripts.site.history_tooltip'), :class => historyclass} %>
  • <%= link_to t('layouts.export'), {:controller => 'site', :action => 'export'}, {:id => 'exportanchor', :title => t('layouts.export_tooltip'), :class => exportclass} %>