/app/controllers/cats_controller.rb

https://github.com/goddamnyouryan/hearsay · Ruby · 148 lines · 128 code · 20 blank · 0 comment · 17 complexity · 96d2540b07a5b33cba5c776c6853da16 MD5 · raw file

  1. class CatsController < ApplicationController
  2. after_filter :mark_unread_messages_as_read, :only => :show
  3. after_filter :mark_unread_comments_as_read, :only => :fuck
  4. def create
  5. cat = current_user.cats.create(params[:cat])
  6. if cat.private == "1"
  7. cat.make_public! == "public"
  8. end
  9. cat.save!
  10. event = cat.user.events.create
  11. event.kind = "cat"
  12. event.data = { "message" => "#{cat.message}" }
  13. event.save!
  14. cat.event_id = event.id
  15. cat.save!
  16. @user_stream = current_user.stream.paginate :page => params[:page], :order => "created_at desc"
  17. render :update do |page|
  18. if cat.private == "1"
  19. page.insert_html :top, "stream", :partial => "home/new_cat_event", :locals => { :cat => cat }
  20. else
  21. page.replace_html "stream_toggle", :partial => "home/public_toggle"
  22. page.replace_html "stream", :partial => "home/stream"
  23. page.select('#more_stream_fuck').each do |element|
  24. element.replace "#{render :partial => "home/friends_pagination" }"
  25. end
  26. end
  27. page["cat_message"].clear
  28. end
  29. end
  30. def destroy
  31. @cat = Cat.find(params[:id])
  32. @event = Event.find(@cat.event_id)
  33. @login = @cat.user.login
  34. @cat.destroy
  35. @event.destroy
  36. redirect_to :controller => 'users', :action => 'show', :login => @login
  37. end
  38. def show
  39. @cat = Cat.find(params[:id])
  40. cat = Cat.find(params[:id])
  41. @user = User.find(cat[:user_id])
  42. answers = cat.answers
  43. @user.images.highest_ranked.each do |i|
  44. @image = i.photo.url(:cat)
  45. end
  46. @public_alt = "Public Categories are visible to everyone."
  47. @private_alt = "Private Categories are only visible to your friends."
  48. if cat.state =="private"
  49. unless @user.friends.include?(current_user) || @user == current_user
  50. redirect_to :controller => 'users', :action => 'show', :login => @user.login
  51. flash[:notice] = "This category is private. Add #{@user.login} as a friend to view."
  52. end
  53. end
  54. end
  55. def fuck
  56. @answer = Answer.find(params[:answer])
  57. render :update do |page|
  58. page.insert_html :bottom, "comment_list_#{@answer.id}", :partial => 'comments/comment', :collection => @answer.comments
  59. page.replace_html "comments_view_toggle_#{@answer.id}", :partial => 'hide', :locals => { :answer => @answer }
  60. page.insert_html :bottom, "new_comment_form_#{@answer.id}", :partial => 'comments/new_comment_form', :locals => { :answer => @answer }
  61. end
  62. @user = @answer.cat.user
  63. end
  64. def explode
  65. @answer = Answer.find(params[:answer])
  66. render :update do |page|
  67. page.replace_html "comment_list_#{@answer.id}", "&nbsp;"
  68. page.replace_html "new_comment_form_#{@answer.id}", ""
  69. page.replace_html "comments_view_toggle_#{@answer.id}", :partial => 'reveal', :locals => { :answer => @answer }
  70. end
  71. end
  72. def make_public
  73. @cat = Cat.find(params[:cat])
  74. @cat.make_public!
  75. @public_alt = "Public Categories are visible to everyone."
  76. @private_alt = "Private Categories are only visible to your friends."
  77. render :update do |page|
  78. page.replace_html "cat_toggle", :partial => 'make_private'
  79. end
  80. end
  81. def make_private
  82. @cat = Cat.find(params[:cat])
  83. @cat.make_private!
  84. @public_alt = "Public Categories are visible to everyone."
  85. @private_alt = "Private Categories are only visible to your friends."
  86. render :update do |page|
  87. page.replace_html "cat_toggle", :partial => 'make_public'
  88. end
  89. end
  90. def suggestions
  91. @suggestions = ["What would you say is my most annoying quality?", "How did we meet?", "What is my best feature, physically?", "What am I doing with my life?", "What does everyone else know about me that I don't know about myself?", "What's my favorite activity?", "What celebrity looks most like me?", "What's the most embarassing thing I've ever done?", "What do I need to do to better my life?"]
  92. end
  93. def create_suggestions
  94. @user = current_user
  95. params[:suggestion_ids].each do |c|
  96. cat = current_user.cats.create
  97. cat.message = c
  98. cat.save!
  99. event = cat.user.events.create
  100. event.kind = "cat"
  101. event.data = { "message" => "#{c}" }
  102. event.save!
  103. cat.event_id = event.id
  104. cat.save!
  105. end
  106. flash[:notice] = "Categories created"
  107. redirect_to :controller => 'users', :action => 'show', :login => current_user.login
  108. end
  109. private
  110. def mark_unread_messages_as_read
  111. if @user == current_user
  112. @cat.answers.each do |state|
  113. if state.state == "unread"
  114. state.view!
  115. end
  116. end
  117. end
  118. end
  119. def mark_unread_comments_as_read
  120. if @answer.user == current_user
  121. @answer.comments.each do |c|
  122. if c.state == "unread"
  123. c.view!
  124. end
  125. end
  126. end
  127. end
  128. end