droom 0.4.3 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,33 @@
1
+ - user ||= @user
2
+
3
+ #user
4
+ .header
5
+ = link_to "X", '#', :class => "closer", :data => {:action => "close"}
6
+ %h2.titlebar
7
+ = t :profile
8
+
9
+ .user
10
+ .mugshot.full{:style => "background-image: url(#{user.image.url('thumb')})"}
11
+ .detail
12
+ %h3
13
+ = user.colloquial_name
14
+
15
+ %p.contact
16
+ - if user.organisation
17
+ %strong
18
+ = user.organisation.name
19
+ %br
20
+ - if user.email?
21
+ = mail_to user.email
22
+ - if user.email? && user.phone?
23
+ = t :or
24
+ - if user.phone?
25
+ = user.phone
26
+
27
+ - if Droom.use_biogs?
28
+ .description
29
+ - if user.description?
30
+ = sanitize(user.description.html_safe)
31
+ - else
32
+ %p
33
+ = t :no_user_description
@@ -0,0 +1,28 @@
1
+ - tabled ||= nil
2
+ - user ||= tabled || @user
3
+ - rowid = "user_#{user.id}"
4
+ - cssclass = "user"
5
+
6
+ %tr{:id => rowid, :class => cssclass, data: {refreshable: true, url: user_url(user, view: 'tabled', format: :js)}}
7
+ %td.name
8
+ = link_to user.informal_name, edit_user_url(user), :data => {:action => "popup", :affected => "##{rowid}"}
9
+
10
+ %td.email
11
+ = mail_to user.email
12
+
13
+ %td.confirmed.toggle{:data => {:hoverable => true}}
14
+ - if user.confirmed?
15
+ %span.yes
16
+ - else
17
+ = link_to " ", user_url(user, :user => { :confirm => true }, :format => :js), :class => "no", :method => :put, :remote => true, :data => {:action => "affect", :affected => "##{rowid}" }
18
+
19
+ %td.d.admin.toggle{:data => {:hoverable => true}}
20
+ - if user.admin?
21
+ = link_to " ", user_url(user, :user => { :admin => false }, :format => :js), :class => "yes", :method => :put, :remote => true, :data => {:action => "affect", :affected => "##{rowid}" }
22
+ - else
23
+ = link_to " ", user_url(user, :user => { :admin => true }, :format => :js), :class => "no", :method => :put, :remote => true, :data => {:action => "affect", :affected => "##{rowid}" }
24
+
25
+ - groups = Droom::Group.all
26
+ - groups.each_with_index do |group, i|
27
+ %td.toggle.group{:class => "g_#{group.id} #{'d' if i == groups.length-1}", :data => {:hoverable => true}}
28
+ = render :partial => "droom/memberships/toggle", :locals => {:group => group, :user => user}
@@ -0,0 +1,2 @@
1
+ require 'chronic'
2
+ Chronic.time_class = Time.zone
@@ -1,3 +1,5 @@
1
+ require 'devise/strategies/cookie_authenticatable'
2
+
1
3
  # Use this hook to configure devise mailer, warden hooks and so forth.
2
4
  # Many of these configuration options can be set straight in your model.
3
5
  Devise.setup do |config|
@@ -70,7 +72,8 @@ Devise.setup do |config|
70
72
  # Notice that if you are skipping storage for all authentication paths, you
71
73
  # may want to disable generating routes to Devise's sessions controller by
72
74
  # passing :skip => :sessions to `devise_for` in your config/routes.rb
73
- config.skip_session_storage = [:http_auth]
75
+ # config.skip_session_storage = [:http_auth]
76
+ config.skip_session_storage = [:http_auth, :token_auth]
74
77
 
75
78
  # ==> Configuration for :database_authenticatable
76
79
  # For bcrypt, this is the cost for hashing the password and defaults to 10. If
@@ -236,5 +239,35 @@ Devise.setup do |config|
236
239
  #
237
240
  # When using omniauth, Devise cannot automatically set Omniauth path,
238
241
  # so you need to do it manually. For the users scope, it would be:
239
- config.omniauth_path_prefix = "/droom/users/auth"
242
+ # config.omniauth_path_prefix = "/droom/users/auth"
243
+
244
+ config.warden do |manager|
245
+ # for shared-cookie auth
246
+ manager.strategies.add(:cookie_authenticatable, Devise::Strategies::CookieAuthenticatable)
247
+ manager.default_strategies :cookie_authenticatable, :database_authenticatable, scope: :user
248
+ end
249
+
250
+ # Set shared domain cookie on sign in or any other user-identifying step
251
+ #
252
+ Warden::Manager.after_set_user do |user, warden, options|
253
+ warden.raw_session["session_validity_check"] = user.reset_session_id!
254
+ Droom::AuthCookie.new(warden.cookies).set(user)
255
+ end
256
+
257
+ # Unset shared domain cookie on sign out.
258
+ #
259
+ Warden::Manager.before_logout do |user, warden, options|
260
+ Droom::AuthCookie.new(warden.cookies).unset
261
+ user.clear_session_id! if user
262
+ end
263
+
264
+ # Sign out unless session id is valid, if user retrieved from session
265
+ #
266
+ Warden::Manager.after_fetch do |user, warden, options|
267
+ unless user.session_id == warden.raw_session["session_validity_check"]
268
+ warden.logout
269
+ throw :warden, message: :unauthenticated
270
+ end
271
+ end
272
+
240
273
  end
@@ -1,11 +1,7 @@
1
1
  require 'paperclip'
2
2
 
3
- Paperclip.interpolates :dav_root do |attachment, style|
4
- Droom.dav_root
5
- end
6
-
7
- Paperclip.interpolates :person do |attachment, style|
8
- attachment.instance.person_id
3
+ Paperclip.interpolates :user do |attachment, style|
4
+ attachment.instance.user_id
9
5
  end
10
6
 
11
7
  # Slug in this context will be the identifying string for either the group or the event
@@ -24,3 +20,12 @@ Paperclip.interpolates :category_and_slug do |attachment, style|
24
20
  fragment = "#{fragment}/#{attachment.instance.category.slug}" if attachment.instance.category
25
21
  fragment
26
22
  end
23
+
24
+ require 'paperclip/media_type_spoof_detector'
25
+ module Paperclip
26
+ class MediaTypeSpoofDetector
27
+ def spoofed?
28
+ false
29
+ end
30
+ end
31
+ end
@@ -26,7 +26,7 @@ en:
26
26
  failure: "Could not authenticate you from %{kind} because \"%{reason}\"."
27
27
  success: "Successfully authenticated from %{kind} account."
28
28
  passwords:
29
- no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
29
+ no_token: "You can't access this page without coming from a password reset email. If you have come from a password reset email, please make sure you used the full URL provided."
30
30
  send_instructions: "You will receive an email with instructions about how to reset your password in a few minutes."
31
31
  send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes."
32
32
  updated: "Your password was changed successfully. You are now signed in."
@@ -2,61 +2,75 @@
2
2
  # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
3
 
4
4
  en:
5
- activerecord:
6
- attributes:
7
- droom:
8
- document:
9
- category: "Category"
10
- name: "Name"
11
- filename: "Filename"
12
- filesize: "Size"
13
- created_at: "Created"
14
- attached_to: "Attached to"
15
- name: "Document name"
16
- description: "Document description"
17
- event:
18
- name: "Event name"
19
- venue_name: "Choose or add a location"
20
- start_time: "Time"
21
- finish_time: "Finish (optional)"
22
- start_date: "Date"
23
- calendar_id: "Calendar"
24
- private: "hidden unless attending"
25
- folder:
26
- name: "Folder name"
27
- organisation:
28
- name: "Name"
29
- url: "Web link"
30
- description: "Mission and description"
31
- person:
32
- invite_on_creation: "Invite on creation"
33
- admin_user: "...as admin user"
34
- post_line1: "Address"
35
- post_line2: ""
36
- post_city: "City"
37
- post_region: "Region"
38
- post_country: "Country"
39
- post_code: "Postcode"
40
- dob: "Date of birth"
41
- organisation_id: "Organisation"
42
- scrap:
43
- scraptype:
44
- image: "Image"
45
- scraptype_text: "Text"
46
- scraptype_video: "Video"
47
- scraptype_link: "Link"
48
- scraptype_quote: "Quote"
49
- user:
50
- name: "Preferred name"
51
- email: "Private email address"
52
- update_person_email: "Set your public address to match"
5
+ helpers:
6
+ label:
7
+ document:
8
+ category: "Category"
9
+ name: "Name"
10
+ filename: "Filename"
11
+ filesize: "Size"
12
+ created_at: "Created"
13
+ attached_to: "Attached to"
14
+ name: "Document name"
15
+ description: "Document description"
16
+ event:
17
+ name: "Event name"
18
+ venue_name: "Choose or add a location"
19
+ start_time: "Time"
20
+ finish_time: "Finish (optional)"
21
+ start_date: "Date"
22
+ calendar_id: "Calendar"
23
+ private: "hidden unless attending"
24
+ group:
25
+ name: "Group name"
26
+ description: "Notes"
27
+ directory: "Show in directory"
28
+ folder:
29
+ name: "Folder name"
30
+ slug: "Folder path"
31
+ organisation:
32
+ name: "Name"
33
+ url: "Web link"
34
+ description: "Mission and description"
35
+ permission:
36
+ service_id: "Service"
37
+ name: "Title or link text"
38
+ url: "Link destination"
39
+ body: "Body text"
40
+ scrap:
41
+ name: "Title"
42
+ url: "Link destination"
43
+ body: "Body text or quote"
44
+ note: "Caption"
45
+ scraptype_image: "Image"
46
+ scraptype_text: "Text"
47
+ scraptype_video: "Video"
48
+ scraptype_link: "Link"
49
+ scraptype_quote: "Quote"
50
+ service:
51
+ name: "Name"
52
+ description: "Notes"
53
+ slug: "Key"
54
+ user:
55
+ given_name: "Given name"
56
+ family_name: "Family name"
57
+ chinese_name: "中国姓名"
58
+ email: "Email"
59
+ phone: "Telephone"
60
+ mobile: "Mobile/cell"
61
+ address: "Postal address"
62
+ dob: "Date of birth"
63
+ organisation_id: "Organisation"
64
+ group_ids: "Group memberships"
65
+ send_confirmation: "Invite now"
66
+ admin: "Administrator?"
67
+ gender: "Gender:"
68
+ gender_f: "female"
69
+ gender_m: "male"
70
+ group_ids: "Groups"
71
+ send_confirmation: "Send an invitation message when saved"
72
+ defer_confirmation: "Send no email"
53
73
  preferences:
54
- dav:
55
- enabled?: "Use DAV folder"
56
- strategy:
57
- everything: "Sync everything"
58
- relevant: "Sync only relevant documents"
59
- clicked: "Copy on command only"
60
74
  dropbox:
61
75
  strategy:
62
76
  everything: "Sync everything"
@@ -77,36 +91,48 @@ en:
77
91
  next: "»"
78
92
  account: "Account"
79
93
  action: "*"
94
+ active: "active"
80
95
  admin: "Admin"
81
96
  advanced_search: "Search terms"
82
97
  advanced_search_link: "...advanced search"
83
98
  quick_search_prompt: "Type anything here"
84
99
  attachments: "Attachments"
85
100
  attending: "Attending"
86
- by_name: "Search by name or filename"
87
- by_name_or_email: "Search by name or email"
88
101
  cancel: "cancel"
89
102
  mon: "MON"
90
103
  devices: "Devices"
91
104
  dom: "00"
92
105
  year: "YEAR"
93
- add_event: "add an event"
94
- add_document: "add a document"
106
+ access_control: "Access control"
107
+ add_event: "Add Event"
108
+ add_document: "Add document"
95
109
  add_document_to: "Add a document to the"
96
- add_folder: "add a folder"
97
- add_root_folder: "add a new root folder"
98
- add_member: "add group member"
110
+ add_folder: "Add Folder"
111
+ add_root_folder: "Add root folder"
112
+ add_member: "Add group member"
99
113
  add_member_to: Add a member to the
100
- add_page: "add a page"
101
- add_person: "add a person"
102
- add_group: "add a group"
114
+ add_page: "Add page"
115
+ add_permission: "Add a permission"
116
+ add_group: "Add group"
117
+ add_new_user: "Invite a new data room user"
118
+ add_permission: "Add permission"
119
+ add_service: "Add service"
120
+ add_subfolder: Add sub-folder
103
121
  add_to_stream: "add to stream"
104
- add_subfolder: add a sub-folder
105
- by: "by"
122
+ add_user: "Add user"
106
123
  added_to: "has been added to '%{group}'."
124
+ backto: "what you were doing before"
125
+ by: "by"
126
+ by_name: "Search by name or filename"
127
+ by_name_or_email: "Search by name or email"
128
+ by_title_or_filename: "by title or filename"
129
+ calendar: "Calendar"
130
+ calendar_introduction: 'This is a chronological list of all our future events, with the next first.<br />You can also see a similar <a href="%{url}">list of all past events</a>.'
131
+ calendar_past_introduction: 'This is a chronological list of all our past events, with the most recent first.<br />You can also see a similar <a href="%{url}">list of events coming up</a>.'
107
132
  continue: "Continue"
108
133
  copy: "copy"
109
134
  dashboard: "Dashboard"
135
+ directory_introduction: "The directory organises people by group. To find someone quickly, start typing their name on the right."
110
136
  document_created: "Document '%{name}' created"
111
137
  download_folder: "download as zipfile"
112
138
  hello: "Hello world"
@@ -116,28 +142,33 @@ en:
116
142
  clear_search: "Clear search"
117
143
  click_to_choose_file: "Click to choose a file"
118
144
  click_to_upload: "Click here to choose an image file"
119
- dav_preferences: "Document reader preferences"
145
+ close: "Close"
120
146
  drop_to_upload: "or drop a picture in this box"
121
147
  confirm_delete_document: "Are you sure you want to delete the document '%{name}'? This cannot be undone."
122
148
  confirm_delete_folder: "Are you sure you want to delete the folder '%{path}'? This will permanentely delete all the documents in the folder."
123
149
  confirm_delete_event: "Are you sure you want to delete the event '%{name}'? This cannot be undone."
124
150
  confirm_delete_group: "Are you sure you want to delete the group '%{name}'? Its members will remain the system but the group cannot be retrieved."
125
151
  confirm_delete_page: "Are you sure you want to delete the page '%{title}'? This cannot be undone."
126
- confirm_delete_person: "Are you sure you want to delete the person '%{name}'? This cannot be undone."
152
+ confirm_delete_permission: "Are you sure you want to delete the permission '%{name}' from the '%{service_name}' service? All related grants will be deleted."
153
+ confirm_delete_service: "Are you sure you want to delete the service '%{name}' and all associated permissions? This cannot be undone"
154
+ confirm_delete_user: "Are you sure you want to delete the person '%{name}'? This cannot be undone."
127
155
  confirm_remove_document: "Are you sure you want to remove the document '%{name}'?"
128
156
  confirm_remove_member: "Are you sure you want to remove '%{name}' from '%{group}'?"
129
157
  confirm_uninvite_group: "Are you sure you want to remove '%{name}' from '%{event_name}'?"
130
158
  confirm_uninvite_person: "Are you sure you want to remove '%{name}' from '%{event_name}'?"
131
159
  contact_information_unavailable: "No contact"
132
160
  copy_to_dropbox: "Copy folder to dropbox"
133
- delete_event: "remove event"
134
- delete_folder: "delete folder"
135
- delete_group: "delete group"
136
- delete_scrap: "remove"
137
- delete_person: "delete person"
161
+ delete_event: "Delete Event"
162
+ delete_folder: "Delete Folder"
163
+ delete_group: "Delete Group"
164
+ delete_scrap: "Remove"
165
+ delete_user: "Delete Person"
166
+ delete_service: "Delete Service"
167
+ delete_permission: "Delete Permission"
138
168
  confirm_delete_scrap: "Are you sure you want to remove this %{type} scrap?"
139
169
  containing: "containing"
140
- detach_upload: "detach upload"
170
+ detach_upload: "Detach Upload"
171
+ dropbox_access_revoked: "We have detached from your dropbox. You can delete the hkfx folder."
141
172
  attachment_count:
142
173
  zero: "No documents attached."
143
174
  one: "One document attached."
@@ -159,16 +190,22 @@ en:
159
190
  dropbox_copy_personal: "Copy only the most useful folders"
160
191
  dropbox_copy_topics: "Copy only selected topics"
161
192
  dropbox_copy_selected: "Copy only when you click"
162
- dropbox_introduction: "We can copy document folders to your dropbox either automatically or in response to your selections. They will be placed within a new '%{name}' folder. To begin, please click the link below and log into your dropbox."
193
+ dropbox_introduction: "This will create a '%{name}' folder in your dropbox into which you can copy folders and documents."
163
194
  edit: "Edit"
