2016-04-28 17:36:29 +08:00
|
|
|
|
class SubDocumentCommentsController < ApplicationController
|
2016-05-05 18:47:32 +08:00
|
|
|
|
before_filter :find_subdomain_and_subfield, :only => [:new, :create, :show, :index, :destroy, :edit]
|
2016-04-28 17:36:29 +08:00
|
|
|
|
before_filter :find_subfield_content, :only => [:show, :index]
|
2016-06-06 14:29:33 +08:00
|
|
|
|
before_filter :authorize_allowed, :only => [:create, :add_reply]
|
2016-04-28 17:36:29 +08:00
|
|
|
|
helper :attachments,:organizations
|
2016-06-07 10:17:16 +08:00
|
|
|
|
layout 'base_org_custom'
|
2016-04-28 17:36:29 +08:00
|
|
|
|
|
|
|
|
|
def new
|
|
|
|
|
@sub_document_comment = SubDocumentComment.new
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create
|
|
|
|
|
@sub_document_comment = SubDocumentComment.new(:sub_domain_id => params[:sub_domain_id], :creator_id => User.current.id, :org_subfield_id => params[:org_subfield_id])
|
|
|
|
|
@sub_document_comment.title = params[:sub_document_comment][:title]
|
|
|
|
|
@sub_document_comment.content = params[:sub_document_comment][:content]
|
|
|
|
|
# @sub_document_comment.save_attachments(params[:attachments])
|
|
|
|
|
if params[:field_id]
|
|
|
|
|
@sub_document_comment.org_subfield_id = params[:field_id].to_i
|
|
|
|
|
end
|
|
|
|
|
if @sub_document_comment.save
|
|
|
|
|
flash.keep[:notice] = l(:notice_successful_create)
|
|
|
|
|
redirect_to org_subfield_sub_domain_sub_document_comments_path(:org_subfield_id => @org_subfield.id, :sub_domain_id => @subdomain.id)
|
|
|
|
|
# EditorOfDocument.create(:editor_id => User.current.id, :org_document_comment_id => @sub_document_comment.id, :created_at => @sub_document_comment.updated_at)
|
|
|
|
|
# if params[:field_id]
|
|
|
|
|
# @org_subfield = OrgSubfield.find(params[:field_id])
|
|
|
|
|
# if @org_subfield.subfield_subdomain_dir.nil?
|
|
|
|
|
# redirect_to organization_path(@organization, :org_subfield_id => params[:field_id])
|
|
|
|
|
# else
|
|
|
|
|
# redirect_to show_org_subfield_organization_path(:id => @organization.id, :sub_dir_name => @org_subfield.subfield_subdomain_dir.name)
|
|
|
|
|
# end
|
|
|
|
|
# else
|
|
|
|
|
# redirect_to organization_org_document_comments_path(@organization)
|
|
|
|
|
# end
|
|
|
|
|
else
|
|
|
|
|
redirect_to new_org_document_comment_path(:organization_id => @organization.id)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def show
|
2016-04-29 14:46:40 +08:00
|
|
|
|
if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization)
|
|
|
|
|
@document = SubDocumentComment.find(params[:id])
|
|
|
|
|
respond_to do |format|
|
2016-06-07 10:17:16 +08:00
|
|
|
|
format.html {render :layout => @organization.switch_type ? 'base_org_custom' : 'base_org'}
|
2016-04-29 14:46:40 +08:00
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
render_403
|
|
|
|
|
end
|
2016-04-28 17:36:29 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def index
|
|
|
|
|
if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization)
|
|
|
|
|
@documents = @subdomain.sub_document_comments.where("parent_id is null").order("created_at desc")
|
2016-04-29 16:33:10 +08:00
|
|
|
|
@is_remote = true
|
2016-05-06 10:12:30 +08:00
|
|
|
|
@limit = 20
|
2016-04-29 16:33:10 +08:00
|
|
|
|
@atta_count = @documents.count
|
|
|
|
|
@atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1
|
|
|
|
|
@offset ||= @atta_pages.offset
|
2016-05-06 10:12:30 +08:00
|
|
|
|
@documents = paginateHelper @documents,20
|
2016-04-28 17:36:29 +08:00
|
|
|
|
respond_to do |format|
|
2016-06-07 10:17:16 +08:00
|
|
|
|
format.html {render :layout => @organization.switch_type ? 'base_org_custom' : 'base_org'}
|
2016-04-28 17:36:29 +08:00
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
render_403
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def update
|
2016-05-06 14:42:13 +08:00
|
|
|
|
@sub_document = SubDocumentComment.find(params[:id])
|
|
|
|
|
@sub_document.update_attributes(:title => params[:sub_document_comment][:title], :content => params[:sub_document_comment][:content])
|
|
|
|
|
@organization = OrgSubfield.find(params[:org_subfield_id]).organization
|
|
|
|
|
# Attachment.attach_files(@org_document, params[:attachments])
|
2016-04-28 17:36:29 +08:00
|
|
|
|
# @org_document.save_attachments(params[:attachments])
|
2016-05-06 14:42:13 +08:00
|
|
|
|
if @sub_document.parent.nil?
|
|
|
|
|
act = OrgActivity.where("org_act_type='SubDocumentComment' and org_act_id =?", @sub_document.id).first
|
|
|
|
|
act.update_attributes(:updated_at => @sub_document.updated_at)
|
|
|
|
|
# EditorOfDocument.create(:editor_id => User.current.id, :org_document_comment_id => @org_document.id, :created_at => Time.now)
|
2016-04-28 17:36:29 +08:00
|
|
|
|
end
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html {
|
|
|
|
|
if params[:flag].to_i == 0
|
2016-05-06 14:42:13 +08:00
|
|
|
|
|
|
|
|
|
# render :action => 'index', :layout => @organization.switch_type ? 'base_sub_domain' : 'base_org'
|
|
|
|
|
redirect_to org_subfield_sub_domain_sub_document_comments_path(:org_subfield_id => params[:org_subfield_id], :sub_domain_id => params[:sub_domain_id])
|
|
|
|
|
# render :layout => @organization.switch_type ? 'base_sub_domain' : 'base_org'
|
|
|
|
|
# redirect_to organization_path(@organization)
|
2016-04-28 17:36:29 +08:00
|
|
|
|
else
|
2016-05-06 14:57:36 +08:00
|
|
|
|
redirect_to org_subfield_sub_domain_sub_document_comment_path(:org_subfield_id => params[:org_subfield_id], :sub_domain_id => params[:sub_domain_id])
|
2016-04-28 17:36:29 +08:00
|
|
|
|
end
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def edit
|
2016-05-05 18:47:32 +08:00
|
|
|
|
@sub_document = SubDocumentComment.find(params[:id])
|
2016-04-28 17:36:29 +08:00
|
|
|
|
@flag = params[:flag]
|
2016-05-06 14:42:13 +08:00
|
|
|
|
render :layout => @organization.switch_type ? 'base_sub_domain' : 'base_org'
|
2016-04-28 17:36:29 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def add_reply
|
2016-05-03 19:03:28 +08:00
|
|
|
|
@document = SubDocumentComment.find(params[:id]).root
|
|
|
|
|
@subdomain = @document.sub_domain
|
|
|
|
|
@org_subfield = @subdomain.org_subfield
|
|
|
|
|
@organization = @org_subfield.organization
|
2016-10-10 17:31:39 +08:00
|
|
|
|
@act = OrgActivity.find(params[:act_id])
|
2016-05-03 19:03:28 +08:00
|
|
|
|
@comment = SubDocumentComment.new(:sub_domain_id => @document.sub_domain, :creator_id => User.current.id, :reply_id => params[:id])
|
|
|
|
|
@comment.content = params[:sub_content]
|
2016-04-28 17:36:29 +08:00
|
|
|
|
@document.children << @comment
|
|
|
|
|
@document.save
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def add_reply_in_doc
|
2016-05-03 20:08:40 +08:00
|
|
|
|
@document = SubDocumentComment.find(params[:id]).root
|
|
|
|
|
@subdomain = @document.sub_domain
|
|
|
|
|
@org_subfield = @subdomain.org_subfield
|
|
|
|
|
@organization = @org_subfield.organization
|
|
|
|
|
@comment = SubDocumentComment.new(:sub_domain_id => @document.sub_domain_id, :creator_id => User.current.id, :reply_id => params[:id])
|
2016-05-04 09:45:02 +08:00
|
|
|
|
@comment.content = params[:flag] ? params[:sub_content] : params[:org_comment][:sub_content]
|
2016-04-28 17:36:29 +08:00
|
|
|
|
@document.children << @comment
|
|
|
|
|
@document.save
|
|
|
|
|
respond_to do |format|
|
2016-05-03 20:08:40 +08:00
|
|
|
|
format.html {redirect_to org_subfield_sub_domain_sub_document_comment_path(:id => @document.id, :org_subfield_id => @org_subfield.id, :sub_domain_id => @subdomain.id)}
|
2016-04-28 17:36:29 +08:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def destroy
|
2016-05-05 16:43:20 +08:00
|
|
|
|
@sub_document_comment = SubDocumentComment.find(params[:id])
|
|
|
|
|
@sub_document_comment.destroy
|
2016-05-20 22:07:33 +08:00
|
|
|
|
@sub_domain = @sub_document_comment.sub_domain
|
|
|
|
|
@org_subfield = @sub_domain.org_subfield
|
2016-05-05 16:43:20 +08:00
|
|
|
|
rescue ActiveRecord::RecordNotFound
|
2016-04-28 17:36:29 +08:00
|
|
|
|
respond_to do |format|
|
2016-05-05 16:43:20 +08:00
|
|
|
|
# format.html{
|
|
|
|
|
# redirect_to org_subfield_sub_domain_sub_document_comments_path(:id => params[:sub_domain_id], :org_subfield_id => params[:org_subfield_id])
|
|
|
|
|
# }
|
2016-04-28 17:36:29 +08:00
|
|
|
|
format.js
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def delete_reply
|
|
|
|
|
@sub_document_comment = OrgDocumentComment.find(params[:id])
|
|
|
|
|
@document = @sub_document_comment.root
|
|
|
|
|
org = @sub_document_comment.organization
|
|
|
|
|
@sub_document_comment.destroy
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html {redirect_to org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id)}
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
def quote
|
|
|
|
|
@org_comment = OrgDocumentComment.find(params[:id])
|
|
|
|
|
@subject = @org_comment.content
|
|
|
|
|
@subject = "RE: #{@subject}" unless @subject.starts_with?('RE:')
|
|
|
|
|
|
|
|
|
|
@content = "> #{ll(Setting.default_language, :text_user_wrote, User.find(@org_comment.creator_id).realname)}\n> "
|
|
|
|
|
@temp = OrgDocumentComment.new
|
|
|
|
|
#@course_id = params[:course_id]
|
|
|
|
|
@temp.content = "<blockquote>#{ll(Setting.default_language, :text_user_wrote, User.find(@org_comment.creator_id).realname)} <br/>#{@org_comment.content.html_safe}</blockquote>".html_safe
|
|
|
|
|
respond_to do | format|
|
|
|
|
|
format.js
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def reply
|
|
|
|
|
@document = OrgDocumentComment.find(params[:id]).root
|
|
|
|
|
@quote = params[:quote][:quote]
|
|
|
|
|
@org_document = OrgDocumentComment.new(:creator_id => User.current.id, :reply_id => params[:id])
|
|
|
|
|
|
|
|
|
|
# params[:blog_comment][:sticky] = params[:blog_comment][:sticky] || 0
|
|
|
|
|
# params[:blog_comment][:locked] = params[:blog_comment][:locked] || 0
|
|
|
|
|
@org_document.title = params[:org_document_comment][:title]
|
|
|
|
|
@org_document.content = params[:org_document_comment][:content]
|
|
|
|
|
@org_document.content = @quote + @org_document.content
|
|
|
|
|
#@org_document.title = "RE: #{@article.title}" unless params[:blog_comment][:title]
|
|
|
|
|
@document.children << @org_document
|
|
|
|
|
# @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
|
|
|
|
|
# attachments = Attachment.attach_files(@org_document, params[:attachments])
|
|
|
|
|
# render_attachment_warning_if_needed(@org_document)
|
|
|
|
|
#@article.save
|
|
|
|
|
# redirect_to user_blogs_path(:user_id=>params[:user_id])
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html {
|
|
|
|
|
# if params[:course_id] #如果呆了course_id过来了,那么这是要跳到课程大纲去的
|
|
|
|
|
# redirect_to syllabus_course_path(:id=>params[:course_id])
|
|
|
|
|
# else
|
|
|
|
|
redirect_to org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id)
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
format.js
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
def find_subdomain_and_subfield
|
|
|
|
|
@subdomain = SubDomain.find(params[:sub_domain_id])
|
|
|
|
|
@org_subfield = OrgSubfield.find(params[:org_subfield_id])
|
|
|
|
|
@organization = @org_subfield.organization
|
2016-04-29 16:14:08 +08:00
|
|
|
|
rescue ActiveRecord::RecordNotFound
|
|
|
|
|
# source_subdomain_subfield not found
|
|
|
|
|
render_404
|
2016-04-28 17:36:29 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def find_subfield_content
|
|
|
|
|
@subfield_content = @organization.org_subfields.order("priority")
|
|
|
|
|
end
|
2016-05-27 14:44:28 +08:00
|
|
|
|
|
|
|
|
|
def authorize_allowed
|
|
|
|
|
unless User.current.logged?
|
|
|
|
|
redirect_to signin_url
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
end
|
2016-04-28 17:36:29 +08:00
|
|
|
|
end
|