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();');
});