Skip to content
Extraits de code Groupes Projets
comments_controller.rb 2,01 ko
Newer Older
  • Learn to ignore specific revisions
  • Raphael's avatar
    Raphael a validé
    #   Copyright (c) 2010, Diaspora Inc.  This file is
    
    Raphael's avatar
    Raphael a validé
    #   licensed under the Affero General Public License version 3 or later.  See
    
    Raphael's avatar
    Raphael a validé
    #   the COPYRIGHT file.
    
    class CommentsController < ApplicationController
    
      before_filter :authenticate_user!
    
      respond_to :html, :mobile, :only => [:create, :destroy]
      respond_to :js, :only => [:index]
    
      rescue_from ActiveRecord::RecordNotFound do
        render :nothing => true, :status => 404
      end
    
    
        target = current_user.find_visible_post_by_id params[:post_id]
        text = params[:text]
    
          @comment = current_user.build_comment(:text => text, :post => target)
    
            Rails.logger.info(:event => :create, :type => :comment, :user => current_user.diaspora_handle,
                              :status => :success, :comment => @comment.id, :chars => params[:text].length)
    
            Postzord::Dispatch.new(current_user, @comment).post
    
              format.js{ render(:create, :status => 201)}
    
              format.html{ render :nothing => true, :status => 201 }
    
              format.mobile{ redirect_to post_url(@comment.post) }
    
            render :nothing => true, :status => 422
    
    Raphael's avatar
    Raphael a validé
        else
    
          render :nothing => true, :status => 422
    
    Raphael's avatar
    Raphael a validé
        end
    
        @comment = Comment.find(params[:id])
        if current_user.owns?(@comment) || current_user.owns?(@comment.parent)
          current_user.retract(@comment)
          respond_to do |format|
    
            format.js { render :nothing => true, :status => 204 }
    
            format.mobile{ redirect_to @comment.post }
    
          respond_to do |format|
            format.mobile {redirect_to :back}
            format.js {render :nothing => true, :status => 403}
          end
    
      def index
        @post = current_user.find_visible_post_by_id(params[:post_id])
        if @post
    
          @comments = @post.comments.includes(:author => :profile)
          render :layout => false