socialforge/app/controllers/blog_comments_controller.rb

195 lines
6.3 KiB
Ruby
Raw Normal View History

2015-10-24 15:34:43 +08:00
class BlogCommentsController < ApplicationController
include ApplicationHelper
before_filter :find_user
def index
end
def create
if User.current.logged?
@article = BlogComment.new
@article.author = User.current
@article.blog_id = params[:blog_id]
@article.safe_attributes = params[:blog_comment]
if request.post?
@article.save_attachments(params[:attachments])
if @article.save
# 更新kindeditor上传的图片资源所有者
# if params[:asset_id]
# ids = params[:asset_id].split(',')
# update_kindeditor_assets_owner ids,@article.id,OwnerTypeHelper::BLOGCOMMENT
# end
render_attachment_warning_if_needed(@article)
else
end
redirect_to user_blogs_path(:user_id=>params[:user_id])
else
respond_to do |format|
format.html {
render :layout => 'new_base_user'
}
end
end
else
redirect_to signin_path
end
end
def new
respond_to do |format|
format.html {render :layout=>'new_base_user'}
end
end
def show
@article = BlogComment.find(params[:id])
all_comments = []
@replies = get_all_children(all_comments, @article)
@reply_count = @replies.count
@page = params[:page] ? params[:page].to_i + 1 : 0
@limit = 10
@replies = @replies[@page * @limit..@page * @limit + 9]
2015-10-24 15:34:43 +08:00
respond_to do |format|
format.js
2015-10-24 15:34:43 +08:00
format.html {render :layout=>'new_base_user'}
end
end
def update
@article = BlogComment.find(params[:id])
@article.safe_attributes = params[:blog_comment]
@article.save_attachments(params[:attachments])
if @article.save
render_attachment_warning_if_needed(@article)
else
end
if params[:in_act]
redirect_to user_path(params[:user_id])
else
if @article.id.eql?(User.find(params[:user_id]).blog.homepage_id)
redirect_to user_path(params[:user_id])
else
redirect_to user_blog_blog_comment_path(:user_id=>params[:user_id],:blog_id=>params[:blog_id],:id=>params[:id])
end
end
2015-10-24 15:34:43 +08:00
end
def destroy
@article = BlogComment.find(params[:id])
if @article.parent_id.nil? #如果是文章被删那么跳转到用户博客界面如果带了course_id过来那么就要跳转到课程首页
2015-10-30 14:22:11 +08:00
if params[:course_id] #如果带了课程id过来说明这是课程大纲不要删除只需取消课程大纲就ok了
@course = Course.find(params[:course_id])
@course.outline = 0
@course.save
redirect_to course_path(:id=>params[:course_id])
2016-07-14 14:44:47 +08:00
elsif params[:user_activity_id]
@article.children.destroy
@article.destroy
redirect_to user_path(User.current.id)
else
@article.children.destroy
@article.destroy
redirect_to user_blogs_path(:user_id=>User.current)
end
2015-10-29 17:09:03 +08:00
else#如果是回复被删,
if params[:course_id] #如果带了course_id过来了那么这是要跳到课程大纲去的
@article.destroy
2015-10-30 17:21:12 +08:00
redirect_to syllabus_course_path(:id=>params[:course_id])
2016-07-14 14:44:47 +08:00
elsif params[:user_activity_id]
if params[:homepage] && params[:homepage] == "1"
@in_user_homepage = true
end
@user_activity_id = params[:user_activity_id]
@blog_comment = @article.root
@article.destroy
respond_to do |format|
format.js
return
end
2015-10-29 17:09:03 +08:00
else
root = @article.root
@article.destroy
2015-10-29 17:09:03 +08:00
redirect_to user_blog_blog_comment_path(:user_id=>root.author_id,:blog_id=>root.blog_id,:id=>root.id)
end
2015-10-24 15:34:43 +08:00
end
end
def edit
@article = BlogComment.find(params[:id])
if User.current.admin? || User.current.id == @article.author_id
respond_to do |format|
format.html { render :layout => 'new_base_user' }
end
else
render_403
2015-10-24 15:34:43 +08:00
end
end
def quote
@blogComment = BlogComment.find(params[:id])
@temp = BlogComment.new
2015-10-29 17:09:03 +08:00
@course_id = params[:course_id]
2015-10-24 15:34:43 +08:00
respond_to do | format|
format.js
end
end
#回复
def reply
2016-07-14 14:44:47 +08:00
if params[:homepage] && params[:homepage] == "1"
@in_user_homepage = true
end
if params[:in_user_center]
@in_user_center = true
end
2015-10-24 15:34:43 +08:00
@article = BlogComment.find(params[:id]).root
@blogComment = BlogComment.new
@blogComment.author = User.current
@blogComment.blog = Blog.find(params[:blog_id])
params[:blog_comment][:sticky] = params[:blog_comment][:sticky] || 0
params[:blog_comment][:locked] = params[:blog_comment][:locked] || 0
@blogComment.safe_attributes = params[:blog_comment]
@blogComment.title = "RE: #{@article.title}" unless params[:blog_comment][:title]
2016-07-14 14:44:47 +08:00
if params[:parent_id]
2016-07-13 15:20:39 +08:00
@blogComment.content = params[:blog_comment][:content]
parent = BlogComment.find params[:parent_id]
@blogComment.reply_id = params[:id]
@blogComment.root_id = parent.root_id.nil? ? parent.id : parent.root_id
2016-07-13 15:20:39 +08:00
parent.children << @blogComment
else
2016-07-14 14:44:47 +08:00
@quote = params[:quote][:quote] || ""
2016-07-13 15:20:39 +08:00
@blogComment.content = @quote + @blogComment.content
@blogComment.root_id = @article.id
2016-07-13 15:20:39 +08:00
@article.children << @blogComment
end
2015-12-17 10:19:43 +08:00
@article.save
# @article.update_attribute(:updated_on, @blogComment.updated_on)
2015-10-24 15:34:43 +08:00
@user_activity_id = params[:user_activity_id]
user_activity = UserActivity.where("act_type='BlogComment' and act_id =#{@article.id}").first
if user_activity
user_activity.updated_at = Time.now
user_activity.save
end
2015-10-24 15:34:43 +08:00
attachments = Attachment.attach_files(@blogComment, params[:attachments])
render_attachment_warning_if_needed(@blogComment)
#@article.save
# redirect_to user_blogs_path(:user_id=>params[:user_id])
respond_to do |format|
2015-10-29 17:09:03 +08:00
format.html {
if params[:course_id] #如果呆了course_id过来了那么这是要跳到课程大纲去的
2015-10-30 17:21:12 +08:00
redirect_to syllabus_course_path(:id=>params[:course_id])
2015-10-29 17:09:03 +08:00
else
redirect_to user_blog_blog_comment_path(:user_id=>@article.author_id,:blog_id=>@article.blog_id,:id=>@article)
end
}
2015-10-24 15:34:43 +08:00
format.js
end
rescue Exception => e #如果上面的代码执行发生异常就捕获
flash[:notice] = e.message
end
private
def find_user
@user = User.find(params[:user_id])
end
end