From 7bcea3839da07f01258157ad204cd5b1fd4c76d8 Mon Sep 17 00:00:00 2001 From: Tom MacWright Date: Mon, 10 Jun 2013 14:38:08 -0700 Subject: [PATCH] Even more map ui js refactor --- app/assets/javascripts/application.js | 44 +++++++++++++++++---------- app/assets/javascripts/browse.js | 11 ++----- app/assets/javascripts/index.js | 9 +----- app/views/site/_potlatch2.html.erb | 2 +- app/views/site/id.html.erb | 8 ++--- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 7e9584d09..a984a23f9 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -27,22 +27,30 @@ function zoomPrecision(zoom) { }; } +function normalBounds(bounds) { + if (bounds instanceof L.LatLngBounds) return bounds; + return new L.LatLngBounds( + new L.LatLng(bounds[0][0], bounds[0][1]), + new L.LatLng(bounds[1][0], bounds[1][1])); +} + /* - * Called as the user scrolls/zooms around to aniplate hrefs of the + * Called as the user scrolls/zooms around to maniplate hrefs of the * view tab and various other links */ -function updatelinks(loc, zoom, layers, minlon, minlat, maxlon, maxlat, object) { +function updatelinks(loc, zoom, layers, bounds, object) { var toPrecision = zoomPrecision(zoom); + bounds = normalBounds(bounds); var node; var lat = toPrecision(loc.lat), lon = toPrecision(loc.lon || loc.lng); - if (minlon) { - minlon = toPrecision(minlon); - minlat = toPrecision(minlat); - maxlon = toPrecision(maxlon); - maxlat = toPrecision(maxlat); + if (bounds) { + var minlon = toPrecision(bounds.getWest()), + minlat = toPrecision(bounds.getSouth()), + maxlon = toPrecision(bounds.getEast()), + maxlat = toPrecision(bounds.getNorth()); } $(".geolink").each(setGeolink); @@ -52,11 +60,15 @@ function updatelinks(loc, zoom, layers, minlon, minlat, maxlon, maxlat, object) var args = getArgs(link.href); if ($(link).hasClass("llz")) { - args.lat = lat; - args.lon = lon; - args.zoom = zoom; + $.extend(args, { + lat: lat, + lon: lon, + zoom: zoom + }); } else if (minlon && $(link).hasClass("bbox")) { - args.bbox = minlon + "," + minlat + "," + maxlon + "," + maxlat; + $.extend(args, { + bbox: minlon + "," + minlat + "," + maxlon + "," + maxlat + }); } if (layers && $(link).hasClass("layers")) { @@ -86,9 +98,6 @@ function updatelinks(loc, zoom, layers, minlon, minlat, maxlon, maxlat, object) link.href = setArgs(link.href, args); } - function minZoomAlert() { - alert(I18n.t("javascripts.site." + name + "_zoom_alert")); return false; - } function setShortlink() { var args = getArgs(this.href); @@ -103,8 +112,7 @@ function updatelinks(loc, zoom, layers, minlon, minlat, maxlon, maxlat, object) // This is a hack to omit the default mapnik layer from the shortlink. if (layers && layers != "M") { args.layers = layers; - } - else { + } else { delete args.layers; } @@ -120,6 +128,10 @@ function updatelinks(loc, zoom, layers, minlon, minlat, maxlon, maxlat, object) } } +function minZoomAlert() { + alert(I18n.t("javascripts.site." + name + "_zoom_alert")); return false; +} + /* * Get the URL prefix to use for a short link */ diff --git a/app/assets/javascripts/browse.js b/app/assets/javascripts/browse.js index 02b54a8ed..e21cbd672 100644 --- a/app/assets/javascripts/browse.js +++ b/app/assets/javascripts/browse.js @@ -54,7 +54,8 @@ $(document).ready(function () { return remoteEditHandler(bbox); }); - updatelinks(map.getCenter(), 16, null, params.minlon, params.minlat, params.maxlon, params.maxlat); + updatelinks(map.getCenter(), 16, null, [[params.minlat, params.minlon], + [params.maxlat, params.maxlon]]); } else if (params.type == "note") { object = {type: params.type, id: params.id}; @@ -102,13 +103,7 @@ $(document).ready(function () { $("#object_larger_map").show(); $("#object_edit").show(); - updatelinks(map.getCenter(), - 16, null, - extent.getWest(), - extent.getSouth(), - extent.getEast(), - extent.getNorth(), - object); + updatelinks(map.getCenter(), 16, null, extent, object); } else { $("#small_map").hide(); } diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index 3edfaeeaf..48207c43d 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -114,14 +114,7 @@ $(document).ready(function () { var layers = getMapLayers(); var extents = map.getBounds().wrap(); - updatelinks(center, - zoom, - layers, - extents.getWest(), - extents.getSouth(), - extents.getEast(), - extents.getNorth(), - params.object); + updatelinks(center, zoom, layers, extents, params.object); var expiry = new Date(); expiry.setYear(expiry.getFullYear() + 10); diff --git a/app/views/site/_potlatch2.html.erb b/app/views/site/_potlatch2.html.erb index a7fa1bac6..51c9aa905 100644 --- a/app/views/site/_potlatch2.html.erb +++ b/app/views/site/_potlatch2.html.erb @@ -86,6 +86,6 @@ }); function mapMoved(lon, lat, zoom, minlon, minlat, maxlon, maxlat) { - updatelinks({ lon: lon, lat: lat }, zoom, null, minlon, minlat, maxlon, maxlat); + updatelinks({ lon: lon, lat: lat }, zoom, null, [[minlat, minlon], [maxlat, maxlon]]); } diff --git a/app/views/site/id.html.erb b/app/views/site/id.html.erb index 3db8b80be..c0682258d 100644 --- a/app/views/site/id.html.erb +++ b/app/views/site/id.html.erb @@ -42,10 +42,10 @@ }, zoom, null, - extent[0][0], - extent[0][1], - extent[1][0], - extent[1][1]); + [[extent[0][1], + extent[0][0]], + [extent[1][1], + extent[1][0]]]); }); parent.$("body").on("click", "a.set_position", function (e) { -- 2.43.2