FEATURE: Show topic visited state on search page (#15994)
The visited state used user's history instead of the data from the server.
This commit is contained in:
parent
9c1ab97c01
commit
82a9109ae3
|
@ -10,7 +10,7 @@
|
|||
{{track-selected selectedList=selected selectedId=post.topic class="bulk-select"}}
|
||||
{{/if}}
|
||||
|
||||
<a href={{post.url}} {{action "logClick" post.topic_id}} class="search-link" role="heading" aria-level="2">
|
||||
<a href={{post.url}} {{action "logClick" post.topic_id}} class="search-link{{if post.topic.visited " visited"}}" role="heading" aria-level="2">
|
||||
{{raw "topic-status" topic=post.topic showPrivateMessageIcon=true}}
|
||||
<span class="topic-title">
|
||||
{{#if post.useTopicTitleHeadline}}
|
||||
|
|
|
@ -558,4 +558,16 @@ acceptance("Search - Full Page", function (needs) {
|
|||
await click(".topic-bulk-actions-modal .btn:nth-child(2)"); // close topics
|
||||
assert.equal(lastBody["topic_ids[]"], 7);
|
||||
});
|
||||
|
||||
test("adds visited class to visited topics", async function (assert) {
|
||||
await visit("/search");
|
||||
|
||||
await fillIn(".search-query", "discourse");
|
||||
await click(".search-cta");
|
||||
assert.equal(queryAll(".visited").length, 0);
|
||||
|
||||
await fillIn(".search-query", "discourse visited");
|
||||
await click(".search-cta");
|
||||
assert.equal(queryAll(".visited").length, 1);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -254,10 +254,14 @@ export function applyDefaultHandlers(pretender) {
|
|||
pretender.get("/search", (request) => {
|
||||
if (request.queryParams.q === "discourse") {
|
||||
return response(fixturesByUrl["/search.json"]);
|
||||
} else if (request.queryParams.q === "discourse visited") {
|
||||
const obj = JSON.parse(JSON.stringify(fixturesByUrl["/search.json"]));
|
||||
obj.topics.firstObject.visited = true;
|
||||
return response(obj);
|
||||
} else if (request.queryParams.q === "discourse in:personal") {
|
||||
const fixtures = fixturesByUrl["/search.json"];
|
||||
fixtures.topics.firstObject.archetype = "private_message";
|
||||
return response(fixtures);
|
||||
const obj = JSON.parse(JSON.stringify(fixturesByUrl["/search.json"]));
|
||||
obj.topics.firstObject.archetype = "private_message";
|
||||
return response(obj);
|
||||
} else {
|
||||
return response({});
|
||||
}
|
||||
|
|
|
@ -329,7 +329,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
a.search-link:visited .topic-title {
|
||||
a.search-link.visited .topic-title {
|
||||
color: var(--primary-medium);
|
||||
}
|
||||
.search-link {
|
||||
|
|
Loading…
Reference in New Issue