From 506dd748dac674b27dd0b488667cf7aa465b8401 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Wed, 14 Aug 2013 11:20:00 -0400 Subject: [PATCH 1/2] Add warning sign icons to all the delete user buttons --- app/assets/javascripts/admin/models/admin_user.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/admin/models/admin_user.js b/app/assets/javascripts/admin/models/admin_user.js index 31d8eed77e..fecb1c779f 100644 --- a/app/assets/javascripts/admin/models/admin_user.js +++ b/app/assets/javascripts/admin/models/admin_user.js @@ -248,13 +248,13 @@ Discourse.AdminUser = Discourse.User.extend({ "class": "cancel", "link": true }, { - "label": I18n.t('admin.user.delete_dont_block'), + "label": ' ' + I18n.t('admin.user.delete_dont_block'), "class": "btn", "callback": function(){ performDestroy(false); } }, { - "label": I18n.t('admin.user.delete_and_block'), + "label": ' ' + I18n.t('admin.user.delete_and_block'), "class": "btn", "callback": function(){ performDestroy(true); @@ -272,7 +272,7 @@ Discourse.AdminUser = Discourse.User.extend({ "class": "cancel", "link": true }, { - "label": I18n.t("flagging.yes_delete_spammer"), + "label": ' ' + I18n.t("flagging.yes_delete_spammer"), "class": "btn btn-danger", "callback": function() { Discourse.ajax("/admin/users/" + user.get('id') + '.json', { From bc0d4f1bfcdb3b46d5adaeae99369b65113de44b Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Wed, 14 Aug 2013 11:48:18 -0400 Subject: [PATCH 2/2] Add a confirm modal to Delete All Posts button --- .../javascripts/admin/models/admin_user.js | 23 +++++++++++++++---- .../stylesheets/application/modal.css.scss | 2 +- config/locales/client.en.yml | 1 + 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/admin/models/admin_user.js b/app/assets/javascripts/admin/models/admin_user.js index fecb1c779f..c76df0099e 100644 --- a/app/assets/javascripts/admin/models/admin_user.js +++ b/app/assets/javascripts/admin/models/admin_user.js @@ -9,11 +9,26 @@ Discourse.AdminUser = Discourse.User.extend({ deleteAllPosts: function() { - var user = this; this.set('can_delete_all_posts', false); - Discourse.ajax("/admin/users/" + (this.get('id')) + "/delete_all_posts", {type: 'PUT'}).then(function(result){ - user.set('post_count', 0); - }); + var user = this; + var message = I18n.t('admin.user.delete_all_posts_confirm', {posts: user.get('post_count'), topics: user.get('topic_count')}); + var buttons = [{ + "label": I18n.t("composer.cancel"), + "class": "cancel", + "link": true, + "callback": function() { + user.set('can_delete_all_posts', true); + } + }, { + "label": ' ' + I18n.t("admin.user.delete_all_posts"), + "class": "btn btn-danger", + "callback": function() { + Discourse.ajax("/admin/users/" + (user.get('id')) + "/delete_all_posts", {type: 'PUT'}).then(function(result){ + user.set('post_count', 0); + }); + } + }]; + bootbox.dialog(message, buttons, {"classes": "delete-all-posts"}); }, // Revoke the user's admin access diff --git a/app/assets/stylesheets/application/modal.css.scss b/app/assets/stylesheets/application/modal.css.scss index b550124303..7292b81d9e 100644 --- a/app/assets/stylesheets/application/modal.css.scss +++ b/app/assets/stylesheets/application/modal.css.scss @@ -313,7 +313,7 @@ } } -.flagging-delete-spammer { +.flagging-delete-spammer, .delete-all-posts { .modal-footer .cancel { text-decoration: underline; margin-left: 10px; diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 09400690e5..f32c27ac34 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -1247,6 +1247,7 @@ en: unban_failed: "Something went wrong unbanning this user {{error}}" ban_duration: "How long would you like to ban the user for? (days)" delete_all_posts: "Delete all posts" + delete_all_posts_confirm: "You are about to delete %{posts} posts and %{topics} topics. Are you sure?" ban: "Ban" unban: "Unban" banned: "Banned?"