Commit 28c193d4053eceaa19d147b8bc3124484d61b442
Committed by
Antonio Terceiro
1 parent
5bf571f1
Exists in
master
and in
29 other branches
Join community and add member through ajax
Also: * Adding links to the profile-image balloon. * Removing add-friend and join-community confirmation steps.
Showing
19 changed files
with
222 additions
and
318 deletions
Show diff stats
app/controllers/my_profile/friends_controller.rb
@@ -8,18 +8,6 @@ class FriendsController < MyProfileController | @@ -8,18 +8,6 @@ class FriendsController < MyProfileController | ||
8 | end | 8 | end |
9 | end | 9 | end |
10 | 10 | ||
11 | - def add | ||
12 | - @friend = Person.find(params[:id]) | ||
13 | - if request.post? && params[:confirmation] | ||
14 | - # FIXME this shouldn't be in Person model? | ||
15 | - AddFriend.create!(:person => profile, :friend => @friend, :group_for_person => params[:group]) | ||
16 | - | ||
17 | - session[:notice] = _('%s still needs to accept being your friend.') % @friend.name | ||
18 | - # FIXME shouldn't redirect to the friend's page? | ||
19 | - redirect_to :action => 'index' | ||
20 | - end | ||
21 | - end | ||
22 | - | ||
23 | def remove | 11 | def remove |
24 | @friend = profile.friends.find(params[:id]) | 12 | @friend = profile.friends.find(params[:id]) |
25 | if request.post? && params[:confirmation] | 13 | if request.post? && params[:confirmation] |
app/controllers/public/profile_controller.rb
1 | class ProfileController < PublicController | 1 | class ProfileController < PublicController |
2 | 2 | ||
3 | needs_profile | 3 | needs_profile |
4 | - before_filter :check_access_to_profile, :except => [:join, :index] | ||
5 | - before_filter :store_before_join, :only => [:join] | ||
6 | - before_filter :login_required, :only => [:join, :leave, :unblock, :leave_scrap, :remove_scrap, :remove_activity, :view_more_scraps, :view_more_activities, :view_more_network_activities] | 4 | + before_filter :check_access_to_profile, :except => [:join, :join_not_logged, :index] |
5 | + before_filter :store_before_join, :only => [:join, :join_not_logged] | ||
6 | + before_filter :login_required, :only => [:join, :join_not_logged, :leave, :unblock, :leave_scrap, :remove_scrap, :remove_activity, :view_more_scraps, :view_more_activities, :view_more_network_activities] | ||
7 | 7 | ||
8 | helper TagsHelper | 8 | helper TagsHelper |
9 | 9 | ||
@@ -82,18 +82,26 @@ class ProfileController < PublicController | @@ -82,18 +82,26 @@ class ProfileController < PublicController | ||
82 | end | 82 | end |
83 | 83 | ||
84 | def join | 84 | def join |
85 | - @wizard = params[:wizard] | ||
86 | - if request.post? && params[:confirmation] | ||
87 | - profile.add_member(current_user.person) | ||
88 | - session[:notice] = _('%s administrator still needs to accept you as member.') % profile.name if profile.closed? | ||
89 | - if @wizard | ||
90 | - redirect_to :controller => 'search', :action => 'assets', :asset => 'communities', :wizard => true | 85 | + if !user.memberships.include?(profile) |
86 | + profile.add_member(user) | ||
87 | + if profile.closed? | ||
88 | + render :text => _('%s administrator still needs to accept you as member.') % profile.name | ||
91 | else | 89 | else |
92 | - redirect_to_before_join | 90 | + render :text => _('You just became a member of %s.') % profile.name |
93 | end | 91 | end |
94 | else | 92 | else |
95 | - if current_user.person.memberships.include?(profile) | ||
96 | - session[:notice] = _('You are already a member of "%s"') % profile.name | 93 | + render :text => _('You are already a member of %s.') % profile.name |
94 | + end | ||
95 | + end | ||
96 | + | ||
97 | + def join_not_logged | ||
98 | + if request.post? | ||
99 | + profile.add_member(user) | ||
100 | + session[:notice] = _('%s administrator still needs to accept you as member.') % profile.name if profile.closed? | ||
101 | + redirect_to_before_join | ||
102 | + else | ||
103 | + if user.memberships.include?(profile) | ||
104 | + session[:notice] = _('You are already a member of %s') % profile.name | ||
97 | redirect_to profile.url | 105 | redirect_to profile.url |
98 | return | 106 | return |
99 | end | 107 | end |
@@ -104,20 +112,37 @@ class ProfileController < PublicController | @@ -104,20 +112,37 @@ class ProfileController < PublicController | ||
104 | end | 112 | end |
105 | 113 | ||
106 | def leave | 114 | def leave |
107 | - @wizard = params[:wizard] | ||
108 | - @back_to = params[:back_to] || request.referer | ||
109 | - if request.post? && params[:confirmation] | 115 | + if user.memberships.include?(profile) |
110 | profile.remove_member(current_user.person) | 116 | profile.remove_member(current_user.person) |
111 | - if @wizard | ||
112 | - redirect_to :controller => 'search', :action => 'assets', :asset => 'communities', :wizard => true | ||
113 | - else | ||
114 | - back = @back_to || profile.url | ||
115 | - redirect_to back | ||
116 | - end | 117 | + render :text => _('You just left %s.') % profile.name |
117 | else | 118 | else |
118 | - if request.xhr? | ||
119 | - render :layout => false | ||
120 | - end | 119 | + render :text => _('You are already a member of %s.') % profile.name |
120 | + end | ||
121 | + end | ||
122 | + | ||
123 | + def check_membership | ||
124 | + if user.memberships.include?(profile) | ||
125 | + render :text => 'true' | ||
126 | + else | ||
127 | + render :text => 'false' | ||
128 | + end | ||
129 | + end | ||
130 | + | ||
131 | + def add | ||
132 | + # FIXME this shouldn't be in Person model? | ||
133 | + if !user.memberships.include?(profile) | ||
134 | + AddFriend.create!(:person => user, :friend => profile) | ||
135 | + render :text => _('%s still needs to accept being your friend.') % profile.name | ||
136 | + else | ||
137 | + render :text => _('You are already a friend of %s.') % profile.name | ||
138 | + end | ||
139 | + end | ||
140 | + | ||
141 | + def check_friendship | ||
142 | + if user == profile || user.already_request_friendship?(profile) || user.is_a_friend?(profile) | ||
143 | + render :text => 'true' | ||
144 | + else | ||
145 | + render :text => 'false' | ||
121 | end | 146 | end |
122 | end | 147 | end |
123 | 148 |
app/helpers/application_helper.rb
@@ -515,24 +515,27 @@ module ApplicationHelper | @@ -515,24 +515,27 @@ module ApplicationHelper | ||
515 | if environment.enabled?(:show_balloon_with_profile_links_when_clicked) | 515 | if environment.enabled?(:show_balloon_with_profile_links_when_clicked) |
516 | if profile.kind_of?(Person) | 516 | if profile.kind_of?(Person) |
517 | [ | 517 | [ |
518 | - {_('Home Page') => url_for(profile.url)}, | ||
519 | - {_('Wall') => url_for(profile.public_profile_url)}, | ||
520 | - {_('Friends') => url_for(:controller => :profile, :action => :friends, :profile => profile.identifier)}, | ||
521 | - {_('Communities') => url_for(:controller => :profile, :action => :communities, :profile => profile.identifier)} | 518 | + {_('Wall') => {:href => url_for(profile.public_profile_url)}}, |
519 | + {_('Friends') => {:href => url_for(:controller => :profile, :action => :friends, :profile => profile.identifier)}}, | ||
520 | + {_('Communities') => {:href => url_for(:controller => :profile, :action => :communities, :profile => profile.identifier)}}, | ||
521 | + {_('Send an e-mail') => {:href => url_for(:profile => profile.identifier, :controller => 'contact', :action => 'new'), :class => 'send-an-email'}}, | ||
522 | + {_('Add') => {:href => url_for(profile.add_url), :class => 'add-friend'}} | ||
522 | ] | 523 | ] |
523 | elsif profile.kind_of?(Community) | 524 | elsif profile.kind_of?(Community) |
524 | [ | 525 | [ |
525 | - {_('Home Page') => url_for(profile.url)}, | ||
526 | - {_('Wall') => url_for(profile.public_profile_url)}, | ||
527 | - {_('Members') => url_for(:controller => :profile, :action => :members, :profile => profile.identifier)}, | ||
528 | - {_('Agenda') => url_for(:controller => :profile, :action => :events, :profile => profile.identifier)} | 526 | + {_('Wall') => {:href => url_for(profile.public_profile_url)}}, |
527 | + {_('Members') => {:href => url_for(:controller => :profile, :action => :members, :profile => profile.identifier)}}, | ||
528 | + {_('Agenda') => {:href => url_for(:controller => :profile, :action => :events, :profile => profile.identifier)}}, | ||
529 | + {_('Join') => {:href => url_for(profile.join_url), :class => 'join-community'}}, | ||
530 | + {_('Leave') => {:href => url_for(profile.leave_url), :class => 'leave-community'}}, | ||
531 | + {_('Send an e-mail') => {:href => url_for(:profile => profile.identifier, :controller => 'contact', :action => 'new'), :class => 'send-an-email'}} | ||
529 | ] | 532 | ] |
530 | elsif profile.kind_of?(Enterprise) | 533 | elsif profile.kind_of?(Enterprise) |
531 | [ | 534 | [ |
532 | - {_('Home Page') => url_for(profile.url)}, | ||
533 | - {_('Products') => catalog_path(profile.identifier)}, | ||
534 | - {_('Members') => url_for(:controller => :profile, :action => :members, :profile => profile.identifier)}, | ||
535 | - {_('Agenda') => url_for(:controller => :profile, :action => :events, :profile => profile.identifier)} | 535 | + {_('Products') => {:href => catalog_path(profile.identifier)}}, |
536 | + {_('Members') => {:href => url_for(:controller => :profile, :action => :members, :profile => profile.identifier)}}, | ||
537 | + {_('Agenda') => {:href => url_for(:controller => :profile, :action => :events, :profile => profile.identifier)}}, | ||
538 | + {_('Send an e-mail') => {:href => url_for(:profile => profile.identifier, :controller => 'contact', :action => 'new'), :class => 'send-an-email'}}, | ||
536 | ] | 539 | ] |
537 | else | 540 | else |
538 | [] | 541 | [] |
@@ -543,17 +546,24 @@ module ApplicationHelper | @@ -543,17 +546,24 @@ module ApplicationHelper | ||
543 | # displays a link to the profile homepage with its image (as generated by | 546 | # displays a link to the profile homepage with its image (as generated by |
544 | # #profile_image) and its name below it. | 547 | # #profile_image) and its name below it. |
545 | def profile_image_link( profile, size=:portrait, tag='li', extra_info = nil ) | 548 | def profile_image_link( profile, size=:portrait, tag='li', extra_info = nil ) |
546 | - if profile.class == Person | ||
547 | - name = profile.short_name | 549 | + name = profile.short_name |
550 | + if profile.person? | ||
548 | city = content_tag 'span', content_tag( 'span', profile.city, :class => 'locality' ), :class => 'adr' | 551 | city = content_tag 'span', content_tag( 'span', profile.city, :class => 'locality' ), :class => 'adr' |
552 | + url = url_for(profile.check_friendship_url) | ||
553 | + trigger_class = 'person-trigger' | ||
549 | else | 554 | else |
550 | - name = profile.short_name | ||
551 | city = '' | 555 | city = '' |
556 | + url = url_for(profile.check_membership_url) | ||
557 | + if profile.community? | ||
558 | + trigger_class = 'community-trigger' | ||
559 | + elsif profile.enterprise? | ||
560 | + trigger_class = 'enterprise-trigger' | ||
561 | + end | ||
552 | end | 562 | end |
553 | extra_info = extra_info.nil? ? '' : content_tag( 'span', extra_info, :class => 'extra_info' ) | 563 | extra_info = extra_info.nil? ? '' : content_tag( 'span', extra_info, :class => 'extra_info' ) |
554 | links = links_for_balloon(profile) | 564 | links = links_for_balloon(profile) |
555 | content_tag tag, | 565 | content_tag tag, |
556 | - (environment.enabled?(:show_balloon_with_profile_links_when_clicked) ? link_to( content_tag( 'span', _('Profile links')), '#', :onclick => "toggleSubmenu(this, '#{profile.short_name}', #{links.to_json}); return false", :class => 'menu-submenu-trigger' ) : "") + | 566 | + (environment.enabled?(:show_balloon_with_profile_links_when_clicked) ? link_to( content_tag( 'span', _('Profile links')), '#', :onclick => "toggleSubmenu(this, '#{profile.short_name}', #{links.to_json}); return false", :class => "menu-submenu-trigger #{trigger_class}", :url => url) : "") + |
557 | link_to( | 567 | link_to( |
558 | content_tag( 'span', profile_image( profile, size ), :class => 'profile-image' ) + | 568 | content_tag( 'span', profile_image( profile, size ), :class => 'profile-image' ) + |
559 | content_tag( 'span', h(name), :class => ( profile.class == Person ? 'fn' : 'org' ) ) + | 569 | content_tag( 'span', h(name), :class => ( profile.class == Person ? 'fn' : 'org' ) ) + |
@@ -571,8 +581,9 @@ module ApplicationHelper | @@ -571,8 +581,9 @@ module ApplicationHelper | ||
571 | def community_image_link( profile, size=:portrait, tag='li' ) | 581 | def community_image_link( profile, size=:portrait, tag='li' ) |
572 | name = h(profile.name) | 582 | name = h(profile.name) |
573 | links = links_for_balloon(profile) | 583 | links = links_for_balloon(profile) |
584 | + url = url_for(profile.check_membership_url) | ||
574 | content_tag tag, | 585 | content_tag tag, |
575 | - (environment.enabled?(:show_balloon_with_profile_links_when_clicked) ? link_to( content_tag( 'span', _('Profile links')), '#', :onclick => "toggleSubmenu(this, '#{profile.short_name}', #{links.to_json}); return false", :class => 'menu-submenu-trigger' ) : "") + | 586 | + (environment.enabled?(:show_balloon_with_profile_links_when_clicked) ? link_to( content_tag( 'span', _('Profile links')), '#', :onclick => "toggleSubmenu(this, '#{profile.short_name}', #{links.to_json}); return false", :class => 'menu-submenu-trigger community-trigger', :url => url) : "") + |
576 | link_to( | 587 | link_to( |
577 | content_tag( 'span', profile_image( profile, size ), :class => 'profile-image' ) + | 588 | content_tag( 'span', profile_image( profile, size ), :class => 'profile-image' ) + |
578 | content_tag( 'span', name, :class => 'org' ) + | 589 | content_tag( 'span', name, :class => 'org' ) + |
app/models/profile.rb
@@ -426,6 +426,22 @@ class Profile < ActiveRecord::Base | @@ -426,6 +426,22 @@ class Profile < ActiveRecord::Base | ||
426 | { :profile => identifier, :controller => 'profile', :action => 'join' } | 426 | { :profile => identifier, :controller => 'profile', :action => 'join' } |
427 | end | 427 | end |
428 | 428 | ||
429 | + def join_not_logged_url | ||
430 | + { :profile => identifier, :controller => 'profile', :action => 'join_not_logged' } | ||
431 | + end | ||
432 | + | ||
433 | + def check_membership_url | ||
434 | + { :profile => identifier, :controller => 'profile', :action => 'check_membership' } | ||
435 | + end | ||
436 | + | ||
437 | + def add_url | ||
438 | + { :profile => identifier, :controller => 'profile', :action => 'add' } | ||
439 | + end | ||
440 | + | ||
441 | + def check_friendship_url | ||
442 | + { :profile => identifier, :controller => 'profile', :action => 'check_friendship' } | ||
443 | + end | ||
444 | + | ||
429 | def public_profile_url | 445 | def public_profile_url |
430 | generate_url(:profile => identifier, :controller => 'profile', :action => 'index') | 446 | generate_url(:profile => identifier, :controller => 'profile', :action => 'index') |
431 | end | 447 | end |
app/views/blocks/profile_info_actions/community.rhtml
@@ -3,12 +3,14 @@ | @@ -3,12 +3,14 @@ | ||
3 | 3 | ||
4 | <% if profile.members.include?(user) %> | 4 | <% if profile.members.include?(user) %> |
5 | <li> | 5 | <li> |
6 | - <%= lightbox_link_to content_tag('span', _('Leave')), profile.leave_url, :class => 'button with-text icon-delete', :title => _('Leave this community') %> | 6 | + <%= button(:delete, content_tag('span', __('Leave')), profile.leave_url, :class => 'leave-community', :title => _("Leave community"), :style => 'position: relative;') %> |
7 | + <%= button(:add, content_tag('span', __('Join')), profile.join_url, :class => 'join-community', :title => _("Join community"), :style => 'position: relative; display: none;') %> | ||
7 | </li> | 8 | </li> |
8 | <% else %> | 9 | <% else %> |
9 | <% unless profile.already_request_membership?(user) %> | 10 | <% unless profile.already_request_membership?(user) %> |
10 | <li> | 11 | <li> |
11 | - <%= lightbox_link_to content_tag('span', _('Join')), profile.join_url, :class => 'button with-text icon-add', :title => _('Join this community') %> | 12 | + <%= button(:delete, content_tag('span', __('Leave')), profile.leave_url, :class => 'leave-community', :title => _("Leave community"), :style => 'position: relative; display: none;') %> |
13 | + <%= button(:add, content_tag('span', __('Join')), profile.join_url, :class => 'join-community', :title => _("Join community"), :style => 'position: relative;') %> | ||
12 | </li> | 14 | </li> |
13 | <% end %> | 15 | <% end %> |
14 | <% end %> | 16 | <% end %> |
@@ -22,7 +24,7 @@ | @@ -22,7 +24,7 @@ | ||
22 | <% else %> | 24 | <% else %> |
23 | 25 | ||
24 | <li> | 26 | <li> |
25 | - <%= link_to content_tag('span', _('Join')), profile.join_url, :class => 'button with-text icon-add', :title => _('Join this community') %> | 27 | + <%= link_to content_tag('span', _('Join')), profile.join_not_logged_url, :class => 'button with-text icon-add', :title => _('Join this community') %> |
26 | </li> | 28 | </li> |
27 | 29 | ||
28 | <% end %> | 30 | <% end %> |
app/views/blocks/profile_info_actions/person.rhtml
@@ -2,7 +2,9 @@ | @@ -2,7 +2,9 @@ | ||
2 | <%if logged_in? && (user != profile) %> | 2 | <%if logged_in? && (user != profile) %> |
3 | 3 | ||
4 | <% if !user.already_request_friendship?(profile) and !user.is_a_friend?(profile) %> | 4 | <% if !user.already_request_friendship?(profile) and !user.is_a_friend?(profile) %> |
5 | - <li><%= link_to content_tag('span', __('Add friend')), user.url.merge(:controller => 'friends', :action => 'add', :id => profile.id), :class => 'button with-text icon-add' %></li> | 5 | + <li> |
6 | + <%= button(:add, content_tag('span', __('Add friend')), profile.add_url, :class => 'add-friend', :title => _("Add friend"), :style => 'position: relative;') %> | ||
7 | + </li> | ||
6 | <% end %> | 8 | <% end %> |
7 | 9 | ||
8 | <% if user.is_a_friend?(profile) && profile.enable_contact? %> | 10 | <% if user.is_a_friend?(profile) && profile.enable_contact? %> |
app/views/friends/add.rhtml
@@ -1,26 +0,0 @@ | @@ -1,26 +0,0 @@ | ||
1 | -<h1><%= __('Adding %s as a friend') % @friend.name %></h1> | ||
2 | - | ||
3 | -<p> | ||
4 | -<%= __('Are you sure you want to add %s as your friend?') % @friend.name %> | ||
5 | -</p> | ||
6 | - | ||
7 | -<p> | ||
8 | -<em> | ||
9 | -<%= __('Note that %s will need to accept being added as your friend.') % @friend.name %> | ||
10 | -</em> | ||
11 | -</p> | ||
12 | - | ||
13 | -<% form_tag do %> | ||
14 | - <%= hidden_field_tag(:confirmation, 1) %> | ||
15 | - | ||
16 | - <div class="add-friend-tags"> | ||
17 | - <%= __('Classify your new friend %s: ') % @friend.name %> | ||
18 | - <%= text_field_with_local_autocomplete('group', profile.suggested_friend_groups, :maxlength => 150) %> | ||
19 | - <p> | ||
20 | - <%= _('Suggestions: %s') % profile.suggested_friend_groups.join(', ') %> | ||
21 | - </p> | ||
22 | - </div> | ||
23 | - | ||
24 | - <%= submit_button(:ok, __("Yes, I want to add %s as my friend") % @friend.name) %> | ||
25 | - <%= button(:cancel, _("No, I don't want"), :action => 'index') %> | ||
26 | -<% end %> |
app/views/layouts/_javascript.rhtml
1 | -<%= javascript_include_tag :defaults, 'jquery-latest.js', 'jquery.noconflict.js', 'jquery.cycle.all.min.js', 'thickbox.js', 'lightbox', 'jquery-ui-1.8.2.custom.min', 'jquery.scrollTo', 'jquery.form.js', 'jquery.cookie', 'reflection', :cache => 'cache-general' %> | 1 | +<%= javascript_include_tag :defaults, 'jquery-latest.js', 'jquery.noconflict.js', 'jquery.cycle.all.min.js', 'thickbox.js', 'lightbox', 'jquery-ui-1.8.2.custom.min', 'jquery.scrollTo', 'jquery.form.js', 'jquery.cookie', 'reflection', 'add-and-join', :cache => 'cache-general' %> |
app/views/profile/_private_profile.rhtml
@@ -7,10 +7,10 @@ | @@ -7,10 +7,10 @@ | ||
7 | 7 | ||
8 | <% button_bar do %> | 8 | <% button_bar do %> |
9 | <% if @action == :join && logged_in? %> | 9 | <% if @action == :join && logged_in? %> |
10 | - <%= lightbox_link_to content_tag('span', _('Join')), profile.join_url, :class => 'button with-text icon-add', :title => _('Join this community') %> | 10 | + <%= button(:add, content_tag('span', __('Join')), profile.join_url, :class => 'join-community', :title => _("Join community"), :style => 'position: relative;') %> |
11 | <% end %> | 11 | <% end %> |
12 | <% if @action == :add_friend && logged_in? && !user.already_request_friendship?(profile) %> | 12 | <% if @action == :add_friend && logged_in? && !user.already_request_friendship?(profile) %> |
13 | - <%= link_to content_tag('span', __('Add friend')), user.url.merge(:controller => 'friends', :action => 'add', :id => profile.id), :class => 'button with-text icon-add' %> | 13 | + <%= button(:add, content_tag('span', __('Add friend')), profile.add_url, :class => 'add-friend', :title => _("Add friend"), :style => 'position: relative;') %> |
14 | <% end %> | 14 | <% end %> |
15 | <%= button :back, _('Go back'), :back %> | 15 | <%= button :back, _('Go back'), :back %> |
16 | <%= button :home, _("Go to %s home page") % environment.name, :controller => 'home' %> | 16 | <%= button :home, _("Go to %s home page") % environment.name, :controller => 'home' %> |
features/balloon.feature
@@ -38,7 +38,6 @@ Feature: balloon | @@ -38,7 +38,6 @@ Feature: balloon | ||
38 | When I click ".menu-submenu-trigger" | 38 | When I click ".menu-submenu-trigger" |
39 | Then I should see "Profile" | 39 | Then I should see "Profile" |
40 | And I should see "Friends" | 40 | And I should see "Friends" |
41 | - And I should see "Home Page" | ||
42 | 41 | ||
43 | @selenium | 42 | @selenium |
44 | Scenario: I should see balloon when clicked on community block trigger | 43 | Scenario: I should see balloon when clicked on community block trigger |
@@ -71,4 +70,3 @@ Feature: balloon | @@ -71,4 +70,3 @@ Feature: balloon | ||
71 | When I click ".menu-submenu-trigger" | 70 | When I click ".menu-submenu-trigger" |
72 | Then I should see "Members" | 71 | Then I should see "Members" |
73 | And I should see "Agenda" | 72 | And I should see "Agenda" |
74 | - And I should see "Home Page" |
features/join_community.feature
@@ -1,24 +0,0 @@ | @@ -1,24 +0,0 @@ | ||
1 | -Feature: join a community | ||
2 | - As a user | ||
3 | - I want to join a community | ||
4 | - In order to interact with other people | ||
5 | - | ||
6 | - Background: | ||
7 | - Given the following users | ||
8 | - | login | name | | ||
9 | - | joaosilva | Joao Silva | | ||
10 | - Given the following communities | ||
11 | - | identifier | name | | ||
12 | - | sample-community | Sample Community | | ||
13 | - | ||
14 | - Scenario: ask confirmation before join community | ||
15 | - Given I am logged in as "joaosilva" | ||
16 | - And I am on Sample Community's homepage | ||
17 | - When I follow "Join" | ||
18 | - Then I should see "Are you sure you want to join Sample Community" | ||
19 | - | ||
20 | - Scenario: dont ask confirmation before join community if already member | ||
21 | - Given joaosilva is member of sample-community | ||
22 | - And I am logged in as "joaosilva" | ||
23 | - When I go to /profile/sample-community | ||
24 | - Then I should not see "Are you sure you want to join Community to join" |
features/my_network_block.feature
@@ -23,7 +23,6 @@ Feature: my_network_block | @@ -23,7 +23,6 @@ Feature: my_network_block | ||
23 | Then I should see "2 communities" | 23 | Then I should see "2 communities" |
24 | When I go to Public Community's homepage | 24 | When I go to Public Community's homepage |
25 | And I follow "Join" | 25 | And I follow "Join" |
26 | - And I press "Yes, I want to join." | ||
27 | When I go to Joao Silva's homepage | 26 | When I go to Joao Silva's homepage |
28 | Then I should see "3 communities" | 27 | Then I should see "3 communities" |
29 | 28 | ||
@@ -37,7 +36,6 @@ Feature: my_network_block | @@ -37,7 +36,6 @@ Feature: my_network_block | ||
37 | Then I should see "One community" | 36 | Then I should see "One community" |
38 | When I go to Public Community's homepage | 37 | When I go to Public Community's homepage |
39 | And I follow "Join" | 38 | And I follow "Join" |
40 | - And I press "Yes, I want to join." | ||
41 | When I go to Joao Silva's homepage | 39 | When I go to Joao Silva's homepage |
42 | Then I should see "2 communities" | 40 | Then I should see "2 communities" |
43 | 41 |
features/private_profile.feature
@@ -17,7 +17,6 @@ Feature: private profiles | @@ -17,7 +17,6 @@ Feature: private profiles | ||
17 | When I go to Safernet's homepage | 17 | When I go to Safernet's homepage |
18 | Then I should see "members only" | 18 | Then I should see "members only" |
19 | When I follow "Join" | 19 | When I follow "Join" |
20 | - And I press "Yes, I want to join" | ||
21 | And "joao" is accepted on community "Safernet" | 20 | And "joao" is accepted on community "Safernet" |
22 | Then "joao" should be a member of "Safernet" | 21 | Then "joao" should be a member of "Safernet" |
23 | When I go to Safernet's homepage | 22 | When I go to Safernet's homepage |
@@ -27,5 +26,4 @@ Feature: private profiles | @@ -27,5 +26,4 @@ Feature: private profiles | ||
27 | Given I am logged in as "joao" | 26 | Given I am logged in as "joao" |
28 | When I go to shygirl's homepage | 27 | When I go to shygirl's homepage |
29 | Then I should see "friends only" | 28 | Then I should see "friends only" |
30 | - When I follow "Add friend" | ||
31 | - And I press "Yes, I want" | 29 | + And I follow "Add friend" |
@@ -0,0 +1,94 @@ | @@ -0,0 +1,94 @@ | ||
1 | +jQuery(function($) { | ||
2 | + | ||
3 | + $(".add-friend").live('click', function(){ | ||
4 | + clicked = $(this) | ||
5 | + url = clicked.attr("href"); | ||
6 | + loading_for_button(this); | ||
7 | + $.post(url, function(data){ | ||
8 | + clicked.fadeOut(); | ||
9 | + display_notice(data); | ||
10 | + }); | ||
11 | + return false; | ||
12 | + }) | ||
13 | + | ||
14 | + $(".join-community").live('click', function(){ | ||
15 | + clicked = $(this) | ||
16 | + url = clicked.attr("href"); | ||
17 | + loading_for_button(this); | ||
18 | + $.post(url, function(data){ | ||
19 | + clicked.fadeOut(function(){ | ||
20 | + clicked.css("display","none"); | ||
21 | + clicked.parent().parent().find(".leave-community").fadeIn(); | ||
22 | + clicked.parent().parent().find(".leave-community").css("display", ""); | ||
23 | + }); | ||
24 | + clicked.css("cursor",""); | ||
25 | + $(".small-loading").remove(); | ||
26 | + display_notice(data); | ||
27 | + }); | ||
28 | + return false; | ||
29 | + }) | ||
30 | + | ||
31 | + $(".leave-community").live('click', function(){ | ||
32 | + clicked = $(this) | ||
33 | + url = clicked.attr("href"); | ||
34 | + loading_for_button(this); | ||
35 | + $.post(url, function(data){ | ||
36 | + clicked.fadeOut(function(){ | ||
37 | + clicked.css("display","none"); | ||
38 | + clicked.parent().parent().find(".join-community").fadeIn(); | ||
39 | + clicked.parent().parent().find(".join-community").css("display", ""); | ||
40 | + }); | ||
41 | + clicked.css("cursor",""); | ||
42 | + $(".small-loading").remove(); | ||
43 | + display_notice(data); | ||
44 | + }); | ||
45 | + return false; | ||
46 | + }) | ||
47 | + | ||
48 | + $(".person-trigger").click(function(){ | ||
49 | + clicked = $(this); | ||
50 | + url = clicked.attr("url"); | ||
51 | + $.get(url, function(data){ | ||
52 | + if(data == "true"){ | ||
53 | + clicked.parent().find(".add-friend").fadeOut(function(){ | ||
54 | + clicked.parent().find(".send-an-email").fadeIn(); | ||
55 | + }) | ||
56 | + } | ||
57 | + else if(data == "false"){ | ||
58 | + clicked.parent().find(".send-an-email").fadeOut(function(){ | ||
59 | + clicked.parent().find(".add-friend").fadeIn(); | ||
60 | + }); | ||
61 | + } | ||
62 | + }) | ||
63 | + }) | ||
64 | + | ||
65 | + $(".community-trigger").click(function(){ | ||
66 | + clicked = $(this); | ||
67 | + url = clicked.attr("url"); | ||
68 | + $.get(url, function(data){ | ||
69 | + if(data == "true"){ | ||
70 | + clicked.parent().find(".join-community").fadeOut(function(){ | ||
71 | + clicked.parent().find(".leave-community").fadeIn(); | ||
72 | + clicked.parent().find(".send-an-email").fadeIn(); | ||
73 | + }); | ||
74 | + } | ||
75 | + else if(data == "false"){ | ||
76 | + clicked.parent().find(".send-an-email").fadeOut(); | ||
77 | + clicked.parent().find(".leave-community").fadeOut(function(){ | ||
78 | + clicked.parent().find(".join-community").fadeIn(); | ||
79 | + }); | ||
80 | + } | ||
81 | + }) | ||
82 | + }) | ||
83 | + | ||
84 | + $(".enterprise-trigger").click(function(){ | ||
85 | + clicked = $(this); | ||
86 | + url = clicked.attr("url"); | ||
87 | + $.get(url, function(data){ | ||
88 | + if(data == "true") | ||
89 | + clicked.parent().find(".send-an-email").fadeIn(); | ||
90 | + else if(data == "false") | ||
91 | + clicked.parent().find(".send-an-email").fadeOut(); | ||
92 | + }) | ||
93 | + }) | ||
94 | +}); |
public/javascripts/application.js
@@ -263,7 +263,11 @@ function toggleSubmenu(trigger, title, link_list) { | @@ -263,7 +263,11 @@ function toggleSubmenu(trigger, title, link_list) { | ||
263 | content.append('<h4>' + title + '</h4>'); | 263 | content.append('<h4>' + title + '</h4>'); |
264 | jQuery.each(link_list, function(index, link_hash) { | 264 | jQuery.each(link_list, function(index, link_hash) { |
265 | for (label in link_hash) { | 265 | for (label in link_hash) { |
266 | - list.append('<li><a href="' + link_hash[label] + '">' + label + '</a></li>'); | 266 | + options = ""; |
267 | + jQuery.each(link_hash[label], function(option, value){ | ||
268 | + options += option +'="'+ value + '" '; | ||
269 | + }) | ||
270 | + list.append('<li><a '+ options +'">' + label + '</a></li>'); | ||
267 | } | 271 | } |
268 | }); | 272 | }); |
269 | content.append(list); | 273 | content.append(list); |
public/stylesheets/application.css
@@ -2036,7 +2036,7 @@ div#activation_enterprise div { | @@ -2036,7 +2036,7 @@ div#activation_enterprise div { | ||
2036 | .profile-info-options { | 2036 | .profile-info-options { |
2037 | padding-top: 20px; | 2037 | padding-top: 20px; |
2038 | text-align: right; | 2038 | text-align: right; |
2039 | - padding-right: 5px; | 2039 | + padding-right: 20px; |
2040 | } | 2040 | } |
2041 | 2041 | ||
2042 | .profile-info-block { | 2042 | .profile-info-block { |
test/functional/friends_controller_test.rb
@@ -34,23 +34,6 @@ class FriendsControllerTest < Test::Unit::TestCase | @@ -34,23 +34,6 @@ class FriendsControllerTest < Test::Unit::TestCase | ||
34 | assert_kind_of Array, assigns(:friends) | 34 | assert_kind_of Array, assigns(:friends) |
35 | end | 35 | end |
36 | 36 | ||
37 | - should 'confirm addition of new friend' do | ||
38 | - get :add, :id => friend.id | ||
39 | - | ||
40 | - assert_response :success | ||
41 | - assert_template 'add' | ||
42 | - | ||
43 | - ok("must load the friend being added to display") { friend == assigns(:friend) } | ||
44 | - | ||
45 | - end | ||
46 | - | ||
47 | - should 'actually add friend' do | ||
48 | - assert_difference AddFriend, :count do | ||
49 | - post :add, :id => friend.id, :confirmation => '1' | ||
50 | - assert_response :redirect | ||
51 | - end | ||
52 | - end | ||
53 | - | ||
54 | should 'confirm removal of friend' do | 37 | should 'confirm removal of friend' do |
55 | profile.add_friend(friend) | 38 | profile.add_friend(friend) |
56 | 39 |
test/functional/profile_controller_test.rb
@@ -76,49 +76,22 @@ class ProfileControllerTest < Test::Unit::TestCase | @@ -76,49 +76,22 @@ class ProfileControllerTest < Test::Unit::TestCase | ||
76 | assert_kind_of Array, assigns(:favorite_enterprises) | 76 | assert_kind_of Array, assigns(:favorite_enterprises) |
77 | end | 77 | end |
78 | 78 | ||
79 | - should 'render join template without layout when called with AJAX' do | 79 | + should 'not render any template when joining community due to Ajax request' do |
80 | community = Community.create!(:name => 'my test community') | 80 | community = Community.create!(:name => 'my test community') |
81 | login_as(@profile.identifier) | 81 | login_as(@profile.identifier) |
82 | - @request.expects(:xhr?).returns(true).at_least_once | ||
83 | 82 | ||
84 | get :join, :profile => community.identifier | 83 | get :join, :profile => community.identifier |
85 | assert_response :success | 84 | assert_response :success |
86 | - assert_template 'join' | 85 | + assert_template nil |
87 | assert_no_tag :tag => 'html' | 86 | assert_no_tag :tag => 'html' |
88 | end | 87 | end |
89 | 88 | ||
90 | - should 'render join template with layout in general' do | ||
91 | - community = Community.create!(:name => 'my test community') | ||
92 | - login_as(@profile.identifier) | ||
93 | - @request.expects(:xhr?).returns(false).at_least_once | ||
94 | - | ||
95 | - get :join, :profile => community.identifier | ||
96 | - assert_response :success | ||
97 | - assert_template 'join' | ||
98 | - assert_tag :tag => 'html' | ||
99 | - end | ||
100 | - | ||
101 | - should 'show Join This Community button for non-member users' do | ||
102 | - login_as(@profile.identifier) | ||
103 | - community = Community.create!(:name => 'my test community') | ||
104 | - get :index, :profile => community.identifier | ||
105 | - assert_tag :tag => 'a', :attributes => { :href => "/profile/#{community.identifier}/join" } | ||
106 | - end | ||
107 | - | ||
108 | - should 'not show Join This Community button for member users' do | 89 | + should 'actually add friend' do |
109 | login_as(@profile.identifier) | 90 | login_as(@profile.identifier) |
110 | - community = Community.create!(:name => 'my test community') | ||
111 | - community.add_member(@profile) | ||
112 | - get :index, :profile => community.identifier | ||
113 | - assert_no_tag :tag => 'a', :attributes => { :href => "/myprofile/#{@profile.identifier}/memberships/join/#{community.id}" } | ||
114 | - | ||
115 | - end | ||
116 | - | ||
117 | - should 'not show Join This Community button for non-registered users' do | ||
118 | - community = Community.create!(:name => 'my test community') | ||
119 | - get :index, :profile => community.identifier | ||
120 | - assert_no_tag :tag => 'a', :attributes => { :href => "/myprofile/#{@profile.identifier}/memberships/leave/#{community.id}" } | ||
121 | - | 91 | + person = fast_create(Person) |
92 | + assert_difference AddFriend, :count do | ||
93 | + post :add, :profile => person.identifier | ||
94 | + end | ||
122 | end | 95 | end |
123 | 96 | ||
124 | should 'not show enterprises link to enterprise' do | 97 | should 'not show enterprises link to enterprise' do |
@@ -199,26 +172,10 @@ class ProfileControllerTest < Test::Unit::TestCase | @@ -199,26 +172,10 @@ class ProfileControllerTest < Test::Unit::TestCase | ||
199 | assert_no_tag :tag => 'a', :child => { :tag => 'span', :content => 'Create a new community' } | 172 | assert_no_tag :tag => 'a', :child => { :tag => 'span', :content => 'Create a new community' } |
200 | end | 173 | end |
201 | 174 | ||
202 | - should 'not show Leave This Community button for non-member users' do | ||
203 | - login_as(@profile.identifier) | ||
204 | - community = Community.create!(:name => 'my test community') | ||
205 | - get :index, :profile => community.identifier | ||
206 | - assert_no_tag :tag => 'a', :attributes => { :href => "/myprofile/#{@profile.identifier}/memberships/leave/#{community.id}" } | ||
207 | - end | ||
208 | - | ||
209 | - should 'show Leave This Community button for member users' do | ||
210 | - login_as(@profile.identifier) | ||
211 | - community = Community.create!(:name => 'my test community') | ||
212 | - community.add_member(@profile) | ||
213 | - get :index, :profile => community.identifier | ||
214 | - assert_tag :tag => 'a', | ||
215 | - :attributes => { :href => "/profile/#{community.identifier}/leave" } | ||
216 | - end | ||
217 | - | ||
218 | should 'not show Leave This Community button for non-registered users' do | 175 | should 'not show Leave This Community button for non-registered users' do |
219 | community = Community.create!(:name => 'my test community') | 176 | community = Community.create!(:name => 'my test community') |
220 | get :index, :profile => community.identifier | 177 | get :index, :profile => community.identifier |
221 | - assert_no_tag :tag => 'a', :attributes => { :href => "/myprofile/#{@profile.identifier}/memberships/leave/#{community.id}" } | 178 | + assert_no_tag :tag => 'a', :attributes => { :href => "/profile/#{@profile.identifier}/leave" } |
222 | end | 179 | end |
223 | 180 | ||
224 | should 'check access before displaying profile' do | 181 | should 'check access before displaying profile' do |
@@ -414,34 +371,13 @@ class ProfileControllerTest < Test::Unit::TestCase | @@ -414,34 +371,13 @@ class ProfileControllerTest < Test::Unit::TestCase | ||
414 | assert_no_tag :tag => 'a', :attributes => { :href => "/contact/#{community.identifier}/new" } | 371 | assert_no_tag :tag => 'a', :attributes => { :href => "/contact/#{community.identifier}/new" } |
415 | end | 372 | end |
416 | 373 | ||
417 | - should 'present confirmation before joining a profile' do | ||
418 | - community = Community.create!(:name => 'my test community') | ||
419 | - login_as @profile.identifier | ||
420 | - get :join, :profile => community.identifier | ||
421 | - | ||
422 | - assert_response :success | ||
423 | - assert_template 'join' | ||
424 | - end | ||
425 | - | ||
426 | should 'actually join profile' do | 374 | should 'actually join profile' do |
427 | community = Community.create!(:name => 'my test community') | 375 | community = Community.create!(:name => 'my test community') |
428 | login_as @profile.identifier | 376 | login_as @profile.identifier |
429 | - post :join, :profile => community.identifier, :confirmation => '1' | ||
430 | - | ||
431 | - assert_response :redirect | ||
432 | - assert_redirected_to community.url | ||
433 | - | ||
434 | - profile = Profile.find(@profile.id) | ||
435 | - assert profile.memberships.include?(community), 'profile should be actually added to the community' | ||
436 | - end | 377 | + post :join, :profile => community.identifier |
437 | 378 | ||
438 | - should 'join profile from wizard' do | ||
439 | - community = Community.create!(:name => 'my test community') | ||
440 | - login_as @profile.identifier | ||
441 | - post :join, :profile => community.identifier, :confirmation => '1', :wizard => true | ||
442 | - | ||
443 | - assert_response :redirect | ||
444 | - assert_redirected_to :controller => 'search', :action => 'assets', :asset => 'communities', :wizard => true | 379 | + assert_response :success |
380 | + assert_template nil | ||
445 | 381 | ||
446 | profile = Profile.find(@profile.id) | 382 | profile = Profile.find(@profile.id) |
447 | assert profile.memberships.include?(community), 'profile should be actually added to the community' | 383 | assert profile.memberships.include?(community), 'profile should be actually added to the community' |
@@ -451,7 +387,7 @@ class ProfileControllerTest < Test::Unit::TestCase | @@ -451,7 +387,7 @@ class ProfileControllerTest < Test::Unit::TestCase | ||
451 | community = Community.create!(:name => 'my test community', :closed => true) | 387 | community = Community.create!(:name => 'my test community', :closed => true) |
452 | login_as @profile.identifier | 388 | login_as @profile.identifier |
453 | assert_difference AddMember, :count do | 389 | assert_difference AddMember, :count do |
454 | - post :join, :profile => community.identifier, :confirmation => '1' | 390 | + post :join, :profile => community.identifier |
455 | end | 391 | end |
456 | end | 392 | end |
457 | 393 | ||
@@ -462,74 +398,18 @@ class ProfileControllerTest < Test::Unit::TestCase | @@ -462,74 +398,18 @@ class ProfileControllerTest < Test::Unit::TestCase | ||
462 | assert_redirected_to :controller => 'account', :action => 'login' | 398 | assert_redirected_to :controller => 'account', :action => 'login' |
463 | end | 399 | end |
464 | 400 | ||
465 | - should 'present confirmation before leaving a profile' do | ||
466 | - community = Community.create!(:name => 'my test community') | ||
467 | - community.add_member(profile) | ||
468 | - | ||
469 | - login_as(profile.identifier) | ||
470 | - get :leave, :profile => community.identifier | ||
471 | - | ||
472 | - assert_template 'leave' | ||
473 | - assert_tag :tag => 'input', :attributes => {:value => 'Yes, I want to leave.', :type => 'submit'} | ||
474 | - end | ||
475 | - | ||
476 | should 'actually leave profile' do | 401 | should 'actually leave profile' do |
477 | community = Community.create!(:name => 'my test community') | 402 | community = Community.create!(:name => 'my test community') |
478 | community.add_member(profile) | 403 | community.add_member(profile) |
479 | assert_includes profile.memberships, community | 404 | assert_includes profile.memberships, community |
480 | 405 | ||
481 | login_as(profile.identifier) | 406 | login_as(profile.identifier) |
482 | - post :leave, :profile => community.identifier, :confirmation => '1' | ||
483 | - | ||
484 | - profile = Profile.find(@profile.id) | ||
485 | - assert_not_includes profile.memberships, community | ||
486 | - end | ||
487 | - | ||
488 | - should 'leave profile when on wizard' do | ||
489 | - community = Community.create!(:name => 'my test community') | ||
490 | - community.add_member(profile) | ||
491 | - | ||
492 | - login_as(profile.identifier) | ||
493 | - post :leave, :profile => community.identifier, :confirmation => '1', :wizard => true | ||
494 | - | ||
495 | - assert_response :redirect | ||
496 | - assert_redirected_to :controller => 'search', :action => 'assets', :asset => 'communities', :wizard => true | 407 | + post :leave, :profile => community.identifier |
497 | 408 | ||
498 | profile = Profile.find(@profile.id) | 409 | profile = Profile.find(@profile.id) |
499 | assert_not_includes profile.memberships, community | 410 | assert_not_includes profile.memberships, community |
500 | end | 411 | end |
501 | 412 | ||
502 | - should "offer button to close 'leave community' lightbox" do | ||
503 | - community = Community.create!(:name => 'my test community') | ||
504 | - community.add_member(profile) | ||
505 | - | ||
506 | - login_as(profile.identifier) | ||
507 | - get :index, :profile => community.identifier | ||
508 | - | ||
509 | - assert_tag :tag => 'a', :content => 'Leave', :attributes => { :href => "/profile/#{community.identifier}/leave", :class => /^lbOn/ } | ||
510 | - end | ||
511 | - | ||
512 | - should 'offer button to cancel leaving community' do | ||
513 | - community = Community.create!(:name => 'my test community') | ||
514 | - community.add_member(profile) | ||
515 | - | ||
516 | - login_as(profile.identifier) | ||
517 | - get :leave, :profile => community.identifier | ||
518 | - | ||
519 | - assert_tag :tag => 'a', :content => "No, I don't want." | ||
520 | - end | ||
521 | - | ||
522 | - should 'render without layout when use lightbox to leave community' do | ||
523 | - community = Community.create!(:name => 'my test community') | ||
524 | - community.add_member(profile) | ||
525 | - | ||
526 | - @request.stubs(:xhr?).returns(true) | ||
527 | - login_as(profile.identifier) | ||
528 | - get :leave, :profile => community.identifier | ||
529 | - | ||
530 | - assert_no_tag :tag => 'body' # e.g. no layout | ||
531 | - end | ||
532 | - | ||
533 | should 'require login to leave community' do | 413 | should 'require login to leave community' do |
534 | community = Community.create!(:name => 'my test community') | 414 | community = Community.create!(:name => 'my test community') |
535 | get :leave, :profile => community.identifier | 415 | get :leave, :profile => community.identifier |
@@ -537,51 +417,6 @@ class ProfileControllerTest < Test::Unit::TestCase | @@ -537,51 +417,6 @@ class ProfileControllerTest < Test::Unit::TestCase | ||
537 | assert_redirected_to :controller => 'account', :action => 'login' | 417 | assert_redirected_to :controller => 'account', :action => 'login' |
538 | end | 418 | end |
539 | 419 | ||
540 | - should 'redirect to stored location after leave community' do | ||
541 | - community = Community.create!(:name => 'my test community') | ||
542 | - community.add_member(profile) | ||
543 | - | ||
544 | - @request.expects(:referer).returns("/profile/#{community.identifier}/to_go").at_least_once | ||
545 | - login_as(profile.identifier) | ||
546 | - | ||
547 | - post :leave, :profile => community.identifier, :confirmation => '1', :back_to => @request.referer | ||
548 | - | ||
549 | - assert_redirected_to "/profile/#{community.identifier}/to_go" | ||
550 | - end | ||
551 | - | ||
552 | - should 'store referer location when request leave via get' do | ||
553 | - community = Community.create!(:name => 'my test community') | ||
554 | - login_as(profile.identifier) | ||
555 | - | ||
556 | - @request.expects(:referer).returns("/profile/redirect_to").at_least_once | ||
557 | - | ||
558 | - get :leave, :profile => community.identifier | ||
559 | - | ||
560 | - assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => @request.referer } | ||
561 | - end | ||
562 | - | ||
563 | - should 'store referer location when request join via get' do | ||
564 | - community = Community.create!(:name => 'my test community') | ||
565 | - login_as(profile.identifier) | ||
566 | - | ||
567 | - @request.session[:before_join] = "/profile/redirect_to" | ||
568 | - | ||
569 | - get :join, :profile => community.identifier | ||
570 | - | ||
571 | - assert_equal '/profile/redirect_to', @request.session[:before_join] | ||
572 | - end | ||
573 | - | ||
574 | - should 'redirect to stored location after join community' do | ||
575 | - community = Community.create!(:name => 'my test community') | ||
576 | - | ||
577 | - @request.expects(:referer).returns("/profile/#{community.identifier}/to_go") | ||
578 | - login_as(profile.identifier) | ||
579 | - | ||
580 | - post :join, :profile => community.identifier, :confirmation => '1' | ||
581 | - | ||
582 | - assert_redirected_to "/profile/#{community.identifier}/to_go" | ||
583 | - end | ||
584 | - | ||
585 | should 'store location before login when request join via get not logged' do | 420 | should 'store location before login when request join via get not logged' do |
586 | community = Community.create!(:name => 'my test community') | 421 | community = Community.create!(:name => 'my test community') |
587 | 422 | ||
@@ -598,7 +433,7 @@ class ProfileControllerTest < Test::Unit::TestCase | @@ -598,7 +433,7 @@ class ProfileControllerTest < Test::Unit::TestCase | ||
598 | @request.expects(:referer).returns("/profile/#{community.identifier}/to_go") | 433 | @request.expects(:referer).returns("/profile/#{community.identifier}/to_go") |
599 | login_as(profile.identifier) | 434 | login_as(profile.identifier) |
600 | 435 | ||
601 | - post :join, :profile => community.identifier, :confirmation => '1' | 436 | + post :join_not_logged, :profile => community.identifier |
602 | 437 | ||
603 | assert_redirected_to "/profile/#{community.identifier}/to_go" | 438 | assert_redirected_to "/profile/#{community.identifier}/to_go" |
604 | 439 |
test/unit/application_helper_test.rb
@@ -484,7 +484,7 @@ class ApplicationHelperTest < Test::Unit::TestCase | @@ -484,7 +484,7 @@ class ApplicationHelperTest < Test::Unit::TestCase | ||
484 | person.stubs(:url).returns('url for person') | 484 | person.stubs(:url).returns('url for person') |
485 | person.stubs(:public_profile_url).returns('url for person') | 485 | person.stubs(:public_profile_url).returns('url for person') |
486 | links = links_for_balloon(person) | 486 | links = links_for_balloon(person) |
487 | - assert_equal ['Home Page', 'Wall', 'Friends', 'Communities'], links.map{|i| i.keys.first} | 487 | + assert_equal ['Wall', 'Friends', 'Communities', 'Send an e-mail', 'Add'], links.map{|i| i.keys.first} |
488 | end | 488 | end |
489 | 489 | ||
490 | should 'return ordered list of links to balloon to Community' do | 490 | should 'return ordered list of links to balloon to Community' do |
@@ -495,7 +495,7 @@ class ApplicationHelperTest < Test::Unit::TestCase | @@ -495,7 +495,7 @@ class ApplicationHelperTest < Test::Unit::TestCase | ||
495 | community.stubs(:url).returns('url for community') | 495 | community.stubs(:url).returns('url for community') |
496 | community.stubs(:public_profile_url).returns('url for community') | 496 | community.stubs(:public_profile_url).returns('url for community') |
497 | links = links_for_balloon(community) | 497 | links = links_for_balloon(community) |
498 | - assert_equal ['Home Page', 'Wall', 'Members', 'Agenda'], links.map{|i| i.keys.first} | 498 | + assert_equal ['Wall', 'Members', 'Agenda', 'Join', 'Leave', 'Send an e-mail'], links.map{|i| i.keys.first} |
499 | end | 499 | end |
500 | 500 | ||
501 | should 'return ordered list of links to balloon to Enterprise' do | 501 | should 'return ordered list of links to balloon to Enterprise' do |
@@ -507,7 +507,7 @@ class ApplicationHelperTest < Test::Unit::TestCase | @@ -507,7 +507,7 @@ class ApplicationHelperTest < Test::Unit::TestCase | ||
507 | enterprise.stubs(:public_profile_url).returns('url for enterprise') | 507 | enterprise.stubs(:public_profile_url).returns('url for enterprise') |
508 | stubs(:catalog_path) | 508 | stubs(:catalog_path) |
509 | links = links_for_balloon(enterprise) | 509 | links = links_for_balloon(enterprise) |
510 | - assert_equal ['Home Page', 'Products', 'Members', 'Agenda'], links.map{|i| i.keys.first} | 510 | + assert_equal ['Products', 'Members', 'Agenda', 'Send an e-mail'], links.map{|i| i.keys.first} |
511 | end | 511 | end |
512 | 512 | ||
513 | should 'use favicon from environment theme if does not have profile' do | 513 | should 'use favicon from environment theme if does not have profile' do |