droom 0.4.3 → 0.5.3

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 (396) hide show
  1. checksums.yaml +7 -0
  2. data/app/assets/images/droom/admin_menu.png +0 -0
  3. data/app/assets/images/droom/applications_menu.png +0 -0
  4. data/app/assets/images/droom/arrows_small.png +0 -0
  5. data/app/assets/images/droom/config_menu.png +0 -0
  6. data/app/assets/images/droom/dropdown.png +0 -0
  7. data/app/assets/images/droom/menu/asterisk.png +0 -0
  8. data/app/assets/images/droom/{smalladd.png → menu/smalladd.png} +0 -0
  9. data/app/assets/images/droom/{small_asterisk.png → menu/smallasterisk.png} +0 -0
  10. data/app/assets/images/droom/{smalldelete.png → menu/smalldelete.png} +0 -0
  11. data/app/assets/images/droom/{smalldownload.png → menu/smalldownload.png} +0 -0
  12. data/app/assets/images/droom/{smalledit.png → menu/smalledit.png} +0 -0
  13. data/app/assets/images/droom/message.png +0 -0
  14. data/app/assets/images/droom/missing/scrap.jpg +0 -0
  15. data/app/assets/images/droom/missing/scrap.png +0 -0
  16. data/app/assets/images/droom/missing/thumb.png +0 -0
  17. data/app/assets/images/droom/missing/user.png +0 -0
  18. data/app/assets/images/droom/object_icons.png +0 -0
  19. data/app/assets/images/droom/panel/add.png +0 -0
  20. data/app/assets/images/droom/panel/edit.png +0 -0
  21. data/app/assets/images/droom/panel/manage.png +0 -0
  22. data/app/assets/images/droom/pointer_upwards.png +0 -0
  23. data/app/assets/images/droom/search_menu.png +0 -0
  24. data/app/assets/images/droom/setter.png +0 -0
  25. data/app/assets/images/droom/small_icons.png +0 -0
  26. data/app/assets/images/droom/stream/closer.png +0 -0
  27. data/app/assets/images/droom/stream/next.png +0 -0
  28. data/app/assets/images/droom/stream/prev.png +0 -0
  29. data/app/assets/images/droom/stream/previous.png +0 -0
  30. data/app/assets/images/droom/subscribe.png +0 -0
  31. data/app/assets/javascripts/droom.js.coffee +23 -13
  32. data/app/assets/javascripts/droom/actions.js.coffee +104 -10
  33. data/app/assets/javascripts/droom/ajax.js.coffee +36 -24
  34. data/app/assets/javascripts/droom/extensions.js.coffee +13 -0
  35. data/app/assets/javascripts/droom/lib/jquery.datepicker.js +1026 -0
  36. data/app/assets/javascripts/droom/lib/jquery.deserialize.js +142 -0
  37. data/app/assets/javascripts/droom/lib/jquery_ujs.js +416 -0
  38. data/app/assets/javascripts/droom/lib/swipe.js +568 -0
  39. data/app/assets/javascripts/droom/lib/underscore.js +1276 -0
  40. data/app/assets/javascripts/droom/popups.js.coffee +98 -37
  41. data/app/assets/javascripts/droom/stream.js.coffee +119 -77
  42. data/app/assets/javascripts/droom/utilities.js.coffee +25 -3
  43. data/app/assets/javascripts/droom/widgets.js.coffee +318 -253
  44. data/app/assets/stylesheets/droom.css.sass +482 -955
  45. data/app/assets/stylesheets/droom/_mixins.css.sass +12 -42
  46. data/app/assets/stylesheets/droom/_popups.css.sass +28 -11
  47. data/app/assets/stylesheets/droom/_stream.css.sass +375 -0
  48. data/app/assets/stylesheets/droom/_toolbar.css.sass +0 -6
  49. data/app/assets/stylesheets/droom/_variables.css.sass +4 -2
  50. data/app/controllers/droom/agenda_categories_controller.rb +6 -14
  51. data/app/controllers/droom/api/api_controller.rb +56 -0
  52. data/app/controllers/droom/api/events_controller.rb +74 -0
  53. data/app/controllers/droom/api/users_controller.rb +92 -0
  54. data/app/controllers/droom/api/venues_controller.rb +71 -0
  55. data/app/controllers/droom/calendars_controller.rb +4 -10
  56. data/app/controllers/droom/{user_confirmations_controller.rb → confirmations_controller.rb} +8 -7
  57. data/app/controllers/droom/dashboard_controller.rb +2 -19
  58. data/app/controllers/droom/documents_controller.rb +12 -60
  59. data/app/controllers/droom/dropbox_tokens_controller.rb +3 -4
  60. data/app/controllers/droom/engine_controller.rb +39 -11
  61. data/app/controllers/droom/events_controller.rb +62 -84
  62. data/app/controllers/droom/folders_controller.rb +30 -40
  63. data/app/controllers/droom/group_invitations_controller.rb +6 -23
  64. data/app/controllers/droom/group_permissions_controller.rb +26 -0
  65. data/app/controllers/droom/groups_controller.rb +10 -14
  66. data/app/controllers/droom/invitations_controller.rb +7 -25
  67. data/app/controllers/droom/memberships_controller.rb +13 -18
  68. data/app/controllers/droom/organisations_controller.rb +6 -25
  69. data/app/controllers/droom/permissions_controller.rb +50 -0
  70. data/app/controllers/droom/preferences_controller.rb +9 -10
  71. data/app/controllers/droom/scraps_controller.rb +23 -26
  72. data/app/controllers/droom/services_controller.rb +50 -0
  73. data/app/controllers/droom/suggestions_controller.rb +6 -4
  74. data/app/controllers/droom/users/confirmations_controller.rb +24 -0
  75. data/app/controllers/droom/users/passwords_controller.rb +39 -0
  76. data/app/controllers/droom/users/sessions_controller.rb +7 -0
  77. data/app/controllers/droom/users_controller.rb +60 -38
  78. data/app/controllers/droom/venues_controller.rb +8 -15
  79. data/app/controllers/droom/youtube_controller.rb +1 -1
  80. data/app/helpers/droom/droom_helper.rb +22 -17
  81. data/app/models/droom/ability.rb +81 -0
  82. data/app/models/droom/agenda_category.rb +0 -1
  83. data/app/models/droom/calendar.rb +12 -7
  84. data/app/models/droom/category.rb +4 -10
  85. data/app/models/droom/concerns/slugged.rb +21 -0
  86. data/app/models/droom/document.rb +15 -17
  87. data/app/models/droom/dropbox_document.rb +3 -6
  88. data/app/models/droom/dropbox_token.rb +2 -3
  89. data/app/models/droom/event.rb +117 -163
  90. data/app/models/droom/event_type.rb +25 -0
  91. data/app/models/droom/folder.rb +36 -48
  92. data/app/models/droom/group.rb +35 -27
  93. data/app/models/droom/group_invitation.rb +7 -10
  94. data/app/models/droom/group_permission.rb +29 -0
  95. data/app/models/droom/invitation.rb +14 -23
  96. data/app/models/droom/mailing_list_membership.rb +0 -1
  97. data/app/models/droom/membership.rb +32 -31
  98. data/app/models/droom/organisation.rb +6 -3
  99. data/app/models/droom/permission.rb +19 -0
  100. data/app/models/droom/personal_folder.rb +9 -21
  101. data/app/models/droom/preference.rb +1 -2
  102. data/app/models/droom/scrap.rb +31 -26
  103. data/app/models/droom/service.rb +31 -0
  104. data/app/models/droom/tag.rb +10 -9
  105. data/app/models/droom/tagging.rb +1 -1
  106. data/app/models/droom/user.rb +453 -130
  107. data/app/models/droom/user_permission.rb +8 -0
  108. data/app/models/droom/venue.rb +21 -32
  109. data/app/serializers/droom/user_serializer.rb +45 -0
  110. data/app/serializers/droom/venue_serializer.rb +5 -0
  111. data/app/views/droom/dashboard/_documents.html.haml +1 -1
  112. data/app/views/droom/dashboard/_folders.html.haml +1 -1
  113. data/app/views/droom/dashboard/_future_events.html.haml +10 -8
  114. data/app/views/droom/dashboard/_groups.html.haml +1 -1
  115. data/app/views/droom/dashboard/_past_events.haml +19 -12
  116. data/app/views/droom/dashboard/_stream.html.haml +2 -2
  117. data/app/views/droom/{users/_extra_columns.html.haml → dashboard/_welcome.html.haml} +0 -0
  118. data/app/views/droom/dashboard/index.html.haml +3 -0
  119. data/app/views/droom/documents/_document.html.haml +0 -2
  120. data/app/views/droom/documents/_documents.html.haml +1 -1
  121. data/app/views/droom/documents/_documents_list.html.haml +1 -1
  122. data/app/views/droom/documents/_documents_table.html.haml +1 -1
  123. data/app/views/droom/documents/_form.html.haml +8 -5
  124. data/app/views/droom/documents/_listing.html.haml +4 -2
  125. data/app/views/droom/documents/index.html.haml +13 -7
  126. data/app/views/droom/documents/new.html.haml +1 -4
  127. data/app/views/droom/events/_action_menu.html.haml +2 -2
  128. data/app/views/droom/events/_attachments.html.haml +8 -0
  129. data/app/views/droom/events/_calendar.html.haml +4 -8
  130. data/app/views/droom/events/_event.html.haml +44 -63
  131. data/app/views/droom/events/_event_line.html.haml +1 -1
  132. data/app/views/droom/events/_events.html.haml +18 -2
  133. data/app/views/droom/events/_form.html.haml +26 -19
  134. data/app/views/droom/events/_invitations.html.haml +7 -3
  135. data/app/views/droom/events/_scrap_events.html.haml +8 -0
  136. data/app/views/droom/events/_suggested.html.haml +4 -1
  137. data/app/views/droom/events/calendar.html.haml +8 -0
  138. data/app/views/droom/events/index.html.haml +24 -26
  139. data/app/views/droom/events/show.html.haml +6 -6
  140. data/app/views/droom/folders/_contents.html.haml +34 -4
  141. data/app/views/droom/folders/_folder.html.haml +7 -2
  142. data/app/views/droom/folders/_form.html.haml +11 -8
  143. data/app/views/droom/folders/index.html.haml +19 -22
  144. data/app/views/droom/group_invitations/_attending_groups.html.haml +1 -1
  145. data/app/views/droom/group_permissions/_toggle.html.haml +18 -0
  146. data/app/views/droom/groups/_action_menu.haml +0 -2
  147. data/app/views/droom/groups/_created.html.haml +0 -1
  148. data/app/views/droom/groups/_form.html.haml +3 -0
  149. data/app/views/droom/groups/_group.html.haml +10 -8
  150. data/app/views/droom/groups/_groups.html.haml +1 -1
  151. data/app/views/droom/groups/_search_result.html.haml +1 -1
  152. data/app/views/droom/groups/_suggested.html.haml +1 -1
  153. data/app/views/droom/groups/index.html.haml +15 -16
  154. data/app/views/droom/invitations/_form.html.haml +1 -1
  155. data/app/views/droom/invitations/_invitation.html.haml +1 -1
  156. data/app/views/droom/invitations/_invitations.html.haml +4 -4
  157. data/app/views/droom/memberships/_button.html.haml +5 -5
  158. data/app/views/droom/memberships/_form.html.haml +26 -7
  159. data/app/views/droom/memberships/_member.html.haml +1 -1
  160. data/app/views/droom/memberships/{_membership_toggle.html.haml → _toggle.html.haml} +4 -4
  161. data/app/views/droom/memberships/index.html.haml +9 -0
  162. data/app/views/droom/organisations/_action_menu.html.haml +1 -1
  163. data/app/views/droom/organisations/_organisation.html.haml +2 -2
  164. data/app/views/droom/organisations/_suggested.html.haml +1 -1
  165. data/app/views/droom/organisations/index.html.haml +11 -11
  166. data/app/views/droom/panels/_admin.html.haml +2 -2
  167. data/app/views/droom/panels/_configuration.html.haml +28 -0
  168. data/app/views/droom/panels/_devices.html.haml +2 -4
  169. data/app/views/droom/panels/_search.html.haml +9 -0
  170. data/app/views/droom/permissions/_action_menu.html.haml +10 -0
  171. data/app/views/droom/permissions/_created.html.haml +3 -0
  172. data/app/views/droom/permissions/_form.html.haml +17 -0
  173. data/app/views/droom/permissions/edit.html.haml +7 -0
  174. data/app/views/droom/permissions/new.html.haml +8 -0
  175. data/app/views/droom/permissions/show.html.haml +4 -0
  176. data/app/views/droom/preferences/_checkbox.html.haml +4 -2
  177. data/app/views/droom/scraps/_caption.html.haml +0 -2
  178. data/app/views/droom/scraps/_credit.html.haml +1 -1
  179. data/app/views/droom/scraps/_form.html.haml +68 -69
  180. data/app/views/droom/scraps/_preload.html.haml +4 -0
  181. data/app/views/droom/scraps/_stream.html.haml +11 -3
  182. data/app/views/droom/scraps/_thumb.html.haml +33 -1
  183. data/app/views/droom/scraps/edit.html.haml +6 -1
  184. data/app/views/droom/scraps/full/_document.html.haml +4 -3
  185. data/app/views/droom/scraps/full/_event.html.haml +17 -16
  186. data/app/views/droom/scraps/full/_image.html.haml +1 -2
  187. data/app/views/droom/scraps/full/_link.html.haml +4 -3
  188. data/app/views/droom/scraps/full/_quote.html.haml +4 -7
  189. data/app/views/droom/scraps/full/_text.html.haml +3 -2
  190. data/app/views/droom/scraps/full/_video.html.haml +2 -2
  191. data/app/views/droom/scraps/new.html.haml +6 -1
  192. data/app/views/droom/scraps/show.html.haml +4 -3
  193. data/app/views/droom/services/_action_menu.html.haml +12 -0
  194. data/app/views/droom/services/_created.html.haml +3 -0
  195. data/app/views/droom/services/_form.html.haml +18 -0
  196. data/app/views/droom/services/_services.html.haml +44 -0
  197. data/app/views/droom/services/edit.html.haml +7 -0
  198. data/app/views/droom/services/index.html.haml +5 -0
  199. data/app/views/droom/{people → services}/new.html.haml +4 -3
  200. data/app/views/droom/services/show.html.haml +4 -0
  201. data/app/views/droom/shared/_controls.html.haml +2 -2
  202. data/app/views/droom/shared/_navigation.html.haml +2 -2
  203. data/app/views/droom/shared/_toolbar.html.haml +1 -1
  204. data/app/views/droom/suggestions/index.html.haml +1 -0
  205. data/app/views/droom/users/_action_menu.html.haml +21 -0
  206. data/app/views/droom/users/_suggested.html.haml +14 -0
  207. data/app/views/droom/users/_user.html.haml +2 -2
  208. data/app/views/droom/users/_users.html.haml +7 -0
  209. data/app/views/droom/users/_users_table.html.haml +21 -22
  210. data/app/views/droom/users/admin.html.haml +10 -0
  211. data/app/views/droom/users/confirmations/_after_confirmation.html.haml +2 -0
  212. data/app/views/droom/users/confirmations/_password_required.html.haml +30 -0
  213. data/app/views/droom/users/confirmations/failure.en.html.haml +22 -0
  214. data/app/views/droom/users/confirmations/show.html.haml +13 -0
  215. data/app/views/droom/users/edit.html.haml +2 -10
  216. data/app/views/droom/users/edit/_details.html.haml +13 -0
  217. data/app/views/droom/users/edit/_memberships.html.haml +13 -0
  218. data/app/views/droom/users/edit/_password_fields.html.haml +16 -0
  219. data/app/views/droom/users/edit/_preferences.html.haml +37 -0
  220. data/app/views/droom/users/edit/_profile.html.haml +26 -0
  221. data/app/views/droom/users/edit/_user_fields.html.haml +66 -0
  222. data/app/views/droom/users/index.html.haml +6 -32
  223. data/app/views/droom/users/new.html.haml +3 -0
  224. data/app/views/droom/users/passwords/completed.html.haml +13 -0
  225. data/app/views/{devise → droom/users}/passwords/edit.html.haml +10 -4
  226. data/app/views/{devise → droom/users}/passwords/new.html.haml +4 -3
  227. data/app/views/droom/users/passwords/show.html.haml +6 -0
  228. data/app/views/droom/users/show.html.haml +2 -0
  229. data/app/views/droom/users/show/_listed.html.haml +46 -0
  230. data/app/views/droom/users/show/_profile.html.haml +33 -0
  231. data/app/views/droom/users/show/_tabled.html.haml +28 -0
  232. data/config/initializers/chronic.rb +2 -0
  233. data/config/initializers/devise.rb +35 -2
  234. data/config/initializers/paperclip.rb +11 -6
  235. data/config/locales/devise.en.yml +1 -1
  236. data/config/locales/en.yml +198 -103
  237. data/config/routes.rb +37 -45
  238. data/db/migrate/20130207123614_stream.rb +5 -1
  239. data/db/migrate/20130225095328_create_droom_calendars.rb +0 -1
  240. data/db/migrate/20130627065459_permissions.rb +34 -0
  241. data/db/migrate/20130627071938_users_take_over.rb +38 -0
  242. data/db/migrate/20130627073759_user_properties.rb +34 -0
  243. data/db/migrate/20130627080021_no_more_people.rb +11 -0
  244. data/db/migrate/20130701122935_directory_groups.rb +8 -0
  245. data/db/migrate/20130701123152_remove_old_access_control.rb +16 -0
  246. data/db/migrate/20130729102857_more_scrap_data.rb +12 -0
  247. data/db/migrate/20130904080340_international_names.rb +17 -0
  248. data/db/migrate/20130904080341_honours.rb +5 -0
  249. data/db/migrate/20131124082222_simple_addresses.rb +25 -0
  250. data/db/migrate/20131201093351_event_time_zone.rb +5 -0
  251. data/db/migrate/20131217060311_session_revocable.rb +5 -0
  252. data/db/migrate/20131219180311_event_types.rb +15 -0
  253. data/lib/devise/strategies/cookie_authenticatable.rb +46 -0
  254. data/lib/droom.rb +48 -33
  255. data/lib/droom/auth_cookie.rb +82 -0
  256. data/lib/droom/cropper.rb +24 -0
  257. data/lib/droom/engine.rb +20 -2
  258. data/lib/droom/folders.rb +6 -6
  259. data/lib/droom/lazy_hash.rb +11 -1
  260. data/lib/droom/monkeys.rb +6 -6
  261. data/lib/droom/taggability.rb +1 -1
  262. data/lib/droom/validators.rb +1 -1
  263. data/lib/droom/version.rb +1 -1
  264. data/lib/generators/droom/install/templates/droom_initializer.rb +10 -2
  265. data/lib/paperclip/geometry_transformation.rb +80 -0
  266. data/lib/paperclip/validators/attachment_height_validator.rb +89 -0
  267. data/lib/paperclip/validators/attachment_width_validator.rb +89 -0
  268. data/lib/paperclip_processors/offset_thumbnail.rb +85 -0
  269. data/spec/dummy/config/application.rb +0 -7
  270. data/spec/dummy/config/environments/development.rb +1 -10
  271. data/spec/dummy/config/environments/production.rb +1 -0
  272. data/spec/dummy/config/environments/test.rb +2 -7
  273. data/spec/dummy/db/migrate/20130130120631_folder_ancestry_to_parents.droom.rb +1 -1
  274. data/spec/dummy/db/migrate/20130724124758_dropbox_tokens.droom.rb +10 -0
  275. data/spec/dummy/db/migrate/20130724124759_preference_uuids.droom.rb +6 -0
  276. data/spec/dummy/db/migrate/20130724124760_stream.droom.rb +14 -0
  277. data/spec/dummy/db/migrate/20130724124761_access_token_secret.droom.rb +6 -0
  278. data/spec/dummy/db/migrate/20130724124762_person_image.droom.rb +10 -0
  279. data/spec/dummy/db/migrate/20130724124763_devise_confirmable.droom.rb +14 -0
  280. data/spec/dummy/db/migrate/20130724124764_create_droom_calendars.droom.rb +20 -0
  281. data/spec/dummy/db/migrate/20130724124765_give_scraps_document.droom.rb +6 -0
  282. data/spec/dummy/db/migrate/20130724124766_privateness.droom.rb +10 -0
  283. data/spec/dummy/db/migrate/20130724124767_store_metadata.droom.rb +6 -0
  284. data/spec/dummy/db/migrate/20130724124768_folders_nicely.droom.rb +7 -0
  285. data/spec/dummy/db/migrate/20130724124769_niceties.droom.rb +8 -0
  286. data/spec/dummy/db/migrate/20130724124770_create_droom_dropbox_documents.droom.rb +12 -0
  287. data/spec/dummy/db/migrate/20130724124771_dropbox_documents_changed.droom.rb +6 -0
  288. data/spec/dummy/db/migrate/20130724124772_user_titles.droom.rb +6 -0
  289. data/spec/dummy/db/migrate/20130724124773_permissions.droom.rb +35 -0
  290. data/spec/dummy/db/migrate/20130724124774_users_take_over.droom.rb +39 -0
  291. data/spec/dummy/db/migrate/20130724124775_user_properties.droom.rb +35 -0
  292. data/spec/dummy/db/migrate/20130724124776_no_more_people.droom.rb +12 -0
  293. data/spec/dummy/db/migrate/20130724124777_directory_groups.droom.rb +9 -0
  294. data/spec/dummy/db/migrate/20130724124778_remove_old_access_control.droom.rb +17 -0
  295. data/spec/dummy/db/schema.rb +217 -140
  296. data/spec/factories/documents.rb +0 -5
  297. data/spec/factories/events.rb +0 -9
  298. data/spec/factories/user.rb +4 -2
  299. data/spec/lib/droom/folders_spec.rb +8 -8
  300. data/spec/models/droom/document_spec.rb +6 -43
  301. data/spec/models/droom/event_spec.rb +0 -34
  302. data/spec/models/droom/mailing_list_membership_spec.rb +4 -4
  303. data/spec/models/droom/membership_spec.rb +2 -2
  304. data/spec/spec_helper.rb +1 -10
  305. metadata +322 -282
  306. data/app/assets/images/droom/Untitled-1.png +0 -0
  307. data/app/assets/images/droom/asterisk.png +0 -0
  308. data/app/assets/images/droom/smallmanage.png +0 -0
  309. data/app/assets/javascripts/droom/lib/kalendae.js +0 -1692
  310. data/app/assets/stylesheets/lib/_kalendae.css.sass +0 -139
  311. data/app/controllers/droom/pages_controller.rb +0 -61
  312. data/app/controllers/droom/people_controller.rb +0 -111
  313. data/app/models/droom/document_attachment.rb +0 -37
  314. data/app/models/droom/page.rb +0 -26
  315. data/app/models/droom/person.rb +0 -309
  316. data/app/models/droom/recurrence_rule.rb +0 -82
  317. data/app/models/droom/user_action_observer.rb +0 -12
  318. data/app/views/devise/confirmations/failure.en.html.haml +0 -20
  319. data/app/views/devise/confirmations/show.html.haml +0 -19
  320. data/app/views/droom/confirmations/show.html.haml +0 -40
  321. data/app/views/droom/documents/_document_line.html.haml +0 -2
  322. data/app/views/droom/events/_created.html.haml +0 -2
  323. data/app/views/droom/folders/_attachments.html.haml +0 -3
  324. data/app/views/droom/pages/_contents.html.haml +0 -10
  325. data/app/views/droom/pages/_form.html.haml +0 -36
  326. data/app/views/droom/pages/_full_page.html.haml +0 -17
  327. data/app/views/droom/pages/_page.html.haml +0 -5
  328. data/app/views/droom/pages/_pages.html.haml +0 -2
  329. data/app/views/droom/pages/admin.html.haml +0 -24
  330. data/app/views/droom/pages/edit.html.haml +0 -1
  331. data/app/views/droom/pages/index.html.haml +0 -10
  332. data/app/views/droom/pages/new.html.haml +0 -4
  333. data/app/views/droom/pages/show.html.haml +0 -5
  334. data/app/views/droom/panels/_account.html.haml +0 -16
  335. data/app/views/droom/panels/_readers.html.haml +0 -18
  336. data/app/views/droom/panels/_suggestions.html.haml +0 -15
  337. data/app/views/droom/people/_action_menu.html.haml +0 -22
  338. data/app/views/droom/people/_created.html.haml +0 -6
  339. data/app/views/droom/people/_form.html.haml +0 -66
  340. data/app/views/droom/people/_listing.html.haml +0 -19
  341. data/app/views/droom/people/_memberships.html.haml +0 -24
  342. data/app/views/droom/people/_people.html.haml +0 -5
  343. data/app/views/droom/people/_person.html.haml +0 -32
  344. data/app/views/droom/people/_search_result.html.haml +0 -14
  345. data/app/views/droom/people/_suggested.html.haml +0 -14
  346. data/app/views/droom/people/edit.html.haml +0 -9
  347. data/app/views/droom/people/index.html.haml +0 -8
  348. data/app/views/droom/people/show.html.haml +0 -31
  349. data/app/views/droom/scraps/_heading.html.haml +0 -16
  350. data/app/views/droom/scraps/thumbs/_document.html.haml +0 -9
  351. data/app/views/droom/scraps/thumbs/_event.html.haml +0 -17
  352. data/app/views/droom/scraps/thumbs/_image.html.haml +0 -6
  353. data/app/views/droom/scraps/thumbs/_link.html.haml +0 -10
  354. data/app/views/droom/scraps/thumbs/_quote.html.haml +0 -8
  355. data/app/views/droom/scraps/thumbs/_text.html.haml +0 -8
  356. data/app/views/droom/scraps/thumbs/_video.html.haml +0 -6
  357. data/app/views/droom/users/_extra_columns_header.html.haml +0 -0
  358. data/app/views/droom/users/_extra_columns_note.html.haml +0 -0
  359. data/app/views/droom/users/_form.html.haml +0 -14
  360. data/app/views/droom/users/_password_fields.html.haml +0 -15
  361. data/app/views/droom/users/_user_or_person.html.haml +0 -72
  362. data/app/views/kaminari/_paginator.html.haml +0 -16
  363. data/lib/droom/dav_resource.rb +0 -36
  364. data/lib/droom/model_helpers.rb +0 -25
  365. data/lib/droom/routing.rb +0 -13
  366. data/spec/datasets/calendar_events_dataset.rb +0 -44
  367. data/spec/datasets/calendar_pages_dataset.rb +0 -8
  368. data/spec/datasets/calendar_sites_dataset.rb +0 -6
  369. data/spec/datasets/calendars_dataset.rb +0 -34
  370. data/spec/datasets/documents_dataset.rb +0 -28
  371. data/spec/datasets/recurrence_dataset.rb +0 -7
  372. data/spec/dummy/config/sunspot.yml +0 -17
  373. data/spec/dummy/log/dav.log +0 -1
  374. data/spec/dummy/log/development.log +0 -2
  375. data/spec/dummy/log/test.log +0 -1
  376. data/spec/dummy/solr/conf/admin-extra.html +0 -31
  377. data/spec/dummy/solr/conf/elevate.xml +0 -36
  378. data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +0 -246
  379. data/spec/dummy/solr/conf/protwords.txt +0 -21
  380. data/spec/dummy/solr/conf/schema.xml +0 -238
  381. data/spec/dummy/solr/conf/scripts.conf +0 -24
  382. data/spec/dummy/solr/conf/solrconfig.xml +0 -934
  383. data/spec/dummy/solr/conf/spellings.txt +0 -2
  384. data/spec/dummy/solr/conf/stopwords.txt +0 -58
  385. data/spec/dummy/solr/conf/synonyms.txt +0 -31
  386. data/spec/dummy/solr/data/development/index/segments.gen +0 -0
  387. data/spec/dummy/solr/data/development/index/segments_1 +0 -0
  388. data/spec/dummy/solr/data/development/spellchecker/segments.gen +0 -0
  389. data/spec/dummy/solr/data/development/spellchecker/segments_1 +0 -0
  390. data/spec/dummy/solr/data/test/index/segments.gen +0 -0
  391. data/spec/dummy/solr/data/test/index/segments_3nu +0 -0
  392. data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
  393. data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
  394. data/spec/factories/recurrence_rules.rb +0 -25
  395. data/spec/models/droom/person_spec.rb +0 -72
  396. data/spec/models/droom/recurrence_rule_spec.rb +0 -81
@@ -3,10 +3,8 @@ module Droom
3
3
  respond_to :js, :html
4
4
  layout :no_layout_if_pjax
5
5
 
6
- before_filter :get_event
7
- before_filter :build_group_invitation, :only => [:new]
8
- before_filter :find_or_build_group_invitation, :only => [:create]
9
- before_filter :get_group_invitation, :only => :destroy
6
+ load_and_authorize_resource :event, :class => Droom::Event
7
+ load_and_authorize_resource :group_invitation, :through => :event, :class => Droom::GroupInvitation
10
8
 
11
9
  def destroy
12
10
  @group_invitation.destroy
@@ -23,33 +21,18 @@ module Droom
23
21
  end
24
22
 
25
23
  def create
26
- if @group_invitation.save
24
+ if @group_invitation.update_attributes(group_invitation_params)
27
25
  render :partial => "created"
28
26
  else
29
27
  respond_with @group_invitation
30
28
  end
31
29
  end
32
30
 
33
- protected
31
+ protected
34
32
 
35
- def get_event
36
- @event = Droom::Event.find(params[:event_id])
37
- end
38
-
39
- def build_group_invitation
40
- @group_invitation = @event.group_invitations.build(params[:group_invitation])
41
- end
42
-
43
- def find_or_build_group_invitation
44
- @group = Droom::Group.find(params[:group_invitation][:group_id])
45
- unless @group_invitation = @event.group_invitations.for_group(@group).first()
46
- @group_invitation = @event.group_invitations.build(params[:group_invitation])
47
- end
33
+ def group_invitation_params
34
+ params.require(:group_invitation).permit(:event_id, :group_id)
48
35
  end
49
36
 
50
- def get_group_invitation
51
- @group_invitation = @event.group_invitations.find(params[:id])
52
- end
53
-
54
37
  end
55
38
  end
@@ -0,0 +1,26 @@
1
+ module Droom
2
+ class GroupPermissionsController < Droom::EngineController
3
+ respond_to :js, :html
4
+ layout :no_layout_if_pjax
5
+
6
+ load_and_authorize_resource :group, :class => Droom::Group
7
+ load_and_authorize_resource :group_permission, :through => :group, :class => Droom::GroupPermission
8
+
9
+ def create
10
+ @group_permission.save
11
+ render :partial => 'droom/group_permissions/toggle'
12
+ end
13
+
14
+ def destroy
15
+ @group_permission.destroy
16
+ render :partial => 'droom/group_permissions/toggle'
17
+ end
18
+
19
+ protected
20
+
21
+ def group_permission_params
22
+ params.require(:group_permission).permit(:permission_id, :group_id)
23
+ end
24
+
25
+ end
26
+ end
@@ -3,9 +3,8 @@ module Droom
3
3
  respond_to :html, :js
4
4
  layout :no_layout_if_pjax
5
5
 
6
- before_filter :build_group, :only => [:new, :create]
7
- before_filter :get_group, :only => [:show, :edit, :update, :destroy]
8
- before_filter :get_groups, :only => :index
6
+ before_filter :get_groups, :only => [:index]
7
+ load_and_authorize_resource
9
8
 
