Commit 3b316fadbfc6d15dc38479abd4057a7efcb07f09
1 parent
ad1a6b16
Exists in
master
and in
29 other branches
[template-welcome-page] Option to redirect to welcome page after signup
* Move welcome page a separate action under the HomeController instead of cranking it under the signup. * May show welcome page to both signup (with or without confirmation). (ActionItem3075)
Showing
9 changed files
with
58 additions
and
31 deletions
Show diff stats
app/controllers/public/account_controller.rb
... | ... | @@ -110,7 +110,7 @@ class AccountController < ApplicationController |
110 | 110 | check_join_in_community(@user) |
111 | 111 | go_to_signup_initial_page |
112 | 112 | else |
113 | - @register_pending = true | |
113 | + redirect_to :controller => :home, :action => :welcome | |
114 | 114 | end |
115 | 115 | end |
116 | 116 | end |
... | ... | @@ -441,6 +441,8 @@ class AccountController < ApplicationController |
441 | 441 | redirect_to user.url |
442 | 442 | when 'user_control_panel' |
443 | 443 | redirect_to user.admin_url |
444 | + when 'welcome_page' | |
445 | + redirect_to :controller => :home, :action => :welcome | |
444 | 446 | else |
445 | 447 | redirect_back_or_default(default) |
446 | 448 | end | ... | ... |
app/controllers/public/home_controller.rb
... | ... | @@ -18,4 +18,9 @@ class HomeController < PublicController |
18 | 18 | @no_design_blocks = true |
19 | 19 | end |
20 | 20 | |
21 | + def welcome | |
22 | + self.class.no_design_blocks | |
23 | + @display_confirmation_tips = !user.present? && !environment.enabled?(:skip_new_user_email_confirmation) | |
24 | + end | |
25 | + | |
21 | 26 | end | ... | ... |
app/models/environment.rb
... | ... | @@ -153,7 +153,8 @@ class Environment < ActiveRecord::Base |
153 | 153 | 'site_homepage' => _('Redirects the user to the environment homepage.'), |
154 | 154 | 'user_profile_page' => _('Redirects the user to his profile page.'), |
155 | 155 | 'user_homepage' => _('Redirects the user to his homepage.'), |
156 | - 'user_control_panel' => _('Redirects the user to his control panel.') | |
156 | + 'user_control_panel' => _('Redirects the user to his control panel.'), | |
157 | + 'welcome_page' => _('Redirects the user to the environment welcome page.') | |
157 | 158 | } |
158 | 159 | end |
159 | 160 | validates_inclusion_of :redirection_after_signup, :in => Environment.signup_redirection_options.keys, :allow_nil => true | ... | ... |
app/views/account/signup.html.erb
1 | -<% if @register_pending %> | |
2 | - <div id='thanks-for-signing'> | |
3 | - <% if environment.has_custom_welcome_screen? %> | |
4 | - <%= environment.settings[:signup_welcome_screen_body].html_safe %> | |
5 | - <% else %> | |
6 | - <h1><%= _("Welcome to %s!") % environment.name %></h1> | |
7 | - <h3><%= _("Thanks for signing up, we're thrilled to have you on our social network!") %></h3> | |
8 | - <p><%= _("Firstly, some tips for getting started:") %></p> | |
9 | - <h4><%= _("Confirm your account!") %></h4> | |
10 | - <p><%= _("You should receive a welcome email from us shortly. Please take a second to follow the link within to confirm your account.") %></p> | |
11 | - <p><%= _("You won't appear as %s until your account is confirmed.") % link_to(_('user'), {:controller => :search, :action => :people, :filter => 'more_recent'}, :target => '_blank') %></p> | |
12 | - <h4><%= _("What to do next?") %></h4> | |
13 | - <p><%= _("%s. Upload an avatar and let your friends find you easily :)") % link_to(_('Customize your profile'), {:controller => 'doc', :section => 'user', :topic => 'editing-person-info'}, :target => '_blank') %></p> | |
14 | - <p><%= _("Learn the guidelines. Read the %s for more details on how to use this social network!") % link_to(_('Documentation'), {:controller => 'doc'}, :target => '_blank') %></p> | |
15 | - <p><%= _("%s your Gmail, Yahoo and Hotmail contacts!") % link_to(_('Invite and find'), {:controller => 'doc', :section => 'user', :topic => 'invite-contacts'}, :target => '_blank') %></p> | |
16 | - <p><%= _("Start exploring and have fun!") %></p> | |
17 | - <% end %> | |
18 | - </div> | |
19 | -<% else %> | |
20 | - <h1><%= _('Sign up for %s!') % environment.name %></h1> | |
21 | - <%= render :partial => 'signup_form' %> | |
22 | -<% end %> | |
1 | +<h1><%= _('Sign up for %s!') % environment.name %></h1> | |
2 | +<%= render :partial => 'signup_form' %> | ... | ... |
... | ... | @@ -0,0 +1,19 @@ |
1 | +<div id='thanks-for-signing'> | |
2 | + <% if environment.has_custom_welcome_screen? %> | |
3 | + <%= environment.settings[:signup_welcome_screen_body].html_safe %> | |
4 | + <% else %> | |
5 | + <h1><%= _("Welcome to %s!") % environment.name %></h1> | |
6 | + <h3><%= _("Thanks for signing up, we're thrilled to have you on our social network!") %></h3> | |
7 | + <p><%= _("Firstly, some tips for getting started:") %></p> | |
8 | + <% if @display_confirmation_tips %> | |
9 | + <h4><%= _("Confirm your account!") %></h4> | |
10 | + <p><%= _("You should receive a welcome email from us shortly. Please take a second to follow the link within to confirm your account.") %></p> | |
11 | + <p><%= _("You won't appear as %s until your account is confirmed.") % link_to(_('user'), {:controller => :search, :action => :people, :filter => 'more_recent'}, :target => '_blank') %></p> | |
12 | + <% end %> | |
13 | + <h4><%= _("What to do next?") %></h4> | |
14 | + <p><%= _("%s. Upload an avatar and let your friends find you easily :)") % link_to(_('Customize your profile'), {:controller => 'doc', :section => 'user', :topic => 'editing-person-info'}, :target => '_blank') %></p> | |
15 | + <p><%= _("Learn the guidelines. Read the %s for more details on how to use this social network!") % link_to(_('Documentation'), {:controller => 'doc'}, :target => '_blank') %></p> | |
16 | + <p><%= _("%s your Gmail, Yahoo and Hotmail contacts!") % link_to(_('Invite and find'), {:controller => 'doc', :section => 'user', :topic => 'invite-contacts'}, :target => '_blank') %></p> | |
17 | + <p><%= _("Start exploring and have fun!") %></p> | |
18 | + <% end %> | |
19 | +</div> | ... | ... |
features/signup.feature
... | ... | @@ -152,6 +152,21 @@ Feature: signup |
152 | 152 | Then I should be on the homepage |
153 | 153 | |
154 | 154 | @selenium |
155 | + Scenario: user should go to the environment's welcome page after signup | |
156 | + Given the environment is configured to redirect to welcome page after signup | |
157 | + And I am on /search/people | |
158 | + When I follow "Sign up" | |
159 | + And I fill in the following within ".no-boxes": | |
160 | + | e-Mail | josesilva@example.com | | |
161 | + | Username | josesilva | | |
162 | + | Password | secret | | |
163 | + | Password confirmation | secret | | |
164 | + | Full name | José da Silva | | |
165 | + And wait for the captcha signup time | |
166 | + And I press "Create my account" | |
167 | + Then I should be on the welcome page | |
168 | + | |
169 | + @selenium | |
155 | 170 | Scenario: user should stay on same page after following confirmation link |
156 | 171 | Given the environment is configured to stay on the same page after login |
157 | 172 | And feature "skip_new_user_email_confirmation" is disabled on environment | ... | ... |
features/step_definitions/noosfero_steps.rb
... | ... | @@ -745,6 +745,8 @@ Given /^the environment is configured to (.*) after signup$/ do |option| |
745 | 745 | 'user_homepage' |
746 | 746 | when 'redirect to profile control panel' |
747 | 747 | 'user_control_panel' |
748 | + when 'redirect to welcome page' | |
749 | + 'welcome_page' | |
748 | 750 | end |
749 | 751 | environment = Environment.default |
750 | 752 | environment.redirection_after_signup = redirection | ... | ... |
features/support/paths.rb
... | ... | @@ -20,8 +20,8 @@ module NavigationHelpers |
20 | 20 | when /^\// |
21 | 21 | page_name |
22 | 22 | |
23 | - when /^(.*)'s profile/ | |
24 | - '/profile/' + profile_identifier($1) | |
23 | + when /the welcome page/ | |
24 | + '/site/welcome' | |
25 | 25 | |
26 | 26 | when /article "([^"]+)"\s*$/ |
27 | 27 | url_for(Article.find_by_name($1).url.merge({:only_path => true})) | ... | ... |
test/functional/account_controller_test.rb
... | ... | @@ -50,8 +50,6 @@ class AccountControllerTest < ActionController::TestCase |
50 | 50 | def test_should_allow_signup |
51 | 51 | assert_difference 'User.count' do |
52 | 52 | new_user |
53 | - assert_response :success | |
54 | - assert_not_nil assigns(:register_pending) | |
55 | 53 | end |
56 | 54 | end |
57 | 55 | |
... | ... | @@ -104,8 +102,6 @@ class AccountControllerTest < ActionController::TestCase |
104 | 102 | assert_difference 'User.count' do |
105 | 103 | Environment.default.update_attribute(:terms_of_use, 'some terms ...') |
106 | 104 | new_user(:terms_accepted => '1') |
107 | - assert_response :success | |
108 | - assert_not_nil assigns(:register_pending) | |
109 | 105 | end |
110 | 106 | end |
111 | 107 | |
... | ... | @@ -626,7 +622,6 @@ class AccountControllerTest < ActionController::TestCase |
626 | 622 | Person.any_instance.stubs(:required_fields).returns(['organization']) |
627 | 623 | assert_difference 'User.count' do |
628 | 624 | post :signup, :user => { :login => 'testuser', :password => '123456', :password_confirmation => '123456', :email => 'testuser@example.com' }, :profile_data => { :organization => 'example.com' } |
629 | - assert_response :success | |
630 | 625 | end |
631 | 626 | assert_equal 'example.com', Person['testuser'].organization |
632 | 627 | end |
... | ... | @@ -958,6 +953,14 @@ class AccountControllerTest < ActionController::TestCase |
958 | 953 | assert_equal label, "Lavras do Sul" |
959 | 954 | end |
960 | 955 | |
956 | + should 'redirect to welcome page after successful signup if environment configured as so' do | |
957 | + environment = Environment.default | |
958 | + environment.redirection_after_signup = 'welcome_page' | |
959 | + environment.save! | |
960 | + new_user | |
961 | + assert_redirected_to :controller => 'home', :action => 'welcome' | |
962 | + end | |
963 | + | |
961 | 964 | protected |
962 | 965 | def new_user(options = {}, extra_options ={}) |
963 | 966 | data = {:profile_data => person_data} | ... | ... |