-$(document).ready(function () {
- var params = OSM.mapParams();
- var newNotes;
-
- function saveNewNotes(o) {
- var layer = o.object;
- newNotes = layer.getFeaturesByAttribute("status", "new")
- layer.removeFeatures(newNotes, { silent: true });
- }
-
- function restoreNewNotes(o) {
- var layer = o.object;
- layer.addFeatures(newNotes);
- newNotes = undefined;
- }
-
- function describeNote(n) {
- var description = "<h2>Note " + n.id + "</h2>";
+//= require templates/notes/show
+//= require templates/notes/new
+
+function initializeNotes(map) {
+ var noteLayer = map.noteLayer,
+ notes = {},
+ newNote;
+
+ var noteIcons = {
+ "new": L.icon({
+ iconUrl: "<%= image_path 'new_note_marker.png' %>",
+ iconSize: [25, 40],
+ iconAnchor: [12, 40]
+ }),
+ "open": L.icon({
+ iconUrl: "<%= image_path 'open_note_marker.png' %>",
+ iconSize: [25, 40],
+ iconAnchor: [12, 40]
+ }),
+ "closed": L.icon({
+ iconUrl: "<%= image_path 'closed_note_marker.png' %>",
+ iconSize: [25, 40],
+ iconAnchor: [12, 40]
+ })
+ };
+
+ map.on("layeradd", function (e) {
+ if (e.layer == noteLayer) {
+ loadNotes();
+ map.on("moveend", loadNotes);
+ }
+ }).on("layerremove", function (e) {
+ if (e.layer == noteLayer) {
+ map.off("moveend", loadNotes);
+ noteLayer.clearLayers();
+ notes = {};
+ }
+ }).on("popupclose", function (e) {
+ if (newNote && e.popup == newNote._popup) {
+ $(newNote).oneTime(10, "removenote", function () {
+ map.removeLayer(newNote);
+ newNote = null;
+ });
+ }
+ }).on("popupopen", function (e) {
+ if (!('ontouchstart' in document.documentElement)) {
+ $(e.popup._container).find(".comment").focus();
+ }
+ });