diff --git a/app/controllers/message_controller.rb b/app/controllers/message_controller.rb index 395d56028..8aecef98e 100644 --- a/app/controllers/message_controller.rb +++ b/app/controllers/message_controller.rb @@ -34,8 +34,10 @@ class MessageController < ApplicationController def reply message = Message.find(params[:message_id], :conditions => ["to_user_id = ? or from_user_id = ?", @user.id, @user.id ]) - title = message.title.sub(/^Re:\s*/, "Re: ") - redirect_to :action => 'new', :user_id => message.from_user_id, :title => title + @body = "\n\nOn #{message.sent_on} #{message.sender.display_name} wrote:\n #{message.body}" + @title = "Re: #{message.title}" + @user_id = message.from_user_id + render :action => 'new' rescue ActiveRecord::RecordNotFound render :nothing => true, :status => :not_found end diff --git a/app/controllers/trace_controller.rb b/app/controllers/trace_controller.rb index 4db6e8e15..3bb0d3323 100644 --- a/app/controllers/trace_controller.rb +++ b/app/controllers/trace_controller.rb @@ -83,6 +83,13 @@ class TraceController < ApplicationController def view @trace = Trace.find(params[:id]) + + unless @trace + flash[:notice] = "OH NOES! Trace not found!" + redirect_to :controller => 'trace', :action => 'list' + return + end + @title = "Viewing trace #{@trace.name}" if !@trace.visible? render :nothing => true, :status => :not_found @@ -90,7 +97,8 @@ class TraceController < ApplicationController render :nothing => true, :status => :forbidden end rescue ActiveRecord::RecordNotFound - render :nothing => true, :status => :not_found + flash[:notice] = "GPX file not found" + redirect_to :controller => 'trace', :action => 'list' end def create @@ -107,11 +115,11 @@ class TraceController < ApplicationController end else @trace = Trace.new({:name => "Dummy", - :tagstring => params[:trace][:tagstring], - :description => params[:trace][:description], - :public => params[:trace][:public], - :inserted => false, :user => @user, - :timestamp => Time.now}) + :tagstring => params[:trace][:tagstring], + :description => params[:trace][:description], + :public => params[:trace][:public], + :inserted => false, :user => @user, + :timestamp => Time.now}) @trace.valid? @trace.errors.add(:gpx_file, "can't be blank") end @@ -196,7 +204,7 @@ class TraceController < ApplicationController conditions[0] += " AND users.display_name = ?" conditions << params[:display_name] end - + if params[:tag] conditions[0] += " AND EXISTS (SELECT * FROM gpx_file_tags AS gft WHERE gft.gpx_id = gpx_files.id AND gft.tag = ?)" conditions << params[:tag] @@ -286,7 +294,7 @@ class TraceController < ApplicationController end end -private + private def do_create(file, tags, description, public) name = file.original_filename.gsub(/[^a-zA-Z0-9.]/, '_') @@ -295,7 +303,7 @@ private File.open(filename, "w") { |f| f.write(file.read) } @trace = Trace.new({:name => name, :tagstring => tags, - :description => description, :public => public}) + :description => description, :public => public}) @trace.inserted = false @trace.user = @user @trace.timestamp = Time.now diff --git a/app/views/message/new.rhtml b/app/views/message/new.rhtml index d66e7caed..723cb1f10 100644 --- a/app/views/message/new.rhtml +++ b/app/views/message/new.rhtml @@ -1,4 +1,4 @@ -<% display_name = User.find_by_id(params[:user_id]).display_name %> +<% display_name = User.find_by_id(params[:user_id] || @user_id).display_name %> <% title = params[:message] ? params[:message][:title] : params[:title] %>
Subject | -<%= text_field_tag 'message[title]', title, :size => 60 %> | +<%= text_field_tag 'message[title]', title, :size => 60, :value => @title %> |
---|---|---|
Body | -<%= f.text_area :body, :cols => 80 %> | +<%= f.text_area :body, :cols => 80, :value => @body %> |
- | <%= submit_tag 'Send' %> | +<%= submit_tag 'Send', :action => 'new' %> |
Searching...
diff --git a/app/views/user/account.rhtml b/app/views/user/account.rhtml index 76b4fbb34..d8afa4999 100644 --- a/app/views/user/account.rhtml +++ b/app/views/user/account.rhtml @@ -26,7 +26,9 @@ <% if @user.data_public? %> All your edits are public. <% else %> - Currently your edits are anonymous and people can't send you messages or see your location. To show what you edited and allow people to contact you through the website, click the button below. You will need to do this if you want to use the online editor (find out why). This action cannot be reversed. +Currently your edits are anonymous and people can't send you messages or see your location. To show what you edited and allow people to contact you through the website, click the button below. +You will need to do this if you want to use the online editor and it is encouraged (find out why). +This action cannot be reversed and all new users are now public by default.