# Offense count: 41
# Configuration parameters: CountComments, ExcludedMethods.
Metrics/BlockLength:
- Max: 241
+ Max: 247
# Offense count: 12
# Configuration parameters: CountBlocks.
display: none;
}
-.message-read .message-buttons {
+.messages-show .message-buttons {
margin-top: $lineheight;
margin-bottom: $lineheight * 1.5;
padding-top: $lineheight;
border-top: 1px solid $lightgrey;
}
-.message-read .buttons .mark-unread-button {
+.messages-show .buttons .mark-unread-button {
border-radius: 0;
}
if user
@entries = user.diary_entries
- @title = I18n.t("diary_entry.feed.user.title", :user => user.display_name)
- @description = I18n.t("diary_entry.feed.user.description", :user => user.display_name)
+ @title = t("diary_entry.feed.user.title", :user => user.display_name)
+ @description = t("diary_entry.feed.user.description", :user => user.display_name)
@link = url_for :controller => "diary_entry", :action => "list", :display_name => user.display_name, :host => SERVER_URL, :protocol => SERVER_PROTOCOL
else
head :not_found
if params[:language]
@entries = @entries.where(:language_code => params[:language])
- @title = I18n.t("diary_entry.feed.language.title", :language_name => Language.find(params[:language]).english_name)
- @description = I18n.t("diary_entry.feed.language.description", :language_name => Language.find(params[:language]).english_name)
+ @title = t("diary_entry.feed.language.title", :language_name => Language.find(params[:language]).english_name)
+ @description = t("diary_entry.feed.language.description", :language_name => Language.find(params[:language]).english_name)
@link = url_for :controller => "diary_entry", :action => "list", :language => params[:language], :host => SERVER_URL, :protocol => SERVER_PROTOCOL
else
- @title = I18n.t("diary_entry.feed.all.title")
- @description = I18n.t("diary_entry.feed.all.description")
+ @title = t("diary_entry.feed.all.title")
+ @description = t("diary_entry.feed.all.description")
@link = url_for :controller => "diary_entry", :action => "list", :host => SERVER_URL, :protocol => SERVER_PROTOCOL
end
end
if @message.save
flash[:notice] = t ".message_sent"
Notifier.message_notification(@message).deliver_now
- redirect_to :action => "inbox", :display_name => current_user.display_name
+ redirect_to :action => :inbox
end
end
end
redirect_to :controller => "user", :action => "login", :referer => request.fullpath
end
rescue ActiveRecord::RecordNotFound
- @title = t "message.no_such_message.title"
+ @title = t "messages.no_such_message.title"
render :action => "no_such_message", :status => :not_found
end
# Show a message
def show
@title = t ".title"
- @message = Message.find(params[:message_id])
+ @message = Message.find(params[:id])
if @message.recipient == current_user || @message.sender == current_user
@message.message_read = true if @message.recipient == current_user
redirect_to :controller => "user", :action => "login", :referer => request.fullpath
end
rescue ActiveRecord::RecordNotFound
- @title = t "message.no_such_message.title"
+ @title = t "messages.no_such_message.title"
render :action => "no_such_message", :status => :not_found
end
# Display the list of messages that have been sent to the user.
def inbox
@title = t ".title"
- if current_user && params[:display_name] == current_user.display_name
- else
- redirect_to :action => "inbox", :display_name => current_user.display_name
- end
end
# Display the list of messages that the user has sent to other users.
def outbox
@title = t ".title"
- if current_user && params[:display_name] == current_user.display_name
- else
- redirect_to :action => "outbox", :display_name => current_user.display_name
- end
end
# Set the message as being read or unread.
@message.message_read = message_read
if @message.save && !request.xhr?
flash[:notice] = notice
- redirect_to :action => "inbox", :display_name => current_user.display_name
+ redirect_to :action => :inbox
end
rescue ActiveRecord::RecordNotFound
- @title = t "message.no_such_message.title"
+ @title = t "messages.no_such_message.title"
render :action => "no_such_message", :status => :not_found
end
if params[:referer]
redirect_to params[:referer]
else
- redirect_to :action => "inbox", :display_name => current_user.display_name
+ redirect_to :action => :inbox
end
end
rescue ActiveRecord::RecordNotFound
- @title = t "message.no_such_message.title"
+ @title = t "messages.no_such_message.title"
render :action => "no_such_message", :status => :not_found
end
append_content_security_policy_directives(
:connect_src => %w[*],
:img_src => %w[* blob:],
- :script_src => %w[dev.virtualearth.net *.wikipedia.org www.wikidata.org 'unsafe-eval'],
+ :script_src => %w[dev.virtualearth.net *.wikipedia.org www.wikidata.org services.arcgisonline.com serviceslab.arcgisonline.com 'unsafe-eval'],
:style_src => %w['unsafe-inline']
)
-<%
- browse_not_found_type = {
- 'node' => I18n.t('.type.node'),
- 'way' => I18n.t('.type.way'),
- 'relation' => I18n.t('.type.relation'),
- 'changeset' => I18n.t('.type.changeset'),
- };
-%>
-
<h2>
- <a class="geolink" href="<%= root_path %>"><span class="icon close"></span></a>
- <%= t '.sorry', :type=> browse_not_found_type[@type] , :id => params[:id] %></h2>
+ <a class="geolink" href="<%= root_path %>"><span class="icon close"></span></a>
+ <%= t ".sorry", :type => t(".type.#{@type}"), :id => params[:id] %>
+</h2>
-<%
- browse_timeout_type = {
- 'node' => I18n.t('.type.node'),
- 'way' => I18n.t('.type.way'),
- 'relation' => I18n.t('.type.relation'),
- 'changeset' => I18n.t('.type.changeset'),
- };
-%>
<div class="browse-section">
<a class="geolink" href="<%= root_path %>"><span class="icon close"></span></a>
- <%= t '.sorry', :type=> browse_timeout_type[@type] , :id => params[:id] %>
+ <%= t '.sorry', :type => t(".type.#{@type}"), :id => params[:id] %>
</div>
</a>
<ul class='dropdown-menu'>
<li>
- <%= link_to inbox_path(:display_name => current_user.display_name) do %>
+ <%= link_to inbox_messages_path do %>
<span class='count-number'><%= number_with_delimiter(current_user.new_messages.size) %></span>
<%= t('user.view.my messages') %>
<% end %>
<% end %>
<% content_for :heading do %>
- <h2><%= t '.my_inbox'%>/<%= link_to t('.outbox'), outbox_path(current_user.display_name) %></h2>
+ <h2><%= t '.my_inbox'%>/<%= link_to t('.outbox'), outbox_messages_path %></h2>
<% end %>
<h4><%= render :partial => "message_count" %></h4>
</div>
<div class='buttons'>
<%= submit_tag t('.send_button') %>
- <%= link_to t('.back_to_inbox'), inbox_path(current_user), :class => 'deemphasize button' %>
+ <%= link_to t('.back_to_inbox'), inbox_messages_path, :class => 'deemphasize button' %>
</div>
</fieldset>
<% end %>
<% end %>
<% content_for :heading do %>
- <h2><%= raw(t '.my_inbox', :inbox_link => link_to(t('.inbox'), inbox_path(current_user.display_name))) %>/<%= t'.outbox' %></h2>
+ <h2><%= raw(t '.my_inbox', :inbox_link => link_to(t('.inbox'), inbox_messages_path)) %>/<%= t'.outbox' %></h2>
<% end %>
<h4><%= t '.messages', :count => current_user.sent_messages.size %></h4>
<% end %>
- <%= link_to t('.back'), outbox_path(current_user), :class => "button deemphasize" %>
+ <%= link_to t('.back'), outbox_messages_path, :class => "button deemphasize" %>
</div>
get "/export/embed" => "export#embed"
# messages
- get "/user/:display_name/inbox" => "messages#inbox", :as => "inbox"
- get "/user/:display_name/outbox" => "messages#outbox", :as => "outbox"
+ resources :messages, :only => [:show] do
+ collection do
+ get :inbox
+ get :outbox
+ end
+ end
+ get "/user/:display_name/inbox", :to => redirect(:path => "/messages/inbox")
+ get "/user/:display_name/outbox", :to => redirect(:path => "/messages/outbox")
match "/message/new/:display_name" => "messages#new", :via => [:get, :post], :as => "new_message"
- get "/message/read/:message_id" => "messages#show", :as => "message"
+ get "/message/read/:message_id", :to => redirect(:path => "/messages/%{message_id}")
post "/message/mark/:message_id" => "messages#mark", :as => "mark_message"
match "/message/reply/:message_id" => "messages#reply", :via => [:get, :post], :as => "reply_message"
post "/message/delete/:message_id" => "messages#destroy", :as => "destroy_message"
"fo" => "fo",
"fr" => "fr_FR",
"fur" => "fur",
+ "fy" => "fy",
"ga" => "ga",
"gd" => "gd",
"gl" => "gl",
"mr" => "mr",
"ms" => "ms",
"nb" => "nb_NO",
+ "ne" => "ne",
"nl" => "nl_NL",
"nn" => "nn_NO",
"no" => "nb_NO",
"rue" => "rue",
"sah" => "sah",
"scn" => "scn",
+ "shn" => "shn",
"sk" => "sk",
"skr" => "skr-arab",
"sl" => "sl",
"sq" => "sq",
"sr" => "sr-ec",
"sr-Latn" => "sr-el",
+ "sty" => "sty",
"sv" => "sv_SE",
"ta" => "ta",
"te" => "te",
+ "th" => "th",
"tl" => "tl",
"tly" => "tly",
"tr" => "tr",
end
def test_repeated_changeset_create
- 30.times do
+ 3.times do
basic_authorization create(:user).email, "test"
# create a temporary changeset
# test all routes which lead to this controller
def test_routes
assert_routing(
- { :path => "/user/username/inbox", :method => :get },
- { :controller => "messages", :action => "inbox", :display_name => "username" }
+ { :path => "/messages/inbox", :method => :get },
+ { :controller => "messages", :action => "inbox" }
)
assert_routing(
- { :path => "/user/username/outbox", :method => :get },
- { :controller => "messages", :action => "outbox", :display_name => "username" }
+ { :path => "/messages/outbox", :method => :get },
+ { :controller => "messages", :action => "outbox" }
)
assert_routing(
{ :path => "/message/new/username", :method => :get },
{ :controller => "messages", :action => "new", :display_name => "username" }
)
assert_routing(
- { :path => "/message/read/1", :method => :get },
- { :controller => "messages", :action => "show", :message_id => "1" }
+ { :path => "/messages/1", :method => :get },
+ { :controller => "messages", :action => "show", :id => "1" }
)
assert_routing(
{ :path => "/message/mark/1", :method => :post },
:message => { :title => "Test Message", :body => "Test message body" } }
end
end
- assert_redirected_to inbox_path(:display_name => user.display_name)
+ assert_redirected_to inbox_messages_path
assert_equal "Message sent", flash[:notice]
e = ActionMailer::Base.deliveries.first
assert_equal [recipient_user.email], e.to
assert_equal "[OpenStreetMap] Test Message", e.subject
assert_match /Test message body/, e.text_part.decoded
assert_match /Test message body/, e.html_part.decoded
- assert_match %r{#{SERVER_URL}/message/read/}, e.text_part.decoded
+ assert_match %r{#{SERVER_URL}/messages/[0-9]+}, e.text_part.decoded
ActionMailer::Base.deliveries.clear
m = Message.last
assert_equal user.id, m.from_user_id
unread_message = create(:message, :unread, :sender => user, :recipient => recipient_user)
# Check that the show message page requires us to login
- get :show, :params => { :message_id => unread_message.id }
- assert_redirected_to login_path(:referer => message_path(:message_id => unread_message.id))
+ get :show, :params => { :id => unread_message.id }
+ assert_redirected_to login_path(:referer => message_path(:id => unread_message.id))
# Login as the wrong user
session[:user] = other_user.id
# Check that we can't read the message
- get :show, :params => { :message_id => unread_message.id }
- assert_redirected_to login_path(:referer => message_path(:message_id => unread_message.id))
+ get :show, :params => { :id => unread_message.id }
+ assert_redirected_to login_path(:referer => message_path(:id => unread_message.id))
assert_equal "You are logged in as `#{other_user.display_name}' but the message you have asked to read was not sent by or to that user. Please login as the correct user in order to read it.", flash[:notice]
# Login as the message sender
session[:user] = user.id
# Check that the message sender can read the message
- get :show, :params => { :message_id => unread_message.id }
+ get :show, :params => { :id => unread_message.id }
assert_response :success
assert_template "show"
assert_equal false, Message.find(unread_message.id).message_read
session[:user] = recipient_user.id
# Check that the message recipient can read the message
- get :show, :params => { :message_id => unread_message.id }
+ get :show, :params => { :id => unread_message.id }
assert_response :success
assert_template "show"
assert_equal true, Message.find(unread_message.id).message_read
end
# Asking to read a message with a bogus ID should fail
- get :show, :params => { :message_id => 99999 }
+ get :show, :params => { :id => 99999 }
assert_response :not_found
assert_template "no_such_message"
end
# test the inbox action
def test_inbox
user = create(:user)
- other_user = create(:user)
read_message = create(:message, :read, :recipient => user)
# Check that the inbox page requires us to login
- get :inbox, :params => { :display_name => user.display_name }
- assert_redirected_to login_path(:referer => inbox_path(:display_name => user.display_name))
+ get :inbox
+ assert_redirected_to login_path(:referer => inbox_messages_path)
# Login
session[:user] = user.id
# Check that we can view our inbox when logged in
- get :inbox, :params => { :display_name => user.display_name }
+ get :inbox
assert_response :success
assert_template "inbox"
assert_select "table.messages", :count => 1 do
assert_select "tr", :count => 2
assert_select "tr#inbox-#{read_message.id}.inbox-row", :count => 1
end
-
- # Check that we can't view somebody else's inbox when logged in
- get :inbox, :params => { :display_name => other_user.display_name }
- assert_redirected_to inbox_path(:display_name => user.display_name)
end
##
# test the outbox action
def test_outbox
user = create(:user)
- other_user = create(:user)
create(:message, :sender => user)
# Check that the outbox page requires us to login
- get :outbox, :params => { :display_name => user.display_name }
- assert_redirected_to login_path(:referer => outbox_path(:display_name => user.display_name))
+ get :outbox
+ assert_redirected_to login_path(:referer => outbox_messages_path)
# Login
session[:user] = user.id
# Check that we can view our outbox when logged in
- get :outbox, :params => { :display_name => user.display_name }
+ get :outbox
assert_response :success
assert_template "outbox"
assert_select "table.messages", :count => 1 do
assert_select "tr", :count => 2
assert_select "tr.inbox-row", :count => 1
end
-
- # Check that we can't view somebody else's outbox when logged in
- get :outbox, :params => { :display_name => other_user.display_name }
- assert_redirected_to outbox_path(:display_name => user.display_name)
end
##
# Check that the marking a message read works
post :mark, :params => { :message_id => unread_message.id, :mark => "read" }
- assert_redirected_to inbox_path(:display_name => recipient_user.display_name)
+ assert_redirected_to inbox_messages_path
assert_equal true, Message.find(unread_message.id).message_read
# Check that the marking a message unread works
post :mark, :params => { :message_id => unread_message.id, :mark => "unread" }
- assert_redirected_to inbox_path(:display_name => recipient_user.display_name)
+ assert_redirected_to inbox_messages_path
assert_equal false, Message.find(unread_message.id).message_read
# Check that the marking a message read via XHR works
# Check that the destroy a received message works
post :destroy, :params => { :message_id => read_message.id }
- assert_redirected_to inbox_path(:display_name => user.display_name)
+ assert_redirected_to inbox_messages_path
assert_equal "Message deleted", flash[:notice]
m = Message.find(read_message.id)
assert_equal true, m.from_user_visible
assert_equal false, m.to_user_visible
# Check that the destroying a sent message works
- post :destroy, :params => { :message_id => sent_message.id, :referer => outbox_path(:display_name => user.display_name) }
- assert_redirected_to outbox_path(:display_name => user.display_name)
+ post :destroy, :params => { :message_id => sent_message.id, :referer => outbox_messages_path }
+ assert_redirected_to outbox_messages_path
assert_equal "Message deleted", flash[:notice]
m = Message.find(sent_message.id)
assert_equal false, m.from_user_visible
versions[xml_node["version"]] = xml_doc.to_s
# randomly move the node about
- 20.times do
+ 3.times do
# move the node somewhere else
xml_node["lat"] = precision(rand * 180 - 90).to_s
xml_node["lon"] = precision(rand * 360 - 180).to_s
end
# add a bunch of random tags
- 30.times do
+ 3.times do
xml_tag = XML::Node.new("tag")
xml_tag["k"] = random_string
xml_tag["v"] = random_string
versions[xml_node["version"]] = xml_doc.to_s
# randomly move the node about
- 20.times do
+ 3.times do
# move the node somewhere else
xml_node["lat"] = precision(rand * 180 - 90).to_s
xml_node["lon"] = precision(rand * 360 - 180).to_s
end
# add a bunch of random tags
- 30.times do
+ 3.times do
xml_tag = XML::Node.new("tag")
xml_tag["k"] = random_string
xml_tag["v"] = random_string