Merge remote-tracking branch 'upstream/pull/5471'
This commit is contained in:
commit
6e444155d6
5 changed files with 48 additions and 37 deletions
|
@ -1,30 +1,26 @@
|
||||||
OSM.Changeset = function (map) {
|
OSM.Changeset = function (map) {
|
||||||
var page = {},
|
var page = {},
|
||||||
content = $("#sidebar_content"),
|
content = $("#sidebar_content");
|
||||||
currentChangesetId;
|
|
||||||
|
|
||||||
page.pushstate = page.popstate = function (path, id) {
|
page.pushstate = page.popstate = function (path) {
|
||||||
OSM.loadSidebarContent(path, function () {
|
OSM.loadSidebarContent(path, function () {
|
||||||
page.load(path, id);
|
page.load();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
page.load = function (path, id) {
|
page.load = function () {
|
||||||
if (id) currentChangesetId = id;
|
const changesetData = content.find("[data-changeset]").data("changeset");
|
||||||
initialize();
|
changesetData.type = "changeset";
|
||||||
addChangeset(currentChangesetId, true);
|
|
||||||
};
|
|
||||||
|
|
||||||
function addChangeset(id, center) {
|
initialize();
|
||||||
map.addObject({ type: "changeset", id: parseInt(id, 10) }, function (bounds) {
|
map.addObject(changesetData, function (bounds) {
|
||||||
if (!window.location.hash && bounds.isValid() &&
|
if (!window.location.hash && bounds.isValid()) {
|
||||||
(center || !map.getBounds().contains(bounds))) {
|
|
||||||
OSM.router.withoutMoveListener(function () {
|
OSM.router.withoutMoveListener(function () {
|
||||||
map.fitBounds(bounds);
|
map.fitBounds(bounds);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
function updateChangeset(method, url, include_data) {
|
function updateChangeset(method, url, include_data) {
|
||||||
var data;
|
var data;
|
||||||
|
|
|
@ -267,7 +267,7 @@ L.OSM.Map = L.Map.extend({
|
||||||
|
|
||||||
this.removeObject();
|
this.removeObject();
|
||||||
|
|
||||||
if (object.type === "note") {
|
if (object.type === "note" || object.type === "changeset") {
|
||||||
this._objectLoader = {
|
this._objectLoader = {
|
||||||
abort: function () {}
|
abort: function () {}
|
||||||
};
|
};
|
||||||
|
@ -275,18 +275,27 @@ L.OSM.Map = L.Map.extend({
|
||||||
this._object = object;
|
this._object = object;
|
||||||
this._objectLayer = L.featureGroup().addTo(this);
|
this._objectLayer = L.featureGroup().addTo(this);
|
||||||
|
|
||||||
L.circleMarker(object.latLng, haloStyle).addTo(this._objectLayer);
|
if (object.type === "note") {
|
||||||
|
L.circleMarker(object.latLng, haloStyle).addTo(this._objectLayer);
|
||||||
|
|
||||||
if (object.icon) {
|
if (object.icon) {
|
||||||
L.marker(object.latLng, {
|
L.marker(object.latLng, {
|
||||||
icon: object.icon,
|
icon: object.icon,
|
||||||
opacity: 1,
|
opacity: 1,
|
||||||
interactive: true
|
interactive: true
|
||||||
}).addTo(this._objectLayer);
|
}).addTo(this._objectLayer);
|
||||||
|
}
|
||||||
|
} else if (object.type === "changeset") {
|
||||||
|
if (object.bbox) {
|
||||||
|
L.rectangle([
|
||||||
|
[object.bbox.minlat, object.bbox.minlon],
|
||||||
|
[object.bbox.maxlat, object.bbox.maxlon]
|
||||||
|
], changesetStyle).addTo(this._objectLayer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (callback) callback(this._objectLayer.getBounds());
|
if (callback) callback(this._objectLayer.getBounds());
|
||||||
} else { // element or changeset handled by L.OSM.DataLayer
|
} else { // element handled by L.OSM.DataLayer
|
||||||
var map = this;
|
var map = this;
|
||||||
this._objectLoader = $.ajax({
|
this._objectLoader = $.ajax({
|
||||||
url: OSM.apiUrl(object),
|
url: OSM.apiUrl(object),
|
||||||
|
|
|
@ -41,4 +41,20 @@ module ChangesetsHelper
|
||||||
t "changesets.index.title"
|
t "changesets.index.title"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def changeset_data(changeset)
|
||||||
|
changeset_data = { :id => changeset.id }
|
||||||
|
|
||||||
|
if changeset.bbox_valid?
|
||||||
|
bbox = changeset.bbox.to_unscaled
|
||||||
|
changeset_data[:bbox] = {
|
||||||
|
:minlon => bbox.min_lon,
|
||||||
|
:minlat => bbox.min_lat,
|
||||||
|
:maxlon => bbox.max_lon,
|
||||||
|
:maxlat => bbox.max_lat
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
changeset_data
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,16 +1,4 @@
|
||||||
<% changeset_data = { :id => changeset.id }
|
<%= tag.li :id => "changeset_#{changeset.id}", :data => { :changeset => changeset_data(changeset) }, :class => "list-group-item list-group-item-action" do %>
|
||||||
|
|
||||||
if changeset.bbox_valid?
|
|
||||||
bbox = changeset.bbox.to_unscaled
|
|
||||||
changeset_data[:bbox] = {
|
|
||||||
:minlon => bbox.min_lon,
|
|
||||||
:minlat => bbox.min_lat,
|
|
||||||
:maxlon => bbox.max_lon,
|
|
||||||
:maxlat => bbox.max_lat
|
|
||||||
}
|
|
||||||
end %>
|
|
||||||
|
|
||||||
<%= tag.li :id => "changeset_#{changeset.id}", :data => { :changeset => changeset_data }, :class => "list-group-item list-group-item-action" do %>
|
|
||||||
<p class="fs-6 text-truncate text-wrap">
|
<p class="fs-6 text-truncate text-wrap">
|
||||||
<a class="changeset_id link-body-emphasis stretched-link" href="<%= changeset_path(changeset) %>">
|
<a class="changeset_id link-body-emphasis stretched-link" href="<%= changeset_path(changeset) %>">
|
||||||
<span><%= changeset.tags["comment"].to_s.presence || t("browse.no_comment") %></span>
|
<span><%= changeset.tags["comment"].to_s.presence || t("browse.no_comment") %></span>
|
||||||
|
|
|
@ -6,7 +6,9 @@
|
||||||
<p class="fs-6 overflow-x-auto">
|
<p class="fs-6 overflow-x-auto">
|
||||||
<%= linkify(@changeset.tags["comment"].to_s.presence || t("browse.no_comment")) %>
|
<%= linkify(@changeset.tags["comment"].to_s.presence || t("browse.no_comment")) %>
|
||||||
</p>
|
</p>
|
||||||
<p class="details"><%= changeset_details(@changeset) %></p>
|
<%= tag.p :class => "details", :data => { :changeset => changeset_data(@changeset) } do %>
|
||||||
|
<%= changeset_details(@changeset) %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<%= render :partial => "browse/tag_details", :object => @changeset.tags.except("comment") %>
|
<%= render :partial => "browse/tag_details", :object => @changeset.tags.except("comment") %>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue