class CommentsController < ApplicationController helper :profile, :avatar include ProfileHelper before_filter :protect, :load_post def new @comment = Comment.new respond_to do |format| format.js do render :update do |page| page.hide "add_comment_link_for_post_#{@post.id}" form_div = "new_comment_form_for_post_#{@post.id}" page.hide form_div page.replace_html form_div, :partial => "new" page.visual_effect :blind_down, form_div end end end end def create @comment = Comment.new(params[:comment]) @comment.user = User.find(session[:user_id]) @comment.post = @post respond_to do |format| if @comment.duplicate? or @post.comments << @comment format.js do render :update do |page| page.replace_html "comments_for_post_#{@post.id}", :partial => "comments/comment", :collection => @post.comments page.show "add_comment_link_for_post_#{@post.id}" page.hide "new_comment_form_for_post_#{@post.id}" end end else format.js { render :nothing => true } end end end def destroy @comment = Comment.find(params[:id]) user = User.find(session[:user_id]) if @comment.authorized?(user) @comment.destroy else redirect_to hub_url return end respond_to do |format| format.js do render :update do |page| page.remove "comment_#{@comment.id}" end end end end private def load_post @post = Post.find(params[:post_id]) end end