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
@@ -1,35 +1,44 @@
1
1
  Droom::Engine.routes.draw do
2
-
3
- match '/' => DAV4Rack::Handler.new(
4
- :root => Rails.root.to_s,
5
- :root_uri_path => '/',
6
- :resource_class => Droom::DavResource,
7
- :log_to => [(Rails.root + 'log/dav.log').to_s, Logger::DEBUG]
8
- ), :anchor => false, :constraints => { :subdomain => Droom.dav_subdomain }
2
+ root to: "dashboard#index", as: :dashboard
3
+
4
+ get '/help/:slug' => 'pages#show', as: 'help_page'
5
+ get '/help' => 'pages#index', as: 'help'
6
+ get '/videos.:format' => 'youtube#index', as: "videos"
7
+ get '/videos/:yt_id.:format' => 'youtube#show', as: "video"
9
8
 
10
- devise_for :users, :class_name => 'Droom::User', :module => :devise, :controllers => {:confirmations => 'droom/confirmations'}
9
+ match '/suggestions' => 'suggestions#index', as: "suggestions", via: [:get, :options]
10
+ match '/suggestions/:type' => 'suggestions#index', via: [:get, :options]
11
11
 
12
+ namespace :api, defaults: {format: 'json'}, constraints: {format: /(json|xml)/} do
13
+ get '/authenticate/:tok' => 'users#authenticate', as: 'authenticate'
14
+ get '/deauthenticate/:tok' => 'users#deauthenticate', as: 'deauthenticate'
15
+ resources :users
16
+ resources :events
17
+ resources :venues
18
+ end
19
+
20
+ devise_for :users, class_name: 'Droom::User', module: :devise, controllers: {confirmations: 'droom/users/confirmations', sessions: 'droom/users/sessions', passwords: 'droom/users/passwords'}
21
+
12
22
  # intermediate confirmation step to allow invitation without setting a password
13
23
  devise_scope :user do
14
- get "/users/:id/welcome/:confirmation_token" => "user_confirmations#show", :as => :welcome
15
- put "/users/:id/confirm" => "user_confirmations#update", :as => :confirm_password
24
+ get "/users/:id/welcome/:confirmation_token" => "users/confirmations#show", as: :welcome
25
+ patch "/users/:id/confirm" => "users/confirmations#update", as: :confirm_password
26
+ get "/users/passwords/show" => "users/passwords#show", as: :show_confirmation
27
+ get "/users/passwords/completed" => "users/passwords#completed", as: :complete_confirmation
28
+ end
29
+
30
+ resources :services do
31
+ resources :permissions
16
32
  end
17
-
18
33
 
19
- resources :users
20
34
  resources :documents
21
35
  resources :preferences
22
- resources :calendars
23
36
  resources :invitations
24
37
  resources :memberships
25
-
26
- resources :scraps do
27
- collection do
28
- match "feed/:auth_token.:format" => "scraps#index", :as => :feed
29
- end
30
- end
38
+ resources :scraps
31
39
 
32
40
  resources :events do
41
+ get "calendar", on: :collection
33
42
  resources :invitations do
34
43
  member do
35
44
  put :accept
@@ -40,52 +49,35 @@ Droom::Engine.routes.draw do
40
49
  resources :group_invitations
41
50
  resources :documents
42
51
  resources :agenda_categories
43
- collection do
44
- get "calendar"
45
- match "feed/:auth_token.:format" => "events#feed", :as => :feed
46
- end
47
52
  end
48
53
 
49
- resources :documents#, :only => [:index, :show]
54
+ resources :documents#, only: [:index, :show]
50
55
  resources :folders do
51
- get "dropbox", :on => :member, :as => :dropbox
56
+ get "dropbox", on: :member, as: :dropbox
52
57
  resources :documents
53
58
  resources :folders
54
59
  end
55
60
 
56
61
  resources :organisations do
57
- resources :people
62
+ resources :users
58
63
  end
59
64
 
60
- resources :people do
61
- get "invite", :on => :member, :as => :invite
62
- resources :events do
63
- collection do
64
- match "feed/:auth_token.:format" => "events#index", :as => :feed
65
- end
66
- end
65
+ resources :users do
66
+ get "preferences", on: :member, as: :preferences
67
+ get "admin", on: :collection
68
+ resources :events
67
69
  end
68
70
 
69
71
  resources :groups do
70
72
  resources :memberships
71
- resources :people
73
+ resources :group_permissions
72
74
  end
73
75
 
74
76
  resources :venues
75
77
  resources :pages
76
78
 
77
79
  resources :dropbox_tokens do
78
- get "/register", :on => :collection, :action => :create
80
+ get "/register", on: :collection, action: :create
79
81
  end
80
-
81
-
82
- match '/help/:slug', :to => 'pages#show', :as => 'help_page'
83
- match '/help', :to => 'pages#index', :as => 'help'
84
-
85
- match '/videos.:format', :to => 'youtube#index', :as => "videos"
86
- match '/videos/:yt_id.:format', :to => 'youtube#show', :as => "video"
87
- match '/suggestions.:format', :to => 'suggestions#index', :as => "suggestions", :defaults => {:format => 'json'}
88
- match '/suggestions/:type.:format', :to => 'suggestions#index', :defaults => {:format => 'json'}
89
82
 
90
- root :to => "dashboard#index", :as => :dashboard
91
83
  end
@@ -3,7 +3,11 @@ class Stream < ActiveRecord::Migration
3
3
  create_table :droom_scraps do |t|
4
4
  t.string :name
5
5
  t.text :body
6
- t.cropped_attachment :image
6
+ t.attachment :image
7
+ t.integer :image_offset_top
8
+ t.integer :image_offset_left
9
+ t.integer :image_scale_width
10
+ t.integer :image_scale_height
7
11
  t.integer :created_by_id
8
12
  t.string :scraptype
9
13
  t.string :note
@@ -1,7 +1,6 @@
1
1
  class CreateDroomCalendars < ActiveRecord::Migration
2
2
  def change
3
3
  create_table :droom_calendars do |t|
4
- t.integer :id
5
4
  t.string :name
6
5
  t.string :slug
7
6
  t.boolean :events_private, :default => false
@@ -0,0 +1,34 @@
1
+ class Permissions < ActiveRecord::Migration
2
+
3
+ def change
4
+ create_table :droom_services do |t|
5
+ t.string :name
6
+ t.string :slug
7
+ t.string :url
8
+ t.text :description
9
+ end
10
+
11
+ create_table :droom_permissions do |t|
12
+ t.integer :service_id
13
+ t.string :name
14
+ t.string :slug
15
+ t.text :description
16
+ t.integer :position
17
+ t.timestamps
18
+ end
19
+
20
+ create_table :droom_group_permissions do |t|
21
+ t.integer :group_id
22
+ t.integer :permission_id
23
+ t.timestamps
24
+ end
25
+
26
+ create_table :droom_user_permissions do |t|
27
+ t.integer :user_id
28
+ t.integer :group_permission_id
29
+ t.integer :permission_id
30
+ t.timestamps
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,38 @@
1
+ class UsersTakeOver < ActiveRecord::Migration
2
+ def change
3
+ add_column :droom_invitations, :user_id, :integer
4
+ add_column :droom_memberships, :user_id, :integer
5
+ add_column :droom_personal_folders, :user_id, :integer
6
+ add_column :droom_dropbox_documents, :user_id, :integer
7
+
8
+ add_index :droom_invitations, :user_id
9
+ add_index :droom_memberships, :user_id
10
+ add_index :droom_personal_folders, :user_id
11
+ add_index :droom_dropbox_documents, :user_id
12
+
13
+ user_ids_by_person = Droom::Person.all.each_with_object({}) do |person, carrier|
14
+ carrier[person.id] = person.user.id if person.user
15
+ end
16
+
17
+ Droom::Invitation.reset_column_information
18
+ Droom::Invitation.all.each do |inv|
19
+ inv.update_column :user_id, user_ids_by_person[inv.person_id]
20
+ end
21
+
22
+ Droom::Membership.reset_column_information
23
+ Droom::Membership.all.each do |mem|
24
+ mem.update_column :user_id, user_ids_by_person[mem.person_id]
25
+ end
26
+
27
+ Droom::PersonalFolder.reset_column_information
28
+ Droom::PersonalFolder.all.each do |pf|
29
+ pf.update_column :user_id, user_ids_by_person[pf.person_id]
30
+ end
31
+
32
+ Droom::DropboxDocument.reset_column_information
33
+ Droom::DropboxDocument.all.each do |dd|
34
+ dd.update_column :user_id, user_ids_by_person[dd.person_id]
35
+ end
36
+
37
+ end
38
+ end
@@ -0,0 +1,34 @@
1
+ class UserProperties < ActiveRecord::Migration
2
+ def change
3
+ add_column :droom_users, :uid, :string
4
+ add_column :droom_users, :organisation_id, :integer
5
+ add_column :droom_users, :phone, :string
6
+ add_column :droom_users, :description, :text
7
+ add_column :droom_users, :post_line1, :string
8
+ add_column :droom_users, :post_line2, :string
9
+ add_column :droom_users, :post_city, :string
10
+ add_column :droom_users, :post_region, :string
11
+ add_column :droom_users, :post_country, :string
12
+ add_column :droom_users, :post_code, :string
13
+ add_column :droom_users, :mobile, :string
14
+ add_column :droom_users, :dob, :datetime
15
+ add_column :droom_users, :private, :boolean
16
+ add_column :droom_users, :public, :boolean
17
+ add_column :droom_users, :female, :boolean
18
+ add_attachment :droom_users, :image
19
+ add_column :droom_users, :image_offset_top, :integer
20
+ add_column :droom_users, :image_offset_left, :integer
21
+ add_column :droom_users, :image_scale_width, :integer
22
+ add_column :droom_users, :image_scale_height, :integer
23
+
24
+ Droom::User.reset_column_information
25
+ Droom::Person.all.each do |p|
26
+ if u = Droom::User.find(p.user_id)
27
+ u.update_attributes p.attributes.slice(*%w{organisation_id phone description description post_line1 post_line2 post_city post_region post_country post_code mobile image})
28
+ end
29
+ end
30
+
31
+ end
32
+ end
33
+
34
+
@@ -0,0 +1,11 @@
1
+ class NoMorePeople < ActiveRecord::Migration
2
+ def change
3
+ remove_column :droom_invitations, :person_id
4
+ remove_column :droom_memberships, :person_id
5
+ remove_column :droom_personal_folders, :person_id
6
+ remove_column :droom_dropbox_documents, :person_id
7
+
8
+ drop_table :droom_people
9
+ drop_table :droom_personal_documents
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ class DirectoryGroups < ActiveRecord::Migration
2
+ def change
3
+ add_column :droom_groups, :directory, :boolean
4
+ add_column :droom_events, :confidential, :boolean
5
+ add_index :droom_groups, :directory
6
+ add_index :droom_events, :confidential
7
+ end
8
+ end
@@ -0,0 +1,16 @@
1
+ class RemoveOldAccessControl < ActiveRecord::Migration
2
+ def change
3
+ remove_column :droom_groups, :private
4
+ remove_column :droom_groups, :public
5
+ remove_column :droom_groups, :privileged
6
+
7
+ remove_column :droom_events, :private
8
+ remove_column :droom_events, :public
9
+
10
+ remove_column :droom_users, :private
11
+ remove_column :droom_users, :public
12
+
13
+ remove_column :droom_documents, :private
14
+ remove_column :droom_documents, :public
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ class MoreScrapData < ActiveRecord::Migration
2
+ def change
3
+ add_column :droom_scraps, :youtube_id, :string
4
+ add_column :droom_scraps, :url, :string
5
+
6
+ Droom::Scrap.reset_column_information
7
+ Droom::Scrap.videos.each do |scrap|
8
+ scrap.update_column(:youtube_id, scrap.body)
9
+ scrap.update_column(:body, "")
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ class InternationalNames < ActiveRecord::Migration
2
+ def change
3
+ rename_column :droom_users, :name, :family_name
4
+ rename_column :droom_users, :forename, :given_name
5
+ add_column :droom_users, :chinese_name, :string
6
+ add_column :droom_users, :gender, :string, limit: 1
7
+
8
+ Droom::User.reset_column_information
9
+ Droom::User.all.each do |u|
10
+ unless u.given_name?
11
+ names = u.family_name.split(/\s+/)
12
+ surname = names.pop
13
+ u.update_attributes(family_name: surname, given_name: names.join(' '))
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ class Honours < ActiveRecord::Migration
2
+ def change
3
+ add_column :droom_users, :honours, :string
4
+ end
5
+ end
@@ -0,0 +1,25 @@
1
+ class SimpleAddresses < ActiveRecord::Migration
2
+ def change
3
+ add_column :droom_venues, :address, :text
4
+ add_column :droom_venues, :slug, :string
5
+ add_column :droom_users, :address, :text
6
+ add_column :droom_venues, :country_code, :string
7
+ add_column :droom_users, :country_code, :string
8
+
9
+ remove_column :droom_users, :post_line1
10
+ remove_column :droom_users, :post_line2
11
+ remove_column :droom_users, :post_city
12
+ remove_column :droom_users, :post_region
13
+ remove_column :droom_users, :post_country
14
+
15
+ Droom::Venue.reset_column_information
16
+ Droom::Venue.each do |venue|
17
+ if venue.respond_to?(:postal_address)
18
+ venue.address = venue.postal_address.to_s
19
+ end
20
+ # also sets slug
21
+ venue.save
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ class EventTimeZone < ActiveRecord::Migration
2
+ def change
3
+ add_column :droom_events, :timezone, :string
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class SessionRevocable < ActiveRecord::Migration
2
+ def change
3
+ add_column :droom_users, :session_id, :string
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ class EventTypes < ActiveRecord::Migration
2
+ def change
3
+
4
+ create_table :droom_event_types do |t|
5
+ t.string :name
6
+ t.string :slug
7
+ t.text :description
8
+ t.timestamps
9
+ end
10
+
11
+ add_column :droom_events, :event_type_id, :integer
12
+ add_index :droom_events, :event_type_id
13
+
14
+ end
15
+ end
@@ -0,0 +1,46 @@
1
+ require 'devise'
2
+
3
+ module Devise
4
+ module Strategies
5
+ class CookieAuthenticatable < ::Devise::Strategies::Authenticatable
6
+
7
+ def valid?
8
+ cookie.valid?
9
+ end
10
+
11
+ def authenticate!
12
+ if fresh? && resource && validate(resource)
13
+ success!(resource)
14
+ else
15
+ pass
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def cookie
22
+ @cookie ||= Droom::AuthCookie.new(cookies)
23
+ end
24
+
25
+ def fresh?
26
+ cookie.set_since?(Time.now - Settings.auth.cookie_period.hours)
27
+ end
28
+
29
+ def resource
30
+ # returns nil when user is missing.
31
+ @resource ||= mapping.to.where(:authentication_token => cookie.token).first
32
+ end
33
+
34
+ def pass
35
+ cookie.unset
36
+ super
37
+ end
38
+ end
39
+ end
40
+
41
+ module Models
42
+ module CookieAuthenticatable
43
+ # I'm sure this is configurable away, but who can find that sort of thing in devise?
44
+ end
45
+ end
46
+ end
@@ -1,18 +1,17 @@
1
- require 'dav4rack'
2
- require 'dav4rack/resources/file_resource'
3
1
  require "droom/monkeys"
