Fixed individual note marker implementation, closes #78
- Removed forced noteLayer view, now respects current selection just like an other browse page. - Made marker replacement it’s own thing, seperate from noteLayer. - Reduced opacity on noteLayer notes, it makes the selected note stand out more
This commit is contained in:
parent
b5825b2f64
commit
5384ee236c
2 changed files with 14 additions and 15 deletions
|
@ -2,8 +2,7 @@ OSM.Note = function (map) {
|
||||||
var noteLayer = map.noteLayer,
|
var noteLayer = map.noteLayer,
|
||||||
content = $('#sidebar_content'),
|
content = $('#sidebar_content'),
|
||||||
page = {},
|
page = {},
|
||||||
noteState = map.hasLayer(noteLayer),
|
halo, currentNote;
|
||||||
halo;
|
|
||||||
|
|
||||||
var noteIcons = {
|
var noteIcons = {
|
||||||
"new": L.icon({
|
"new": L.icon({
|
||||||
|
@ -23,7 +22,7 @@ OSM.Note = function (map) {
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
function updateNote(marker, form, method, url) {
|
function updateNote(form, method, url) {
|
||||||
$(form).find("input[type=submit]").prop("disabled", true);
|
$(form).find("input[type=submit]").prop("disabled", true);
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
@ -31,13 +30,7 @@ OSM.Note = function (map) {
|
||||||
type: method,
|
type: method,
|
||||||
oauth: true,
|
oauth: true,
|
||||||
data: {text: $(form.text).val()},
|
data: {text: $(form.text).val()},
|
||||||
success: function (feature) {
|
success: function () {
|
||||||
marker = noteLayer.getLayer(marker);
|
|
||||||
if (feature.properties.status == "hidden") {
|
|
||||||
noteLayer.removeLayer(marker);
|
|
||||||
} else if (marker) {
|
|
||||||
marker.setIcon(noteIcons[feature.properties.status]);
|
|
||||||
}
|
|
||||||
OSM.loadSidebarContent(window.location.pathname, page.load);
|
OSM.loadSidebarContent(window.location.pathname, page.load);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -51,7 +44,7 @@ OSM.Note = function (map) {
|
||||||
content.find("input[type=submit]").on("click", function (e) {
|
content.find("input[type=submit]").on("click", function (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var data = $(e.target).data();
|
var data = $(e.target).data();
|
||||||
updateNote(data.noteId, e.target.form, data.method, data.url);
|
updateNote(e.target.form, data.method, data.url);
|
||||||
});
|
});
|
||||||
|
|
||||||
content.find("textarea").on("input", function (e) {
|
content.find("textarea").on("input", function (e) {
|
||||||
|
@ -69,12 +62,10 @@ OSM.Note = function (map) {
|
||||||
content.find("textarea").val('').trigger("input");
|
content.find("textarea").val('').trigger("input");
|
||||||
|
|
||||||
var data = $('.details').data();
|
var data = $('.details').data();
|
||||||
if (!noteState) map.addLayer(noteLayer);
|
|
||||||
if (!window.location.hash) {
|
if (!window.location.hash) {
|
||||||
var coords = data.coordinates.split(',');
|
var coords = data.coordinates.split(',');
|
||||||
OSM.route.moveListenerOff();
|
OSM.route.moveListenerOff();
|
||||||
map.once('moveend', OSM.route.moveListenerOn);
|
map.once('moveend', OSM.route.moveListenerOn);
|
||||||
|
|
||||||
map.getZoom() > 15 ? map.panTo(coords) : map.setView(coords, 16);
|
map.getZoom() > 15 ? map.panTo(coords) : map.setView(coords, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,11 +78,19 @@ OSM.Note = function (map) {
|
||||||
});
|
});
|
||||||
map.addLayer(halo);
|
map.addLayer(halo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (map.hasLayer(currentNote)) map.removeLayer(currentNote);
|
||||||
|
currentNote = L.marker(data.coordinates.split(','), {
|
||||||
|
icon: noteIcons[data.status],
|
||||||
|
opacity: 1,
|
||||||
|
clickable: true
|
||||||
|
});
|
||||||
|
map.addLayer(currentNote);
|
||||||
};
|
};
|
||||||
|
|
||||||
page.unload = function () {
|
page.unload = function () {
|
||||||
if (map.hasLayer(halo)) map.removeLayer(halo);
|
if (map.hasLayer(halo)) map.removeLayer(halo);
|
||||||
if (!noteState) map.removeLayer(noteLayer);
|
if (map.hasLayer(currentNote)) map.removeLayer(currentNote);
|
||||||
};
|
};
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
|
|
|
@ -43,7 +43,7 @@ function initializeNotes(map) {
|
||||||
} else {
|
} else {
|
||||||
marker = L.marker(feature.geometry.coordinates.reverse(), {
|
marker = L.marker(feature.geometry.coordinates.reverse(), {
|
||||||
icon: noteIcons[feature.properties.status],
|
icon: noteIcons[feature.properties.status],
|
||||||
opacity: 0.9,
|
opacity: 0.8,
|
||||||
clickable: true
|
clickable: true
|
||||||
});
|
});
|
||||||
marker.id = feature.properties.id;
|
marker.id = feature.properties.id;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue