social_stream 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. data/.gitignore +1 -0
  2. data/Gemfile +6 -0
  3. data/app/controllers/api_controller.rb +39 -0
  4. data/app/controllers/frontpage_controller.rb +2 -0
  5. data/app/controllers/groups_controller.rb +8 -2
  6. data/app/controllers/likes_controller.rb +9 -29
  7. data/app/controllers/logos_controller.rb +21 -0
  8. data/app/controllers/mailbox/conversation_controller.rb +110 -0
  9. data/app/controllers/mailbox_controller.rb +35 -0
  10. data/app/controllers/posts_controller.rb +2 -0
  11. data/app/controllers/profiles_controller.rb +3 -0
  12. data/app/controllers/ties_controller.rb +10 -0
  13. data/app/controllers/users_controller.rb +5 -5
  14. data/app/helpers/groups_helper.rb +0 -2
  15. data/app/helpers/subjects_helper.rb +11 -0
  16. data/app/helpers/ties_helper.rb +1 -1
  17. data/app/models/activity.rb +24 -1
  18. data/app/models/activity_object.rb +10 -0
  19. data/app/models/activity_object_activity.rb +10 -0
  20. data/app/models/actor.rb +87 -60
  21. data/app/models/group.rb +10 -4
  22. data/app/models/like.rb +34 -0
  23. data/app/models/logo.rb +51 -0
  24. data/app/models/permission.rb +7 -5
  25. data/app/models/profile.rb +24 -8
  26. data/app/models/tie.rb +15 -2
  27. data/app/models/user.rb +2 -2
  28. data/app/views/activities/_activities.html.erb +1 -1
  29. data/app/views/activities/_new.html.erb +12 -7
  30. data/app/views/api/activity_atom_feed.atom.builder +40 -0
  31. data/app/views/comments/_new.html.erb +1 -1
  32. data/app/views/devise/passwords/edit.html.erb +21 -0
  33. data/app/views/devise/passwords/new.html.erb +16 -0
  34. data/app/views/devise/registrations/new.html.erb +35 -19
  35. data/app/views/devise/sessions/new.html.erb +30 -0
  36. data/app/views/frontpage/_header.html.erb +18 -20
  37. data/app/views/frontpage/_search.html.erb +13 -0
  38. data/app/views/frontpage/_sponsor.html.erb +12 -13
  39. data/app/views/frontpage/index.html.erb +88 -80
  40. data/app/views/groups/_group.html.erb +2 -6
  41. data/app/views/groups/_index.html.erb +22 -25
  42. data/app/views/groups/_logo.html.erb +1 -1
  43. data/app/views/groups/_new.html.erb +56 -39
  44. data/app/views/groups/_profile.html.erb +142 -0
  45. data/app/views/groups/_sidebar_index.html.erb +73 -0
  46. data/app/views/groups/{_middle_show.html.erb → _sidebar_show.html.erb} +2 -2
  47. data/app/views/groups/_tabs.html.erb +37 -31
  48. data/app/views/groups/_toolbar_show.html.erb +12 -0
  49. data/app/views/groups/edit.html.erb +136 -0
  50. data/app/views/groups/index.html.erb +47 -46
  51. data/app/views/groups/new.html.erb +2 -0
  52. data/app/views/groups/show.html.erb +9 -4
  53. data/app/views/groups/update.js.erb +39 -0
  54. data/app/views/home/_groups.html.erb +4 -5
  55. data/app/views/{users/_middle_index.html.erb → home/_sidebar.html.erb} +0 -2
  56. data/app/views/home/index.html.erb +3 -5
  57. data/app/views/layouts/_footer.html.erb +4 -0
  58. data/app/views/layouts/_header.erb +29 -37
  59. data/app/views/layouts/_representation.html.erb +2 -2
  60. data/app/views/layouts/application.html.erb +47 -74
  61. data/app/views/layouts/frontpage.html.erb +27 -48
  62. data/app/views/layouts/test.html +44 -0
  63. data/app/views/likes/create.js.erb +1 -1
  64. data/app/views/likes/destroy.js.erb +1 -1
  65. data/app/views/logos/_form.html.erb +33 -0
  66. data/app/views/logos/_precrop.html.erb +48 -0
  67. data/app/views/logos/edit.html.erb +6 -0
  68. data/app/views/logos/index.html.erb +27 -0
  69. data/app/views/logos/new.html.erb +20 -0
  70. data/app/views/logos/show.html.erb +5 -0
  71. data/app/views/mailbox/_conversation.html.erb +23 -0
  72. data/app/views/mailbox/_conversations.html.erb +9 -0
  73. data/app/views/mailbox/_index.html.erb +16 -0
  74. data/app/views/{messages → mailbox}/_location.html.erb +0 -0
  75. data/app/views/mailbox/_menu_options.html.erb +19 -0
  76. data/app/views/mailbox/_show.html.erb +15 -0
  77. data/app/views/mailbox/conversation/_conversation.html.erb +40 -0
  78. data/app/views/mailbox/conversation/_form.html.erb +54 -0
  79. data/app/views/mailbox/conversation/_location.html.erb +3 -0
  80. data/app/views/mailbox/conversation/_new.html.erb +19 -0
  81. data/app/views/mailbox/conversation/_show.html.erb +27 -0
  82. data/app/views/mailbox/conversation/edit.html.erb +6 -0
  83. data/app/views/mailbox/conversation/new.html.erb +10 -0
  84. data/app/views/mailbox/conversation/new.js.erb +1 -0
  85. data/app/views/mailbox/conversation/show.html.erb +1 -0
  86. data/app/views/{messages → mailbox}/edit.html.erb +0 -0
  87. data/app/views/mailbox/index.html.erb +10 -0
  88. data/app/views/{messages → mailbox}/index.js.erb +0 -0
  89. data/app/views/mailbox/new.html.erb +14 -0
  90. data/app/views/mailbox/show.html.erb +11 -0
  91. data/app/views/mailbox/show.js.erb +1 -0
  92. data/app/views/menu/_group.html.erb +15 -0
  93. data/{lib/generators/social_stream/templates/public/stylesheets/users.css → app/views/menu/_home_user.html.erb} +0 -0
  94. data/app/views/menu/_options.html.erb +11 -0
  95. data/app/views/menu/_services.html.erb +11 -0
  96. data/app/views/menu/_tiesGroup.html.erb +14 -0
  97. data/app/views/menu/_tiesUser.html.erb +11 -0
  98. data/app/views/menu/_user.html.erb +15 -0
  99. data/app/views/profiles/show.html.erb +1 -0
  100. data/app/views/subjects/_contacts.html.erb +8 -9
  101. data/app/views/subjects/_menu_options.html.erb +14 -0
  102. data/app/views/subjects/_toolbar.html.erb +15 -0
  103. data/app/views/ties/_new.html.erb +3 -2
  104. data/app/views/ties/_pendings.html.erb +7 -12
  105. data/app/views/ties/_suggestions.html.erb +12 -12
  106. data/app/views/ties/_tie.html.erb +9 -7
  107. data/app/views/ties/new.js.erb +1 -2
  108. data/app/views/users/_groups.html.erb +4 -3
  109. data/app/views/users/_index.html.erb +24 -22
  110. data/app/views/users/_logo.html.erb +1 -1
  111. data/app/views/users/_profile.html.erb +167 -164
  112. data/app/views/users/_sidebar_index.html.erb +6 -0
  113. data/app/views/users/{_middle_show.html.erb → _sidebar_show.html.erb} +0 -0
  114. data/app/views/users/_toolbar_show.html.erb +17 -0
  115. data/app/views/users/edit.html.erb +193 -165
  116. data/app/views/users/index.html.erb +34 -47
  117. data/{spec/dummy/public/stylesheets/.gitkeep → app/views/users/info.html.erb} +0 -0
  118. data/app/views/users/show.html.erb +4 -4
  119. data/app/views/users/show.xml.builder +28 -0
  120. data/app/views/users/update.js.erb +3 -1
  121. data/config/locales/en.yml +88 -9
  122. data/config/routes.rb +30 -14
  123. data/lib/generators/social_stream/install_generator.rb +8 -2
  124. data/lib/generators/social_stream/templates/migration.rb +75 -81
  125. data/lib/generators/social_stream/templates/public/images/{frontpage/facebook.png → btn/1-facebook.png} +0 -0
  126. data/lib/generators/social_stream/templates/public/images/btn/edit.png +0 -0
  127. data/lib/generators/social_stream/templates/public/images/btn/facebook.png +0 -0
  128. data/lib/generators/social_stream/templates/public/images/btn/linkedin.png +0 -0
  129. data/lib/generators/social_stream/templates/public/images/btn/twitter-follow-icon.png +0 -0
  130. data/lib/generators/social_stream/templates/public/images/btn/twitter.png +0 -0
  131. data/lib/generators/social_stream/templates/public/images/frontpage/collaborate.png +0 -0
  132. data/lib/generators/social_stream/templates/public/images/frontpage/meet.png +0 -0
  133. data/lib/generators/social_stream/templates/public/images/frontpage/share.png +0 -0
  134. data/lib/generators/social_stream/templates/public/images/icons/favicon.ico +0 -0
  135. data/lib/generators/social_stream/templates/public/images/logo.png +0 -0
  136. data/lib/generators/social_stream/templates/public/images/w3c_css.png +0 -0
  137. data/lib/generators/social_stream/templates/public/images/w3c_xhtml.png +0 -0
  138. data/lib/generators/social_stream/templates/public/javascripts/jquery-ui-1.8.4.custom.min.js +3 -3
  139. data/lib/generators/social_stream/templates/public/javascripts/jquery-ui-personalized-1.5.2.packed.js +1 -0
  140. data/lib/generators/social_stream/templates/public/javascripts/jquery-ui.min.js +3 -3
  141. data/lib/generators/social_stream/templates/public/javascripts/jquery.Jcrop.min.js +163 -0
  142. data/lib/generators/social_stream/templates/public/javascripts/jquery.fcbkcomplete.min.js +76 -76
  143. data/lib/generators/social_stream/templates/public/javascripts/jquery.min.js +156 -5
  144. data/lib/generators/social_stream/templates/public/javascripts/main.js +9 -0
  145. data/lib/generators/social_stream/templates/public/javascripts/menu-collapsed.js +42 -0
  146. data/lib/generators/social_stream/templates/public/javascripts/menu.js +1 -1
  147. data/lib/generators/social_stream/templates/public/javascripts/rails.js +30 -29
  148. data/lib/generators/social_stream/templates/public/javascripts/superfish.js +121 -0
  149. data/lib/generators/social_stream/templates/public/stylesheets/default/activities.css +72 -0
  150. data/lib/generators/social_stream/templates/public/stylesheets/default/base.css +150 -0
  151. data/lib/generators/social_stream/templates/public/stylesheets/default/carousel.css +23 -0
  152. data/lib/generators/social_stream/templates/public/stylesheets/{fcbkComplete.css → default/fcbkComplete.css} +2 -2
  153. data/lib/generators/social_stream/templates/public/stylesheets/default/footer.css +25 -0
  154. data/lib/generators/social_stream/templates/public/stylesheets/default/frontpage.css +54 -0
  155. data/lib/generators/social_stream/templates/public/stylesheets/default/header.css +44 -0
  156. data/lib/generators/social_stream/templates/public/stylesheets/default/home.css +44 -0
  157. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  158. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-bg_flat_75_ffffff_40x100.png +0 -0
  159. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  160. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-bg_glass_65_ffffff_1x400.png +0 -0
  161. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-bg_glass_75_dadada_1x400.png +0 -0
  162. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  163. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  164. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  165. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-icons_222222_256x240.png +0 -0
  166. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-icons_2e83ff_256x240.png +0 -0
  167. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-icons_454545_256x240.png +0 -0
  168. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-icons_888888_256x240.png +0 -0
  169. data/lib/generators/social_stream/templates/public/stylesheets/{images → default/images}/ui-icons_cd0a0a_256x240.png +0 -0
  170. data/lib/generators/social_stream/templates/public/stylesheets/default/jqcloud.css +15 -0
  171. data/lib/generators/social_stream/templates/public/stylesheets/{jquery-ui.css → default/jquery-ui.css} +0 -0
  172. data/lib/generators/social_stream/templates/public/stylesheets/default/jquery.Jcrop.css +35 -0
  173. data/lib/generators/social_stream/templates/public/stylesheets/default/menu.css +33 -0
  174. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  175. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  176. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  177. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  178. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  179. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  180. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  181. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  182. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-icons_222222_256x240.png +0 -0
  183. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-icons_2e83ff_256x240.png +0 -0
  184. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-icons_454545_256x240.png +0 -0
  185. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-icons_888888_256x240.png +0 -0
  186. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/images/ui-icons_cd0a0a_256x240.png +0 -0
  187. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/jquery-ui-1.7.3.custom.css +0 -0
  188. data/lib/generators/social_stream/templates/public/stylesheets/{smoothness → default/smoothness}/jquery-ui-1.8.4.custom.css +0 -0
  189. data/lib/social_stream.rb +11 -2
  190. data/lib/social_stream/ability.rb +21 -3
  191. data/lib/social_stream/models/object.rb +5 -3
  192. data/lib/social_stream/models/subject.rb +50 -31
  193. data/lib/social_stream/rails.rb +5 -0
  194. data/lib/social_stream/test_helpers.rb +11 -0
  195. data/lib/social_stream/test_helpers/controllers.rb +64 -0
  196. data/lib/social_stream/version.rb +1 -1
  197. data/lib/tasks/db/populate.rake +110 -25
  198. data/social_stream.gemspec +7 -1
  199. data/spec/controllers/contacts_controller_spec.rb +1 -1
  200. data/spec/controllers/groups_controller_spec.rb +8 -0
  201. data/spec/controllers/home_controller_spec.rb +15 -0
  202. data/spec/controllers/likes_controller_spec.rb +29 -0
  203. data/spec/controllers/posts_controller_spec.rb +41 -0
  204. data/spec/controllers/profiles_controller_spec.rb +46 -0
  205. data/spec/controllers/users_controller_spec.rb +2 -2
  206. data/spec/dummy/.gitignore +4 -0
  207. data/spec/dummy/config/database.yml +8 -0
  208. data/spec/dummy/config/environments/test_pg.rb +35 -0
  209. data/spec/dummy/config/routes.rb +2 -0
  210. data/spec/factories/group.rb +1 -1
  211. data/spec/integration/navigation_spec.rb +1 -1
  212. data/spec/models/actor_spec.rb +4 -4
  213. data/spec/models/user_spec.rb +2 -2
  214. data/spec/spec_helper.rb +1 -1
  215. data/spec/support/db.rb +7 -0
  216. metadata +198 -116
  217. data/app/controllers/messages_controller.rb +0 -3
  218. data/app/models/message.rb +0 -2
  219. data/app/views/groups/_middle_index.html.erb +0 -74
  220. data/app/views/groups/_right_index.html.erb +0 -19
  221. data/app/views/groups/_right_show.html.erb +0 -8
  222. data/app/views/home/_middle.html.erb +0 -4
  223. data/app/views/home/_options.html.erb +0 -8
  224. data/app/views/home/_right.html.erb +0 -17
  225. data/app/views/messages/_form.html.erb +0 -24
  226. data/app/views/messages/_index.html.erb +0 -24
  227. data/app/views/messages/_message.html.erb +0 -17
  228. data/app/views/messages/_messages.html.erb +0 -2
  229. data/app/views/messages/index.html.erb +0 -1
  230. data/app/views/messages/new.html.erb +0 -14
  231. data/app/views/messages/show.html.erb +0 -21
  232. data/app/views/users/_menu.html.erb +0 -7
  233. data/app/views/users/_options.html.erb +0 -5
  234. data/app/views/users/_right_index.html.erb +0 -19
  235. data/app/views/users/_right_show.html.erb +0 -14
  236. data/lib/generators/social_stream/templates/public/images/btn/btn_share.png +0 -0
  237. data/lib/generators/social_stream/templates/public/images/favicon.ico +0 -0
  238. data/lib/generators/social_stream/templates/public/images/frontpage/collaborate.gif +0 -0
  239. data/lib/generators/social_stream/templates/public/images/frontpage/meet.gif +0 -0
  240. data/lib/generators/social_stream/templates/public/images/frontpage/share.gif +0 -0
  241. data/lib/generators/social_stream/templates/public/javascripts/hoverIntent.js +0 -84
  242. data/lib/generators/social_stream/templates/public/stylesheets/activities.css +0 -235
  243. data/lib/generators/social_stream/templates/public/stylesheets/base.css +0 -68
  244. data/lib/generators/social_stream/templates/public/stylesheets/boxy.css +0 -49
  245. data/lib/generators/social_stream/templates/public/stylesheets/browse.css +0 -162
  246. data/lib/generators/social_stream/templates/public/stylesheets/carousel.css +0 -57
  247. data/lib/generators/social_stream/templates/public/stylesheets/edit_user.css +0 -104
  248. data/lib/generators/social_stream/templates/public/stylesheets/frontpage.css +0 -708
  249. data/lib/generators/social_stream/templates/public/stylesheets/header.css +0 -116
  250. data/lib/generators/social_stream/templates/public/stylesheets/home.css +0 -121
  251. data/lib/generators/social_stream/templates/public/stylesheets/index.css +0 -625
  252. data/lib/generators/social_stream/templates/public/stylesheets/jqcloud.css +0 -62
  253. data/lib/generators/social_stream/templates/public/stylesheets/menu.css +0 -83
  254. data/lib/generators/social_stream/templates/public/stylesheets/message.css +0 -46
  255. data/lib/generators/social_stream/templates/public/stylesheets/middle.css +0 -113
  256. data/lib/generators/social_stream/templates/public/stylesheets/right.css +0 -58
  257. data/lib/generators/social_stream/templates/public/stylesheets/social_stream.css +0 -78
  258. data/lib/generators/social_stream/templates/public/stylesheets/ui.dropdownchecklist.css +0 -21
  259. data/spec/dummy/db/.gitignore +0 -2
  260. data/spec/dummy/log/.gitignore +0 -1
  261. data/spec/dummy/public/javascripts/application.js +0 -2
  262. data/spec/dummy/public/javascripts/controls.js +0 -965
  263. data/spec/dummy/public/javascripts/dragdrop.js +0 -974
  264. data/spec/dummy/public/javascripts/effects.js +0 -1123
  265. data/spec/dummy/public/javascripts/prototype.js +0 -6001
  266. data/spec/dummy/public/javascripts/rails.js +0 -175
data/.gitignore CHANGED
@@ -8,3 +8,4 @@ nbproject
8
8
  .project
9
9
  .DS_Store
10
10
  .yardoc/*
11
+ lib/generators/social_stream/templates/public/images/tmp/
data/Gemfile CHANGED
@@ -1,4 +1,10 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  gemspec
4
+ #Uncomment the following two lines if you are planing to
5
+ #use a local code of mailboxer gem
6
+ #@dependencies.delete_if {|d| d.name == 'mailboxer' }
7
+ #gem 'mailboxer', :path => '../mailboxer'
8
+
9
+
4
10
 
@@ -0,0 +1,39 @@
1
+ class ApiController < ApplicationController
2
+
3
+ before_filter :authenticate_user!, :only => [:create_key, :users, :activity_atom_feed]
4
+
5
+ def create_key
6
+ current_user.reset_authentication_token!
7
+ redirect_to :controller => :users, :action => :show, :id => current_user.to_param, :auth_token => params[:auth_token]
8
+ end
9
+
10
+ def users
11
+ if !params[:id]
12
+ params[:id]=current_user.to_param
13
+ end
14
+
15
+ if !params[:format]
16
+ params[:format]='xml'
17
+ end
18
+
19
+ redirect_to :controller => :users, :action => :show, :format => params[:format], :id => params[:id], :auth_token => params[:auth_token]
20
+ end
21
+
22
+ def activity_atom_feed
23
+ if !params[:page]
24
+ params[:page] = 1
25
+ end
26
+
27
+ @user = current_user
28
+ if params[:id] != nil
29
+ @user = User.find_by_slug!(params[:id])
30
+ end
31
+
32
+ @page = params[:page]
33
+ @activities = current_user.home_wall.paginate(:page => params[:page], :per_page => 10)
34
+ respond_to do |format|
35
+ format.atom
36
+ end
37
+ end
38
+
39
+ end
@@ -13,4 +13,6 @@ class FrontpageController < ApplicationController
13
13
  def redirect_user_to_home
14
14
  redirect_to(home_path) if user_signed_in?
15
15
  end
16
+
16
17
  end
18
+
@@ -1,4 +1,7 @@
1
1
  class GroupsController < InheritedResources::Base
2
+
3
+ respond_to :html, :xml, :js
4
+
2
5
  def index
3
6
  if params[:search]
4
7
  @groups = Group.search("%"+params[:search]+"%").paginate(:per_page => 10, :page => params[:page])
@@ -10,11 +13,14 @@ class GroupsController < InheritedResources::Base
10
13
  end
11
14
  end
12
15
  end
16
+
17
+
18
+
13
19
  protected
14
20
 
15
- # Overwrite resource method to support permalink
21
+ # Overwrite resource method to support slug
16
22
  # See InheritedResources::BaseHelpers#resource
17
23
  def resource
18
- @group ||= end_of_association_chain.find_by_permalink!(params[:id])
24
+ @group ||= end_of_association_chain.find_by_slug!(params[:id])
19
25
  end
20
26
  end
@@ -1,12 +1,8 @@
1
1
  class LikesController < ApplicationController
2
- # Ensure the suitable tie exists
3
- before_filter :tie!, :only => :create
4
-
5
2
  # POST /activities/1/like.js
6
3
  def create
7
- @like = activity!.children.new :verb => "like",
8
- :_tie => tie!
9
-
4
+ @like = Like.new(current_subject, params[:activity_id])
5
+
10
6
  respond_to do |format|
11
7
  if @like.save
12
8
  format.js
@@ -16,32 +12,16 @@ class LikesController < ApplicationController
16
12
  end
17
13
  end
18
14
 
15
+ # DELETE /activities/1/like.js
19
16
  def destroy
20
- if (@like = activity!.liked_by(current_subject).first)
21
- @like.destroy
22
- end
17
+ @like = Like.find!(current_subject, params[:activity_id])
23
18
 
24
19
  respond_to do |format|
25
- format.js
20
+ if @like.destroy
21
+ format.js
22
+ else
23
+ format.js
24
+ end
26
25
  end
27
26
  end
28
-
29
- private
30
-
31
- def activity
32
- @activity ||= Activity.find(params[:activity_id])
33
- end
34
-
35
- def activity!
36
- activity || raise(ActiveRecord::RecordNotFound)
37
- end
38
-
39
- def tie
40
- @tie ||= current_subject.sent_ties(:receiver => activity!.receiver,
41
- :relation => activity!.relation).first
42
- end
43
-
44
- def tie!
45
- tie || raise(ActiveRecord::RecordNotFound)
46
- end
47
27
  end
@@ -0,0 +1,21 @@
1
+ class LogosController < InheritedResources::Base
2
+ =begin
3
+ def new
4
+ # if params[:logo_logo].present?
5
+ # render :template => "logos/_precrop", :layout => false
6
+ # end
7
+ debugger
8
+ if params[:logo_logo]
9
+
10
+ end
11
+ respond_to do |format|
12
+ format.html #new.html.erb
13
+ end
14
+
15
+ end
16
+ =end
17
+
18
+
19
+
20
+
21
+ end
@@ -0,0 +1,110 @@
1
+ class Mailbox::ConversationController < ApplicationController
2
+
3
+ before_filter :get_mailbox
4
+
5
+
6
+ def show
7
+ @actor = Actor.normalize(current_subject)
8
+ @conversation = MailboxerConversation.find_by_id(params[:id])
9
+ if @conversation.nil? or !@conversation.is_participant?(@actor)
10
+ redirect_to mailbox_index_path
11
+ return
12
+ end
13
+ @mails = @conversation.mails(@actor)
14
+ # messages = Array.new
15
+ # @mails.each do |mail|
16
+ # messages << mail.message
17
+ # end
18
+ # @messages = messages.uniq
19
+ end
20
+
21
+ def new
22
+ end
23
+
24
+ def edit
25
+ end
26
+
27
+ def create
28
+ @conversation = MailboxerConversation.new
29
+ if params[:subject].blank?
30
+ @conversation.errors.add("subject", "can't be empty")
31
+ end
32
+ if params[:body].blank?
33
+ @conversation.errors.add("body", "can't be empty")
34
+ end
35
+ if params[:_recipients].nil? or params[:_recipients]==[]
36
+ @conversation.errors.add("recipients", "can't be empty")
37
+ end
38
+ if @conversation.errors.any?
39
+ render :action => :new
40
+ return
41
+ end
42
+ @actor = current_subject
43
+ @recipients = Array.new
44
+ params[:_recipients].each do |recp_id|
45
+ recp = Actor.find_by_id(recp_id)
46
+ next if recp.nil?
47
+ @recipients << recp
48
+ end
49
+
50
+ if (mail = @actor.send_message(@recipients, params[:body], params[:subject]))
51
+ @conversation = mail.conversation
52
+ redirect_to mailbox_conversation_path(@conversation)
53
+ else
54
+ render :action => :new
55
+ end
56
+
57
+ end
58
+
59
+ def update
60
+ @actor = Actor.normalize(current_subject)
61
+ @conversation = MailboxerConversation.find_by_id(params[:id])
62
+ if @conversation.nil? or !@conversation.is_participant?(@actor)
63
+ redirect_to mailbox_index_path
64
+ return
65
+ end
66
+
67
+ if params[:untrash].present?
68
+ @conversation.untrash(@actor)
69
+ end
70
+
71
+ if params[:reply_all].present?
72
+ if params[:body].present?
73
+ last_mail = @conversation.mails(@actor).last
74
+ @actor.reply_to_all(last_mail, params[:body])
75
+ end
76
+ end
77
+
78
+ @mails = @conversation.mails(@actor)
79
+ render :action => :show
80
+ end
81
+
82
+ def destroy
83
+ @actor = Actor.normalize(current_subject)
84
+ @conversation = MailboxerConversation.find_by_id(params[:id])
85
+ if @conversation.nil? or !@conversation.is_participant?(@actor)
86
+ redirect_to mailbox_index_path
87
+ return
88
+ end
89
+
90
+ @conversation.move_to_trash(@actor)
91
+
92
+ if params[:location].present?
93
+ case params[:location]
94
+ when 'conversation'
95
+ redirect_to mailbox_path(:id => :trash)
96
+ else
97
+ redirect_to mailbox_path(:id => params[:location])
98
+ end
99
+
100
+ return
101
+ end
102
+ redirect_to mailbox_index_path
103
+ end
104
+
105
+ private
106
+
107
+ def get_mailbox
108
+ @mailbox = current_subject.mailbox
109
+ end
110
+ end
@@ -0,0 +1,35 @@
1
+ class MailboxController < ApplicationController
2
+
3
+ before_filter :get_mailbox
4
+
5
+ def index
6
+ end
7
+
8
+ def new
9
+ end
10
+
11
+ def create
12
+ end
13
+
14
+ def show
15
+ if params[:id].blank? or !["inbox","sentbox","trash"].include?params[:id]
16
+ redirect_to :action => :index
17
+ return
18
+ end
19
+
20
+ if params[:id].eql?"inbox"
21
+ @conversations = @mailbox.inbox.paginate(:per_page => 8, :page => params[:page])
22
+ elsif params[:id].eql?"sentbox"
23
+ @conversations = @mailbox.sentbox.paginate(:per_page => 8, :page => params[:page])
24
+ else
25
+ @conversations = @mailbox.trash.paginate(:per_page => 8, :page => params[:page])
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ def get_mailbox
32
+ @mailbox = current_subject.mailbox
33
+ end
34
+
35
+ end
@@ -1,6 +1,8 @@
1
1
  class PostsController < InheritedResources::Base
2
2
  respond_to :html, :xml, :js
3
3
 
4
+ load_and_authorize_resource
5
+
4
6
  def destroy
5
7
  @post_activity = resource.post_activity
6
8
 
@@ -0,0 +1,3 @@
1
+ class ProfilesController < InheritedResources::Base
2
+ belongs_to *(SocialStream.subjects + [{ :polymorphic => true, :finder => :find_by_slug!, :singleton => true }])
3
+ end
@@ -7,4 +7,14 @@ class TiesController < InheritedResources::Base
7
7
  @tie = current_subject.suggestion
8
8
  render :layout => false
9
9
  end
10
+
11
+ def create
12
+ super do |format|
13
+ format.html { redirect_to resource.receiver_subject }
14
+ end
15
+ end
16
+
17
+
18
+
19
+
10
20
  end
@@ -12,16 +12,16 @@ class UsersController < ApplicationController
12
12
  end
13
13
 
14
14
  def show
15
- @user = User.find_by_permalink!(params[:id])
16
-
15
+ @user = User.find_by_slug!(params[:id])
16
+
17
17
  respond_to do |format|
18
18
  format.html # show.html.erb
19
- format.xml { render :xml => @user }
19
+ format.xml # { render :xml => @user }
20
20
  end
21
21
  end
22
22
 
23
23
  def edit
24
- @user = User.find_by_permalink!(params[:id])
24
+ @user = User.find_by_slug!(params[:id])
25
25
 
26
26
  respond_to do |format|
27
27
  format.html # edit.html.erb
@@ -31,7 +31,7 @@ class UsersController < ApplicationController
31
31
 
32
32
  def update
33
33
 
34
- @user = User.find_by_permalink!(params[:id])
34
+ @user = User.find_by_slug!(params[:id])
35
35
 
36
36
  respond_to do |format|
37
37
  if @user.update_attributes(params[:user])
@@ -1,5 +1,3 @@
1
1
  module GroupsHelper
2
2
 
3
-
4
-
5
3
  end
@@ -0,0 +1,11 @@
1
+ module SubjectsHelper
2
+ def toolbar_menu(option = nil, &block)
3
+ if option
4
+ content_for("menu_#{ option }".to_sym, &block)
5
+ end
6
+
7
+ content_for(:toolbar) do
8
+ render :partial => 'subjects/toolbar'
9
+ end
10
+ end
11
+ end
@@ -23,7 +23,7 @@ module TiesHelper
23
23
  "tie[receiver_id]" => tie.receiver.id),
24
24
  :title => t("contact.new.title",
25
25
  :name => tie.receiver_subject.name),
26
- :remote => true
26
+ :remote => true
27
27
  end
28
28
 
29
29
  def link_follow_state
@@ -26,6 +26,8 @@ class Activity < ActiveRecord::Base
26
26
  has_many :activity_objects,
27
27
  :through => :activity_object_activities
28
28
 
29
+ after_create :like_direct_object
30
+
29
31
  scope :home_wall, lambda { |ties|
30
32
  select("DISTINCT activities.*").
31
33
  roots.
@@ -104,9 +106,21 @@ class Activity < ActiveRecord::Base
104
106
  liked_by(user).present?
105
107
  end
106
108
 
109
+ # Build a new children activity where subject like this
110
+ def new_like(subject)
111
+ children.new :verb => "like",
112
+ :_tie => subject.sent_ties(:receiver => receiver,
113
+ :relation => relation).first
114
+ end
115
+
116
+ # The first activity object of this activity
117
+ def direct_activity_object
118
+ activity_objects.first
119
+ end
120
+
107
121
  # The first object of this activity
108
122
  def direct_object
109
- activity_objects.first.try(:object)
123
+ direct_activity_object.try(:object)
110
124
  end
111
125
 
112
126
  private
@@ -124,4 +138,13 @@ class Activity < ActiveRecord::Base
124
138
  end
125
139
  end
126
140
  end
141
+
142
+ # Link like activities with parent direct object
143
+ def like_direct_object
144
+ return unless verb == "like"
145
+
146
+ return if parent.direct_object.blank?
147
+
148
+ activity_objects << parent.direct_activity_object
149
+ end
127
150
  end