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
@@ -18,14 +18,8 @@
18
18
  header
19
19
  display: block
20
20
  float: left
21
- background: #eee
22
21
  position: relative
23
22
  z-index: 1
24
- background-image: linear-gradient(bottom, rgb(238, 238, 238) 0%, rgb(255, 255, 255) 100%)
25
- background-image: -o-linear-gradient(bottom, rgb(238, 238, 238) 0%, rgb(255, 255, 255) 100%)
26
- background-image: -moz-linear-gradient(bottom, rgb(238, 238, 238) 0%, rgb(255, 255, 255) 100%)
27
- background-image: -webkit-linear-gradient(bottom, rgb(238, 238, 238) 0%, rgb(255, 255, 255) 100%)
28
- background-image: -ms-linear-gradient(bottom, rgb(238, 238, 238) 0%, rgb(255, 255, 255) 100%)
29
23
  font-size: 0
30
24
 
31
25
  .commands
@@ -1,3 +1,4 @@
1
+ $coolgrey00: #f7f5f3
1
2
  $coolgrey0: #f2f0ed
2
3
  $coolgrey1: #e2e1dd
3
4
  $coolgrey2: #d6d6d4
@@ -12,9 +13,10 @@ $coolgrey10: #616265
12
13
  $coolgrey11: #4d4e53
13
14
  $black6: #52555f
14
15
  $rubine: #d1005d
15
- $blue: #00afdb
16
+ $blue: #2c91c9
16
17
  $green: #74b87a
17
18
  $warmred: #ff625b
19
+ $reddish: #d34a4a
18
20
  $darkred: #b92a23
19
21
  $purple: #a27ec3
20
22
  $red: #ed1c24
@@ -28,7 +30,7 @@ $palest: #f2f0ed !default
28
30
  $page: #ffffff
29
31
  $text: $dark
30
32
  $link: $red
31
- $hover: $palered
33
+ $hover: $reddish
32
34
  $active: #8c8d8e
33
35
  $visited: $link
34
36
  $input: $dark
@@ -2,23 +2,15 @@ module Droom
2
2
  class AgendaCategoriesController < Droom::EngineController
3
3
  respond_to :html, :js
4
4
  layout :no_layout_if_pjax
5
- before_filter :get_event
6
- before_filter :get_agenda_category, :only => [:destroy, :edit, :update]
7
- before_filter :build_agenda_category, :only => [:new, :create]
8
5
 
9
- protected
10
-
11
- def get_event
12
- @event = Droom::Event.find(params[:event_id])
13
- end
6
+ load_and_authorize_resource :event
7
+ load_and_authorize_resource :agenda_category, :through => :event
14
8
 
15
- def get_agenda_category
16
- @agenda_category = @event.agenda_categories.find(params[:id])
9
+ protected
10
+
11
+ def agenda_category_parameters
12
+ params.require(:agenda_category).permit(:event_id, :category_id)
17
13
  end
18
14
 
19
- def build_agenda_category
20
- @agenda_category = @event.agenda_categories.build(params[:agenda_category])
21
- end
22
-
23
15
  end
24
16
  end
@@ -0,0 +1,56 @@
1
+ module Droom::Api
2
+ class ApiController < Droom::EngineController
3
+
4
+ respond_to :json
5
+ before_filter :set_access_control_headers
6
+ skip_before_filter :authenticate_user!
7
+ skip_before_filter :require_data_room_permission
8
+ skip_before_action :verify_authenticity_token
9
+
10
+ rescue_from "ActiveRecord::RecordNotFound", with: :not_found
11
+ rescue_from "Droom::Error", with: :blew_up
12
+
13
+ def current_ability
14
+ @current_ability ||= Droom::Ability.new(current_user)
15
+ end
16
+
17
+ protected
18
+
19
+ def assert_local_request
20
+ raise CanCan::AccessDenied if (Rails.env.production? || Rails.env.staging?) && (request.host != 'localhost' || request.port != Settings.api_port)
21
+ end
22
+
23
+ def not_found(exception)
24
+ render json: { errors: exception.message }.to_json, status: :not_found
25
+ end
26
+
27
+ def not_allowed(exception)
28
+ render json: { errors: "You do not have permission to access that resource" }.to_json, status: :forbidden
29
+ end
30
+
31
+ def blew_up(exception)
32
+ render json: { errors: exception.message }.to_json, status: :internal_server_error
33
+ end
34
+
35
+ def echo_auth
36
+ Rails.logger.warn "??? token_and_options: #{ActionController::HttpAuthentication::Token.token_and_options(request).inspect}"
37
+ Rails.logger.warn " token auth header is #{request.headers["HTTP_AUTHORIZATION"]}"
38
+ end
39
+
40
+ def echo_user_status
41
+ Rails.logger.warn ">>> user_signed_in? is #{user_signed_in?.inspect}"
42
+ if user_signed_in?
43
+ Rails.logger.warn " current_user is #{current_user.inspect}"
44
+ Rails.logger.warn " permissions: is #{current_user.permission_codes.inspect}"
45
+ end
46
+ end
47
+
48
+ def name_from_controller
49
+ params[:controller].sub("Controller", "").underscore.split('/').last
50
+ end
51
+
52
+ def api_controller?
53
+ true
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,74 @@
1
+ module Droom::Api
2
+ class EventsController < Droom::Api::ApiController
3
+
4
+ before_filter :get_events, only: [:index]
5
+ before_filter :find_or_create_event, only: [:create]
6
+ load_and_authorize_resource find_by: :uuid, class: "Droom::Event"
7
+
8
+ def index
9
+ render json: @events
10
+ end
11
+
12
+ def show
13
+ render json: @event
14
+ end
15
+
16
+ def update
17
+ @event.update_attributes(event_params)
18
+ render json: @event
19
+ end
20
+
21
+ def create
22
+ if @event && @event.persisted?
23
+ render json: @event
24
+ else
25
+ render json: {
26
+ errors: @event.errors.to_a
27
+ }
28
+ end
29
+ end
30
+
31
+ def destroy
32
+ @event.destroy
33
+ head :ok
34
+ end
35
+
36
+ protected
37
+
38
+ def find_or_create_event
39
+ if params[:event]
40
+ if params[:event][:uid].present?
41
+ @event = Droom::User.where(uid: params[:event][:uid]).first
42
+ end
43
+ if params[:event][:email].present?
44
+ @event ||= Droom::User.where(email: params[:event][:email]).first
45
+ end
46
+ end
47
+ @event ||= Droom::User.create(event_params)
48
+ end
49
+
50
+ def get_events
51
+ events = Droom::User.in_name_order
52
+
53
+ if params[:q].present?
54
+ @fragments = params[:q].split(/\s+/)
55
+ @fragments.each { |frag| events = events.matching(frag) }
56
+ end
57
+
58
+ @events = events
59
+
60
+ # @show = params[:show] || 20
61
+ # @page = params[:page] || 1
62
+ # if @show == 'all'
63
+ # @events = events
64
+ # else
65
+ # @events = events.page(@page).per(@show)
66
+ # end
67
+ end
68
+
69
+ def event_params
70
+ params.require(:event).permit(:name, :description, :event_set_id, :calendar_id, :all_day, :url, :start, :finish, :timezone, :venue_id, :venue_name)
71
+ end
72
+
73
+ end
74
+ end
@@ -0,0 +1,92 @@
1
+ module Droom::Api
2
+ class UsersController < Droom::Api::ApiController
3
+
4
+ before_filter :assert_local_request
5
+
6
+ before_filter :get_users, only: [:index]
7
+ before_filter :find_or_create_user, only: [:create]
8
+ load_resource find_by: :uid, class: "Droom::User"
9
+
10
+ def index
11
+ render json: @users
12
+ end
13
+
14
+ def show
15
+ render json: @user
16
+ end
17
+
18
+ # This is a almost always a preliminary call at the initial auth stage,
19
+ # so the client is not yet setting auth headers. We look for a token in params too.
20
+ #
21
+ def authenticate
22
+ token = params[:tok]
23
+ if @user = Droom::User.find_by(authentication_token: token)
24
+ render json: @user
25
+ else
26
+ head :unauthorized
27
+ end
28
+ end
29
+
30
+ # deauth is used to achieve single-sign-out. It changes the auth token and session id
31
+ # so that neither the data room session cookie nor the domain auth cookie can identify a user.
32
+ #
33
+ def deauthenticate
34
+ token = params[:tok]
35
+ if @user = Droom::User.find_by(authentication_token: token)
36
+ @user.clear_session_id!
37
+ @user.reset_authentication_token!
38
+ render json: @user
39
+ else
40
+ head :unauthorized
41
+ end
42
+ end
43
+
44
+ def update
45
+ @user.update_attributes(user_params)
46
+ render json: @user
47
+ end
48
+
49
+ def create
50
+ if @user && @user.persisted?
51
+ render json: @user
52
+ else
53
+ render json: { errors: @user.errors.to_a }
54
+ end
55
+ end
56
+
57
+ def destroy
58
+ @user.destroy
59
+ head :ok
60
+ end
61
+
62
+ protected
63
+
64
+ def find_or_create_user
65
+ if params[:user]
66
+ if params[:user][:uid].present?
67
+ @user = Droom::User.where(uid: params[:user][:uid]).first
68
+ end
69
+ if params[:user][:email].present?
70
+ @user ||= Droom::User.where(email: params[:user][:email]).first
71
+ end
72
+ end
73
+ params = user_params
74
+ @user ||= Droom::User.create(user_params)
75
+ end
76
+
77
+ def get_users
78
+ @users = Droom::User.in_name_order
79
+ @users = @users.where(person_uid: params[:person_uid]) if params[:person_uid].present?
80
+ @users = @users.matching_in_col(:family_name, params[:name_q]) if params[:name_q].present?
81
+ @users = @users.matching_in_col(:email, params[:email_q]) if params[:email_q].present?
82
+ @users = @users.matching(params[:q]) if params[:q].present?
83
+ @users = @users.limit(params[:limit]) if params[:limit].present?
84
+ @users
85
+ end
86
+
87
+ def user_params
88
+ params.require(:user).permit(:uid, :person_uid, :title, :family_name, :given_name, :chinese_name, :honours, :email, :phone, :description, :address, :post_code, :country_code, :mobile, :organisation_id, :female, :defer_confirmation, :send_confirmation, :password, :password_confirmation, :confirmed, :confirmed_at, :image)
89
+ end
90
+
91
+ end
92
+ end
@@ -0,0 +1,71 @@
1
+ module Droom::Api
2
+ class VenuesController < Droom::Api::ApiController
3
+ before_filter :get_venues, only: [:index]
4
+ before_filter :find_or_create_venue, only: [:create]
5
+ load_resource find_by: :slug, class: "Droom::Venue"
6
+ # after_filter :set_pagination_headers, only: [:index]
7
+
8
+ def index
9
+ render json: @venues
10
+ end
11
+
12
+ def show
13
+ render json: @venue
14
+ end
15
+
16
+ def update
17
+ @venue.update_attributes(venue_params)
18
+ render json: @venue
19
+ end
20
+
21
+ def create
22
+ render json: @venue
23
+ end
24
+
25
+ def destroy
26
+ @venue.destroy
27
+ head :ok
28
+ end
29
+
30
+ protected
31
+
32
+ def find_or_create_venue
33
+ if params[:venue]
34
+ if params[:venue][:slug].present?
35
+ @venue = Droom::Venue.where(slug: params[:venue][:slug]).first
36
+ end
37
+ if params[:venue][:name].present?
38
+ @venue ||= Droom::Venue.where(name: params[:venue][:name]).first
39
+ end
40
+ end
41
+ @venue ||= Droom::Venue.create(venue_params)
42
+ end
43
+
44
+ def build_venue
45
+ @venue = Droom::Venue.new
46
+ end
47
+
48
+ def get_venues
49
+ venues = Droom::Venue.in_name_order
50
+
51
+ if params[:q].present?
52
+ @fragments = params[:q].split(/\s+/)
53
+ @fragments.each { |frag| venues = venues.matching(frag) }
54
+ end
55
+ @venues = venues
56
+
57
+ # @show = params[:show] || 20
58
+ # @page = params[:page] || 1
59
+ # if @show == 'all'
60
+ # @venues = venues
61
+ # else
62
+ # @venues = venues.page(@page).per(@show)
63
+ # end
64
+ end
65
+
66
+ def venue_params
67
+ params.require(:venue).permit(:name, :lat, :lng, :address, :post_code, :country_code)
68
+ end
69
+
70
+ end
71
+ end
@@ -3,10 +3,7 @@ module Droom
3
3
  respond_to :html, :json, :rss, :ics
