From: John Firebaugh Date: Thu, 29 Nov 2012 15:30:38 +0000 (-0800) Subject: Move "Browse Map Data" to layers control X-Git-Tag: live~5158 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/05eba790089d8e70d3061cb07f6d40720aee6010?ds=sidebyside Move "Browse Map Data" to layers control Fixes https://trac.openstreetmap.org/ticket/4680 --- diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index 8afd3269d..c908f1e34 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -1,3 +1,4 @@ +//= require_self //= require index/browse //= require index/export //= require index/key diff --git a/app/assets/javascripts/index/browse.js b/app/assets/javascripts/index/browse.js index 6371f559b..e7788be18 100644 --- a/app/assets/javascripts/index/browse.js +++ b/app/assets/javascripts/index/browse.js @@ -3,11 +3,45 @@ //= require templates/browse/feature_history $(document).ready(function () { - $("#show_data").click(function (e) { - $.ajax({ url: $(this).attr('href'), success: function (sidebarHtml) { - startBrowse(sidebarHtml); - }}); - e.preventDefault(); + var areasHidden = false; + + var dataLayer = new L.OSM.DataLayer(null, { + styles: { + way: { + weight: 3, + color: "#000000", + opacity: 0.4 + }, + area: { + weight: 3, + color: "#ff0000" + }, + node: { + color: "#00ff00" + } + } + }); + + dataLayer.isWayArea = function () { + return !areasHidden && L.OSM.DataLayer.prototype.isWayArea.apply(this, arguments); + }; + + if (OSM.STATUS != 'api_offline' && OSM.STATUS != 'database_offline') { + map.layersControl.addOverlay(dataLayer, I18n.t("browse.start_rjs.data_layer_name")); + } + + map.on('layeradd', function (e) { + if (e.layer === dataLayer) { + $.ajax({ url: "/browse/start", success: function (sidebarHtml) { + startBrowse(sidebarHtml); + }}); + } + }); + + map.on('layerremove', function (e) { + if (e.layer === dataLayer) { + closeSidebar(); + } }); function startBrowse(sidebarHtml) { @@ -15,30 +49,6 @@ $(document).ready(function () { var layersById; var selectedLayer; var browseObjectList; - var areasHidden = false; - - var dataLayer = new L.OSM.DataLayer(null, { - styles: { - way: { - weight: 3, - color: "#000000", - opacity: 0.4 - }, - area: { - weight: 3, - color: "#ff0000" - }, - node: { - color: "#00ff00" - } - } - }); - - dataLayer.addTo(map); - - dataLayer.isWayArea = function () { - return !areasHidden && L.OSM.DataLayer.prototype.isWayArea.apply(this, arguments); - }; var locationFilter = new L.LocationFilter({ enableButton: false, diff --git a/app/assets/javascripts/map.js.erb b/app/assets/javascripts/map.js.erb index 9df9ca2d9..291633f53 100644 --- a/app/assets/javascripts/map.js.erb +++ b/app/assets/javascripts/map.js.erb @@ -95,6 +95,7 @@ function createMap(divName, options) { if (options.layerControl) { layersControl.addTo(map); + map.layersControl = layersControl; } for (var i = 0; i < layers.length; i++) { diff --git a/app/assets/javascripts/osm.js.erb b/app/assets/javascripts/osm.js.erb index 39d995c46..f3c1c3607 100644 --- a/app/assets/javascripts/osm.js.erb +++ b/app/assets/javascripts/osm.js.erb @@ -7,6 +7,7 @@ OSM = { MAX_REQUEST_AREA: <%= MAX_REQUEST_AREA.to_json %>, SERVER_URL: <%= SERVER_URL.to_json %>, API_VERSION: <%= API_VERSION.to_json %>, + STATUS: <%= STATUS.to_json %>, apiUrl: function (object) { var url = "/api/" + OSM.API_VERSION + "/" + object.type + "/" + object.id; diff --git a/app/assets/javascripts/sidebar.js b/app/assets/javascripts/sidebar.js index a5d906980..00ec299a1 100644 --- a/app/assets/javascripts/sidebar.js +++ b/app/assets/javascripts/sidebar.js @@ -13,12 +13,15 @@ function openSidebar(options) { $("#sidebar").trigger("opened"); }; -$(document).ready(function () { - $(".sidebar_close").click(function (e) { - $("#sidebar").css("display", "none"); +function closeSidebar() { + $("#sidebar").css("display", "none"); - $("#sidebar").trigger("closed"); + $("#sidebar").trigger("closed"); +} +$(document).ready(function () { + $(".sidebar_close").click(function (e) { + closeSidebar(); e.preventDefault(); }); }); diff --git a/app/views/site/index.html.erb b/app/views/site/index.html.erb index 43485b27f..88bf49073 100644 --- a/app/views/site/index.html.erb +++ b/app/views/site/index.html.erb @@ -2,12 +2,6 @@ <%= javascript_include_tag "index" %> <% end %> -<% unless STATUS == :api_offline or STATUS == :database_offline -%> - <% content_for :editmenu do -%> -
  • <%= link_to t("browse.start_rjs.data_layer_name"), { :controller => :browse, :action => :start }, :id => "show_data" %>
  • - <% end -%> -<% end -%> - <% content_for :left_menu do %>
  • <%= link_to t("site.key.map_key"), {:action => :key}, :id => "open_map_key", :title => t("site.key.map_key_tooltip") %>

  • <% end %>