From 8c27e69523d2b120941704ccbe7c4ab89ce61518 Mon Sep 17 00:00:00 2001 From: Vinoth Kannan Date: Sat, 7 Aug 2021 12:36:56 +0530 Subject: [PATCH] UX: disable "Queue For Review" button if user can't perform action. (#13966) Currently, it's returning JS error when trying to click the button when the action is already performed by the same staff user. --- .../javascripts/discourse/app/controllers/flag.js | 14 ++++++++------ .../discourse/app/templates/modal/flag.hbs | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/discourse/app/controllers/flag.js b/app/assets/javascripts/discourse/app/controllers/flag.js index 87dbf1c8f78..7834743e08a 100644 --- a/app/assets/javascripts/discourse/app/controllers/flag.js +++ b/app/assets/javascripts/discourse/app/controllers/flag.js @@ -180,6 +180,13 @@ export default Controller.extend(ModalFunctionality, { }, submitDisabled: not("submitEnabled"), + cantFlagForReview: not("notifyModeratorsFlag"), + + @discourseComputed("flagsAvailable") + notifyModeratorsFlag(flagsAvailable) { + const notifyModeratorsID = 7; + return flagsAvailable.find((f) => f.id === notifyModeratorsID); + }, // Staff accounts can "take action" @discourseComputed("flagTopic", "selected.is_custom_flag") @@ -289,12 +296,7 @@ export default Controller.extend(ModalFunctionality, { }, flagForReview() { - const notifyModeratorsID = 7; - const notifyModerators = this.flagsAvailable.find( - (f) => f.id === notifyModeratorsID - ); - this.set("selected", notifyModerators); - + this.set("selected", this.get("notifyModeratorsFlag")); this.send("createFlag", { queue_for_review: true }); this.set("model.hidden", true); }, diff --git a/app/assets/javascripts/discourse/app/templates/modal/flag.hbs b/app/assets/javascripts/discourse/app/templates/modal/flag.hbs index 4e11f469a14..250aa5608c2 100644 --- a/app/assets/javascripts/discourse/app/templates/modal/flag.hbs +++ b/app/assets/javascripts/discourse/app/templates/modal/flag.hbs @@ -44,6 +44,7 @@ {{d-button class="btn-danger" action=(action "flagForReview") + disabled=cantFlagForReview icon="exclamation-triangle" label="flagging.flag_for_review" }}