diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 2310a240..8f4db7bd 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -1,2 +1,12 @@ module UsersHelper + def remote_delete_user(user) + return link_to( + image_tag("blank.png", :title =>t('users.destroy_user'), :class=>"delete_item"), + url_for({:controller => 'users', :action => 'destroy', :id => user.id}), + {:id => "delete_user_#{user.id}", + :class => "delete_user_button", + :title => t('users.destroy_user'), + :x_confirm_message => t('users.destroy_confirmation', :login => user.login) + }) + end end diff --git a/app/views/users/destroy.js.erb b/app/views/users/destroy.js.erb index 558e6bbf..1f97f075 100644 --- a/app/views/users/destroy.js.erb +++ b/app/views/users/destroy.js.erb @@ -1,7 +1,11 @@ -if @saved - page["user-#{@deleted_user.id}"].remove - page['user_count'].replace_html @total_users.to_s - page.notify :notice, t('users.destroy_successful', :login => @deleted_user.login), 2.0 -else - page.notify :error, t('users.destroy_error', :login => @deleted_user.login), 8.0 -end \ No newline at end of file +<% if @saved -%> + remove_user_from_page(); + TracksPages.set_page_badge(<%= @total_users %>); + TracksPages.page_notify('notice', '<%= t('users.destroy_successful', :login => @deleted_user.login) %>', 5); +<% else -%> + TracksPages.page_notify('error', '<%= t('users.destroy_error', :login => @deleted_user.login) %>', 8); +<% end -%> + +function remove_user_from_page() { + $("#user-<%= @deleted_user.id%>").remove(); +} diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb index 5644c265..17f116df 100644 --- a/app/views/users/index.html.erb +++ b/app/views/users/index.html.erb @@ -24,11 +24,7 @@ <%= h user.contexts.size %> <%= h user.projects.size %> <%= h user.notes.size %> - <%= !user.is_admin? ? link_to_remote( - image_tag("blank.png", :title =>t('users.destroy_user'), :class=>"delete_item"), - { :url => user_path(user.id), :method => :delete, - :confirm => t('users.destroy_confirmation', :login => user.login) }, - { :class => "icon" } ) : " " %> + <%= !user.is_admin? ? remote_delete_user(user) : " " %> <% end %> diff --git a/features/manage_users.feature b/features/manage_users.feature index 6a15b50b..0ac0a435 100644 --- a/features/manage_users.feature +++ b/features/manage_users.feature @@ -23,7 +23,7 @@ Feature: Manage users Then I should be on the manage users page And I should see "new.user" - @selenium @wip + @selenium Scenario: Delete account from users page When I go to the manage users page And I delete the user "testuser" diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 76ce56be..3f55dc26 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -382,6 +382,20 @@ var TodoItems = { } } +var UsersPage = { + setup_behavior: function() { + /* delete button to delete a usedr from the list */ + $('a.delete_user_button').live('click', function(evt){ + confirm_message = $(this).attr("x_confirm_message") + if(confirm(confirm_message)){ + delete_with_ajax_and_block_element(this.href, $(this).parents('.project')); + } + return false; + }); + + } +} + var ProjectListPage = { update_state_count: function(state, count) { $('#'+state+'-projects-count').html(count); @@ -1081,7 +1095,7 @@ $(document).ready(function() { /* enable page specific behavior */ $([ 'IntegrationsPage', 'NotesPage', 'ProjectListPage', 'ContextListPage', 'FeedsPage', 'RecurringTodosPage', 'TodoItems', 'TracksPages', - 'TracksForm', 'SearchPage' ]).each(function() { + 'TracksForm', 'SearchPage', 'UsersPage' ]).each(function() { eval(this+'.setup_behavior();'); });