DEV: Remove reply_as_private_message from composer (#16979)
* Remove 'New Message' option from composer dropdown * Update Acceptance Tests
This commit is contained in:
parent
d7bc395182
commit
49415de3fa
|
@ -2,7 +2,6 @@ import {
|
||||||
acceptance,
|
acceptance,
|
||||||
count,
|
count,
|
||||||
exists,
|
exists,
|
||||||
query,
|
|
||||||
queryAll,
|
queryAll,
|
||||||
selectText,
|
selectText,
|
||||||
updateCurrentUser,
|
updateCurrentUser,
|
||||||
|
@ -16,6 +15,8 @@ import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||||
import sinon from "sinon";
|
import sinon from "sinon";
|
||||||
import { test } from "qunit";
|
import { test } from "qunit";
|
||||||
import { toggleCheckDraftPopup } from "discourse/controllers/composer";
|
import { toggleCheckDraftPopup } from "discourse/controllers/composer";
|
||||||
|
import userFixtures from "discourse/tests/fixtures/user-fixtures";
|
||||||
|
import { cloneJSON } from "discourse-common/lib/object";
|
||||||
|
|
||||||
acceptance("Composer Actions", function (needs) {
|
acceptance("Composer Actions", function (needs) {
|
||||||
needs.user();
|
needs.user();
|
||||||
|
@ -25,25 +26,9 @@ acceptance("Composer Actions", function (needs) {
|
||||||
enable_whispers: true,
|
enable_whispers: true,
|
||||||
});
|
});
|
||||||
needs.site({ can_tag_topics: true });
|
needs.site({ can_tag_topics: true });
|
||||||
|
needs.pretender((server, helper) => {
|
||||||
test("creating new topic and then reply_as_private_message keeps attributes", async function (assert) {
|
const cardResponse = cloneJSON(userFixtures["/u/shade/card.json"]);
|
||||||
await visit("/");
|
server.get("/u/shade/card.json", () => helper.response(cardResponse));
|
||||||
await click("button#create-topic");
|
|
||||||
await fillIn("#reply-title", "this is the title");
|
|
||||||
await fillIn(".d-editor-input", "this is the reply");
|
|
||||||
|
|
||||||
const composerActions = selectKit(".composer-actions");
|
|
||||||
await composerActions.expand();
|
|
||||||
await composerActions.selectRowByValue("reply_as_private_message");
|
|
||||||
|
|
||||||
assert.ok(queryAll("#reply-title").val(), "this is the title");
|
|
||||||
assert.ok(queryAll(".d-editor-input").val(), "this is the reply");
|
|
||||||
|
|
||||||
await click("#reply-control a.cancel");
|
|
||||||
assert.ok(
|
|
||||||
exists(".discard-draft-modal.modal"),
|
|
||||||
"it pops up the discard drafts modal"
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("replying to post", async function (assert) {
|
test("replying to post", async function (assert) {
|
||||||
|
@ -57,34 +42,13 @@ acceptance("Composer Actions", function (needs) {
|
||||||
composerActions.rowByIndex(0).value(),
|
composerActions.rowByIndex(0).value(),
|
||||||
"reply_as_new_topic"
|
"reply_as_new_topic"
|
||||||
);
|
);
|
||||||
|
assert.strictEqual(composerActions.rowByIndex(1).value(), "reply_to_topic");
|
||||||
|
assert.strictEqual(composerActions.rowByIndex(2).value(), "toggle_whisper");
|
||||||
assert.strictEqual(
|
assert.strictEqual(
|
||||||
composerActions.rowByIndex(1).value(),
|
composerActions.rowByIndex(3).value(),
|
||||||
"reply_as_private_message"
|
|
||||||
);
|
|
||||||
assert.strictEqual(composerActions.rowByIndex(2).value(), "reply_to_topic");
|
|
||||||
assert.strictEqual(composerActions.rowByIndex(3).value(), "toggle_whisper");
|
|
||||||
assert.strictEqual(
|
|
||||||
composerActions.rowByIndex(4).value(),
|
|
||||||
"toggle_topic_bump"
|
"toggle_topic_bump"
|
||||||
);
|
);
|
||||||
assert.strictEqual(composerActions.rowByIndex(5).value(), null);
|
assert.strictEqual(composerActions.rowByIndex(4).value(), null);
|
||||||
});
|
|
||||||
|
|
||||||
test("replying to post - reply_as_private_message", async function (assert) {
|
|
||||||
const composerActions = selectKit(".composer-actions");
|
|
||||||
|
|
||||||
await visit("/t/internationalization-localization/280");
|
|
||||||
await click("article#post_3 button.reply");
|
|
||||||
|
|
||||||
await composerActions.expand();
|
|
||||||
await composerActions.selectRowByValue("reply_as_private_message");
|
|
||||||
|
|
||||||
const privateMessageUsers = selectKit("#private-message-users");
|
|
||||||
assert.strictEqual(privateMessageUsers.header().value(), "codinghorror");
|
|
||||||
assert.ok(
|
|
||||||
queryAll(".d-editor-input").val().indexOf("Continuing the discussion") >=
|
|
||||||
0
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("replying to post - reply_to_topic", async function (assert) {
|
test("replying to post - reply_to_topic", async function (assert) {
|
||||||
|
@ -199,28 +163,6 @@ acceptance("Composer Actions", function (needs) {
|
||||||
assert.deepEqual(privateMessageUsers.header().value(), "foo,foo_group");
|
assert.deepEqual(privateMessageUsers.header().value(), "foo,foo_group");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("allow switching back to New Topic", async function (assert) {
|
|
||||||
await visit("/");
|
|
||||||
await click("button#create-topic");
|
|
||||||
|
|
||||||
const composerActions = selectKit(".composer-actions");
|
|
||||||
await composerActions.expand();
|
|
||||||
await composerActions.selectRowByValue("reply_as_private_message");
|
|
||||||
|
|
||||||
assert.strictEqual(
|
|
||||||
query(".action-title").innerText,
|
|
||||||
I18n.t("topic.private_message")
|
|
||||||
);
|
|
||||||
|
|
||||||
await composerActions.expand();
|
|
||||||
await composerActions.selectRowByValue("create_topic");
|
|
||||||
|
|
||||||
assert.strictEqual(
|
|
||||||
query(".action-title").innerText,
|
|
||||||
I18n.t("topic.create_long")
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("interactions", async function (assert) {
|
test("interactions", async function (assert) {
|
||||||
const composerActions = selectKit(".composer-actions");
|
const composerActions = selectKit(".composer-actions");
|
||||||
const quote = "Life is like riding a bicycle.";
|
const quote = "Life is like riding a bicycle.";
|
||||||
|
@ -244,16 +186,12 @@ acceptance("Composer Actions", function (needs) {
|
||||||
"reply_as_new_topic"
|
"reply_as_new_topic"
|
||||||
);
|
);
|
||||||
assert.strictEqual(composerActions.rowByIndex(1).value(), "reply_to_post");
|
assert.strictEqual(composerActions.rowByIndex(1).value(), "reply_to_post");
|
||||||
|
assert.strictEqual(composerActions.rowByIndex(2).value(), "toggle_whisper");
|
||||||
assert.strictEqual(
|
assert.strictEqual(
|
||||||
composerActions.rowByIndex(2).value(),
|
composerActions.rowByIndex(3).value(),
|
||||||
"reply_as_private_message"
|
|
||||||
);
|
|
||||||
assert.strictEqual(composerActions.rowByIndex(3).value(), "toggle_whisper");
|
|
||||||
assert.strictEqual(
|
|
||||||
composerActions.rowByIndex(4).value(),
|
|
||||||
"toggle_topic_bump"
|
"toggle_topic_bump"
|
||||||
);
|
);
|
||||||
assert.strictEqual(composerActions.rows().length, 5);
|
assert.strictEqual(composerActions.rows().length, 4);
|
||||||
|
|
||||||
await composerActions.selectRowByValue("reply_to_post");
|
await composerActions.selectRowByValue("reply_to_post");
|
||||||
await composerActions.expand();
|
await composerActions.expand();
|
||||||
|
@ -268,17 +206,13 @@ acceptance("Composer Actions", function (needs) {
|
||||||
composerActions.rowByIndex(0).value(),
|
composerActions.rowByIndex(0).value(),
|
||||||
"reply_as_new_topic"
|
"reply_as_new_topic"
|
||||||
);
|
);
|
||||||
|
assert.strictEqual(composerActions.rowByIndex(1).value(), "reply_to_topic");
|
||||||
|
assert.strictEqual(composerActions.rowByIndex(2).value(), "toggle_whisper");
|
||||||
assert.strictEqual(
|
assert.strictEqual(
|
||||||
composerActions.rowByIndex(1).value(),
|
composerActions.rowByIndex(3).value(),
|
||||||
"reply_as_private_message"
|
|
||||||
);
|
|
||||||
assert.strictEqual(composerActions.rowByIndex(2).value(), "reply_to_topic");
|
|
||||||
assert.strictEqual(composerActions.rowByIndex(3).value(), "toggle_whisper");
|
|
||||||
assert.strictEqual(
|
|
||||||
composerActions.rowByIndex(4).value(),
|
|
||||||
"toggle_topic_bump"
|
"toggle_topic_bump"
|
||||||
);
|
);
|
||||||
assert.strictEqual(composerActions.rows().length, 5);
|
assert.strictEqual(composerActions.rows().length, 4);
|
||||||
|
|
||||||
await composerActions.selectRowByValue("reply_as_new_topic");
|
await composerActions.selectRowByValue("reply_as_new_topic");
|
||||||
await composerActions.expand();
|
await composerActions.expand();
|
||||||
|
@ -289,32 +223,25 @@ acceptance("Composer Actions", function (needs) {
|
||||||
);
|
);
|
||||||
assert.ok(queryAll(".d-editor-input").val().includes(quote));
|
assert.ok(queryAll(".d-editor-input").val().includes(quote));
|
||||||
assert.strictEqual(composerActions.rowByIndex(0).value(), "reply_to_post");
|
assert.strictEqual(composerActions.rowByIndex(0).value(), "reply_to_post");
|
||||||
assert.strictEqual(
|
assert.strictEqual(composerActions.rowByIndex(1).value(), "reply_to_topic");
|
||||||
composerActions.rowByIndex(1).value(),
|
assert.strictEqual(composerActions.rowByIndex(2).value(), "shared_draft");
|
||||||
"reply_as_private_message"
|
assert.strictEqual(composerActions.rows().length, 3);
|
||||||
);
|
});
|
||||||
assert.strictEqual(composerActions.rowByIndex(2).value(), "reply_to_topic");
|
|
||||||
assert.strictEqual(composerActions.rowByIndex(3).value(), "shared_draft");
|
|
||||||
assert.strictEqual(composerActions.rows().length, 4);
|
|
||||||
|
|
||||||
await composerActions.selectRowByValue("reply_as_private_message");
|
test("interactions - private message", async function (assert) {
|
||||||
|
const composerActions = selectKit(".composer-actions");
|
||||||
|
|
||||||
|
await visit("/t/internationalization-localization/280");
|
||||||
|
await click('#post_4 a[data-user-card="shade"]');
|
||||||
|
await click(".usercard-controls .compose-pm .btn-primary");
|
||||||
await composerActions.expand();
|
await composerActions.expand();
|
||||||
|
|
||||||
assert.strictEqual(
|
assert.strictEqual(
|
||||||
queryAll(".action-title").text().trim(),
|
queryAll(".action-title").text().trim(),
|
||||||
I18n.t("topic.private_message")
|
I18n.t("topic.private_message")
|
||||||
);
|
);
|
||||||
assert.ok(
|
assert.strictEqual(composerActions.rowByIndex(0).value(), "create_topic");
|
||||||
queryAll(".d-editor-input").val().indexOf("Continuing the discussion") ===
|
assert.strictEqual(composerActions.rows().length, 1);
|
||||||
0
|
|
||||||
);
|
|
||||||
assert.strictEqual(
|
|
||||||
composerActions.rowByIndex(0).value(),
|
|
||||||
"reply_as_new_topic"
|
|
||||||
);
|
|
||||||
assert.strictEqual(composerActions.rowByIndex(1).value(), "reply_to_post");
|
|
||||||
assert.strictEqual(composerActions.rowByIndex(2).value(), "reply_to_topic");
|
|
||||||
assert.strictEqual(composerActions.rows().length, 3);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("replying to post - toggle_topic_bump", async function (assert) {
|
test("replying to post - toggle_topic_bump", async function (assert) {
|
||||||
|
@ -409,9 +336,9 @@ acceptance("Composer Actions", function (needs) {
|
||||||
await click("article#post_3 button.reply");
|
await click("article#post_3 button.reply");
|
||||||
await composerActions.expand();
|
await composerActions.expand();
|
||||||
|
|
||||||
assert.strictEqual(composerActions.rows().length, 5);
|
assert.strictEqual(composerActions.rows().length, 4);
|
||||||
assert.strictEqual(
|
assert.strictEqual(
|
||||||
composerActions.rowByIndex(4).value(),
|
composerActions.rowByIndex(3).value(),
|
||||||
"toggle_topic_bump"
|
"toggle_topic_bump"
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -424,7 +351,7 @@ acceptance("Composer Actions", function (needs) {
|
||||||
await click("article#post_3 button.reply");
|
await click("article#post_3 button.reply");
|
||||||
await composerActions.expand();
|
await composerActions.expand();
|
||||||
|
|
||||||
assert.strictEqual(composerActions.rows().length, 3);
|
assert.strictEqual(composerActions.rows().length, 2);
|
||||||
Array.from(composerActions.rows()).forEach((row) => {
|
Array.from(composerActions.rows()).forEach((row) => {
|
||||||
assert.notStrictEqual(
|
assert.notStrictEqual(
|
||||||
row.value,
|
row.value,
|
||||||
|
@ -442,30 +369,13 @@ acceptance("Composer Actions", function (needs) {
|
||||||
await click("article#post_3 button.reply");
|
await click("article#post_3 button.reply");
|
||||||
await composerActions.expand();
|
await composerActions.expand();
|
||||||
|
|
||||||
assert.strictEqual(composerActions.rows().length, 4);
|
assert.strictEqual(composerActions.rows().length, 3);
|
||||||
assert.strictEqual(
|
assert.strictEqual(
|
||||||
composerActions.rowByIndex(3).value(),
|
composerActions.rowByIndex(2).value(),
|
||||||
"toggle_topic_bump"
|
"toggle_topic_bump"
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("replying to first post - reply_as_private_message", async function (assert) {
|
|
||||||
const composerActions = selectKit(".composer-actions");
|
|
||||||
|
|
||||||
await visit("/t/internationalization-localization/280");
|
|
||||||
await click("article#post_1 button.reply");
|
|
||||||
|
|
||||||
await composerActions.expand();
|
|
||||||
await composerActions.selectRowByValue("reply_as_private_message");
|
|
||||||
|
|
||||||
const privateMessageUsers = selectKit("#private-message-users");
|
|
||||||
assert.strictEqual(privateMessageUsers.header().value(), "uwe_keim");
|
|
||||||
assert.ok(
|
|
||||||
queryAll(".d-editor-input").val().indexOf("Continuing the discussion") >=
|
|
||||||
0
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("editing post", async function (assert) {
|
test("editing post", async function (assert) {
|
||||||
const composerActions = selectKit(".composer-actions");
|
const composerActions = selectKit(".composer-actions");
|
||||||
|
|
||||||
|
|
|
@ -701,7 +701,7 @@ acceptance("Composer", function (needs) {
|
||||||
|
|
||||||
const composerActions = selectKit(".composer-actions");
|
const composerActions = selectKit(".composer-actions");
|
||||||
await composerActions.expand();
|
await composerActions.expand();
|
||||||
await composerActions.selectRowByValue("reply_as_private_message");
|
await composerActions.selectRowByValue("reply_as_new_topic");
|
||||||
|
|
||||||
assert.ok(!exists(".modal-body"), "abandon popup shouldn't come");
|
assert.ok(!exists(".modal-body"), "abandon popup shouldn't come");
|
||||||
|
|
||||||
|
|
|
@ -2825,6 +2825,85 @@ export default {
|
||||||
featured_user_badge_ids: [17],
|
featured_user_badge_ids: [17],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"/u/shade/card.json": {
|
||||||
|
user_badges: [
|
||||||
|
{
|
||||||
|
id: 17,
|
||||||
|
granted_at: "2019-03-06T19:08:28.230Z",
|
||||||
|
count: 1,
|
||||||
|
badge_id: 3,
|
||||||
|
user_id: 5,
|
||||||
|
granted_by_id: -1,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
badges: [
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: "Regular",
|
||||||
|
description:
|
||||||
|
'<a href="https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/">Granted</a> recategorize, rename, followed links, wiki, more likes',
|
||||||
|
grant_count: 3,
|
||||||
|
allow_title: true,
|
||||||
|
multiple_grant: false,
|
||||||
|
icon: "fa-user",
|
||||||
|
image: null,
|
||||||
|
listable: true,
|
||||||
|
enabled: true,
|
||||||
|
badge_grouping_id: 4,
|
||||||
|
system: true,
|
||||||
|
slug: "regular",
|
||||||
|
manually_grantable: false,
|
||||||
|
badge_type_id: 2,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
badge_types: [{ id: 2, name: "Silver", sort_order: 8 }],
|
||||||
|
users: [
|
||||||
|
{
|
||||||
|
id: 10,
|
||||||
|
username: "shade",
|
||||||
|
name: null,
|
||||||
|
avatar_template: "/letter_avatar_proxy/v3/letter/s/d6d6ee/{size}.png",
|
||||||
|
moderator: false,
|
||||||
|
admin: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: -1,
|
||||||
|
username: "system",
|
||||||
|
name: "system",
|
||||||
|
avatar_template: "/user_avatar/localhost/system/{size}/2_2.png",
|
||||||
|
moderator: true,
|
||||||
|
admin: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
user: {
|
||||||
|
id: 10,
|
||||||
|
username: "shade",
|
||||||
|
name: null,
|
||||||
|
avatar_template: "/letter_avatar_proxy/v3/letter/s/d6d6ee/{size}.png",
|
||||||
|
last_posted_at: null,
|
||||||
|
last_seen_at: null,
|
||||||
|
created_at: "2019-03-06T19:06:20.340Z",
|
||||||
|
ignored: false,
|
||||||
|
can_ignore_user: false,
|
||||||
|
can_send_private_messages: true,
|
||||||
|
can_send_private_message_to_user: true,
|
||||||
|
trust_level: 3,
|
||||||
|
moderator: false,
|
||||||
|
admin: false,
|
||||||
|
title: null,
|
||||||
|
badge_count: 3,
|
||||||
|
custom_fields: {},
|
||||||
|
time_read: 0,
|
||||||
|
recent_time_read: 0,
|
||||||
|
primary_group_name: null,
|
||||||
|
flair_name: null,
|
||||||
|
flair_url: null,
|
||||||
|
flair_bg_color: null,
|
||||||
|
flair_color: null,
|
||||||
|
staged: false,
|
||||||
|
featured_user_badge_ids: [17],
|
||||||
|
},
|
||||||
|
},
|
||||||
"/u/charlie/summary.json": {
|
"/u/charlie/summary.json": {
|
||||||
topics: [],
|
topics: [],
|
||||||
badges: [
|
badges: [
|
||||||
|
|
|
@ -160,23 +160,6 @@ export default DropdownSelectBoxComponent.extend({
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
|
||||||
this.siteSettings.enable_personal_messages &&
|
|
||||||
this.action !== PRIVATE_MESSAGE &&
|
|
||||||
!this.isEditing
|
|
||||||
) {
|
|
||||||
items.push({
|
|
||||||
name: I18n.t(
|
|
||||||
"composer.composer_actions.reply_as_private_message.label"
|
|
||||||
),
|
|
||||||
description: I18n.t(
|
|
||||||
"composer.composer_actions.reply_as_private_message.desc"
|
|
||||||
),
|
|
||||||
icon: "envelope",
|
|
||||||
id: "reply_as_private_message",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!this.isEditing &&
|
!this.isEditing &&
|
||||||
((this.action !== REPLY && _topicSnapshot) ||
|
((this.action !== REPLY && _topicSnapshot) ||
|
||||||
|
|
|
@ -2273,9 +2273,6 @@ en:
|
||||||
reply_as_new_group_message:
|
reply_as_new_group_message:
|
||||||
label: Reply as new group message
|
label: Reply as new group message
|
||||||
desc: Create new message starting with same recipients
|
desc: Create new message starting with same recipients
|
||||||
reply_as_private_message:
|
|
||||||
label: New message
|
|
||||||
desc: Create a new personal message
|
|
||||||
reply_to_topic:
|
reply_to_topic:
|
||||||
label: Reply to topic
|
label: Reply to topic
|
||||||
desc: Reply to the topic, not any specific post
|
desc: Reply to the topic, not any specific post
|
||||||
|
|
Loading…
Reference in New Issue