X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/42822a8b89443d5fa6ec815d82684698d2d80b07..eac7348ad2793cb3ad72c68bef84ff863af92d5f:/app/controllers/map_bugs_controller.rb
diff --git a/app/controllers/map_bugs_controller.rb b/app/controllers/map_bugs_controller.rb
index d3a62f553..ef965ea3c 100644
--- a/app/controllers/map_bugs_controller.rb
+++ b/app/controllers/map_bugs_controller.rb
@@ -1,6 +1,7 @@
class MapBugsController < ApplicationController
before_filter :check_api_readable
+ before_filter :authorize_web, :only => [:add_bug, :close_bug, :edit_bug]
before_filter :check_api_writable, :only => [:add_bug, :close_bug, :edit_bug]
after_filter :compress_output
around_filter :api_call_handle_error, :api_call_timeout
@@ -34,7 +35,17 @@ class MapBugsController < ApplicationController
resp = ""
bugs.each do |bug|
- resp += "putAJAXMarker(" + bug.id.to_s + ", " + bug.lon.to_s + ", " + bug.lat.to_s + " , '" + bug.text + "'," + (bug.status=="open"?"0":"1") + ");\n"
+ resp += "putAJAXMarker(" + bug.id.to_s + ", " + bug.lon.to_s + ", " + bug.lat.to_s;
+ comment_no = 1
+ bug.map_bug_comment.each do |comment|
+ resp += (comment_no == 1 ? ", '" : "
")
+ resp += comment.comment if comment.comment
+ resp += " [ "
+ resp += comment.commenter_name if comment.commenter_name
+ resp += " " + comment.date_created.to_s + " ]"
+ comment_no += 1
+ end
+ resp += (comment_no == 1 ? "," : "', ") + (bug.status=="open"?"0":"1") + ");\n"
end
render :text => resp, :content_type => "text/javascript"
@@ -49,7 +60,9 @@ class MapBugsController < ApplicationController
lat = params['lat'].to_f
comment = params['text']
- bug = MapBug.create_bug(lat, lon, comment)
+ bug = MapBug.create_bug(lat, lon)
+ bug.save;
+ add_comment(bug, comment);
render_ok
end
@@ -61,9 +74,8 @@ class MapBugsController < ApplicationController
id = params['id'].to_i
bug = MapBug.find_by_id(id);
- bug.text += "
" + params['text']
- bug.last_changed = Time.now.getutc;
- bug.save;
+
+ bug_comment = add_comment(bug, params['text']);
render_ok
end
@@ -99,4 +111,19 @@ class MapBugsController < ApplicationController
##TODO: needs to be implemented
end
+ def add_comment(bug, comment)
+ t = Time.now.getutc
+ bug_comment = bug.map_bug_comment.create(:date_created => t, :visible => true, :comment => comment);
+ if @user
+ bug_comment.commenter_id = @user.id
+ bug_comment.commenter_name = @user.display_name
+ else
+ bug_comment.commenter_ip = request.remote_ip
+ bug_comment.commenter_name = "anonymous (a)"
+ end
+ bug_comment.save;
+ bug.last_changed = t
+ bug.save
+ end
+
end