You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

sub_document_comments_controller.rb 9.4 kB

10 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
10 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. class SubDocumentCommentsController < ApplicationController
  2. before_filter :find_subdomain_and_subfield, :only => [:new, :create, :show, :index, :destroy, :edit]
  3. before_filter :find_subfield_content, :only => [:show, :index]
  4. before_filter :authorize_allowed, :only => [:create, :add_reply]
  5. helper :attachments,:organizations
  6. layout 'base_org_custom'
  7. def new
  8. @sub_document_comment = SubDocumentComment.new
  9. end
  10. def create
  11. @sub_document_comment = SubDocumentComment.new(:sub_domain_id => params[:sub_domain_id], :creator_id => User.current.id, :org_subfield_id => params[:org_subfield_id])
  12. @sub_document_comment.title = params[:sub_document_comment][:title]
  13. @sub_document_comment.content = params[:sub_document_comment][:content]
  14. # @sub_document_comment.save_attachments(params[:attachments])
  15. if params[:field_id]
  16. @sub_document_comment.org_subfield_id = params[:field_id].to_i
  17. end
  18. if @sub_document_comment.save
  19. flash.keep[:notice] = l(:notice_successful_create)
  20. redirect_to org_subfield_sub_domain_sub_document_comments_path(:org_subfield_id => @org_subfield.id, :sub_domain_id => @subdomain.id)
  21. # EditorOfDocument.create(:editor_id => User.current.id, :org_document_comment_id => @sub_document_comment.id, :created_at => @sub_document_comment.updated_at)
  22. # if params[:field_id]
  23. # @org_subfield = OrgSubfield.find(params[:field_id])
  24. # if @org_subfield.subfield_subdomain_dir.nil?
  25. # redirect_to organization_path(@organization, :org_subfield_id => params[:field_id])
  26. # else
  27. # redirect_to show_org_subfield_organization_path(:id => @organization.id, :sub_dir_name => @org_subfield.subfield_subdomain_dir.name)
  28. # end
  29. # else
  30. # redirect_to organization_org_document_comments_path(@organization)
  31. # end
  32. else
  33. redirect_to new_org_document_comment_path(:organization_id => @organization.id)
  34. end
  35. end
  36. def show
  37. if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization)
  38. @document = SubDocumentComment.find(params[:id])
  39. respond_to do |format|
  40. format.html {render :layout => @organization.switch_type ? 'base_org_custom' : 'base_org'}
  41. end
  42. else
  43. render_403
  44. end
  45. end
  46. def index
  47. if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization)
  48. @documents = @subdomain.sub_document_comments.where("parent_id is null").order("created_at desc")
  49. @is_remote = true
  50. @limit = 20
  51. @atta_count = @documents.count
  52. @atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1
  53. @offset ||= @atta_pages.offset
  54. @documents = paginateHelper @documents,20
  55. respond_to do |format|
  56. format.html {render :layout => @organization.switch_type ? 'base_org_custom' : 'base_org'}
  57. end
  58. else
  59. render_403
  60. end
  61. end
  62. def update
  63. @sub_document = SubDocumentComment.find(params[:id])
  64. @sub_document.update_attributes(:title => params[:sub_document_comment][:title], :content => params[:sub_document_comment][:content])
  65. @organization = OrgSubfield.find(params[:org_subfield_id]).organization
  66. # Attachment.attach_files(@org_document, params[:attachments])
  67. # @org_document.save_attachments(params[:attachments])
  68. if @sub_document.parent.nil?
  69. act = OrgActivity.where("org_act_type='SubDocumentComment' and org_act_id =?", @sub_document.id).first
  70. act.update_attributes(:updated_at => @sub_document.updated_at)
  71. # EditorOfDocument.create(:editor_id => User.current.id, :org_document_comment_id => @org_document.id, :created_at => Time.now)
  72. end
  73. respond_to do |format|
  74. format.html {
  75. if params[:flag].to_i == 0
  76. # render :action => 'index', :layout => @organization.switch_type ? 'base_sub_domain' : 'base_org'
  77. redirect_to org_subfield_sub_domain_sub_document_comments_path(:org_subfield_id => params[:org_subfield_id], :sub_domain_id => params[:sub_domain_id])
  78. # render :layout => @organization.switch_type ? 'base_sub_domain' : 'base_org'
  79. # redirect_to organization_path(@organization)
  80. else
  81. redirect_to org_subfield_sub_domain_sub_document_comment_path(:org_subfield_id => params[:org_subfield_id], :sub_domain_id => params[:sub_domain_id])
  82. end
  83. }
  84. end
  85. end
  86. def edit
  87. @sub_document = SubDocumentComment.find(params[:id])
  88. @flag = params[:flag]
  89. render :layout => @organization.switch_type ? 'base_sub_domain' : 'base_org'
  90. end
  91. def add_reply
  92. @document = SubDocumentComment.find(params[:id]).root
  93. @subdomain = @document.sub_domain
  94. @org_subfield = @subdomain.org_subfield
  95. @organization = @org_subfield.organization
  96. @act = OrgActivity.find(params[:id])
  97. @comment = SubDocumentComment.new(:sub_domain_id => @document.sub_domain, :creator_id => User.current.id, :reply_id => params[:id])
  98. @comment.content = params[:sub_content]
  99. @document.children << @comment
  100. @document.save
  101. end
  102. def add_reply_in_doc
  103. @document = SubDocumentComment.find(params[:id]).root
  104. @subdomain = @document.sub_domain
  105. @org_subfield = @subdomain.org_subfield
  106. @organization = @org_subfield.organization
  107. @comment = SubDocumentComment.new(:sub_domain_id => @document.sub_domain_id, :creator_id => User.current.id, :reply_id => params[:id])
  108. @comment.content = params[:flag] ? params[:sub_content] : params[:org_comment][:sub_content]
  109. @document.children << @comment
  110. @document.save
  111. respond_to do |format|
  112. 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)}
  113. end
  114. end
  115. def destroy
  116. @sub_document_comment = SubDocumentComment.find(params[:id])
  117. @sub_document_comment.destroy
  118. @sub_domain = @sub_document_comment.sub_domain
  119. @org_subfield = @sub_domain.org_subfield
  120. rescue ActiveRecord::RecordNotFound
  121. respond_to do |format|
  122. # format.html{
  123. # redirect_to org_subfield_sub_domain_sub_document_comments_path(:id => params[:sub_domain_id], :org_subfield_id => params[:org_subfield_id])
  124. # }
  125. format.js
  126. end
  127. end
  128. def delete_reply
  129. @sub_document_comment = OrgDocumentComment.find(params[:id])
  130. @document = @sub_document_comment.root
  131. org = @sub_document_comment.organization
  132. @sub_document_comment.destroy
  133. respond_to do |format|
  134. format.html {redirect_to org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id)}
  135. end
  136. end
  137. def quote
  138. @org_comment = OrgDocumentComment.find(params[:id])
  139. @subject = @org_comment.content
  140. @subject = "RE: #{@subject}" unless @subject.starts_with?('RE:')
  141. @content = "> #{ll(Setting.default_language, :text_user_wrote, User.find(@org_comment.creator_id).realname)}\n> "
  142. @temp = OrgDocumentComment.new
  143. #@course_id = params[:course_id]
  144. @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
  145. respond_to do | format|
  146. format.js
  147. end
  148. end
  149. def reply
  150. @document = OrgDocumentComment.find(params[:id]).root
  151. @quote = params[:quote][:quote]
  152. @org_document = OrgDocumentComment.new(:creator_id => User.current.id, :reply_id => params[:id])
  153. # params[:blog_comment][:sticky] = params[:blog_comment][:sticky] || 0
  154. # params[:blog_comment][:locked] = params[:blog_comment][:locked] || 0
  155. @org_document.title = params[:org_document_comment][:title]
  156. @org_document.content = params[:org_document_comment][:content]
  157. @org_document.content = @quote + @org_document.content
  158. #@org_document.title = "RE: #{@article.title}" unless params[:blog_comment][:title]
  159. @document.children << @org_document
  160. # @user_activity_id = params[:user_activity_id]
  161. # user_activity = UserActivity.where("act_type='BlogComment' and act_id =#{@article.id}").first
  162. # if user_activity
  163. # user_activity.updated_at = Time.now
  164. # user_activity.save
  165. # end
  166. # attachments = Attachment.attach_files(@org_document, params[:attachments])
  167. # render_attachment_warning_if_needed(@org_document)
  168. #@article.save
  169. # redirect_to user_blogs_path(:user_id=>params[:user_id])
  170. respond_to do |format|
  171. format.html {
  172. # if params[:course_id] #如果呆了course_id过来了,那么这是要跳到课程大纲去的
  173. # redirect_to syllabus_course_path(:id=>params[:course_id])
  174. # else
  175. redirect_to org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id)
  176. # end
  177. }
  178. format.js
  179. end
  180. end
  181. private
  182. def find_subdomain_and_subfield
  183. @subdomain = SubDomain.find(params[:sub_domain_id])
  184. @org_subfield = OrgSubfield.find(params[:org_subfield_id])
  185. @organization = @org_subfield.organization
  186. rescue ActiveRecord::RecordNotFound
  187. # source_subdomain_subfield not found
  188. render_404
  189. end
  190. def find_subfield_content
  191. @subfield_content = @organization.org_subfields.order("priority")
  192. end
  193. def authorize_allowed
  194. unless User.current.logged?
  195. redirect_to signin_url
  196. return
  197. end
  198. end
  199. end

软件技术创新是当今国家整体创新能力的重要基础和发展引擎。近年来,大众参与的软件创新与创业活动已经成为网络时代软件开发和应用的新形态,正在快速改变着全球软件创新模式和软件产业格局。 ...