2
+ require "droom/cropper"
4
3
  require "droom/lazy_hash"
5
- require "droom/model_helpers"
6
4
  require "droom/renderers"
7
5
  require "droom/engine"
6
+ require "droom/auth_cookie"
8
7
  require "droom/validators"
9
- require "droom/dav_resource"
10
8
  require "droom/searchability"
11
9
  require "droom/taggability"
12
10
  require "droom/folders"
13
11
  require "snail"
12
+ require "youtube_it"
14
13
 
15
- module Droom
14
+ module Droom
16
15
  # Droom configuration is handled by accessors on the Droom base module.
17
16
  # Boolean items also offer the interrogative form.
18
17
 
@@ -22,6 +21,7 @@ module Droom
22
21
  :searchable_classes,
23
22
  :yt_client,
24
23
  :layout,
24
+ :devise_layout,
25
25
  :email_layout,
26
26
  :email_host,
27
27
  :email_from,
@@ -31,20 +31,18 @@ module Droom
31
31
  :margin_dashboard_modules,
32
32
  :panels,
33
33
  :scrap_types,
34
- :dav_root,
35
- :dav_subdomain,
36
- :use_forenames,
34
+ :default_scrap_type,
35
+ :use_chinese_names,
37
36
  :use_biogs,
38
37
  :use_separate_mobile_number,
39
38
  :use_titles,
39
+ :use_honours,
40
40
  :use_organisations,
41
41
  :enable_mailing_lists,
42
42
  :mailman_table_name,
43
43
  :mailing_lists_active_by_default,
44
44
  :mailing_lists_digest_by_default,
45
45
  :show_venue_map,
46
- :default_document_private,
47
- :default_event_private,
48
46
  :dropbox_app_key,
49
47
  :dropbox_app_secret,
50
48
  :dropbox_app_name,
