Commit 13d70601fb96c9915631485c59128ed7e196de8e
Committed by
Antonio Terceiro
1 parent
79840d9f
Exists in
master
and in
29 other branches
Adding 'Unblock' button to the disabled enterprise block
* Adding an unblock method for enterprises * Adding the 'lock' icon to icon list * Adding 'block' and 'unblock' noosfero steps. (ActionItem1402)
Showing
10 changed files
with
84 additions
and
3 deletions
Show diff stats
app/controllers/public/profile_controller.rb
@@ -113,6 +113,11 @@ class ProfileController < PublicController | @@ -113,6 +113,11 @@ class ProfileController < PublicController | ||
113 | render :text => '', :layout => false | 113 | render :text => '', :layout => false |
114 | end | 114 | end |
115 | 115 | ||
116 | + def unblock | ||
117 | + profile.unblock | ||
118 | + redirect_to :controller => 'profile', :action => 'index' | ||
119 | + end | ||
120 | + | ||
116 | protected | 121 | protected |
117 | 122 | ||
118 | def check_access_to_profile | 123 | def check_access_to_profile |
@@ -157,4 +162,5 @@ class ProfileController < PublicController | @@ -157,4 +162,5 @@ class ProfileController < PublicController | ||
157 | def members_per_page | 162 | def members_per_page |
158 | 20 | 163 | 20 |
159 | end | 164 | end |
165 | + | ||
160 | end | 166 | end |
app/models/disabled_enterprise_message_block.rb
@@ -14,7 +14,9 @@ class DisabledEnterpriseMessageBlock < Block | @@ -14,7 +14,9 @@ class DisabledEnterpriseMessageBlock < Block | ||
14 | 14 | ||
15 | def content | 15 | def content |
16 | message = self.owner.environment.message_for_disabled_enterprise || '' | 16 | message = self.owner.environment.message_for_disabled_enterprise || '' |
17 | - content_tag('div', message, :class => 'enterprise-disabled') | 17 | + lambda do |
18 | + render :file => 'blocks/disabled_enterprise_message', :locals => {:message => message} | ||
19 | + end | ||
18 | end | 20 | end |
19 | 21 | ||
20 | def editable? | 22 | def editable? |
app/models/enterprise.rb
@@ -82,6 +82,11 @@ class Enterprise < Organization | @@ -82,6 +82,11 @@ class Enterprise < Organization | ||
82 | save | 82 | save |
83 | end | 83 | end |
84 | 84 | ||
85 | + def unblock | ||
86 | + data[:blocked] = false | ||
87 | + save | ||
88 | + end | ||
89 | + | ||
85 | def enable(owner) | 90 | def enable(owner) |
86 | return if enabled | 91 | return if enabled |
87 | affiliate(owner, Profile::Roles.all_roles(environment.id)) | 92 | affiliate(owner, Profile::Roles.all_roles(environment.id)) |
@@ -0,0 +1,8 @@ | @@ -0,0 +1,8 @@ | ||
1 | +<div id='enterprise-disabled'> | ||
2 | + <%= message %> | ||
3 | + <% if profile.blocked? && user.is_admin?(profile.environment) %> | ||
4 | + <div class='unlock-button'> | ||
5 | + <%= button :lock, _('Unblock'), {:controller => 'profile', :action => 'unblock'} %> | ||
6 | + </div> | ||
7 | + <% end %> | ||
8 | +</div> |
features/step_definitions/noosfero_steps.rb
@@ -150,3 +150,14 @@ end | @@ -150,3 +150,14 @@ end | ||
150 | Given /^"(.+)" is friend of "(.+)"$/ do |person, friend| | 150 | Given /^"(.+)" is friend of "(.+)"$/ do |person, friend| |
151 | Person[person].add_friend(Person[friend]) | 151 | Person[person].add_friend(Person[friend]) |
152 | end | 152 | end |
153 | + | ||
154 | +Given /^(.+) is blocked$/ do |enterprise_name| | ||
155 | + enterprise = Enterprise.find_by_name(enterprise_name) | ||
156 | + enterprise.block | ||
157 | +end | ||
158 | + | ||
159 | +Given /^(.+) is disabled$/ do |enterprise_name| | ||
160 | + enterprise = Enterprise.find_by_name(enterprise_name) | ||
161 | + enterprise.enabled = false | ||
162 | + enterprise.save | ||
163 | +end |
@@ -0,0 +1,34 @@ | @@ -0,0 +1,34 @@ | ||
1 | +Feature: unblock button | ||
2 | + As an environment administrator | ||
3 | + I want to unblock an enterprise | ||
4 | + In order to try to activate it again | ||
5 | + | ||
6 | + Background: | ||
7 | + Given the following enterprise | ||
8 | + | identifier | name | | ||
9 | + | sample-enterprise | Sample Enterprise | | ||
10 | + And the following blocks | ||
11 | + | owner | type | | ||
12 | + | sample-enterprise | DisabledEnterpriseMessageBlock | | ||
13 | + And Sample Enterprise is disabled | ||
14 | + | ||
15 | + Scenario: the environment administrator unblocks a blocked enterprise | ||
16 | + Given I am logged in as admin | ||
17 | + And Sample Enterprise is blocked | ||
18 | + And I am on Sample Enterprise's homepage | ||
19 | + When I follow "Unblock" | ||
20 | + Then I should not see "Unblock" | ||
21 | + | ||
22 | + Scenario: a not administrator user can't see "Unblock" button | ||
23 | + Given the following user | ||
24 | + | login | name | | ||
25 | + | joaosilva | Joao Silva | | ||
26 | + And I am logged in as "joaosilva" | ||
27 | + And Sample Enterprise is blocked | ||
28 | + When I am on Sample Enterprise's homepage | ||
29 | + Then I should not see "Unblock" | ||
30 | + | ||
31 | + Scenario: a not blocked enterprise should not show "Unblock" button | ||
32 | + Given I am logged in as admin | ||
33 | + When I am on Sample Enterprise's homepage | ||
34 | + Then I should not see "Unblock" |
public/designs/icons/tango/style.css
@@ -68,4 +68,5 @@ | @@ -68,4 +68,5 @@ | ||
68 | .icon-media-play { background-image: url(Tango/16x16/actions/media-playback-start.png) } | 68 | .icon-media-play { background-image: url(Tango/16x16/actions/media-playback-start.png) } |
69 | .icon-media-prev { background-image: url(Tango/16x16/actions/media-skip-backward.png) } | 69 | .icon-media-prev { background-image: url(Tango/16x16/actions/media-skip-backward.png) } |
70 | .icon-media-next { background-image: url(Tango/16x16/actions/media-skip-forward.png) } | 70 | .icon-media-next { background-image: url(Tango/16x16/actions/media-skip-forward.png) } |
71 | +.icon-lock { background-image: url(Tango/16x16/actions/lock.png) } | ||
71 | 72 |
public/stylesheets/common.css
@@ -102,6 +102,10 @@ div#profile-disabled { | @@ -102,6 +102,10 @@ div#profile-disabled { | ||
102 | background: url("../images/icons-app/alert.png") no-repeat 5px #ffffa9; | 102 | background: url("../images/icons-app/alert.png") no-repeat 5px #ffffa9; |
103 | } | 103 | } |
104 | 104 | ||
105 | +div#profile-disabled .unlock-button{ | ||
106 | + margin: 5px; | ||
107 | +} | ||
108 | + | ||
105 | .explanation { | 109 | .explanation { |
106 | font-style: italic; | 110 | font-style: italic; |
107 | font-size: 10px; | 111 | font-size: 10px; |
test/unit/disabled_enterprise_message_block_test.rb
@@ -14,7 +14,8 @@ class DisabledEnterpriseMessageBlockTest < Test::Unit::TestCase | @@ -14,7 +14,8 @@ class DisabledEnterpriseMessageBlockTest < Test::Unit::TestCase | ||
14 | block.expects(:owner).returns(p) | 14 | block.expects(:owner).returns(p) |
15 | p.expects(:environment).returns(e) | 15 | p.expects(:environment).returns(e) |
16 | 16 | ||
17 | - assert_tag_in_string block.content, :tag => 'div', :content => /This message is for disabled enterprises/ | 17 | + expects(:render).with(:file => 'blocks/disabled_enterprise_message', :locals => { :message => 'This message is for disabled enterprises'}) |
18 | + instance_eval(&block.content) | ||
18 | end | 19 | end |
19 | 20 | ||
20 | should 'display nothing if environment has no message' do | 21 | should 'display nothing if environment has no message' do |
@@ -24,7 +25,8 @@ class DisabledEnterpriseMessageBlockTest < Test::Unit::TestCase | @@ -24,7 +25,8 @@ class DisabledEnterpriseMessageBlockTest < Test::Unit::TestCase | ||
24 | block.expects(:owner).returns(p) | 25 | block.expects(:owner).returns(p) |
25 | p.expects(:environment).returns(e) | 26 | p.expects(:environment).returns(e) |
26 | 27 | ||
27 | - assert_no_tag_in_string block.content, :tag => 'div', :content => /This message is for disabled enterprises/ | 28 | + expects(:render).with(:file => 'blocks/disabled_enterprise_message', :locals => { :message => ''}) |
29 | + instance_eval(&block.content) | ||
28 | end | 30 | end |
29 | 31 | ||
30 | should 'not be editable' do | 32 | should 'not be editable' do |
test/unit/enterprise_test.rb
@@ -145,6 +145,14 @@ class EnterpriseTest < Test::Unit::TestCase | @@ -145,6 +145,14 @@ class EnterpriseTest < Test::Unit::TestCase | ||
145 | assert Enterprise.find(ent.id).blocked? | 145 | assert Enterprise.find(ent.id).blocked? |
146 | end | 146 | end |
147 | 147 | ||
148 | + should 'unblock' do | ||
149 | + ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent') | ||
150 | + ent.data[:blocked] = true | ||
151 | + ent.save | ||
152 | + ent.unblock | ||
153 | + assert !Enterprise.find(ent.id).blocked? | ||
154 | + end | ||
155 | + | ||
148 | should 'enable and make user admin' do | 156 | should 'enable and make user admin' do |
149 | ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent', :enabled => false) | 157 | ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent', :enabled => false) |
150 | p = create_user('test_user').person | 158 | p = create_user('test_user').person |