164
- edit_event: "edit event"
165
- edit_folder: "edit folder"
166
- edit_group: "edit group"
167
- edit_person: "edit person"
168
- edit_scrap: "edit"
169
- edit_profile: "edit profile"
170
- edit_organisation: "edit organisation"
171
- edit_account: "edit preferences"
195
+ edit_account: "Edit account settings"
196
+ edit_account_of: "Edit account settings for %{name}"
197
+ edit_event: "Edit event"
198
+ edit_event_folder: "Edit event folder"
199
+ edit_folder: "Edit folder"
200
+ edit_group: "Edit group"
201
+ edit_person: "Edit person"
202
+ edit_profile: "Edit profile"
203
+ edit_profile_of: "Edit profile for %{name}"
204
+ edit_scrap: "Edit"
205
+ edit_organisation: "Edit organisation"
206
+ edit_permission: "Edit permission"
207
+ edit_service: "Edit service"
208
+ edit_user: "Edit user"
172
209
  edit_your_preferences: "Edit your account settings"
173
210
  edit_your_preferences_note: "These are administrative settings like your password and private email address. "
174
211
  edit_your_profile: "Edit your profile"
@@ -179,18 +216,27 @@ en:
179
216
  events_in: "Events in %{period}"
180
217
  events_on: "Events on %{day}"
181
218
  event_created: "Event '%{name}' created"
219
+ event_introduction: ""
220
+ event_no_description: "No description available"
182
221
  expel: "remove from group"
222
+ file_under: "File under"
183
223
  find_documents: "Find documents"
224
+ find_document_notes: "Type a fragment of a filename or title here to see all matching documents. Full contents search will be added soon."
184
225
  find_people: "Find people"
226
+ find_people_notes: "The quickest way to find a particular person is to start typing their name or email address here."
185
227
  folder: "folder"
186
228
  follow_stream: "Follow the stream in an RSS reader"
229
+ future_events: "Events coming up"
187
230
  group: "group"
188
231
  group_admin: "Directory"
189
232
  group_created: "Group '%{name}' created"
233
+ invite_person: "invite a new person"
234
+ invite_to_group: "Invite and add to group"
190
235
  calendar: "Calendar"
191
236
  library: "Library"
192
237
  networks: "Networks"
193
238
  next: "Next"
239
+ no_events: "No events to display."
194
240
  normal_RSS_link: "normal RSS link"
195
241
  personal_RSS_link: "personal link"
196
242
  previous: "Previous"
@@ -201,13 +247,14 @@ en:
201
247
  update_person_email: "also update your public email address"
202
248
  your_preferences_saved: "Thank you. Your preferences have been updated"
203
249
  posted: "Posted"
250
+ posted_by: "posted by"
204
251
  directory: "Directory"
205
252
  hide_empty_folders: "hide empty folders"
206
253
  invite: "Invite"
207
254
  invite_group: "invite a group"
208
255
  invite_group_to: "Invite a group to %{name}"
209
- invite_person: "invite a person"
210
- invite_person_to: "Invite a person to %{name}"
256
+ invite_user: "Invite a new user"
257
+ invite_user_to: "Invite a person to %{name}"
211
258
  group_name: "Name"
212
259
  group_description: "Description"
213
260
  invitations_highlighted: "Events to which you are invited will be highlighted."
@@ -216,7 +263,13 @@ en:
216
263
  copy_to_dropbox: "copy to dropbox"
217
264
  loading_people: "Loading people"
218
265
  loading_documents: "Loading documents"
219
-
266
+ masthead:
267
+ admin: "Admin"
268
+ configuration: "Configuration"
269
+ search: "Search"
270
+ message_sent: "Message sent"
271
+ no_attachments: "Nothing has been attached"
272
+ no_invitations: "Nobody has been invited"
220
273
  page_title: "Page title"
221
274
  page_slug: "Slug"
222
275
  page_video_id: "Youtube video id"
@@ -225,8 +278,11 @@ en:
225
278
  page_slug_explanation: "The 'slug' is a unique identifier that we use to build an address for this page. Users will find the page at /help/slug. If you leave this field blank we will derive a slug automatically from the page title."
226
279
  page_summary_explanation: "The page summary is a two- or three-line description that we use whenever this page appears in a list. You would normally see it on the help index page."
227
280
  page_youtube_explanation: "Soon there will be a little video-finding gadget here, but to start with please paste in a video id. The embedding will be handled automatically. Omit if not relevant."
228
-
229
281
  password_notice: "You must choose a password before you can proceed (unless you remember your old one: in that case you can just log in)."
