X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/c919340c1193730c29710468f8d528967914bc61..2061b5c257f9f22253f55946d43ee97d15c2c67c:/app/assets/javascripts/index/browse.js diff --git a/app/assets/javascripts/index/browse.js b/app/assets/javascripts/index/browse.js index d8de69974..7a761b500 100644 --- a/app/assets/javascripts/index/browse.js +++ b/app/assets/javascripts/index/browse.js @@ -1,15 +1,5 @@ -//= require templates/browse/feature -//= require templates/browse/feature_list -//= require templates/browse/feature_history - -function initializeBrowse(map, params) { +OSM.initializeBrowse = function (map) { var browseBounds; - var layersById; - var selectedLayer; - var browseObjectList; - var areasHidden = false; - var locationFilter; - var dataLayer = map.dataLayer; dataLayer.setStyle({ @@ -28,137 +18,55 @@ function initializeBrowse(map, params) { }); dataLayer.isWayArea = function () { - return !areasHidden && L.OSM.DataLayer.prototype.isWayArea.apply(this, arguments); + return false; }; dataLayer.on("click", function (e) { onSelect(e.layer); }); - map.on('layeradd', function (e) { + map.on("layeradd", function (e) { if (e.layer === dataLayer) { - $.ajax({ url: "/browse/start", success: function (sidebarHtml) { - startBrowse(sidebarHtml); - }}); + map.on("moveend", updateData); + updateData(); } }); - map.on('layerremove', function (e) { + map.on("layerremove", function (e) { if (e.layer === dataLayer) { - closeSidebar(); + map.off("moveend", updateData); + $("#browse_status").empty(); } }); - if (OSM.STATUS != 'api_offline' && OSM.STATUS != 'database_offline') { - if (params.layers.indexOf(dataLayer.options.code) >= 0) { - map.addLayer(dataLayer); - } - } - - function startBrowse(sidebarHtml) { - locationFilter = new L.LocationFilter({ - enableButton: false, - adjustButton: false - }).addTo(map); - - locationFilter.on("change", getData); - - $("#sidebar_title").html(I18n.t('browse.start_rjs.data_frame_title')); - $("#sidebar_content").html(sidebarHtml); - - openSidebar(); - - if (browseObjectList) loadObjectList(); - - map.on("moveend", updateData); - updateData(); - - $("#browse_filter_toggle").click(toggleFilter); - - $("#browse_hide_areas_box").html(I18n.t('browse.start_rjs.hide_areas')); - $("#browse_hide_areas_box").click(toggleAreas); - - $("#sidebar").one("closed", function () { - map.removeLayer(dataLayer); - map.removeLayer(locationFilter); - map.off("moveend", updateData); - locationFilter.off("change", getData); - }); - } - function updateData() { - if (!locationFilter.isEnabled()) { - if (map.getZoom() >= 15) { - var bounds = map.getBounds(); - if (!browseBounds || !browseBounds.contains(bounds)) { - browseBounds = bounds; - getData(); - } - } else { - setStatus(I18n.t('browse.start_rjs.zoom_or_select')); - } - } - } - - function toggleFilter() { - if (locationFilter.isEnabled()) { - $("#browse_filter_toggle").html(I18n.t('browse.start_rjs.manually_select')); - locationFilter.disable(); - } else { - $("#browse_filter_toggle").html(I18n.t('browse.start_rjs.view_data')); - locationFilter.setBounds(map.getBounds().pad(-0.2)); - locationFilter.enable(); - } - - getData(); - } - - function toggleAreas(e) { - e.preventDefault(); - - if (areasHidden) { - $("#browse_hide_areas_box").html(I18n.t('browse.start_rjs.hide_areas')); - areasHidden = false; - } else { - $("#browse_hide_areas_box").html(I18n.t('browse.start_rjs.show_areas')); - areasHidden = true; + var bounds = map.getBounds(); + if (!browseBounds || !browseBounds.contains(bounds)) { + getData(); } - - getData(); } - function displayFeatureWarning(count, limit, callback) { - clearStatus(); - - var div = document.createElement("div"); - - var p = document.createElement("p"); - p.appendChild(document.createTextNode(I18n.t("browse.start_rjs.loaded_an_area_with_num_features", { num_features: count, max_features: limit }))); - div.appendChild(p); - - var input = document.createElement("input"); - input.type = "submit"; - input.value = I18n.t('browse.start_rjs.load_data'); - input.onclick = callback; - div.appendChild(input); - - $("#browse_content").html(""); - $("#browse_content").append(div); + function displayFeatureWarning(count, limit, add, cancel) { + $("#browse_status").html( + $("
").append( + $("
").append( + $("

") + .text(I18n.t("browse.start_rjs.load_data")), + $("
").append( + $("