Move changeset JS to page-specific script file

This commit is contained in:
John Firebaugh 2012-10-04 17:32:14 -07:00 committed by Tom Hughes
parent 7ef803f86d
commit 898bc32f48
4 changed files with 80 additions and 79 deletions

View file

@ -0,0 +1,75 @@
var highlight;
function highlightChangeset(id) {
var feature = vectors.getFeatureByFid(id);
var bounds = feature.geometry.getBounds();
if (bounds.containsBounds(map.getExtent())) {
bounds = map.getExtent().scale(1.1);
}
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).addClass("selected");
}
function unHighlightChangeset(id) {
vectors.removeFeatures(highlight);
$("#tr-changeset-" + id).removeClass("selected");
}
$(document).ready(function () {
var map = createMap("changeset_list_map", {
controls: [
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.Zoom(),
new OpenLayers.Control.SimplePanZoom()
]
});
var bounds = new OpenLayers.Bounds();
$("[data-changeset]").each(function () {
var changeset = $(this).data('changeset');
if (changeset.bbox) {
var bbox = new OpenLayers.Bounds(changeset.bbox.minlon, changeset.bbox.minlat, changeset.bbox.maxlon, changeset.bbox.maxlat);
bounds.extend(bbox);
addBoxToMap(bbox, changeset.id, true);
}
});
vectors.events.on({
"featureselected": function(feature) {
highlightChangeset(feature.feature.fid);
},
"featureunselected": function(feature) {
unHighlightChangeset(feature.feature.fid);
}
});
var selectControl = new OpenLayers.Control.SelectFeature(vectors, {
multiple: false,
hover: true
});
map.addControl(selectControl);
selectControl.activate();
var params = OSM.mapParams();
if (params.bbox) {
map.zoomToExtent(proj(new OpenLayers.Bounds(params.minlon, params.minlat, params.maxlon, params.maxlat)));
} else {
map.zoomToExtent(proj(bounds));
}
});

View file

@ -1,80 +1,2 @@
<div id="changeset_list_map"> <div id="changeset_list_map">
</div> </div>
<script type="text/javascript">
var highlight;
function highlightChangeset(id) {
var feature = vectors.getFeatureByFid(id);
var bounds = feature.geometry.getBounds();
if (bounds.containsBounds(map.getExtent())) {
bounds = map.getExtent().scale(1.1);
}
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).addClass("selected");
}
function unHighlightChangeset(id) {
vectors.removeFeatures(highlight);
$("#tr-changeset-" + id).removeClass("selected");
}
$(document).ready(function () {
var map = createMap("changeset_list_map", {
controls: [
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.Zoom(),
new OpenLayers.Control.SimplePanZoom()
]
});
var bounds = new OpenLayers.Bounds();
$("[data-changeset]").each(function () {
var changeset = $(this).data('changeset');
if (changeset.bbox) {
var bbox = new OpenLayers.Bounds(changeset.bbox.minlon, changeset.bbox.minlat, changeset.bbox.maxlon, changeset.bbox.maxlat);
bounds.extend(bbox);
addBoxToMap(bbox, changeset.id, true);
}
});
vectors.events.on({
"featureselected": function(feature) {
highlightChangeset(feature.feature.fid);
},
"featureunselected": function(feature) {
unHighlightChangeset(feature.feature.fid);
}
});
var selectControl = new OpenLayers.Control.SelectFeature(vectors, {
multiple: false,
hover: true
});
map.addControl(selectControl);
selectControl.activate();
var params = OSM.mapParams();
if (params.bbox) {
map.zoomToExtent(proj(new OpenLayers.Bounds(params.minlon, params.minlat, params.maxlon, params.maxlat)));
} else {
map.zoomToExtent(proj(bounds));
}
});
</script>

View file

@ -1,3 +1,7 @@
<% content_for :head do -%>
<%= javascript_include_tag "changeset" %>
<% end -%>
<h1><%= @heading %></h1> <h1><%= @heading %></h1>
<p><%= raw(@description) %></p> <p><%= raw(@description) %></p>

View file

@ -56,7 +56,7 @@ OpenStreetMap::Application.configure do
# config.action_controller.asset_host = "http://assets.example.com" # config.action_controller.asset_host = "http://assets.example.com"
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
config.assets.precompile += %w( index.js edit.js browse.js pngfix.js swfobject.js ) config.assets.precompile += %w( index.js edit.js browse.js changeset.js pngfix.js swfobject.js )
config.assets.precompile += %w( large-ltr.css small-ltr.css print-ltr.css ) config.assets.precompile += %w( large-ltr.css small-ltr.css print-ltr.css )
config.assets.precompile += %w( large-rtl.css small-rtl.css print-rtl.css ) config.assets.precompile += %w( large-rtl.css small-rtl.css print-rtl.css )
config.assets.precompile += %w( browse.css theme/openstreetmap/style.css ) config.assets.precompile += %w( browse.css theme/openstreetmap/style.css )