Commit 9a5b65f2f16e47d32a49a978d2de2dd32cc2631c
1 parent
3fcd494a
Exists in
master
and in
29 other branches
ActionItem428: administrator interface to enable/disable enterprises
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2008 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
10 changed files
with
100 additions
and
1 deletions
Show diff stats
app/controllers/my_profile/profile_editor_controller.rb
| @@ -18,5 +18,25 @@ class ProfileEditorController < MyProfileController | @@ -18,5 +18,25 @@ class ProfileEditorController < MyProfileController | ||
| 18 | end | 18 | end |
| 19 | end | 19 | end |
| 20 | 20 | ||
| 21 | + def enable | ||
| 22 | + @to_enable = profile | ||
| 23 | + if request.post? && params[:confirmation] | ||
| 24 | + unless @to_enable.update_attribute('enabled', true) | ||
| 25 | + flash[:notice] = _('%s was not enabled.') % @to_enable.name | ||
| 26 | + end | ||
| 27 | + redirect_to :action => 'index' | ||
| 28 | + end | ||
| 29 | + end | ||
| 30 | + | ||
| 31 | + def disable | ||
| 32 | + @to_disable = profile | ||
| 33 | + if request.post? && params[:confirmation] | ||
| 34 | + unless @to_disable.update_attribute('enabled', false) | ||
| 35 | + flash[:notice] = _('%s was not disabled.') % @to_disable.name | ||
| 36 | + end | ||
| 37 | + redirect_to :action => 'index' | ||
| 38 | + end | ||
| 39 | + end | ||
| 40 | + | ||
| 21 | end | 41 | end |
| 22 | 42 |
| @@ -0,0 +1,11 @@ | @@ -0,0 +1,11 @@ | ||
| 1 | +<h1><%= _("Disabling '%s' enterprise") % @to_disable.name %></h1> | ||
| 2 | + | ||
| 3 | +<p> | ||
| 4 | +<%= _('Are you sure you want to disable %s?') % @to_disable.name %> | ||
| 5 | +</p> | ||
| 6 | + | ||
| 7 | +<% form_tag do %> | ||
| 8 | + <%= hidden_field_tag(:confirmation, 1) %> | ||
| 9 | + <%= submit_button(:ok, _("Yes, I want to disable.")) %> | ||
| 10 | + <%= button(:cancel, _("No, I don't want."), :action => 'index') %> | ||
| 11 | +<% end %> |
| @@ -0,0 +1,11 @@ | @@ -0,0 +1,11 @@ | ||
| 1 | +<h1><%= _("Enabling '%s' enterprise") % @to_enable.name %></h1> | ||
| 2 | + | ||
| 3 | +<p> | ||
| 4 | +<%= _('Are you sure you want to enable %s?') % @to_enable.name %> | ||
| 5 | +</p> | ||
| 6 | + | ||
| 7 | +<% form_tag do %> | ||
| 8 | + <%= hidden_field_tag(:confirmation, 1) %> | ||
| 9 | + <%= submit_button(:ok, _("Yes, I want to enable.")) %> | ||
| 10 | + <%= button(:cancel, _("No, I don't want."), :action => 'index') %> | ||
| 11 | +<% end %> |
app/views/profile_editor/index.rhtml
| @@ -28,6 +28,14 @@ | @@ -28,6 +28,14 @@ | ||
| 28 | 28 | ||
| 29 | <%= file_manager_button(_('Favorite Enterprises'), 'icons-app/favorites.png', :controller => 'favorite_enterprises') if profile.person? %> | 29 | <%= file_manager_button(_('Favorite Enterprises'), 'icons-app/favorites.png', :controller => 'favorite_enterprises') if profile.person? %> |
| 30 | 30 | ||
| 31 | + <% if profile.enterprise? %> | ||
| 32 | + <% if profile.enabled? %> | ||
| 33 | + <%= file_manager_button(_('Disable Enterprise'), 'icons-app/disable.png', :action => 'disable') %> | ||
| 34 | + <% else %> | ||
| 35 | + <%= file_manager_button(_('Enable Enterprise'), 'icons-app/enable.png', :action => 'enable') %> | ||
| 36 | + <% end %> | ||
| 37 | + <% end %> | ||
| 38 | + | ||
| 31 | <% end %> | 39 | <% end %> |
| 32 | 40 | ||
| 33 | <% if @profile.person? %> | 41 | <% if @profile.person? %> |
public/images/icons-app/README
| @@ -42,6 +42,7 @@ friends.png (modified version of users.png) Nuovo | @@ -42,6 +42,7 @@ friends.png (modified version of users.png) Nuovo | ||
| 42 | gtk-folder.png Nuovo | 42 | gtk-folder.png Nuovo |
| 43 | epiphany-bookmarks.png dlg-neu | 43 | epiphany-bookmarks.png dlg-neu |
| 44 | mozilla-mail.png dlg-neu | 44 | mozilla-mail.png dlg-neu |
| 45 | +gtk-cancel.png dlg-neu | ||
| 45 | ### END OF ICONS LISTING ### | 46 | ### END OF ICONS LISTING ### |
| 46 | 47 | ||
| 47 | Icons rasterization | 48 | Icons rasterization |
2.69 KB
3.15 KB
test/functional/profile_editor_controller_test.rb
| @@ -360,4 +360,52 @@ class ProfileEditorControllerTest < Test::Unit::TestCase | @@ -360,4 +360,52 @@ class ProfileEditorControllerTest < Test::Unit::TestCase | ||
| 360 | assert_no_tag :tag => 'a', :attributes => { :href => '/myprofile/ze/mailconf' } | 360 | assert_no_tag :tag => 'a', :attributes => { :href => '/myprofile/ze/mailconf' } |
| 361 | end | 361 | end |
| 362 | 362 | ||
| 363 | + should 'link to enable enterprise' do | ||
| 364 | + ent = Enterprise.create!(:name => 'test org', :identifier => 'testent', :enabled => false) | ||
| 365 | + get :index, :profile => 'testent' | ||
| 366 | + assert_tag :tag => 'a', :attributes => { :href => '/myprofile/testent/profile_editor/enable' } | ||
| 367 | + end | ||
| 368 | + | ||
| 369 | + should 'link to disable enterprise' do | ||
| 370 | + ent = Enterprise.create!(:name => 'test org', :identifier => 'testent', :enabled => true) | ||
| 371 | + get :index, :profile => 'testent' | ||
| 372 | + assert_tag :tag => 'a', :attributes => { :href => '/myprofile/testent/profile_editor/disable' } | ||
| 373 | + end | ||
| 374 | + | ||
| 375 | + should 'not link to enable/disable for non enterprises' do | ||
| 376 | + ent = Organization.create!(:name => 'test org', :identifier => 'testorg', :enabled => true) | ||
| 377 | + get :index, :profile => 'testorg' | ||
| 378 | + assert_no_tag :tag => 'a', :attributes => { :href => '/myprofile/testorg/profile_editor/disable' } | ||
| 379 | + end | ||
| 380 | + | ||
| 381 | + should 'request enable enterprise confirmation' do | ||
| 382 | + ent = Enterprise.create!(:name => 'test org', :identifier => 'testent', :enabled => false) | ||
| 383 | + get :enable, :profile => 'testent' | ||
| 384 | + assert_tag :tag => 'form', :attributes => { :action => '/myprofile/testent/profile_editor/enable', :method => 'post' } | ||
| 385 | + end | ||
| 386 | + | ||
| 387 | + should 'enable enterprise after confirmation' do | ||
| 388 | + ent = Enterprise.create!(:name => 'test org', :identifier => 'testent', :enabled => false) | ||
| 389 | + post :enable, :profile => 'testent', :confirmation => 1 | ||
| 390 | + assert assigns(:to_enable).enabled? | ||
| 391 | + end | ||
| 392 | + | ||
| 393 | + should 'not enable enterprise without confirmation' do | ||
| 394 | + ent = Enterprise.create!(:name => 'test org', :identifier => 'testent', :enabled => false) | ||
| 395 | + post :enable, :profile => 'testent' | ||
| 396 | + assert !assigns(:to_enable).enabled? | ||
| 397 | + end | ||
| 398 | + | ||
| 399 | + should 'disable enterprise after confirmation' do | ||
| 400 | + ent = Enterprise.create!(:name => 'test org', :identifier => 'testent', :enabled => true) | ||
| 401 | + post :disable, :profile => 'testent', :confirmation => 1 | ||
| 402 | + assert !assigns(:to_disable).enabled? | ||
| 403 | + end | ||
| 404 | + | ||
| 405 | + should 'not disable enterprise without confirmation' do | ||
| 406 | + ent = Enterprise.create!(:name => 'test org', :identifier => 'testent', :enabled => true) | ||
| 407 | + post :disable, :profile => 'testent' | ||
| 408 | + assert assigns(:to_disable).enabled? | ||
| 409 | + end | ||
| 410 | + | ||
| 363 | end | 411 | end |
test/test_helper.rb
| @@ -42,7 +42,6 @@ class Test::Unit::TestCase | @@ -42,7 +42,6 @@ class Test::Unit::TestCase | ||
| 42 | fixtures File.basename(item).sub(/\.yml$/, '').to_s | 42 | fixtures File.basename(item).sub(/\.yml$/, '').to_s |
| 43 | end | 43 | end |
| 44 | end | 44 | end |
| 45 | -# all_fixtures | ||
| 46 | 45 | ||
| 47 | def self.should(name, &block) | 46 | def self.should(name, &block) |
| 48 | @shoulds ||= [] | 47 | @shoulds ||= [] |