App.Comments = add_comment: (parent_id, response_html) -> $(response_html).insertAfter($("#js-comment-form-#{parent_id}")) this.update_comments_count() add_reply: (parent_id, response_html) -> if $("##{parent_id} .comment-children").length == 0 $("##{parent_id}").append("
  • ") $("##{parent_id} .comment-children:first").prepend($(response_html)) this.update_comments_count() update_comments_count: (parent_id) -> $(".js-comments-count").each -> new_val = $(this).text().trim().replace /\d+/, (match) -> parseInt(match, 10) + 1 $(this).text(new_val) display_error: (field_with_errors, error_html) -> $(error_html).insertAfter($("#{field_with_errors}")) reset_and_hide_form: (id) -> form_container = $("#js-comment-form-#{id}") input = form_container.find("form textarea") input.val("") form_container.hide() reset_form: (id) -> input = $("#js-comment-form-#{id} form textarea") input.val("") toggle_form: (id) -> $("#js-comment-form-#{id}").toggle() toggle_arrow: (id) -> arrow = "span##{id}_arrow" if $(arrow).hasClass("icon-arrow-right") $(arrow).removeClass("icon-arrow-right").addClass("icon-arrow-down") else $(arrow).removeClass("icon-arrow-down").addClass("icon-arrow-right") initialize: -> $("body .js-add-comment-link").each -> $this = $(this) unless $this.data("initialized") is "yes" $this.on("click", -> id = $(this).data().id App.Comments.toggle_form(id) false ).data "initialized", "yes" $("body .js-toggle-children").each -> $(this).on("click", -> children_container_id = "#{$(this).data().id}_children" $("##{children_container_id}").toggle("slow") App.Comments.toggle_arrow(children_container_id) $(this).children(".js-child-toggle").toggle() false )