before_filter :authorize, :only => [:api_details, :api_gpx_files]
before_filter :authorize_web, :except => [:api_details, :api_gpx_files]
before_filter :set_locale, :except => [:api_details, :api_gpx_files]
- before_filter :require_user, :only => [:set_home, :account, :go_public, :make_friend, :remove_friend, :upload_image, :delete_image]
+ before_filter :require_user, :only => [:set_home, :account, :go_public, :make_friend, :remove_friend]
before_filter :check_database_readable, :except => [:api_details, :api_gpx_files]
- before_filter :check_database_writable, :only => [:login, :new, :set_home, :account, :go_public, :make_friend, :remove_friend, :upload_image, :delete_image]
+ before_filter :check_database_writable, :only => [:login, :new, :set_home, :account, :go_public, :make_friend, :remove_friend]
before_filter :check_api_readable, :only => [:api_details, :api_gpx_files]
before_filter :require_allow_read_prefs, :only => [:api_details]
before_filter :require_allow_read_gpx, :only => [:api_gpx_files]
@user.description = params[:user][:description]
@user.languages = params[:user][:languages].split(",")
+
+ case params[:image_action]
+ when "new" then @user.image = params[:user][:image]
+ when "delete" then @user.image = nil
+ end
+
@user.home_lat = params[:user][:home_lat]
@user.home_lon = params[:user][:home_lon]
end
end
- def upload_image
- @user.image = params[:user][:image]
- @user.save!
- redirect_to :controller => 'user', :action => 'view', :display_name => @user.display_name
- end
-
- def delete_image
- @user.image = nil
- @user.save!
- redirect_to :controller => 'user', :action => 'view', :display_name => @user.display_name
- end
-
def api_gpx_files
doc = OSM::API.new.get_xml_doc
@user.traces.each do |trace|
<h2><%= t 'user.account.my settings' %></h2>
<%= error_messages_for 'user' %>
-<% form_for :user, @user do |f| %>
+<% form_for :user, :html => { :multipart => true } do |f| %>
<table id="accountForm">
<tr><td class="fieldName"><%= t 'user.new.display name' %></td><td><%= f.text_field :display_name %></td></tr>
<tr><td class="fieldName" style="padding-bottom:0px;"><%= t 'user.account.current email address' %></td><td style="padding-bottom:0px;"><%= @user.email %> <span class="minorNote"><%= t 'user.account.email never displayed publicly' %></span></td></tr>
<tr><td class="fieldName" valign="top"><%= t 'user.account.preferred languages' %></td><td><%= f.text_field :languages %></td></tr>
+ <tr>
+ <td class="fieldName" valign="top">
+ <%= t 'user.account.image' %>
+ </td>
+ <td valign="top">
+ <% if @user.image.nil? %>
+ <%= hidden_field_tag "image_action", "new" %>
+ <%= t 'user.account.new image' %><br /><%= file_column_field "user", "image" %>
+ <% else %>
+ <table>
+ <tr>
+ <td rowspan="3" valign="top"><%= image_tag url_for_file_column(@user, "image") %></td>
+ <td><%= radio_button_tag "image_action", "keep", true %></td>
+ <td><%= t 'user.account.keep image' %></td>
+ </tr>
+ <tr>
+ <td><%= radio_button_tag "image_action", "delete" %></td>
+ <td><%= t 'user.account.delete image' %></td>
+ </tr>
+ <tr>
+ <td><%= radio_button_tag "image_action", "new" %></td>
+ <td><%= t 'user.account.replace image' %><br /><%= file_column_field "user", "image", :onchange => "$('image_action_new').checked = true" %></td>
+ </tr>
+ </table>
+ <% end %>
+ </td>
+ </tr>
+
<tr id="homerow" <% unless @user.home_lat and @user.home_lon %> class="nohome" <%end%> ><td class="fieldName"><%= t 'user.account.home location' %></td><td><em class="message"><%= t 'user.account.no home location' %></em><span class="location"><%= t 'user.account.latitude' %> <%= f.text_field :home_lat, :size => 20, :id => "home_lat" %><%= t 'user.account.longitude' %><%= f.text_field :home_lon, :size => 20, :id => "home_lon" %></span></td></tr>
<tr><td></td><td>
+<% if @this_user.image %>
+<%= image_tag url_for_file_column(@this_user, "image"), :align => "right", :float => "left" %>
+<% end %>
<h2><%= h(@this_user.display_name) %>
<% UserRole::ALL_ROLES.each do |role| %>
<% if @user and @user.administrator? %>
<p><b><%= t 'user.view.created from' %></b> <%= @this_user.creation_ip %></p>
<% end %>
-<h3><%= t 'user.view.user image heading' %></h3>
-<% if @this_user.image %>
- <%= image_tag url_for_file_column(@this_user, "image") %>
- <% if @user and @this_user.id == @user.id %>
- <%= button_to t('user.view.delete image'), :action => 'delete_image' %>
- <% end %>
-<% end %>
-<br />
-
-<% if @user and @this_user.id == @user.id %>
- <%= t 'user.view.upload an image' %><br />
- <%= form_tag({:action=>'upload_image'}, :multipart => true)%>
- <%= file_column_field 'user', 'image' %>
- <%= submit_tag t('user.view.add image') %>
- </form>
-<% end %>
-
<h3><%= t 'user.view.description' %></h3>
<div id="description"><%= htmlize(@this_user.description) %></div>
ago: "({{time_in_words_ago}} ago)"
email address: "Email address:"
created from: "Created from:"
- user image heading: User image
- delete image: Delete Image
- upload an image: Upload an image
- add image: Add Image
description: Description
user location: User location
no home location: "No home location has been set."
text: "Currently your edits are anonymous and people cannot 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. <b>Since the 0.6 API changeover, only public users can edit map data</b>. (<a href=\"http://wiki.openstreetmap.org/wiki/Anonymous_edits\">find out why</a>).<ul><li>Your email address will not be revealed by becoming public.</li><li>This action cannot be reversed and all new users are now public by default.</li></ul>"
profile description: "Profile Description:"
preferred languages: "Preferred Languages:"
+ image: "Image:"
+ new image: "Add an image"
+ keep image: "Keep the current image"
+ delete image: "Remove the current image"
+ replace image: "Replace the current image"
home location: "Home Location:"
no home location: "You have not entered your home location."
latitude: "Latitude:"
map.connect '/user/confirm-email', :controller => 'user', :action => 'confirm_email'
map.connect '/user/go_public', :controller => 'user', :action => 'go_public'
map.connect '/user/reset-password', :controller => 'user', :action => 'reset_password'
- map.connect '/user/upload-image', :controller => 'user', :action => 'upload_image'
- map.connect '/user/delete-image', :controller => 'user', :action => 'delete_image'
map.connect '/user/forgot-password', :controller => 'user', :action => 'lost_password'
map.connect '/index.html', :controller => 'site', :action => 'index'