@@ -53,10 +51,14 @@ module Droom
53
51
  :required_calendar_names,
54
52
  :stream_shared,
55
53
  :aws_bucket_name,
56
- :calendar_closed,
57
- :password_pattern
54
+ :all_events_public,
55
+ :all_documents_public,
56
+ :password_pattern,
57
+ :separate_calendars,
58
+ :second_time_zone
58
59
 
59
60
  class DroomError < StandardError; end
61
+ class AuthRequired < DroomError; end
60
62
  class PermissionDenied < DroomError; end
61
63
 
62
64
  class << self
@@ -65,7 +67,11 @@ module Droom
65
67
  end
66
68
 
67
69
  def layout
68
- @@layout ||= "droom/application"
70
+ @@layout ||= "application"
71
+ end
72
+
73
+ def devise_layout
74
+ @@devise_layout ||= "application"
69
75
  end
70
76
 
71
77
  def email_host
@@ -73,7 +79,7 @@ module Droom
73
79
  end
74
80
 
75
81
  def email_layout
76
- @@email_layout ||= "droom/email"
82
+ @@email_layout ||= "email"
77
83
  end
78
84
 
79
85
  def email_from
@@ -113,31 +119,29 @@ module Droom
113
119
  end
114
120
 
115
121
  def panels
116
- @@panels ||= %w{dropbox email rss devices readers account suggestions admin}
122
+ @@panels ||= %w{configuration search admin}
117
123
  end
118
124
 
119
125
  def scrap_types
120
126
  @@scrap_types ||= %w{image video text quote link event document}
121
127
  end
122
-
123
- # base path of DAV directory tree, relative to rails root.
124
- def dav_root
125
- @@dav_root ||= "webdav"
126
- end
127
-
128
- # subdomain constraint applied when routing to dav.
129
- def dav_subdomain
130
- @@dav_subdomain ||= /dav/
128
+
129
+ def default_scrap_type
130
+ @@default_scrap_type ||= 'text'
131
131
  end
132
132
 
133
- def use_forenames?
134
- !!@@use_forenames
133
+ def use_chinese_names?
134
+ !!@@use_chinese_names
135
135
  end
136
136
 
137
137
  def use_titles?
138
138
  !!@@use_titles
139
139
  end
140
140
 
141
+ def use_honours?
142
+ !!@@use_honours
143
+ end
144
+
141
145
  def use_biogs?
142
146
  !!@@use_biogs
143
147
  end
@@ -161,6 +165,14 @@ module Droom
161
165
  def calendar_closed?
162
166
  !!@@calendar_closed
163
167
  end
168
+
169
+ def all_events_public?
170
+ !!@@all_events_public
171
+ end
172
+
173
+ def all_documents_public?
174
+ !!@@all_documents_public
175
+ end
164
176
 
165
177
  def dropbox_app_name
166
178
  @@dropbox_app_name ||= 'droom'
@@ -185,7 +197,7 @@ module Droom
185
197
  def suggestible_classes
186
198
  @@suggestible_classes ||= {
187
199
  "event" => "Droom::Event",
188
- "person" => "Droom::Person",
200
+ "user" => "Droom::User",
189
201
  "document" => "Droom::Document",
190
202
  "group" => "Droom::Group",
191
203
  "venue" => "Droom::Venue"
@@ -193,7 +205,7 @@ module Droom
193
205
  end
194
206
 
195
207
  def add_suggestible_class(label, klass=nil)
196
- klass ||= label.titlecase
208
+ klass ||= label.camelize
197
209
  suggestible_classes[label] = klass.to_s
198
210
  end
199
211
 
@@ -213,6 +225,14 @@ module Droom
213
225
  @@required_calendar_names ||= %w{main stream}
214
226
  end
215
227
 
228
+ def separate_calendars?
229
+ !!@@separate_calendars
230
+ end
231
+
232
+ def second_time_zone?
233
+ !!@@second_time_zone
234
+ end
235
+
216
236
  def password_pattern
217
237
  @@password_pattern ||= ".{6,}"
218
238
  end
@@ -232,11 +252,6 @@ module Droom
232
252
  :dropbox => {
233
253
  :strategy => "clicked",
234
254
  :events? => true,
235
- },
236
- :dav => {
237
- :enabled? => false,
238
- :strategy => "clicked",
239
- :everything? => false,
240
255
  }
241
256
  })
242
257
  end