4
4
  layout :no_layout_if_pjax
5
5
 
6
- before_filter :authenticate_user!
7
- before_filter :get_calendar, :only => :show
8
- before_filter :get_calendars, :only => :index
9
- before_filter :require_admin!, :except => :show
6
+ load_and_authorize_resource
10
7
 
11
8
  def show
12
9
  respond_with @calendar
@@ -17,13 +14,10 @@ module Droom
17
14
  end
18
15
 
19
16
  protected
20
-
21
- def get_calendars
22
- @calendars = Droom::Calendar.all
17
+
18
+ def calendar_parameters
19
+ params.require(:calendar).permit(:events_private, :documents_private)
23
20
  end
24
21
 
25
- def get_calendar
26
- @calendar = Droom::Calendar.find(params[:id])
27
- end
28
22
  end
29
23
  end
@@ -1,13 +1,16 @@
1
1
  module Droom
2
- class UserConfirmationsController < Devise::ConfirmationsController
2
+ class ConfirmationsController < Devise::ConfirmationsController
3
3
 
4
4
  # If user not yet confirmed, show password form (rather than just confirming, as is normal)
5
5
  # If already confirmed, allow devise to do whatever a devise does.
6
6
  #
7
7
  def show
8
- if self.resource = resource_class.find_by_id_and_confirmation_token(params[:id], params[:confirmation_token])
9
- redirect_to after_sign_in_path_for(resource) if resource.confirmed?
10
- # or we render user_confirmations/show
8
+ if self.resource = resource_class.confirm_by_token(params[:confirmation_token])
9
+ if resource.confirmed?
10
+ redirect_to after_sign_in_path_for(resource)
11
+ else
12
+ render
13
+ end
11
14
  elsif user_signed_in?
