Improve highlighting of changesets in the changeset list
authorTom Hughes <tom@compton.nu>
Thu, 5 May 2011 17:58:05 +0000 (18:58 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 5 May 2011 19:25:57 +0000 (20:25 +0100)
app/views/changeset/_map.html.erb
public/stylesheets/common.css

index fe934bbc754969bdb228524c919fb7cdd5c2de28..6d7aa96c04fafbafcf95f971e7373b16eb524391 100644 (file)
@@ -8,23 +8,31 @@
 <script type="text/javascript">
   OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>");
 
+  var highlight;
+
   function highlightChangeset(id) {
     var feature = vectors.getFeatureByFid(id);
-    feature.style.strokeColor = "#ffff55";
-    feature.style.strokeWidth = 4;
-    vectors.redraw(); 
+    var bounds = feature.geometry.getBounds();
+
+    if ( highlight ) vectors.removeFeatures(highlight);
+
+    highlight = new OpenLayers.Feature.Vector(bounds.toGeometry(), {}, {
+      strokeWidth: 2,
+      strokeColor: "#ee9900",
+      fillColor: "#ffff55",
+      fillOpacity: 0.5
+    });
+
+    vectors.addFeatures(highlight);
 
     $("tr-changeset-" + id).addClassName("selected");
-  } 
+  }
 
   function unHighlightChangeset(id) {
-    var feature = vectors.getFeatureByFid(id);
-    feature.style.strokeColor = "#ee9900";
-    feature.style.strokeWidth = 2;
-    vectors.redraw(); 
+    vectors.removeFeatures(highlight);
 
     $("tr-changeset-" + id).removeClassName("selected");
-  }      
+  }
 
   function init() {
     var map = createMap("changeset_list_map", {
@@ -34,7 +42,7 @@
         new OpenLayers.Control.PanZoomBar()
       ]
     });
-    
+
     var bounds = new OpenLayers.Bounds();
 
     <% @edits.each do |edit| %>
@@ -47,7 +55,7 @@
     bounds.extend(bbox);
     box = addBoxToMap(bbox, "<%= edit.id %>", true);
     <% end %>
-     
+
     vectors.events.on({
       "featureselected": function(feature) {
         highlightChangeset(feature.feature.fid);
@@ -58,7 +66,7 @@
     });
 
     var selectControl = new OpenLayers.Control.SelectFeature(vectors, {
-      multiple: false, 
+      multiple: false,
       hover: true
     });
     map.addControl(selectControl);
index a6a71de0d69b5e382d33b13535fe7d3a496278c7..65b43041863547152b4b0f370aa6606f41908805 100644 (file)
@@ -623,7 +623,8 @@ hr {
 }
 
 #changeset_list .selected {
-  background-color: #ffff55;
+  background-color: rgb(255, 255, 160);
+  background-color: rgba(255, 255, 85, 0.5);
 }
 
 #changeset_list_map {