10
9
  def index
11
10
  respond_with @groups do |format|
@@ -20,6 +19,7 @@ module Droom
20
19
  end
21
20
 
22
21
  def show
22
+ @users = paginated(@group.users, 20)
23
23
  respond_with @group do |format|
24
24
  format.js {
25
25
  render :partial => 'droom/groups/group'
@@ -32,12 +32,12 @@ module Droom
32
32
  end
33
33
 
34
34
  def update
35
- @group.update_attributes(params[:group])
35
+ @group.update_attributes(group_params)
36
36
  render :partial => 'group'
37
37
  end
38
38
 
39
39
  def create
40
- if @group.save
40
+ if @group.update_attributes(group_params)
41
41
  render :partial => "created"
42
42
  else
43
43
  respond_with @group
@@ -50,17 +50,13 @@ module Droom
50
50
  end
51
51
 
52
52
  protected
53
-
54
- def build_group
55
- @group = Droom::Group.new(params[:group])
56
- end
57
-
58
- def get_group
59
- @group = Droom::Group.find(params[:id])
53
+
54
+ def group_params
55
+ params.require(:group).permit(:name, :leader_id, :description)
60
56
  end
61
-
57
+
62
58
  def get_groups
63
- @groups = current_user.admin? ? Droom::Group.all : Droom::Group.visible_to(current_user)
59
+ @groups = Droom::Group.shown_in_directory.accessible_by(current_ability).order("name ASC")
64
60
  end
65
61
 
66
62
  end
@@ -3,14 +3,11 @@ module Droom
3
3
  respond_to :js, :html
4
4
  layout :no_layout_if_pjax
5
5
 
6
- before_filter :get_event
7
- before_filter :build_invitation, :only => [:new]
8
- before_filter :find_or_build_invitation, :only => [:create]
9
- before_filter :get_invitation, :only => [:accept, :refuse, :toggle]
10
-
6
+ load_and_authorize_resource :event, :class => Droom::Event
7
+ load_and_authorize_resource :invitation, :through => :event, :class => Droom::Invitation
8
+
11
9
  def destroy
12
- @invitation = @event.invitations.find_by_id(params[:id])
13
- @invitation.destroy if @invitation
10
+ @invitation.destroy
14
11
  head :ok
15
12
  end
16
13
 
@@ -24,7 +21,7 @@ module Droom
24
21
  end
25
22
 
26
23
  def create
27
- if @invitation.save
24
+ if @invitation.update_attributes(invitation_params)
28
25
  render :partial => "created"
29
26
  else
30
27
  respond_with @invitation
@@ -48,23 +45,8 @@ module Droom
48
45
 
49
46
  protected
50
47
 
51
- def get_event
52
- @event = Droom::Event.find(params[:event_id])
53
- end
54
-
55
- def build_invitation
56
- @invitation = @event.invitations.build(params[:invitation])
57
- end
58
-
59
- def find_or_build_invitation
60
- @person = Droom::Person.find(params[:invitation][:person_id])
61
- unless @invitation = @event.invitations.for_person(@person).first()
62
- @invitation = @event.invitations.build(params[:invitation])
63
- end
64
- end
65
-
66
- def get_invitation
67
- @invitation = @event.invitations.find(params[:id])
48
+ def invitation_params
49
+ params.require(:invitation).permit(:event_id, :user_id)
68
50
  end
69
51
 
70
52
  end
@@ -3,22 +3,21 @@ module Droom
3
3
  respond_to :js, :html
4
4
  layout :no_layout_if_pjax
5
5
 
6
- before_filter :build_membership, :only => [:new, :create]
7
- before_filter :get_membership, :only => :destroy
6
+ load_and_authorize_resource :group, :class => Droom::Group
7
+ load_and_authorize_resource :membership, :through => :group, :class => Droom::Membership
8
8
 
9
9
  def destroy
10
10
  @membership = Membership.find(params[:id])
11
11
  @group = @membership.group
12
- @person = @membership.person
12
+ @user = @membership.user
13
13
  @membership.destroy
14
- render :partial => "membership_toggle"
14
+ render :partial => "toggle"
15
15
  end
16
16
 
17
17
  def new
18
- if params[:person_id]
19
- @group = Droom::Group.find(params[:group_id])
20
- @person = Droom::Person.find(params[:person_id])
21
- @membership = @group.memberships.create!(:person_id => @person.id, :group_id => @group.id)
18
+ if params[:user_id]
19
+ @user = Droom::User.find(params[:user_id])
20
+ @membership = @group.memberships.create!(:user_id => @user.id, :group_id => @group.id)
22
21
  render :partial => "button"
23
22
  else
24
23
  respond_with @membership
@@ -27,22 +26,18 @@ module Droom
27
26
 
28
27
  def create
29
28
  if @membership.save
30
- @person = @membership.person
31
- render :partial => "membership_toggle"
29
+ @user = @membership.user
30
+ render :partial => "toggle"
32
31
  else
33
32
  respond_with @membership
34
33
  end
35
34
  end
36
35
 
37
- protected
38
-
39
- def build_membership
40
- @group = Droom::Group.find(params[:group_id])
41
- @membership = @group.memberships.new(params[:membership])
42
- end
36
+ protected
43
37
 
44
- def get_membership
45
- @membership = Droom::Membership.find(params[:id])
38
+ def membership_params
39
+ permitted_user_attributes = [:title, :family_name, :given_name, :chinese_name, :email, :password, :password_confirmation, :phone, :description, :admin, :preferences_attributes, :confirm, :old_id, :invite_on_creation, :post_line1, :post_line2, :post_city, :post_region, :post_country, :post_code, :mobile, :dob, :organisation_id, :public, :private, :female, :image, :send_confirmation]
40
+ params.require(:membership).permit(:group_id, :user_id, user_attributes: permitted_user_attributes)
46
41
  end
47
42
 
48
43
  end
@@ -3,20 +3,15 @@ module Droom
3
3
  respond_to :html, :js
4
4
  layout :no_layout_if_pjax
5
5
  helper Droom::DroomHelper
6
-
7
- before_filter :authenticate_user!
8
- before_filter :get_people, :only => [:index]
9
- before_filter :find_organisations, :only => [:index]
10
- before_filter :get_organisation, :only => [:show, :edit, :update, :destroy]
11
- before_filter :build_organisation, :only => [:new, :create]
6
+ load_and_authorize_resource
12
7
 
13
8
  def create
14
- @organisation.update_attributes(params[:organisation])
9
+ @organisation.update_attributes(organisation_params)
15
10
  respond_with @organisation
16
11
  end
17
12
 
18
13
  def update
19
- @organisation.update_attributes(params[:organisation])
14
+ @organisation.update_attributes(organisation_params)
20
15
  respond_with @organisation
21
16
  end
22
17
 
@@ -30,24 +25,10 @@ module Droom
30
25
  end
31
26
 
32
27
  protected
33
-
34
- def find_organisations
35
- @organisations = Droom::Organisation.order("name asc")
36
- end
37
-
38
- def get_people
39
- @show = params[:show] || 10
40
- @page = params[:page] || 1
41
- @people = Droom::Person.order("name asc").page(@page).per(@show)
42
- end
43
-
44
- def get_organisation
45
- @organisation = Droom::Organisation.find(params[:id])
28
+
29
+ def organisation_params
30
+ params.require(:organisation).permit(:name, :description, :owner, :owner_id, :url)
46
31
  end
47
32
 
48
- def build_organisation
49
- @organisation = Droom::Organisation.new(params[:organisation])
50
- end
51
-
52
33
  end
53
34
  end
@@ -0,0 +1,50 @@
1
+ module Droom
2
+ class PermissionsController < Droom::EngineController
3
+ respond_to :js, :html
4
+ layout :no_layout_if_pjax
5
+
6
+ load_and_authorize_resource :service, :class => Droom::Service
7
+ load_and_authorize_resource :permission, :through => :service, :class => Droom::Permission
8
+
9
+ def index
10
+ @permissions = Droom::Permission.all
11
+ respond_with(@permissions)
12
+ end
13
+
14
+ def show
15
+ respond_with @permission
16
+ end
17
+
18
+ def new
19
+ respond_with @permission
20
+ end
21
+
22
+ def create
23
+ @permission.save
24
+ respond_with @service, @permission
25
+ end
26
+
27
+ def edit
28
+ respond_with @permission
29
+ end
30
+
31
+ def update
32
+ @permission.update_attributes(permission_params)
33
+ respond_with @service, @permission
34
+ end
35
+
36
+ def destroy
37
+ @permission.destroy
38
+ head :ok
39
+ end
40
+
41
+ protected
42
+
43
+ def permission_params
44
+ params.require(:permission).permit(:name, :description)
45
+ end
46
+
47
+ end
48
+ end
49
+
50
+
@@ -2,11 +2,10 @@ module Droom
2
2
  class PreferencesController < Droom::EngineController
3
3
  respond_to :js, :html
4
4
  layout :no_layout_if_pjax
5
-
6
- before_filter :authenticate_user!
7
- before_filter :get_preference, :only => [:show, :edit, :update]
8
- before_filter :build_preference, :only => [:new, :create]
9
5
 
6
+ before_filter :build_preference, :only => [:new, :create]
7
+ load_and_authorize_resource :through => :current_user
8
+
10
9
  def create
11
10
  @preference.update_attributes(params[:preference])
12
11
  @preference.save
@@ -20,15 +19,15 @@ module Droom
20
19
  end
21
20
 
22
21
  protected
23
-
24
- def get_preference
25
- @preference = current_user.preferences.find(params[:id])
26
- end
27
22
 
28
23
  def build_preference
29
24
  key = params[:preference][:key] || params[:key]
30
- @preference = current_user.preferences.find_or_initialize_by_key(key)
25
+ @preference = current_user.preferences.where(:key => key).first_or_initialize
31
26
  end
32
-
27
+
28
+ def preference_parameters
29
+ params.require(:preference).permit(:value, :uuid)
30
+ end
31
+
33
32
  end
34
33
  end
@@ -3,13 +3,13 @@ module Droom
3
3
  respond_to :html, :js, :json, :atom
4
4
  layout :no_layout_if_pjax
5
5
 
6
- before_filter :authenticate_user!
7
- before_filter :scale_image_params, :only => [:create, :update]
8
- before_filter :find_scraps, :only => [:index]
9
- before_filter :get_scrap, :only => [:show, :edit, :update, :destroy, :chart]
6
+ before_filter :get_scraps, :only => [:index]
7
+ before_filter :get_scraptype, :only => [:new, :create, :update]
10
8
  before_filter :build_scrap, :only => [:new, :create]
9
+ load_and_authorize_resource
11
10
 
12
11
  def index
12
+ @scraps = paginated(@scraps, 8)
13
13
  respond_with(@scraps) do |format|
14
14
  format.js { render :partial => 'droom/scraps/stream' }
15
15
  end
@@ -28,12 +28,12 @@ module Droom
28
28
  end
29
29
 
30
30
  def update
31
- @scrap.update_attributes(params[:scrap])
31
+ @scrap.update_attributes(scrap_params(@scraptype))
32
32
  respond_with(@scrap)
33
33
  end
34
34
 
35
35
  def create
36
- @scrap.update_attributes(params[:scrap])
36
+ @scrap.update_attributes(scrap_params(@scraptype))
37
37
  respond_with(@scrap)
38
38
  end
39
39
 
@@ -41,35 +41,32 @@ module Droom
41
41
  @scrap.destroy
42
42
  head :ok
43
43
  end
44
-
45
- def feed
46
-
47
- end
48
44
 
49
45
  protected
50
46
 
51
- def find_scraps
52
- @show = params[:show] || 10
53
- @page = params[:page] || 1
54
- @scraps = Droom::Scrap.by_date.page(@page).per(@show) unless @show == 'all'
47
+ def get_scraps
48
+ @scraps = paginated(Droom::Scrap.order("created_at DESC") )
55
49
  end
56
50
 
57
- def get_scrap
58
- @scrap = Droom::Scrap.find(params[:id])
51
+ def build_scrap
52
+ @scrap = current_user.scraps.build(:scraptype => @scraptype)
59
53
  end
60
54
 
61
- def build_scrap
62
- params[:scrap]
63
- @scrap = Droom::Scrap.new(params[:scrap])
64
- @folder = Droom::Folder.find_or_create_by_slug("stream")
65
- @scrap.scraptype ||= 'text'
55
+ def get_scraptype
56
+ if params[:scrap]
57
+ @scraptype = params[:scrap][:scraptype] if Droom.scrap_types.include?(params[:scrap][:scraptype])
58
+ end
59
+ @scraptype ||= Droom.default_scrap_type
66
60
  end
67
61
 
68
- def scale_image_params
69
- if multiplier = params[:multiplier]
70
- [:image_scale_width, :image_scale_height, :image_offset_left, :image_offset_top].each do |p|
71
- params[:scrap][p] = (params[:scrap][p].to_i * multiplier.to_i) unless params[:scrap][p].blank?
72
- end
62
+ def scrap_params(scraptype=@scraptype)
63
+ case scraptype.to_sym
64
+ when :image then params.require(:scrap).permit(:name, :image, :note, :url, :scraptype)
65
+ when :video then params.require(:scrap).permit(:name, :youtube_id, :note, :url, :scraptype)
66
+ when :link then params.require(:scrap).permit(:name, :note, :url, :scraptype)
67
+ when :event then params.require(:scrap).permit(:name, :note, :url, :scraptype, :event_attributes => [:id, :calendar_id, :start])
68
+ when :document then params.require(:scrap).permit(:name, :note, :url, :scraptype, :document_attributes => [:id, :file, :folder_id])
69
+ else params.require(:scrap).permit(:name, :body, :note, :url, :scraptype)
73
70
  end
74
71
  end
75
72