]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/site/index.html.erb
Start rewriting the notes layer for the front page
[rails.git] / app / views / site / index.html.erb
index 88489610994ac6c5934a60264729d0554105119c..118e82ee2cdfbc911816018a50e2e68efdafbad1 100644 (file)
@@ -123,6 +123,7 @@ end
 
 <%= javascript_include_tag 'openlayers.js' %>
 <%= javascript_include_tag 'map.js' %>
+<%= javascript_include_tag 'notes.js' %>
 
 <%= render :partial => 'resize' %>
 
@@ -144,64 +145,11 @@ end
       map.dataLayer.events.register("visibilitychanged", map.dataLayer, toggleData);
       map.addLayer(map.dataLayer);
 
-      map.noteLayer = new OpenLayers.Layer.Vector("Notes", {
-          visibility: false,
-          projection: new OpenLayers.Projection("EPSG:4326"),
-          styleMap: new OpenLayers.StyleMap(new OpenLayers.Style({
-              graphicWidth: 22,
-              graphicHeight: 22,
-              graphicOpacity: 0.7,
-              graphicXOffset: -11,
-              graphicYOffset: -11
-          }, {
-              rules: [
-                  new OpenLayers.Rule({
-                      filter: new OpenLayers.Filter.Comparison({
-                          type: OpenLayers.Filter.Comparison.EQUAL_TO,
-                          property: "status",
-                          value: "open"
-                      }),
-                      symbolizer: {
-                          externalGraphic: "<%= image_path 'open_note_marker.png' %>"
-                      }
-                  }),
-                  new OpenLayers.Rule({
-                      filter: new OpenLayers.Filter.Comparison({
-                          type: OpenLayers.Filter.Comparison.EQUAL_TO,
-                          property: "status",
-                          value: "closed"
-                      }),
-                      symbolizer: {
-                          externalGraphic: "<%= image_path 'closed_note_marker.png' %>"
-                      }
-                 })
-              ]
-          })),
-          strategies: [
-              new OpenLayers.Strategy.BBOX()
-          ],
-          protocol: new OpenLayers.Protocol.HTTP({
-              url: "<%= url_for :controller => :note, :action => :list, :format => :json %>",
-              format: new OpenLayers.Format.GeoJSON(),
-              callback: noteCallback
-          })
-      });
-      map.noteLayer.events.register("featureselected", map, noteSelected);
-      map.noteLayer.events.register("featureunselected", map, noteUnselected);
-      map.addLayer(map.noteLayer);
-
-      map.noteControl = new OpenLayers.Control.SelectFeature(map.noteLayer, {
-          autoActivate: true
-      });
-      map.addControl(map.noteControl);
+      var noteLayer = addNoteLayer(map, "<%= notes_url :format => 'json' %>", $("#createnoteanchor"), 11);
 
       <% if params[:notes] == "yes" -%>
-      map.noteLayer.setVisibility(true);
+      noteLayer.setVisibility(true);
       <% end -%>
-
-      $("#createnoteanchor").click(addNote);
-
-      map.events.register("zoomend", map, allowNoteReports);
     <% end %>
 
     <% unless object_zoom %>
@@ -329,46 +277,6 @@ end
     <% end %>
   }
 
-  function noteCallback(scope, response) {
-    for (var f = 0; f < response.features.length; f++) {
-      var feature = response.features[f];
-    }
-  }
-
-  function noteSelected(o) {
-    var feature = o.feature;
-    var location = feature.geometry.getBounds().getCenterLonLat();
-
-    feature.popup = new OpenLayers.Popup.FramedCloud(
-      feature.attributes.id, location, null,
-      "<p>" + feature.attributes.id + "</p>",
-      null, true, function (e) { map.noteControl.unselect(feature) }
-    );
-
-    map.addPopup(feature.popup);
-//    feature.popup.show();
-  }
-
-  function noteUnselected(o) {
-    var feature = o.feature;
-
-    map.removePopup(feature.popup);
-    delete feature.popup;
-  }
-
-  function addNote() {
-    map.noteLayer.setVisibility(true);
-    map.noteLayer.addNote(map.getCenter());
-  }
-
-  function allowNoteReports() { 
-    if (map.getZoom() > 11) {
-      $("#createnoteanchor").show();
-    } else {
-      $("#createnoteanchor").hide();
-    }
-  }
-
   $(document).ready(mapInit);
   $(document).ready(installEditHandler);
   $(document).ready(handleResize);