282
+ password_reset_complete: "Thank you for persevering with all the account administration. Your password has been reset and you have been signed in automatically."
283
+ password_reset_instructions: "Please enter your email address below. A message will be sent containing a link that will let you reset your password."
284
+ password_reset_message_sent: "A message has been sent to your email address containing a link that will let you reset your password. Please allow a few minutes for it to arrive, and keep an eye on your spam folder. The address it will come from is %{sender}."
285
+ password_reset_welcome: "Please use the form below to set a new password for your account. A confirmation box will appear when your password meets the requirements, and the submit button will go green and become clickable when the passwords match."
230
286
  person_title: "Title"
231
287
  person_forename: "Forename"
232
288
  person_name: "Name"
@@ -239,10 +295,13 @@ en:
239
295
  person_post_region: "Region"
240
296
  person_post_country: "Country"
241
297
  person_post_code: "Post code"
298
+ profile: "Profile"
299
+ send_message: "Send Message"
242
300
  has_been_created: "has been added to the system"
243
301
  and_invited: "and invited to log in."
244
302
  new_membership_instructions: "Start typing a name here and a list of possible matches will appear. Click on someone to add them to the %{name} group."
245
303
  new_event_note: ""
304
+ no_user_description: "This person has not yet supplied a description of him or herself."
246
305
  type_name: "Start typing a name"
247
306
  profile: "Profile"
248
307
  search: "Search"
@@ -264,10 +323,12 @@ en:
264
323
  loading_stream: "Loading stream: please wait."
265
324
  finish_time: "Finish?"
266
325
  event_url: "Web link?"
326
+ new_user_note: "An invitation message will be sent automatically to this person. If you have assigned group membership then the invitation may be specific to the group."
267
327
  other_documents: "Other available documents"
268
328
  personal_calendar_feed: "Personal calendar subscription"
269
329
  general_calendar_feed: "General calendar subscription"
270
330
  more_in_calendar: "More future events..."
331
+ more_past_events: "More past events..."
271
332
  password_confirmation_instructions: "Please confirm your password."
272
333
  password_instructions: "Please choose a password of at least six letters."
273
334
  password_leave_same: "Leave this field blank to keep your existing password."
@@ -279,14 +340,18 @@ en:
279
340
  save_event: "Save event"
280
341
  save_document: "Save document"
281
342
  save_folder: "Save folder"
343
+ save_permission: "Save permission"
282
344
  save_person: "Save person"
345
+ save_service: "Save service"
283
346
  save_your_profile: "Save profile"
284
347
  send_reset_instructions: "Send reset instructions"
348
+ signed_in_as: "Signed in as <strong>%{name}</strong>."
285
349
  suggestions: "Suggestions"
286
- manage_folders: "manage folders"
287
- manage_groups: "manage groups"
288
- manage_users: "manage users"
289
- manage_venues: "manage locations"
350
+ manage_folders: "Folders"
351
+ manage_groups: "Groups"
352
+ manage_permissions: "Access"
353
+ manage_users: "Users"
354
+ manage_venues: "Places"
290
355
  map: "Map"
291
356
  my_future_events: "Your invitations"
292
357
  my_past_events: "Your past events"
@@ -298,31 +363,61 @@ en:
298
363
  quick_search: "Quick search"
299
364
  future_events: "Events coming up"
300
365
  event_name: "Event name"
366
+ search_youtube: "Search Youtube"
367
+ save_user: "Save user"
301
368
  slug_note: "Spaces and odd characters will be replaced with dashes"
369
+ stream_events: "Stream events"
302
370
  to: "to"
303
371
  venue_name: "Venue name"
304
372
  venue_post_code: "Post Code"
305
373
  of_the: "of the"
306
374
  preferred_name_explanation: "This is the name by which we will address you. To change your directory entry, please edit your profile."
375
+ no_future_events: "We have no current or future events to display."
376
+ no_past_events: "We have no past events to display."
307
377
  no_people: "Sorry: there are no directory entries accessible by your account."
378
+ no_results: "Sorry: nothing to show here."
308
379
  no_stream: "Nothing yet to show here."
380
+ recent_events: "Past events"
381
+ save_profile: "Save changes"
382
+ save_your_profile: "Save changes"
383
+ save_preferences: "Save changes"
384
+ save_your_preferences: "Save changes"
385
+ set_password: "Set password"
386
+ quick_search: "Quick search"
309
387
  search_still_dumb: "This is a very basic title search. Full-text coming soon."
