summaryrefslogtreecommitdiff
path: root/static/js/controllers/replies_controller.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js/controllers/replies_controller.js')
-rw-r--r--static/js/controllers/replies_controller.js82
1 files changed, 41 insertions, 41 deletions
diff --git a/static/js/controllers/replies_controller.js b/static/js/controllers/replies_controller.js
index c383e57..dfcafb2 100644
--- a/static/js/controllers/replies_controller.js
+++ b/static/js/controllers/replies_controller.js
@@ -1,70 +1,70 @@
import { BaseController } from "./base_controller.js";
export class RepliesController extends BaseController {
- constructor() {
+ constructor() {
super();
- }
+ }
- async init() {
+ async init() {
this.comment_id = 0;
this.reply_form = await this.getReplyForm();
this.listenButtons("replies-button", this.renderReplies.bind(this));
this.listenButtons("new-reply-button", this.showReplyForm.bind(this));
- }
+ }
- async submit(event) {
+ async submit(event) {
await super.submit(event, `${this.comments_server_host}/api/comments/${this.comment_id}/replies`);
- }
+ }
- listenButtons(class_name, func) {
+ listenButtons(class_name, func) {
const buttons = document.getElementsByClassName(class_name);
- if(buttons) {
- for(let button of buttons)
+ if (buttons) {
+ for (let button of buttons)
button.addEventListener("click", func);
}
- }
+ }
- showReplyForm(event) {
+ showReplyForm(event) {
const replies_section = event.target.parentElement.parentElement.childNodes[3];
const form = replies_section.querySelector(".reply-form");
- if(form == null) {
- replies_section.appendChild(this.reply_form);
- this.setCommentId(replies_section);
- this.reply_form.addEventListener("submit", this.submit.bind(this));
+ if (form == null) {
+ replies_section.appendChild(this.reply_form);
+ this.setCommentId(replies_section);
+ this.reply_form.addEventListener("submit", this.submit.bind(this));
} else
- form.remove();
- }
+ form.remove();
+ }
- renderReplies(event) {
- /* The div to contain the comment's replies. From the element id
- we can get the comment's id. */
- const comment_replies_section = event.target.parentElement.parentElement.parentElement;
- const present_replies = comment_replies_section.querySelector(".replies-section");
- this.setCommentId(comment_replies_section);
+ renderReplies(event) {
+ /* The div to contain the comment's replies. From the element id
+ we can get the comment's id. */
+ const comment_replies_section = event.target.parentElement.parentElement.parentElement;
+ const present_replies = comment_replies_section.querySelector(".replies-section");
+ this.setCommentId(comment_replies_section);
- if(present_replies != null) {
- present_replies.remove();
+ if (present_replies != null) {
+ present_replies.remove();
- return;
- }
+ return;
+ }
+
+ this.get(`/api/comments/${this.comment_id}/replies`).then((value) => {
+ const replies = value?.getElementById(`replies-section-${this.comment_id}`);
- this.get(`/api/comments/${this.comment_id}/replies`).then((value) => {
- const replies = value?.getElementById(`replies-section-${this.comment_id}`);
-
- if(replies != null)
- comment_replies_section.appendChild(replies);
- });
- }
+ if (replies != null)
+ comment_replies_section.appendChild(replies);
+ });
+ }
- setCommentId(replies_section) {
- this.comment_id = /\d/.exec(replies_section.id)[0];
- }
+ setCommentId(replies_section) {
+ this.comment_id = /\d/.exec(replies_section.id)[0];
+ }
- async getReplyForm() {
- var form = await this.get("/api/replies/new");
+ async getReplyForm() {
+ var form = await this.get("/api/replies/new");
- return form.getElementsByClassName("reply-form")[0];
- }
+ return form.getElementsByClassName("reply-form")[0];
+ }
}