+//= require jquery.simulate
+
OSM.History = function(map) {
var page = {};
.on("mouseout", "[data-changeset]", function () {
unHighlightChangeset($(this).data("changeset").id);
})
- .on("click", "[data-changeset]", function (e) {
- if (!$(e.target).is('a')) {
- clickChangeset($(this).data("changeset").id, e);
- }
+ .on("mousedown", "[data-changeset]", function () {
+ var moved = false;
+ $(this).one("click", function (e) {
+ if (!moved && !$(e.target).is('a')) {
+ clickChangeset($(this).data("changeset").id, e);
+ }
+ }).one("mousemove", function () {
+ moved = true;
+ });
});
var group = L.featureGroup()
}
function clickChangeset(id, e) {
- var evt, el = $("#changeset_" + id).find("a.changeset_id")[0];
- if ('createEvent' in document) {
- evt = document.createEvent('MouseEvents');
- evt.initMouseEvent('click',
- true, // canBubble
- true, // cancelable
- window, // 'AbstractView'
- e.clicks, // click count
- e.screenX, // screenX
- e.screenY, // screenY
- e.clientX, // clientX
- e.clientY, // clientY
- e.ctrlKey, // ctrl
- e.altKey, // alt
- e.shiftKey, // shift
- e.metaKey, // meta
- e.button, // mouse button
- e.relatedTarget // relatedTarget
- );
- el.dispatchEvent(evt);
- } else {
- evt = document.createEventObject();
- el.fireEvent('onclick', evt);
- }
+ $("#changeset_" + id).find("a.changeset_id").simulate("click", e);
}
- function loadData() {
+ function update() {
var data = {list: '1'};
if (window.location.pathname === '/history') {
url: window.location.pathname,
method: "GET",
data: data,
- success: function(html, status, xhr) {
+ success: function(html) {
$('#sidebar_content .changesets').html(html);
updateMap();
}
});
+
+ var feedLink = $('link[type="application/atom+xml"]'),
+ feedHref = feedLink.attr('href').split('?')[0];
+
+ feedLink.attr('href', feedHref + '?bbox=' + data.bbox);
}
function loadMore(e) {
map.addLayer(group);
if (window.location.pathname === '/history') {
- map.on("moveend", loadData)
+ map.on("moveend", update);
}
- loadData();
+ update();
};
page.unload = function() {
map.removeLayer(group);
-
- if (window.location.pathname === '/history') {
- map.off("moveend", loadData)
- }
+ map.off("moveend", update);
$("#history_tab").removeClass("current");
};