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.

words_controller.rb 7.9 kB

13 years ago
​
​
​
​
​
​
​
​
​
​
13 years ago
​
13 years ago
​
​
​
​
​
​
​
13 years ago
​
​
​
​
13 years ago
​
​
​
13 years ago
13 years ago
13 years ago
13 years ago
​
​
​
​
​
​
​
13 years ago
13 years ago
​
​
13 years ago
​
​
​
​
​
13 years ago
13 years ago
​
​
​
​
​
​
​
​
​
13 years ago
​
​
13 years ago
13 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
13 years ago
​
​
​
13 years ago
​
​
​
​
​
​
​
​
​
13 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
13 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
13 years ago
​
​
​
​
​
​
​
​
​
13 years ago
​
13 years ago
13 years ago
​
​
13 years ago
​
​
​
​
​
13 years ago
​
​
​
​
​
​
13 years ago
​
​
​
​
​
​
​
​
13 years ago
​
​
​
13 years ago
​
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. # encoding: utf-8
  2. #####leave message fq
  3. class WordsController < ApplicationController
  4. before_filter :find_user, :only => [:new, :create, :destroy, :more, :back]
  5. def create
  6. if params[:new_form][:user_message].size>0
  7. unless params[:user_id].nil?
  8. if params[:reference_content]
  9. message = params[:new_form][:user_message] + "\n" + params[:reference_content]
  10. else
  11. message = params[:new_form][:user_message]
  12. end
  13. refer_user_id = params[:new_form][:reference_user_id].to_i
  14. @user.add_jour(User.current, message, refer_user_id)
  15. unless refer_user_id == 0 || refer_user_id == User.current.id
  16. User.find(refer_user_id).add_jour(User.current, message, refer_user_id)
  17. end
  18. @user.count_new_jour
  19. # if a_message.size > 5
  20. # @message = a_message[-5, 5]
  21. # else
  22. # @message = a_message
  23. # end
  24. # @message_count = a_message.count
  25. end
  26. end
  27. @jours = @user.journals_for_messages.where('m_parent_id IS NULL').reverse
  28. @limit = 10
  29. @feedback_count = @jours.count
  30. @feedback_pages = Paginator.new @feedback_count, @limit, params['page']
  31. @offset ||= @feedback_pages.offset
  32. @jour = @jours[@offset, @limit]
  33. respond_to do |format|
  34. # format.html { redirect_to_referer_or {render :text => 'Watcher added.', :layout => true}}
  35. format.js
  36. #format.api { render_api_ok }
  37. end
  38. end
  39. def create_reply
  40. # 这里是创建回复所使用的方法,此方法只针对回复,每一个新的留言并不在此方法管理范围内。
  41. # 由于多个地方用到了留言,而之前的表设计也有jour_type/jour_id这类信息
  42. # 所以在方法 add_reply_adapter 中判断所有调用此方法的来源页面,
  43. # 为了保证兼容以往所有的代码,保证以往的方法可以调用,在返回页面中都做了各式各样的判断。
  44. # 页面保证 render new_respond/journal_reply
  45. # 修改 add_reply_adapter 中可以确保留言创建成功
  46. # 删除留言功能要调用destroy,也记得在destroy.js中修改
  47. # deny api. api useless
  48. parent_id = params[:reference_id]
  49. author_id = User.current.id
  50. reply_user_id = params[:reference_user_id]
  51. reply_id = params[:reference_message_id] # 暂时不实现
  52. content = params[:user_notes]
  53. options = {:user_id => author_id,
  54. :m_parent_id => parent_id,
  55. :m_reply_id => reply_id,
  56. :reply_id => reply_user_id,
  57. :notes => content,
  58. :is_readed => false}
  59. @jfm = add_reply_adapter options
  60. respond_to do |format|
  61. # format.html {
  62. # if @jfm.errors.empty?
  63. # flash.now.notice = l(:label_feedback_success)
  64. # else
  65. # flash.now.errors = l(:label_feedback_fail)
  66. # end
  67. # render 'test/index'
  68. # }
  69. format.js{
  70. @save_succ = true if @jfm.errors.empty?
  71. }
  72. end
  73. end
  74. def destroy
  75. @journal_destroyed = JournalsForMessage.delete_message(params[:object_id])
  76. respond_to do |format|
  77. format.js
  78. #format.api { render_api_ok }
  79. end
  80. end
  81. def new
  82. @jour = JournalsForMessage.find(params[:journal_id]) if params[:journal_id]
  83. if @jour
  84. user = @jour.user
  85. text = @jour.notes
  86. else
  87. user = @user
  88. text = []
  89. end
  90. # Replaces pre blocks with [...]
  91. text = text.to_s.strip.gsub(%r{<pre>((.|\s)*?)</pre>}m, '[...]')
  92. @content = "> #{ll(User.current.language, :text_user_wrote, user)}\n> "
  93. @content << text.gsub(/(\r?\n|\r\n?)/, "\n> ") + "\n\n"
  94. # @content << text.gsub(/(\r?\n|\r\n?)/, "\n> ") + "\n\n"
  95. # @content = "> #{ll(Setting.default_language, :text_user_wrote, user)}\n> "
  96. @id = user.id
  97. rescue ActiveRecord::RecordNotFound
  98. render_404
  99. end
  100. def more
  101. @jours = @user.journals_for_messages.reverse
  102. @limit = 10
  103. @feedback_count = @jours.count
  104. @feedback_pages = Paginator.new @feedback_count, @limit, params['page']
  105. @offset ||= @feedback_pages.offset
  106. @jour = @jours[@offset, @limit]
  107. @state = true
  108. respond_to do |format|
  109. format.html { redirect_to :back }
  110. format.js
  111. #format.api { render_api_ok }
  112. end
  113. end
  114. def back
  115. @jours = @user.journals_for_messages.reverse
  116. @limit = 10
  117. @feedback_count = @jours.count
  118. @feedback_pages = Paginator.new @feedback_count, @limit, params['page']
  119. @offset ||= @feedback_pages.offset
  120. @jour = @jours[@offset, @limit]
  121. @state = false
  122. respond_to do |format|
  123. format.html { redirect_to :back }
  124. format.js
  125. #format.api { render_api_ok }
  126. end
  127. end
  128. def add_project_respond
  129. user = User.current
  130. message = params[:new_form][:project_message]
  131. Project.add_jour(user, message)
  132. redirect_to project_feedback_path('trustie')
  133. # redirect_to signin_path
  134. end
  135. def leave_project_message
  136. user = User.current
  137. message = params[:new_form][:project_message]
  138. feedback = Project.add_new_jour(user, message, params[:id])
  139. if(feedback.errors.empty?)
  140. redirect_to project_feedback_path(params[:id]), notice: l(:label_feedback_success)
  141. else
  142. flash[:error] = feedback.errors.full_messages[0]
  143. redirect_to project_feedback_path(params[:id])
  144. end
  145. end
  146. # add by nwb
  147. def leave_course_message
  148. user = User.current
  149. message = params[:new_form][:course_message]
  150. feedback = Course.add_new_jour(user, message, params[:id])
  151. if(feedback.errors.empty?)
  152. redirect_to course_feedback_path(params[:id]), notice: l(:label_feedback_success)
  153. else
  154. flash[:error] = feedback.errors.full_messages[0]
  155. redirect_to course_feedback_path(params[:id])
  156. end
  157. end
  158. def add_brief_introdution
  159. user = User.current
  160. message = params[:new_form][:user_introduction]
  161. UserExtensions.introduction(user, message)
  162. redirect_to user_path(user.id)
  163. end
  164. private
  165. def find_user
  166. if params[:user_id]
  167. @user = User.find(params[:user_id])
  168. end
  169. rescue
  170. render_404
  171. end
  172. def obj_distinguish_url_origin
  173. #modify by nwb
  174. #添加对课程留言的支持
  175. referer = request.headers["Referer"]
  176. obj_id = referer.match(%r(/([0-9]{1,})(/|$)))[1]
  177. if referer.match(/project/)
  178. obj = Project.find_by_id(obj_id)
  179. elsif referer.match(/course/)
  180. obj = Course.find_by_id(obj_id)
  181. elsif referer.match(/user/)
  182. obj = User.find_by_id(obj_id)
  183. elsif ( referer.match(/bids/) || referer.match(/calls/) )
  184. obj = Bid.find_by_id(obj_id)
  185. elsif ( referer.match(/contests/) || referer.match(/contests/) ) #new added
  186. obj = Contest.find_by_id(obj_id)
  187. elsif ( referer.match(/softapplications/) || referer.match(/softapplications/) ) #new added
  188. obj = Softapplication.find_by_id(obj_id)
  189. elsif ( referer.match(/homework_attach/) || referer.match(/homework_attach/) ) #new added
  190. obj = HomeworkAttach.find_by_id(obj_id)
  191. else
  192. raise 'create reply obj unknow type.'
  193. end
  194. obj
  195. end
  196. def add_reply_adapter options
  197. #modify by nwb
  198. #添加对课程留言的支持
  199. obj = obj_distinguish_url_origin
  200. if obj.kind_of? User
  201. obj.add_jour(nil, nil, nil, options)
  202. elsif obj.kind_of? Project
  203. Project.add_new_jour(nil, nil, obj.id, options)
  204. elsif obj.kind_of? Course
  205. Course.add_new_jour(nil, nil, obj.id, options)
  206. elsif obj.kind_of? Bid
  207. obj.add_jour(nil, nil, nil, options)
  208. elsif obj.kind_of? Contest
  209. obj.add_jour(nil, nil, obj.id, options) #new added
  210. elsif obj.kind_of? Softapplication
  211. obj.add_jour(nil, nil, obj.id, options) #new added
  212. elsif obj.kind_of? HomeworkAttach
  213. obj.add_jour(nil, nil, obj.id, options) #new added
  214. else
  215. raise 'create reply obj unknow type.'
  216. end
  217. end
  218. #######end of message
  219. end

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