<tr id="inbox-<%= message_summary.id %>" class="inbox-row<%= "-unread" unless message_summary.message_read? %>">
- <td><%= link_to message_summary.sender.display_name, user_path(message_summary.sender) %></td>
- <td><%= link_to message_summary.title, message_path(message_summary) %></td>
+ <td><%= link_to message_summary.sender.display_name, message_summary.sender %></td>
+ <td><%= link_to message_summary.title, message_summary %></td>
<td class="text-nowrap"><%= l message_summary.sent_on, :format => :friendly %></td>
<td class="text-nowrap d-flex justify-content-end gap-1">
<%= button_to t(".unread_button"), message_mark_path(message_summary, :mark => "unread"), :remote => true, :class => "btn btn-sm btn-primary", :form => { :class => "inbox-mark-unread", :hidden => !message_summary.message_read? } %>
<tr class="inbox-row">
- <td><%= link_to sent_message_summary.recipient.display_name, user_path(sent_message_summary.recipient) %></td>
- <td><%= link_to sent_message_summary.title, message_path(sent_message_summary) %></td>
+ <td><%= link_to sent_message_summary.recipient.display_name, sent_message_summary.recipient %></td>
+ <td><%= link_to sent_message_summary.title, sent_message_summary %></td>
<td class="text-nowrap"><%= l sent_message_summary.sent_on, :format => :friendly %></td>
<td class="text-nowrap d-flex justify-content-end gap-1">
<%= button_to t(".destroy_button"), message_path(sent_message_summary, :referer => request.fullpath), :method => :delete, :remote => true, :class => "btn btn-sm btn-danger", :form_class => "inbox-destroy" %>
<% content_for :heading do %>
- <h1><%= t(".send_message_to_html", :name => link_to(@message.recipient.display_name, user_path(@message.recipient))) %></h1>
+ <h1><%= t(".send_message_to_html", :name => link_to(@message.recipient.display_name, @message.recipient)) %></h1>
<% end %>
<%= bootstrap_form_for @message do |f| %>
<div class='mb-3 border-bottom border-grey py-1 d-flex gap-1 flex-wrap'>
<% if current_user == @message.recipient %>
<%= user_thumbnail_tiny @message.sender %>
- <%= link_to @message.sender.display_name, user_path(@message.sender) %>
+ <%= link_to @message.sender.display_name, @message.sender %>
<% else %>
<%= user_thumbnail_tiny @message.recipient %>
- <%= link_to @message.recipient.display_name, user_path(@message.recipient) %>
+ <%= link_to @message.recipient.display_name, @message.recipient %>
<% end %>
<span class="ms-auto">
<%= l @message.sent_on, :format => :friendly %>
-<%= image_tag(url_for(:controller => :traces, :action => :icon, :id => description.id, :display_name => description.user.display_name)) %>
+<%= image_tag trace_icon_path(description.user, description.id) %>
<% if description.size -%>
<%= t ".description_with_count", :count => description.size, :user => description.user.display_name %>
<% else -%>
<td>
<% if Settings.status != "gpx_offline" %>
<% if trace.inserted %>
- <a href="<%= url_for :controller => "traces", :action => "show", :id => trace.id, :display_name => trace.user.display_name %>"><img src="<%= url_for :controller => "traces", :action => "icon", :id => trace.id, :display_name => trace.user.display_name %>" border="0" alt="" /></a>
+ <%= link_to image_tag(trace_icon_path(trace.user, trace), :alt => ""), show_trace_path(trace.user, trace) %>
<% else %>
<span class="text-danger"><%= t ".pending" %></span>
<% end %>
<td>
<ul class="list-inline mb-0">
<li class="list-inline-item">
- <%= link_to trace.name, :controller => "traces", :action => "show", :display_name => trace.user.display_name, :id => trace.id %>
+ <%= link_to trace.name, show_trace_path(trace.user, trace) %>
</li>
<% if trace.inserted? %>
</ul>
<p class="text-muted mb-0">
<%= friendly_date_ago(trace.timestamp) %>
- <%= t ".by" %> <%= link_to trace.user.display_name, user_path(trace.user) %>
+ <%= t ".by" %> <%= link_to trace.user.display_name, trace.user %>
<% if !trace.tags.empty? %>
<%= t ".in" %>
<%= safe_join(trace.tags.collect { |tag| link_to_tag tag.tag }, ", ") %>
<nav class="secondary-actions">
<ul>
<li>
- <%= link_to t(".view_map"), { :controller => "site", :action => "index", :mlat => trace.latitude, :mlon => trace.longitude, :anchor => "map=14/#{trace.latitude}/#{trace.longitude}" } %>
+ <%= link_to t(".view_map"), root_path(:mlat => trace.latitude, :mlon => trace.longitude, :anchor => "map=14/#{trace.latitude}/#{trace.longitude}") %>
</li>
<li>
- <%= link_to t(".edit_map"), { :controller => "site", :action => "edit", :gpx => trace.id } %>
+ <%= link_to t(".edit_map"), edit_path(:gpx => trace.id) %>
</li>
</ul>
</nav>
<h1><%= t ".heading", :name => @trace.name %></h1>
<% end %>
-<img src="<%= url_for :controller => "traces", :action => "picture", :id => @trace.id, :display_name => @trace.user.display_name %>">
+<%= image_tag trace_picture_path(@trace.user, @trace) %>
<%= bootstrap_form_for @trace do |f| %>
<%= f.text_field :name, :disabled => true %>
xml.item do
xml.title trace.name
- xml.link url_for(:controller => :traces, :action => :show, :id => trace.id, :display_name => trace.user.display_name, :only_path => false)
- xml.guid url_for(:controller => :traces, :action => :show, :id => trace.id, :display_name => trace.user.display_name, :only_path => false)
+ xml.link show_trace_url(trace.user, trace)
+ xml.guid show_trace_url(trace.user, trace)
xml.description do
xml.cdata! render(:partial => "description", :object => trace, :formats => [:html])
<% if Settings.status != "gpx_offline" %>
<% if @trace.inserted %>
- <img src="<%= url_for :controller => "traces", :action => "picture", :id => @trace.id, :display_name => @trace.user.display_name %>">
+ <%= image_tag trace_picture_path(@trace.user, @trace) %>
<% else %>
<span class="text-danger"><%= t ".pending" %></span>
<% end %>
:latitude => tag.span(number_with_delimiter(@trace.latitude), :class => "latitude"),
:longitude => tag.span(number_with_delimiter(@trace.longitude), :class => "longitude") %>
</div>
- (<%= link_to t(".map"), :controller => "site", :action => "index", :mlat => @trace.latitude, :mlon => @trace.longitude, :anchor => "map=14/#{@trace.latitude}/#{@trace.longitude}" %> / <%= link_to t(".edit"), :controller => "site", :action => "edit", :gpx => @trace.id, :anchor => "map=14/#{@trace.latitude}/#{@trace.longitude}" %>)</td>
+ (<%= link_to t(".map"), root_path(:mlat => @trace.latitude, :mlon => @trace.longitude, :anchor => "map=14/#{@trace.latitude}/#{@trace.longitude}") %> / <%= link_to t(".edit"), edit_path(:gpx => @trace.id, :anchor => "map=14/#{@trace.latitude}/#{@trace.longitude}") %>)</td>
</tr>
<% end %>
<tr>
<th><%= t ".owner" %></th>
- <td><%= link_to @trace.user.display_name, user_path(@trace.user) %></td>
+ <td><%= link_to @trace.user.display_name, @trace.user %></td>
</tr>
<tr>
<th><%= t ".description" %></th>
<% if current_user == @trace.user %>
<%= link_to t(".edit_trace"), edit_trace_path(@trace), :class => "btn btn-outline-primary" %>
<% end %>
- <%= link_to t(".delete_trace"), { :controller => "traces", :action => "destroy", :id => @trace.id }, { :method => :delete, :class => "btn btn-outline-danger", :data => { :confirm => t(".confirm_delete") } } %>
+ <%= link_to t(".delete_trace"), @trace, { :method => :delete, :class => "btn btn-outline-danger", :data => { :confirm => t(".confirm_delete") } } %>
</div>
<% end %>
assert_response :success
assert_template "new"
assert_select "title", "Send message | OpenStreetMap"
+ assert_select "a[href='#{user_path recipient_user}']", :text => recipient_user.display_name
assert_select "form[action='/messages']", :count => 1 do
assert_select "input[type='hidden'][name='display_name'][value='#{recipient_user.display_name}']"
assert_select "input#message_title", :count => 1
get message_path(:id => unread_message)
assert_response :success
assert_template "show"
+ assert_select "a[href='#{user_path recipient_user}']", :text => recipient_user.display_name
assert_not Message.find(unread_message.id).message_read
# Login as the message recipient
get message_path(:id => unread_message)
assert_response :success
assert_template "show"
+ assert_select "a[href='#{user_path user}']", :text => user.display_name
assert Message.find(unread_message.id).message_read
# Asking to read a message with no ID should fail
assert_template "inbox"
assert_select ".content-inner > table", :count => 1 do
assert_select "tr", :count => 2
- assert_select "tr#inbox-#{read_message.id}.inbox-row", :count => 1
+ assert_select "tr#inbox-#{read_message.id}.inbox-row", :count => 1 do
+ assert_select "a[href='#{user_path read_message.sender}']", :text => read_message.sender.display_name
+ assert_select "a[href='#{message_path read_message}']", :text => read_message.title
+ end
end
end
# test the outbox action
def test_outbox
user = create(:user)
- create(:message, :sender => user)
+ message = create(:message, :sender => user)
# Check that the outbox page requires us to login
get outbox_messages_path
assert_template "outbox"
assert_select ".content-inner > table", :count => 1 do
assert_select "tr", :count => 2
- assert_select "tr.inbox-row", :count => 1
+ assert_select "tr.inbox-row", :count => 1 do
+ assert_select "a[href='#{user_path message.recipient}']", :text => message.recipient.display_name
+ assert_select "a[href='#{message_path message}']", :text => message.title
+ end
end
end
assert_select row, "li", Regexp.new(Regexp.escape("#{trace.size} points")) if trace.inserted?
assert_select row, "td", Regexp.new(Regexp.escape(trace.description))
assert_select row, "td", Regexp.new(Regexp.escape("by #{trace.user.display_name}"))
+ assert_select row, "a[href='#{user_path trace.user}']", :text => trace.user.display_name
end
end
end
assert_select "table", :count => 1 do
assert_select "td", /^#{Regexp.quote(trace.name)} /
- assert_select "td", trace.user.display_name
+ assert_select "td a[href='#{user_path trace.user}']", :text => trace.user.display_name
assert_select "td", trace.description
end
end