var noteLayer = map.noteLayer,
content = $('#sidebar_content'),
page = {},
- marker;
+ noteState = map.hasLayer(noteLayer),
+ halo;
var noteIcons = {
"new": L.icon({
marker = noteLayer.getLayer(marker);
if (feature.properties.status == "hidden") {
noteLayer.removeLayer(marker);
- } else {
+ } else if (marker) {
marker.setIcon(noteIcons[feature.properties.status]);
- page.load();
}
+ OSM.loadSidebarContent(window.location.pathname, page.load);
}
});
}
- function bind() {
+ page.pushstate = page.popstate = function (path) {
+ OSM.loadSidebarContent(path, page.load);
+ };
+
+ page.load = function () {
content.find("input[type=submit]").on("click", function (e) {
e.preventDefault();
var data = $(e.target).data();
});
content.find("textarea").val('').trigger("input");
- }
- page.pushstate = page.popstate = function () {
- page.load();
- };
+ var data = $('.details').data();
+ if (!noteState) map.addLayer(noteLayer);
+ if (!window.location.hash) {
+ var coords = data.coordinates.split(',');
+ OSM.route.moveListenerOff();
+ map.once('moveend', OSM.route.moveListenerOn);
- page.load = function () {
- var loadTimer = setTimeout(setLoading, 250);
- $('#sidebar_content').load(window.location.pathname + "?xhr=1", function (a, b, xhr) {
- if (xhr.getResponseHeader('X-Page-Title')) {
- document.title = xhr.getResponseHeader('X-Page-Title');
- }
- bind();
- clearTimeout(loadTimer);
- clearLoading();
+ map.getZoom() > 15 ? map.panTo(coords) : map.setView(coords, 16);
+ }
- if (!map.hasLayer(noteLayer)) map.addLayer(noteLayer);
- if (window.location.hash == "") map.panTo($('.details').data().coordinates.split(','));
- });
+ if (!map.hasLayer(halo)) {
+ halo = L.circleMarker(data.coordinates.split(','), {
+ weight: 2.5,
+ radius: 20,
+ fillOpacity: 0.5,
+ color: "#FF6200"
+ });
+ map.addLayer(halo);
+ }
};
page.unload = function () {
- if (marker) map.removeLayer(marker);
+ if (map.hasLayer(halo)) map.removeLayer(halo);
+ if (!noteState) map.removeLayer(noteLayer);
};
- function setLoading() {
- if ($('#browse_status').is(':empty')) {
- $('#browse_status').append($('<p></p>').text(I18n.t('browse.start_rjs.loading')));
- }
- }
-
- function clearLoading() {
- $('#browse_status').empty();
- }
-
return page;
};