Commit 90db0fd70b5a0a2613cd00ffea234bf09c534648
Exists in
master
and in
9 other branches
Merge branch 'confirm-leave' into noosfero
Showing
4 changed files
with
40 additions
and
24 deletions
Show diff stats
app/views/blocks/profile_info_actions/_join_leave_community.html.erb
1 | 1 | <div class='join-leave-button require-login-popup'> |
2 | 2 | <% if logged_in? %> |
3 | - <% if profile.members.include?(user) %> | |
4 | - <%= button(:delete, content_tag('span', _('Leave community')), profile.leave_url, | |
5 | - :class => 'leave-community', | |
6 | - :title => _("Leave community"), | |
7 | - :style => 'position: relative;') %> | |
8 | - <%= button(:add, content_tag('span', _('Join')), profile.join_url, | |
9 | - :class => 'join-community', | |
10 | - :title => _("Join community"), | |
11 | - :style => 'position: relative; display: none;') %> | |
3 | + <% if profile.already_request_membership? user %> | |
4 | + <%= _('Your membership is waiting for approval') %> | |
12 | 5 | <% else %> |
13 | - <% unless profile.already_request_membership?(user) %> | |
14 | - <%= button(:delete, content_tag('span', _('Leave community')), profile.leave_url, | |
15 | - :class => 'leave-community', | |
16 | - :title => _("Leave community"), | |
17 | - :style => 'position: relative; display: none;') %> | |
18 | - <%= button(:add, content_tag('span', _('Join')), profile.join_url, | |
19 | - :class => 'join-community', | |
20 | - :title => _("Join community"), | |
21 | - :style => 'position: relative;') %> | |
6 | + <% if user.in? profile.members %> | |
7 | + <%= button :delete, content_tag('span', _('Leave community')), profile.leave_url, | |
8 | + class: 'leave-community', | |
9 | + style: 'position: relative;' %> | |
10 | + <%= button :add, content_tag('span', _('Join this community')), profile.join_url, | |
11 | + class: 'join-community', | |
12 | + style: 'position: relative; display: none;' %> | |
13 | + <% else %> | |
14 | + <%= button :add, _('Join this community'), profile.join_url %> | |
22 | 15 | <% end %> |
23 | 16 | <% end %> |
24 | 17 | <% else %> |
25 | - <%= button(:add, _('Join'), profile.join_not_logged_url, :title => _('Join this community')) %> | |
18 | + <%= button :add, _('Join this community'), profile.join_not_logged_url %> | |
26 | 19 | <% end %> |
27 | 20 | </div> |
21 | + | |
22 | +<%= javascript_tag do %> | |
23 | + noosfero.add_and_join.locales.leaveConfirmation = <%= (_("Please confirm to leave the community '%{name}'") % {name: profile.name}).to_json %> | |
24 | +<% end %> | |
25 | + | ... | ... |
features/accept_member.feature
... | ... | @@ -14,6 +14,16 @@ Feature: accept member |
14 | 14 | And the community "My Community" is closed |
15 | 15 | And "Mario Souto" is admin of "My Community" |
16 | 16 | |
17 | + Scenario: a user should see its merbership is pending | |
18 | + Given I am logged in as "mario" | |
19 | + And the following communities | |
20 | + | owner | identifier | name | closed | | |
21 | + | marie | private-community | Private Community | true | | |
22 | + And I go to private-community's homepage | |
23 | + When I follow "Join this community" | |
24 | + And I go to private-community's homepage | |
25 | + Then I should see "Your membership is waiting for approval" | |
26 | + | |
17 | 27 | @selenium |
18 | 28 | Scenario: approve a task to accept a member as admin in a closed community |
19 | 29 | Given "Marie Curie" asked to join "My Community" | ... | ... |
features/members_block.feature
... | ... | @@ -9,8 +9,8 @@ Feature: |
9 | 9 | | joaosilva | Joao Silva | |
10 | 10 | | mariasilva | Maria Silva | |
11 | 11 | And the following communities |
12 | - | owner | identifier | name | | |
13 | - | joaosilva | sample-community | Sample Community | | |
12 | + | owner | identifier | name | | |
13 | + | joaosilva | sample-community | Sample Community | | |
14 | 14 | And the following blocks |
15 | 15 | | owner | type | |
16 | 16 | | sample-community | MembersBlock | |
... | ... | @@ -24,7 +24,7 @@ Feature: |
24 | 24 | Scenario: a user can join in a community by members block's button |
25 | 25 | Given I am logged in as "mariasilva" |
26 | 26 | And I go to sample-community's homepage |
27 | - When I follow "Join" within ".members-block" | |
27 | + When I follow "Join this community" within ".members-block" | |
28 | 28 | And I go to mariasilva's control panel |
29 | 29 | And I follow "Manage my groups" |
30 | 30 | Then I should see "Sample Community" |
... | ... | @@ -41,7 +41,7 @@ Feature: |
41 | 41 | Scenario: a not logged in user can log in by members block's button |
42 | 42 | Given I am not logged in |
43 | 43 | When I go to sample-community's homepage |
44 | - And I follow "Join" within ".members-block" | |
44 | + And I follow "Join this community" within ".members-block" | |
45 | 45 | Then I should see "Username / Email" |
46 | 46 | |
47 | 47 | Scenario: the join-leave button do not appear if the checkbox show-join-leave-button is not checked |
... | ... | @@ -51,5 +51,5 @@ Feature: |
51 | 51 | And I uncheck "Show join leave button" |
52 | 52 | And I press "Save" |
53 | 53 | When I go to sample-community's homepage |
54 | - Then I should not see "Join" within ".members-block" | |
54 | + Then I should not see "Join this community" within ".members-block" | |
55 | 55 | And I should not see "Leave community" within ".members-block" | ... | ... |
public/javascripts/add-and-join.js
1 | +noosfero.add_and_join = { | |
2 | + locales: { | |
3 | + leaveConfirmation: '', | |
4 | + }, | |
5 | +}; | |
6 | + | |
1 | 7 | jQuery(function($) { |
2 | 8 | |
3 | 9 | $(".add-friend").live('click', function(){ |
... | ... | @@ -29,6 +35,8 @@ jQuery(function($) { |
29 | 35 | }) |
30 | 36 | |
31 | 37 | $(".leave-community").live('click', function(){ |
38 | + if (!confirm(noosfero.add_and_join.locales.leaveConfirmation)) | |
39 | + return false; | |
32 | 40 | clicked = $(this); |
33 | 41 | url = clicked.attr("href"); |
34 | 42 | loading_for_button(this); | ... | ... |