From 67de0367ffd21e914b22eb9b0e46c835010cc9f7 Mon Sep 17 00:00:00 2001 From: Vinoth Kannan Date: Wed, 11 Nov 2020 01:01:28 +0530 Subject: [PATCH] UX: add stock suspension reasons to suspend dialog. (#10990) --- .../addon/components/suspension-details.js | 48 +++++++++++++++++++ .../components/suspension-details.hbs | 16 +++++-- .../acceptance/admin-suspend-user-test.js | 2 +- .../stylesheets/common/admin/suspend.scss | 4 ++ config/locales/client.en.yml | 9 +++- 5 files changed, 74 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/admin/addon/components/suspension-details.js b/app/assets/javascripts/admin/addon/components/suspension-details.js index 0e6d50b17d4..f9edc0e225a 100644 --- a/app/assets/javascripts/admin/addon/components/suspension-details.js +++ b/app/assets/javascripts/admin/addon/components/suspension-details.js @@ -1,4 +1,52 @@ import Component from "@ember/component"; +import discourseComputed from "discourse-common/utils/decorators"; +import I18n from "I18n"; +import { equal } from "@ember/object/computed"; +import { action } from "@ember/object"; + +const CUSTOM_REASON_KEY = "custom"; + export default Component.extend({ tagName: "", + selectedReason: CUSTOM_REASON_KEY, + customReason: "", + reasonKeys: [ + "not_listening_to_staff", + "consuming_staff_time", + "combatative", + "in_wrong_place", + "no_constructive_purpose", + CUSTOM_REASON_KEY, + ], + isCustomReason: equal("selectedReason", CUSTOM_REASON_KEY), + + @discourseComputed("reasonKeys") + reasons(keys) { + return keys.map((key) => { + return { id: key, name: I18n.t(`admin.user.suspend_reasons.${key}`) }; + }); + }, + + @action + setSelectedReason(value) { + this.set("selectedReason", value); + this.setReason(); + }, + + @action + setCustomReason(value) { + this.set("customReason", value); + this.setReason(); + }, + + setReason() { + if (this.isCustomReason) { + this.set("reason", this.customReason); + } else { + this.set( + "reason", + I18n.t(`admin.user.suspend_reasons.${this.selectedReason}`) + ); + } + }, }); diff --git a/app/assets/javascripts/admin/addon/templates/components/suspension-details.hbs b/app/assets/javascripts/admin/addon/templates/components/suspension-details.hbs index b7ed0428d3b..97fcbd8dcd0 100644 --- a/app/assets/javascripts/admin/addon/templates/components/suspension-details.hbs +++ b/app/assets/javascripts/admin/addon/templates/components/suspension-details.hbs @@ -8,10 +8,20 @@ {{/if}} - {{text-field - value=reason + + {{combo-box + content=reasons + value=selectedReason class="suspend-reason" - placeholderKey="admin.user.suspend_reason_placeholder"}} + onChange=(action setSelectedReason)}} + {{#if isCustomReason}} + {{text-field + value=customReason + class="suspend-reason" + onChange=(action setCustomReason)}} + {{/if}}