388
+ set_password_preamble: "We notice this is the first time that your account has been used. Before we go any further, please choose a password to secure the account."
389
+ show_future_events: "future events"
390
+ show_past_events: "past events"
310
391
  scrap_title: "Title (optional)"
311
392
  unattached_folder_note: "A folder not attached to anything is visible to everyone and can be used to share documents of general interest."
312
393
  user_admin: "User admin"
394
+ sign_out: "Sign out"
313
395
  stream: "Stream"
396
+ thank_you: "Thank you"
314
397
  uninvite: "uninvite"
398
+ more_documents_count:
399
+ zero: "No more documents"
400
+ one: "one more document..."
401
+ other: "%{count} more documents..."
402
+ more_subfolders_count:
403
+ zero: "No subfolders"
404
+ one: "and one subfolder..."
405
+ other: "and %{count} subfolders..."
315
406
  more: "more..."
316
407
  accept: "accept"
317
408
  reject: "reject"
318
409
  phone_unknown: "phone unknown"
319
410
  group_already_invited: "Already invited: select to reissue any missing personal invitations."
320
- users_introduction: "Here 'people' are the people listed in the directory, and 'users' are the accounts they use to log in. The distinction is needed because a person can appear in the directory without having a login account and a user can log in to administer the site without being a person in the directory."
321
- users_warning: "Most of these columns are now clickable and can be used to make quite large changes quickly. Clicking a green button under 'directory', for example, will delete a person object and all its group memberships. Please handle with care."
411
+ users_introduction: "This is a list of everyone known to the data room. It may include many people who do not have access to the data room itself, but whom we authenticate for access to other services."
412
+ users_admin_introduction: "The main purpose of this page is to manage group membership, which also does a lot to control a person's access to our web services. To begin with only people with interesting group memberships are shown, but if you enter some search text below then the list will also show ungrouped people who match that string. It's a quick way to bring people into groups."
322
413
  your_invitations: "Your invitations"
323
414
  invitation_successful: "Success: %{name} has been invited."
324
- welcome_preamble: "Welcome to the data room. Before we do anything else, please choose a password for your account."
415
+ welcome_preamble: "Welcome to the Croucher Foundation. We notice that this is the first time you have used your Croucher Foundation account so before we go any further, please choose a password."
325
416
  hello_name: "Hello %{name}."
417
+ uk: "UK"
418
+ uk_time: "UK time"
419
+ other: "other"
420
+ would_you_like_to_return: "You probably want to return to"
326
421
  future_event_count:
327
422
  zero: "No events coming up"
328
423
  one: "One event coming up"
@@ -338,17 +433,24 @@ en:
338
433
  time:
339
434
  formats:
340
435
  natural: "%l:%M%P"
436
+ natural_date: "%d %B"
341
437
  natural_with_date: "%l:%M%P, %d %B %Y"
438
+ natural_with_year: "%-d %B %Y"
342
439
  precise: "%H:%M"
343
440
  month_and_year: "%b %Y"
441
+ minicalendar_title: "%B %Y"
442
+ minicalendar_month: "%B"
443
+ year: "%Y"
444
+ month: "%B %Y"
445
+ time_on_date: "%l:%M%P on %-d %B %Y"
344
446
  date:
345
447
  formats:
346
448
  dashed_short_date_format: "%d-%m-%Y"
347
449
  month_header: "%B %Y"
348
450
  natural: "%d %B"
349
451
  natural_full: "%l:%M%P, %d %B %Y"
350
- natural_with_year: "%d %B %Y"
351
- minimal_with_year: "%d %b %Y"
452
+ natural_with_year: "%-d %B %Y"
453
+ minimal_with_year: "%-d %b %Y"
352
454
  minicalendar_title: "%B %Y"
353
455
  minicalendar_month: "%B"
354
456
  year: "%Y"
@@ -365,13 +467,6 @@ en:
365
467
  password:
366
468
  confirmation: "The password and its confirmation do not match"
367
469
  too_short: "Your password must have at least 6 letters"
368
- msg:
369
- groups:
370
- unconfirmed: "anyone who hasn't activated their account"
371
- personed: "people in the directory"
372
- administrative: "administrators"
373
- selected: "selected users"
374
- droom/user: "users"
375
470
 
376
471
  apps:
377
472
  data_room: "Data<br />Room"