render :nothing => true, :status => :not_found
end
+ def edit
+ @trace = Trace.find(params[:id])
+
+ if @user and @trace.user == @user
+ if params[:trace]
+ @trace.description = params[:trace][:description]
+ @trace.tagstring = params[:trace][:tagstring]
+ if @trace.save
+ redirect_to :action => 'view'
+ end
+ end
+ else
+ render :nothing, :status => :forbidden
+ end
+ rescue ActiveRecord::RecordNotFound
+ render :nothing => true, :status => :not_found
+ end
+
def delete
trace = Trace.find(params[:id])
--- /dev/null
+<h2><%= @title %></h2>
+
+<img src="<%= url_for :controller => 'trace', :action => 'picture', :id => @trace.id, :display_name => @trace.user.display_name %>">
+
+<% form_for :trace, @trace do |f| %>
+
+<table border="0">
+ <tr>
+ <td>Filename:</td>
+ <td><%= @trace.name %> (<%= link_to 'download', :controller => 'trace', :action => 'data', :id => @trace.id %>)</td>
+ </tr>
+ <tr>
+ <td>Uploaded at:</td>
+ <td><%= @trace.timestamp %></td>
+ </tr>
+ <% if @trace.inserted? %>
+ <tr>
+ <td>Points:</td>
+ <td><%= @trace.size.to_s.gsub(/(\d)(?=(\d{3})+$)/,'\1,') %></td></tr>
+ <tr>
+ <td>Start coordinate:</td>
+ <td><div class="geo" style="display: inline"><span class="latitude"><%= @trace.latitude %></span>; <span class="longitude"><%= @trace.longitude %></span></div> (<%=link_to 'map', :controller => 'site', :action => 'index', :lat => @trace.latitude, :lon => @trace.longitude, :zoom => 14 %> / <%=link_to 'edit', :controller => 'site', :action => 'edit', :lat => @trace.latitude, :lon => @trace.longitude, :gpx=> @trace.id, :zoom => 14 %>)</td>
+ </tr>
+ <% end %>
+ <tr>
+ <td>Owner:</td>
+ <td><%= link_to @trace.user.display_name, {:controller => 'user', :action => 'view', :display_name => @trace.user.display_name} %></td>
+ </tr>
+ <tr>
+ <td>Description:</td>
+ <td><%= f.text_field :description %></td>
+ </tr>
+ <tr>
+ <td>Tags:</td>
+ <td><%= f.text_field :tagstring %></td>
+ </tr>
+</table>
+
+<br /><br />
+
+<%= submit_tag 'Save Changes' %>
+
+<% end %>
<td><%= button_to 'Make this track public permanently', :controller => 'trace', :action => 'make_public', :id => @trace.id %></td>
<% end %>
<% if @trace.user.id == @user.id %>
+ <td><%= button_to 'Edit this track', :controller => 'trace', :action => 'edit', :id => @trace.id %></td>
+ <% end %>
+ <% if @trace.user.id == @user.id %>
<td><%= button_to 'Delete this track', :controller => 'trace', :action => 'delete', :id => @trace.id %></td>
<% end %>
</tr>
map.connect '/traces/mine/tag/:tag', :controller => 'trace', :action => 'mine'
map.connect '/traces/mine/tag/:tag/page/:page', :controller => 'trace', :action => 'mine'
map.connect '/trace/create', :controller => 'trace', :action => 'create'
+ map.connect '/trace/:id/edit', :controller => 'trace', :action => 'edit'
map.connect '/trace/:id/delete', :controller => 'trace', :action => 'delete'
map.connect '/trace/:id/make_public', :controller => 'trace', :action => 'make_public'
map.connect '/user/:display_name/traces', :controller => 'trace', :action => 'list'