diff --git a/app/controllers/map_bugs_controller.rb b/app/controllers/map_bugs_controller.rb
index d1790a0de..2de11ba75 100644
--- a/app/controllers/map_bugs_controller.rb
+++ b/app/controllers/map_bugs_controller.rb
@@ -47,7 +47,7 @@ class MapBugsController < ApplicationController
format.js
format.xml {render :template => 'map_bugs/get_bugs.xml'}
format.json { render :json => @bugs.to_json(:methods => [:lat, :lon], :only => [:id, :status, :date_created], :include => { :map_bug_comment => { :only => [:commenter_name, :date_created, :comment]}}) }
-# format.gpx {render :template => 'map_bugs/get_bugs.gpx'}
+ format.gpx {render :template => 'map_bugs/get_bugs.gpx'}
end
end
@@ -166,6 +166,7 @@ class MapBugsController < ApplicationController
format.rss
format.xml
format.json { render :json => @bug.to_json(:methods => [:lat, :lon], :only => [:id, :status, :date_created], :include => { :map_bug_comment => { :only => [:commenter_name, :date_created, :comment]}}) }
+ format.gpx
end
end
@@ -200,7 +201,7 @@ class MapBugsController < ApplicationController
format.js
format.xml {render :template => 'map_bugs/get_bugs.xml'}
format.json { render :json => @bugs.to_json(:methods => [:lat, :lon], :only => [:id, :status, :date_created], :include => { :map_bug_comment => { :only => [:commenter_name, :date_created, :comment]}}) }
-# format.gpx {render :template => 'map_bugs/get_bugs.gpx'}
+ format.gpx {render :template => 'map_bugs/get_bugs.gpx'}
end
end
diff --git a/app/views/map_bugs/_bug.gpx.builder b/app/views/map_bugs/_bug.gpx.builder
new file mode 100644
index 000000000..18a84bac7
--- /dev/null
+++ b/app/views/map_bugs/_bug.gpx.builder
@@ -0,0 +1,15 @@
+xml.wpt("lon" => bug.lon, "lat" => bug.lat) do
+ xml.desc do
+ xml.cdata! bug.flatten_comment("
")
+ end
+
+ xml.extension do
+ if bug.status = "open"
+ xml.closed "0"
+ else
+ xml.closed "1"
+ end
+
+ xml.id bug.id
+ end
+end
diff --git a/app/views/map_bugs/get_bugs.gpx.builder b/app/views/map_bugs/get_bugs.gpx.builder
index be7e9cf7a..f543c1a02 100644
--- a/app/views/map_bugs/get_bugs.gpx.builder
+++ b/app/views/map_bugs/get_bugs.gpx.builder
@@ -1,23 +1,7 @@
xml.instruct!
-
xml.gpx("version" => "1.1",
"xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
- "xsi:schemaLocation" => "http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd") do
-
- for bug in @bugs
- xml.wpt("lon" => bug.lon, "lat" => bug.lat) do
- xml.desc do
- xml.cdata! bug.flatten_comment("
")
- end
- xml.extension do
- if bug.status = "open"
- xml.closed "0"
- else
- xml.closed "1"
- end
- xml.id bug.id
- end
- end
- end
+ "xsi:schemaLocation" => "http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd") do
+ xml << render(:partial => "bug", :collection => @bugs)
end
diff --git a/app/views/map_bugs/read.gpx.builder b/app/views/map_bugs/read.gpx.builder
new file mode 100644
index 000000000..0108a261b
--- /dev/null
+++ b/app/views/map_bugs/read.gpx.builder
@@ -0,0 +1,7 @@
+xml.instruct!
+
+xml.gpx("version" => "1.1",
+ "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
+ "xsi:schemaLocation" => "http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd") do
+ xml << render(:partial => "bug", :object => @bug)
+end
diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb
index 72aca7e44..18df05cf2 100644
--- a/config/initializers/mime_types.rb
+++ b/config/initializers/mime_types.rb
@@ -1,5 +1,3 @@
-# Be sure to restart your server when you modify this file.
-
# Add new mime types for use in respond_to blocks:
-# Mime::Type.register "text/richtext", :rtf
-# Mime::Type.register_alias "text/html", :iphone
+
+Mime::Type.register "application/gpx+xml", :gpx