12
15
  redirect_to after_sign_in_path_for(current_user)
13
16
  else
@@ -46,9 +49,7 @@ module Droom
46
49
  protected
47
50
 
48
51
  def permitted_params
49
- params[:user].slice(:forename, :name, :password, :password_confirmation)
50
- # for rails 4
51
- #params.require(:user).permit(:first_name, :last_name, :password, :password_confirmation)
52
+ params.require(:user).permit(:family_name, :given_name, :chinese_name, :password, :password_confirmation)
52
53
  end
53
54
 
54
55
  end
@@ -1,29 +1,12 @@
1
1
  module Droom
2
2
  class DashboardController < Droom::EngineController
3
3
  respond_to :html, :js
4
- layout :normal_unless_pjax
5
-
6
- before_filter :authenticate_user!
4
+ layout :no_layout_if_pjax
5
+ skip_authorization_check
7
6
 
8
7
  def index
9
- @panel = session[:panel] || "search"
10
- session[:panel] = nil
11
- render
12
- end
13
-
14
- def page
15
8
 
16
9
  end
17
10
 
18
- protected
19
-
20
- def normal_unless_pjax
21
- if request.headers['X-PJAX']
22
- false
23
- else
24
- Droom.layout
25
- end
26
- end
27
-
28
11
  end
29
12
  end