summaryrefslogtreecommitdiff
path: root/client/js/views/comments_page_view.js
blob: 5648b3a8ccbac65ed0d98eb91126f5c2db643e14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
"use strict";

const events = require("../events.js");
const views = require("../util/views.js");
const CommentListControl = require("../controls/comment_list_control.js");

const template = views.getTemplate("comments-page");

class CommentsPageView extends events.EventTarget {
    constructor(ctx) {
        super();
        this._hostNode = ctx.hostNode;

        const sourceNode = template(ctx);

        for (let post of ctx.response.results) {
            const commentListControl = new CommentListControl(
                sourceNode.querySelector(
                    `.comments-container[data-for="${post.id}"]`
                ),
                post.comments,
                true
            );
            events.proxyEvent(commentListControl, this, "submit");
            events.proxyEvent(commentListControl, this, "score");
            events.proxyEvent(commentListControl, this, "delete");
        }

        views.replaceContent(this._hostNode, sourceNode);
    }
}

module.exports = CommentsPageView;