UX: Don't show reply prompt if current topic is closed (#13197)

A non-staff user cannot post to a closed topic, so we should not
show them the modal asking "Which topic do you want to reply to?"

This also fixes an issue I ran into while testing the above change, in
Ember CLI an error was being raised because related messages were being
set inside a computed property.
This commit is contained in:
Penar Musaraj 2021-05-28 13:47:51 -04:00 committed by GitHub
parent d5e787fa89
commit 526dbc99b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 8 deletions

View File

@ -710,7 +710,10 @@ export default Controller.extend({
composer.set("disableDrafts", true);
// for now handle a very narrow use case
// if we are replying to a topic AND not on the topic pop the window up
// if we are replying to a topic
// AND are on on a different topic
// AND topic is open (or we are staff)
// --> pop the window up
if (!force && composer.replyingToTopic) {
const currentTopic = this.topicModel;
@ -719,7 +722,10 @@ export default Controller.extend({
return;
}
if (currentTopic.id !== composer.get("topic.id")) {
if (
currentTopic.id !== composer.get("topic.id") &&
(this.isStaffUser || !currentTopic.closed)
) {
const message =
"<h1>" + I18n.t("composer.posting_not_on_topic") + "</h1>";

View File

@ -172,12 +172,7 @@ const Topic = RestModel.extend({
@discourseComputed("related_messages")
relatedMessages(relatedMessages) {
if (relatedMessages) {
const store = this.store;
return this.set(
"related_messages",
relatedMessages.map((st) => store.createRecord("topic", st))
);
return relatedMessages.map((st) => this.store.createRecord("topic", st));
}
},