Preserve field values if the signup form fails validation
authorTom Hughes <tom@compton.nu>
Wed, 19 Oct 2011 17:24:25 +0000 (18:24 +0100)
committerTom Hughes <tom@compton.nu>
Mon, 14 Nov 2011 09:42:56 +0000 (09:42 +0000)
app/controllers/user_controller.rb
app/views/user/new.html.erb

index 16b76196b712925f5d491e75d127aed93334be16..86689644c8032b5139aae2dcfa7b5ed1dabd75c8 100644 (file)
@@ -253,6 +253,10 @@ class UserController < ApplicationController
   def new
     @title = t 'user.new.title'
     @referer = params[:referer] || session[:referer]
+    @user = User.new(:email => params[:email],
+                     :email_confirmation => params[:email],
+                     :display_name => params[:nickname],
+                     :openid_url => params[:openid])
 
     if session[:user]
       # The user is logged in already, so don't show them the signup
index 1956592aaadbf253addf6fd4e6d4a158a5ae14df..97622ae138d1ab1113843b9a7a0c37196cef2a95 100644 (file)
 
 <%= error_messages_for 'user' %>
 
-<%= form_tag :action => 'terms' do %>
+<%= form_for :user, :url => { :action => 'terms' } do %>
   <%= hidden_field_tag('referer', h(@referer)) unless @referer.nil? %>
 
   <table id="signupForm">
     <tr>
       <td class="fieldName"><%= t 'user.new.email address' %></td>
-      <td><%= text_field(:user, :email, { :size => 50, :maxlength => 255, :tabindex => 1, :value => params[:email] }) %></td>
+      <td><%= text_field(:user, :email, { :size => 50, :maxlength => 255, :tabindex => 1 }) %></td>
     </tr>
     <tr>
       <td class="fieldName"><%= t 'user.new.confirm email address' %></td>
-      <td><%= text_field(:user, :email_confirmation, { :size => 50, :maxlength => 255, :tabindex => 2, :value => params[:email] }) %></td>
+      <td><%= text_field(:user, :email_confirmation, { :size => 50, :maxlength => 255, :tabindex => 2 }) %></td>
     </tr>
     <tr>
       <td></td>
@@ -33,7 +33,7 @@
 
     <tr>
       <td class="fieldName"><%= t 'user.new.display name' %></td>
-      <td><%= text_field(:user, :display_name, { :size => 30, :maxlength => 255, :tabindex => 3, :value => params[:nickname] }) %></td></tr>
+      <td><%= text_field(:user, :display_name, { :size => 30, :maxlength => 255, :tabindex => 3 }) %></td></tr>
     <tr>
       <td></td>
       <td><span class="minorNote"><%= t 'user.new.display name description' %></span></td>
@@ -43,7 +43,7 @@
 
     <tr id="openid_field">
       <td class="fieldName"><%= raw t 'user.new.openid', :logo => openid_logo %></td>
-      <td><%= text_field(:user, :openid_url, { :id => "openid_url", :size => 50, :maxlength => 255, :tabindex => 4, :value => params[:openid], :class => "openid_url" }) %></td>
+      <td><%= text_field(:user, :openid_url, { :id => "openid_url", :size => 50, :maxlength => 255, :tabindex => 4, :class => "openid_url" }) %></td>
     </tr>
 
     <tr><td colspan="2">&nbsp;<!--vertical spacer--></td></tr>