diff options
| author | Hunternif | 2021-08-31 04:40:21 +0100 |
|---|---|---|
| committer | Hunternif | 2021-08-31 04:57:15 +0100 |
| commit | a101253c5ef8b34888a0810a18fee141a66126c6 (patch) | |
| tree | 73a57d56c14af33883d08f7524ac8712fc2469e3 /client/js | |
| parent | 52205093803136cb64592cbbe12a2723a910d349 (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.js | 25 |
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; |