aboutsummaryrefslogtreecommitdiff
path: root/client/js
diff options
context:
space:
mode:
authorHunternif2021-08-31 04:40:21 +0100
committerHunternif2021-08-31 04:57:15 +0100
commita101253c5ef8b34888a0810a18fee141a66126c6 (patch)
tree73a57d56c14af33883d08f7524ac8712fc2469e3 /client/js
parent52205093803136cb64592cbbe12a2723a910d349 (diff)
client: add list of similar posts to post sidebar
Diffstat (limited to 'client/js')
-rw-r--r--client/js/controls/post_readonly_sidebar_control.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/client/js/controls/post_readonly_sidebar_control.js b/client/js/controls/post_readonly_sidebar_control.js
index 80fbe29..d66a9b6 100644
--- a/client/js/controls/post_readonly_sidebar_control.js
+++ b/client/js/controls/post_readonly_sidebar_control.js
@@ -10,6 +10,7 @@ const PostMetricListControl = require("./post_metric_list_control.js");
const template = views.getTemplate("post-readonly-sidebar");
const scoreTemplate = views.getTemplate("score");
const favTemplate = views.getTemplate("fav");
+const similarItemTemplate = views.getTemplate("similar-post-item")
class PostReadonlySidebarControl extends events.EventTarget {
constructor(hostNode, ctx, postContentControl) {
@@ -45,6 +46,7 @@ class PostReadonlySidebarControl extends events.EventTarget {
this._metricsListNode, this._post
);
}
+ this._loadSimilarPosts();
}
get _scoreContainerNode() {
@@ -91,6 +93,10 @@ class PostReadonlySidebarControl extends events.EventTarget {
return this._hostNode.querySelector("ul.compact-post-metrics");
}
+ get _similarListNode() {
+ return this._hostNode.querySelector("nav.similar ul");
+ }
+
_installFitButtons() {
this._fitBothButtonNode.addEventListener(
"click",
@@ -229,6 +235,25 @@ class PostReadonlySidebarControl extends events.EventTarget {
_evtChangeScore(e) {
this._installScore();
}
+
+ _loadSimilarPosts() {
+ return api
+ .get(
+ uri.formatApiLink("post", this._post.id, "similar", {
+ limit: 10,
+ })
+ )
+ .then((response) => {
+ const listNode = this._similarListNode;
+ for (let post of response.results) {
+ let poseNode = similarItemTemplate({
+ id: post.id,
+ thumbnailUrl: post.thumbnailUrl,
+ });
+ listNode.appendChild(poseNode);
+ }
+ });
+ }
}
module.exports = PostReadonlySidebarControl;

© 2015 - 2026 Jakob L. Kreuze