FIX: `u/:username/deleted-posts` route regression (#21834)
Regressed in 48987af
This commit is contained in:
parent
a187411611
commit
1e3a5124da
|
@ -1,37 +0,0 @@
|
||||||
import DiscourseRoute from "discourse/routes/discourse";
|
|
||||||
import { emojiUnescape } from "discourse/lib/text";
|
|
||||||
import { escapeExpression } from "discourse/lib/utilities";
|
|
||||||
import { action } from "@ember/object";
|
|
||||||
|
|
||||||
export default function (filter) {
|
|
||||||
return DiscourseRoute.extend({
|
|
||||||
templateName: "user/posts",
|
|
||||||
|
|
||||||
model() {
|
|
||||||
return this.modelFor("user").get("postsStream");
|
|
||||||
},
|
|
||||||
|
|
||||||
afterModel(model) {
|
|
||||||
return model.filterBy({ filter });
|
|
||||||
},
|
|
||||||
|
|
||||||
setupController(controller, model) {
|
|
||||||
// initialize "canLoadMore"
|
|
||||||
model.set("canLoadMore", model.get("itemsLoaded") === 60);
|
|
||||||
|
|
||||||
model.get("content").forEach((item) => {
|
|
||||||
if (item.get("title")) {
|
|
||||||
item.set("title", emojiUnescape(escapeExpression(item.title)));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.controllerFor("user-posts").set("model", model);
|
|
||||||
},
|
|
||||||
|
|
||||||
@action
|
|
||||||
didTransition() {
|
|
||||||
this.controllerFor("user-posts")._showFooter();
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
|
@ -1,3 +1,35 @@
|
||||||
import createAdminUserPostsRoute from "discourse/routes/build-admin-user-posts-route";
|
import DiscourseRoute from "discourse/routes/discourse";
|
||||||
|
import { emojiUnescape } from "discourse/lib/text";
|
||||||
|
import { escapeExpression } from "discourse/lib/utilities";
|
||||||
|
import { action } from "@ember/object";
|
||||||
|
|
||||||
export default createAdminUserPostsRoute("deleted");
|
export default class UserDeletedPosts extends DiscourseRoute {
|
||||||
|
templateName = "user/posts";
|
||||||
|
controllerName = "user-posts";
|
||||||
|
|
||||||
|
model() {
|
||||||
|
return this.modelFor("user").postsStream;
|
||||||
|
}
|
||||||
|
|
||||||
|
afterModel(model) {
|
||||||
|
return model.filterBy({ filter: "deleted" });
|
||||||
|
}
|
||||||
|
|
||||||
|
setupController(controller, model) {
|
||||||
|
super.setupController(...arguments);
|
||||||
|
|
||||||
|
model.set("canLoadMore", model.itemsLoaded === 60);
|
||||||
|
|
||||||
|
model.content.forEach((item) => {
|
||||||
|
if (item.title) {
|
||||||
|
item.set("title", emojiUnescape(escapeExpression(item.title)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@action
|
||||||
|
didTransition() {
|
||||||
|
this.controller._showFooter();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
import { acceptance } from "../helpers/qunit-helpers";
|
||||||
|
import { test } from "qunit";
|
||||||
|
import postFixtures from "discourse/tests/fixtures/post";
|
||||||
|
import { cloneJSON } from "discourse-common/lib/object";
|
||||||
|
import { visit } from "@ember/test-helpers";
|
||||||
|
|
||||||
|
acceptance("User's deleted posts page", function (needs) {
|
||||||
|
needs.user();
|
||||||
|
|
||||||
|
needs.pretender((server, helper) => {
|
||||||
|
server.get(`/posts/eviltrout/deleted`, () => {
|
||||||
|
const post1 = cloneJSON(postFixtures["/posts/398"]);
|
||||||
|
post1.excerpt = "Topic #1";
|
||||||
|
const post2 = cloneJSON(postFixtures["/posts/98737532"]);
|
||||||
|
post2.excerpt = "Another topic's text";
|
||||||
|
|
||||||
|
return helper.response([post1, post2]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test("Displays the posts", async function (assert) {
|
||||||
|
await visit(`/u/eviltrout/deleted-posts`);
|
||||||
|
|
||||||
|
assert.dom(".user-stream-item [data-topic-id='280']").hasText("Topic #1");
|
||||||
|
assert
|
||||||
|
.dom(".user-stream-item [data-topic-id='34']")
|
||||||
|
.hasText("Another topic's text");
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue