reduced_fat_crm 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1042) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +36 -0
  3. data/.rubocop.yml +5 -0
  4. data/.teatro.yml +3 -0
  5. data/.travis.yml +41 -0
  6. data/CHANGELOG +1923 -0
  7. data/CONTRIBUTORS +91 -0
  8. data/Capfile +25 -0
  9. data/Dockerfile +18 -0
  10. data/Gemfile +88 -0
  11. data/Gemfile.lock +430 -0
  12. data/Guardfile +24 -0
  13. data/MIT-LICENSE +21 -0
  14. data/Procfile +1 -0
  15. data/README.md +153 -0
  16. data/Rakefile +9 -0
  17. data/app/assets/images/1x1.gif +0 -0
  18. data/app/assets/images/asterisk.gif +0 -0
  19. data/app/assets/images/avatar.jpg +0 -0
  20. data/app/assets/images/blog.gif +0 -0
  21. data/app/assets/images/facebook.gif +0 -0
  22. data/app/assets/images/info.png +0 -0
  23. data/app/assets/images/info_tiny.png +0 -0
  24. data/app/assets/images/linkedin.gif +0 -0
  25. data/app/assets/images/loading.gif +0 -0
  26. data/app/assets/images/notifications.png +0 -0
  27. data/app/assets/images/skype.gif +0 -0
  28. data/app/assets/images/sortable.gif +0 -0
  29. data/app/assets/images/stars.gif +0 -0
  30. data/app/assets/images/twitter.gif +0 -0
  31. data/app/assets/javascripts/admin/fields.js.coffee +72 -0
  32. data/app/assets/javascripts/application.js.erb +41 -0
  33. data/app/assets/javascripts/crm.js.coffee +428 -0
  34. data/app/assets/javascripts/crm_chosen.js.coffee +29 -0
  35. data/app/assets/javascripts/crm_classes.js.coffee +215 -0
  36. data/app/assets/javascripts/crm_comments.js.coffee +28 -0
  37. data/app/assets/javascripts/crm_loginout.js.coffee +27 -0
  38. data/app/assets/javascripts/crm_select2.js.coffee +31 -0
  39. data/app/assets/javascripts/crm_sortable.js.coffee +32 -0
  40. data/app/assets/javascripts/crm_tags.js.coffee +22 -0
  41. data/app/assets/javascripts/crm_textarea_autocomplete.js.coffee +33 -0
  42. data/app/assets/javascripts/datepicker.js.coffee +20 -0
  43. data/app/assets/javascripts/format_buttons.js.coffee +52 -0
  44. data/app/assets/javascripts/lists.js.coffee +54 -0
  45. data/app/assets/javascripts/pagination.js.coffee +16 -0
  46. data/app/assets/javascripts/search.js.coffee +55 -0
  47. data/app/assets/javascripts/timeago.js.coffee +21 -0
  48. data/app/assets/stylesheets/about.css.scss +10 -0
  49. data/app/assets/stylesheets/admin/fields.css.scss +17 -0
  50. data/app/assets/stylesheets/advanced_search.css.scss +108 -0
  51. data/app/assets/stylesheets/application.css.erb +37 -0
  52. data/app/assets/stylesheets/base.scss +78 -0
  53. data/app/assets/stylesheets/common.scss +765 -0
  54. data/app/assets/stylesheets/ffcrm_chosen.scss +69 -0
  55. data/app/assets/stylesheets/fields.scss +27 -0
  56. data/app/assets/stylesheets/format_buttons.css.scss +40 -0
  57. data/app/assets/stylesheets/groups.css.scss +8 -0
  58. data/app/assets/stylesheets/header.scss +121 -0
  59. data/app/assets/stylesheets/index_headers.css.scss +5 -0
  60. data/app/assets/stylesheets/lists.css.scss +26 -0
  61. data/app/assets/stylesheets/print.css.scss +77 -0
  62. data/app/assets/stylesheets/rails.scss +133 -0
  63. data/app/assets/stylesheets/safari.scss +11 -0
  64. data/app/assets/stylesheets/textarea_autocomplete.scss +47 -0
  65. data/app/controllers/admin/application_controller.rb +30 -0
  66. data/app/controllers/admin/field_groups_controller.rb +83 -0
  67. data/app/controllers/admin/fields_controller.rb +118 -0
  68. data/app/controllers/admin/groups_controller.rb +65 -0
  69. data/app/controllers/admin/plugins_controller.rb +17 -0
  70. data/app/controllers/admin/settings_controller.rb +14 -0
  71. data/app/controllers/admin/tags_controller.rb +71 -0
  72. data/app/controllers/admin/users_controller.rb +144 -0
  73. data/app/controllers/application_controller.rb +276 -0
  74. data/app/controllers/authentications_controller.rb +51 -0
  75. data/app/controllers/comments_controller.rb +93 -0
  76. data/app/controllers/emails_controller.rb +18 -0
  77. data/app/controllers/entities/accounts_controller.rb +158 -0
  78. data/app/controllers/entities/campaigns_controller.rb +197 -0
  79. data/app/controllers/entities/contacts_controller.rb +178 -0
  80. data/app/controllers/entities/leads_controller.rb +256 -0
  81. data/app/controllers/entities/opportunities_controller.rb +222 -0
  82. data/app/controllers/entities_controller.rb +214 -0
  83. data/app/controllers/home_controller.rb +156 -0
  84. data/app/controllers/lists_controller.rb +40 -0
  85. data/app/controllers/passwords_controller.rb +65 -0
  86. data/app/controllers/tasks_controller.rb +219 -0
  87. data/app/controllers/users_controller.rb +159 -0
  88. data/app/helpers/accounts_helper.rb +110 -0
  89. data/app/helpers/addresses_helper.rb +17 -0
  90. data/app/helpers/admin/application_helper.rb +15 -0
  91. data/app/helpers/admin/field_groups_helper.rb +25 -0
  92. data/app/helpers/admin/fields_helper.rb +18 -0
  93. data/app/helpers/admin/plugins_helper.rb +7 -0
  94. data/app/helpers/admin/settings_helper.rb +7 -0
  95. data/app/helpers/admin/tags_helper.rb +10 -0
  96. data/app/helpers/admin/users_helper.rb +51 -0
  97. data/app/helpers/application_helper.rb +527 -0
  98. data/app/helpers/authentications_helper.rb +7 -0
  99. data/app/helpers/campaigns_helper.rb +34 -0
  100. data/app/helpers/comments_helper.rb +11 -0
  101. data/app/helpers/contacts_helper.rb +21 -0
  102. data/app/helpers/emails_helper.rb +7 -0
  103. data/app/helpers/fields_helper.rb +7 -0
  104. data/app/helpers/groups_helper.rb +7 -0
  105. data/app/helpers/home_helper.rb +66 -0
  106. data/app/helpers/javascript_helper.rb +30 -0
  107. data/app/helpers/leads_helper.rb +85 -0
  108. data/app/helpers/lists_helper.rb +7 -0
  109. data/app/helpers/opportunities_helper.rb +46 -0
  110. data/app/helpers/passwords_helper.rb +7 -0
  111. data/app/helpers/remote_link_pagination_helper.rb +8 -0
  112. data/app/helpers/tags_helper.rb +29 -0
  113. data/app/helpers/tasks_helper.rb +139 -0
  114. data/app/helpers/users_helper.rb +35 -0
  115. data/app/helpers/versions_helper.rb +32 -0
  116. data/app/inputs/date_pair_input.rb +65 -0
  117. data/app/inputs/date_time_input.rb +36 -0
  118. data/app/inputs/datetime_pair_input.rb +25 -0
  119. data/app/inputs/text_input.rb +12 -0
  120. data/app/mailers/dropbox_mailer.rb +18 -0
  121. data/app/mailers/subscription_mailer.rb +30 -0
  122. data/app/mailers/user_mailer.rb +32 -0
  123. data/app/models/entities/account.rb +142 -0
  124. data/app/models/entities/account_contact.rb +28 -0
  125. data/app/models/entities/account_opportunity.rb +26 -0
  126. data/app/models/entities/campaign.rb +116 -0
  127. data/app/models/entities/contact.rb +215 -0
  128. data/app/models/entities/contact_opportunity.rb +27 -0
  129. data/app/models/entities/lead.rb +197 -0
  130. data/app/models/entities/opportunity.rb +190 -0
  131. data/app/models/fields/core_field.rb +37 -0
  132. data/app/models/fields/custom_field.rb +148 -0
  133. data/app/models/fields/custom_field_date_pair.rb +42 -0
  134. data/app/models/fields/custom_field_datetime_pair.rb +12 -0
  135. data/app/models/fields/custom_field_pair.rb +42 -0
  136. data/app/models/fields/field.rb +129 -0
  137. data/app/models/fields/field_group.rb +63 -0
  138. data/app/models/list.rb +17 -0
  139. data/app/models/observers/entity_observer.rb +43 -0
  140. data/app/models/observers/lead_observer.rb +29 -0
  141. data/app/models/observers/opportunity_observer.rb +47 -0
  142. data/app/models/observers/task_observer.rb +31 -0
  143. data/app/models/polymorphic/address.rb +59 -0
  144. data/app/models/polymorphic/avatar.rb +55 -0
  145. data/app/models/polymorphic/comment.rb +73 -0
  146. data/app/models/polymorphic/email.rb +59 -0
  147. data/app/models/polymorphic/tag.rb +21 -0
  148. data/app/models/polymorphic/tagging.rb +8 -0
  149. data/app/models/polymorphic/task.rb +284 -0
  150. data/app/models/polymorphic/version.rb +81 -0
  151. data/app/models/setting.rb +103 -0
  152. data/app/models/users/ability.rb +59 -0
  153. data/app/models/users/authentication.rb +54 -0
  154. data/app/models/users/group.rb +13 -0
  155. data/app/models/users/permission.rb +27 -0
  156. data/app/models/users/preference.rb +50 -0
  157. data/app/models/users/user.rb +184 -0
  158. data/app/views/accounts/_account.html.haml +5 -0
  159. data/app/views/accounts/_contact_info.html.haml +37 -0
  160. data/app/views/accounts/_edit.html.haml +21 -0
  161. data/app/views/accounts/_index_brief.html.haml +32 -0
  162. data/app/views/accounts/_index_long.html.haml +42 -0
  163. data/app/views/accounts/_new.html.haml +21 -0
  164. data/app/views/accounts/_sidebar_index.html.haml +20 -0
  165. data/app/views/accounts/_sidebar_show.html.haml +57 -0
  166. data/app/views/accounts/_title_bar.html.haml +11 -0
  167. data/app/views/accounts/_top_section.html.haml +29 -0
  168. data/app/views/accounts/create.js.haml +17 -0
  169. data/app/views/accounts/destroy.js.haml +6 -0
  170. data/app/views/accounts/edit.js.haml +31 -0
  171. data/app/views/accounts/index.html.haml +18 -0
  172. data/app/views/accounts/index.js.haml +11 -0
  173. data/app/views/accounts/index.xls.builder +84 -0
  174. data/app/views/accounts/new.js.haml +11 -0
  175. data/app/views/accounts/show.html.haml +26 -0
  176. data/app/views/accounts/show.js.haml +5 -0
  177. data/app/views/accounts/update.js.haml +19 -0
  178. data/app/views/admin/custom_fields/_base_field.html.haml +21 -0
  179. data/app/views/admin/custom_fields/_check_boxes_field.html.haml +6 -0
  180. data/app/views/admin/custom_fields/_date_field.html.haml +14 -0
  181. data/app/views/admin/custom_fields/_date_pair_field.html.haml +21 -0
  182. data/app/views/admin/custom_fields/_datetime_field.html.haml +14 -0
  183. data/app/views/admin/custom_fields/_datetime_pair_field.html.haml +21 -0
  184. data/app/views/admin/custom_fields/_radio_field.html.haml +6 -0
  185. data/app/views/admin/custom_fields/_select_field.html.haml +25 -0
  186. data/app/views/admin/custom_fields/_string_field.html.haml +2 -0
  187. data/app/views/admin/field_groups/_confirm.html.haml +5 -0
  188. data/app/views/admin/field_groups/_edit.html.haml +8 -0
  189. data/app/views/admin/field_groups/_field_group.html.haml +28 -0
  190. data/app/views/admin/field_groups/_new.html.haml +10 -0
  191. data/app/views/admin/field_groups/_top_section.html.haml +14 -0
  192. data/app/views/admin/field_groups/confirm.js.haml +7 -0
  193. data/app/views/admin/field_groups/create.js.haml +14 -0
  194. data/app/views/admin/field_groups/destroy.js.haml +9 -0
  195. data/app/views/admin/field_groups/edit.js.haml +12 -0
  196. data/app/views/admin/field_groups/new.js.haml +8 -0
  197. data/app/views/admin/field_groups/update.js.haml +8 -0
  198. data/app/views/admin/fields/_field.html.haml +17 -0
  199. data/app/views/admin/fields/_form.html.haml +35 -0
  200. data/app/views/admin/fields/_sidebar_index.html.haml +1 -0
  201. data/app/views/admin/fields/_sidebar_show.html.haml +1 -0
  202. data/app/views/admin/fields/_sort_by.html.haml +10 -0
  203. data/app/views/admin/fields/_subform.html.haml +6 -0
  204. data/app/views/admin/fields/create.js.haml +17 -0
  205. data/app/views/admin/fields/destroy.js.haml +8 -0
  206. data/app/views/admin/fields/edit.js.haml +3 -0
  207. data/app/views/admin/fields/index.html.haml +34 -0
  208. data/app/views/admin/fields/show.html.haml +41 -0
  209. data/app/views/admin/fields/update.js.haml +13 -0
  210. data/app/views/admin/groups/_edit.html.haml +12 -0
  211. data/app/views/admin/groups/_form.html.haml +11 -0
  212. data/app/views/admin/groups/_group.html.haml +16 -0
  213. data/app/views/admin/groups/_new.html.haml +12 -0
  214. data/app/views/admin/groups/create.js.haml +10 -0
  215. data/app/views/admin/groups/destroy.js.haml +9 -0
  216. data/app/views/admin/groups/edit.js.haml +14 -0
  217. data/app/views/admin/groups/index.html.haml +18 -0
  218. data/app/views/admin/groups/index.js.haml +2 -0
  219. data/app/views/admin/groups/new.js.haml +9 -0
  220. data/app/views/admin/groups/show.html.haml +11 -0
  221. data/app/views/admin/groups/update.js.haml +9 -0
  222. data/app/views/admin/plugins/_plugin.html.haml +13 -0
  223. data/app/views/admin/plugins/index.html.haml +3 -0
  224. data/app/views/admin/settings/index.html.haml +3 -0
  225. data/app/views/admin/tags/_confirm.html.haml +5 -0
  226. data/app/views/admin/tags/_edit.html.haml +9 -0
  227. data/app/views/admin/tags/_new.html.haml +10 -0
  228. data/app/views/admin/tags/_tag.html.haml +29 -0
  229. data/app/views/admin/tags/_top_section.html.haml +6 -0
  230. data/app/views/admin/tags/confirm.js.haml +7 -0
  231. data/app/views/admin/tags/create.js.haml +11 -0
  232. data/app/views/admin/tags/destroy.js.haml +10 -0
  233. data/app/views/admin/tags/edit.js.haml +20 -0
  234. data/app/views/admin/tags/index.html.haml +17 -0
  235. data/app/views/admin/tags/new.js.haml +7 -0
  236. data/app/views/admin/tags/update.js.haml +9 -0
  237. data/app/views/admin/users/_confirm.html.haml +5 -0
  238. data/app/views/admin/users/_edit.html.haml +11 -0
  239. data/app/views/admin/users/_new.html.haml +11 -0
  240. data/app/views/admin/users/_profile.html.haml +54 -0
  241. data/app/views/admin/users/_sidebar_index.html.haml +2 -0
  242. data/app/views/admin/users/_user.html.haml +66 -0
  243. data/app/views/admin/users/confirm.js.haml +7 -0
  244. data/app/views/admin/users/create.js.haml +10 -0
  245. data/app/views/admin/users/destroy.js.haml +10 -0
  246. data/app/views/admin/users/edit.js.haml +20 -0
  247. data/app/views/admin/users/index.html.haml +13 -0
  248. data/app/views/admin/users/index.js.haml +2 -0
  249. data/app/views/admin/users/new.js.haml +9 -0
  250. data/app/views/admin/users/reactivate.js.haml +3 -0
  251. data/app/views/admin/users/show.html.haml +5 -0
  252. data/app/views/admin/users/suspend.js.haml +3 -0
  253. data/app/views/admin/users/update.js.haml +9 -0
  254. data/app/views/application/_auto_complete.html.haml +10 -0
  255. data/app/views/application/index.atom.builder +34 -0
  256. data/app/views/application/index.rss.builder +31 -0
  257. data/app/views/application/show.atom.builder +32 -0
  258. data/app/views/application/show.rss.builder +29 -0
  259. data/app/views/authentications/new.html.haml +19 -0
  260. data/app/views/campaigns/_campaign.html.haml +5 -0
  261. data/app/views/campaigns/_edit.html.haml +18 -0
  262. data/app/views/campaigns/_index_brief.html.haml +15 -0
  263. data/app/views/campaigns/_index_long.html.haml +20 -0
  264. data/app/views/campaigns/_metrics.html.haml +16 -0
  265. data/app/views/campaigns/_new.html.haml +18 -0
  266. data/app/views/campaigns/_objectives.html.haml +30 -0
  267. data/app/views/campaigns/_sidebar_index.html.haml +20 -0
  268. data/app/views/campaigns/_sidebar_show.html.haml +91 -0
  269. data/app/views/campaigns/_status.html.haml +24 -0
  270. data/app/views/campaigns/_title_bar.html.haml +11 -0
  271. data/app/views/campaigns/_top_section.html.haml +29 -0
  272. data/app/views/campaigns/create.js.haml +20 -0
  273. data/app/views/campaigns/destroy.js.haml +6 -0
  274. data/app/views/campaigns/edit.js.haml +31 -0
  275. data/app/views/campaigns/index.html.haml +18 -0
  276. data/app/views/campaigns/index.js.haml +11 -0
  277. data/app/views/campaigns/index.xls.builder +77 -0
  278. data/app/views/campaigns/new.js.haml +11 -0
  279. data/app/views/campaigns/show.html.haml +26 -0
  280. data/app/views/campaigns/show.js.haml +5 -0
  281. data/app/views/campaigns/update.js.haml +22 -0
  282. data/app/views/comments/_comment.html.haml +29 -0
  283. data/app/views/comments/_edit.html.haml +11 -0
  284. data/app/views/comments/_new.html.haml +35 -0
  285. data/app/views/comments/_subscription_links.html.haml +13 -0
  286. data/app/views/comments/create.js.haml +14 -0
  287. data/app/views/comments/destroy.js.haml +5 -0
  288. data/app/views/comments/edit.js.haml +11 -0
  289. data/app/views/comments/update.js.haml +9 -0
  290. data/app/views/contacts/_contact.html.haml +5 -0
  291. data/app/views/contacts/_contacts.html.haml +7 -0
  292. data/app/views/contacts/_edit.html.haml +19 -0
  293. data/app/views/contacts/_extra.html.haml +36 -0
  294. data/app/views/contacts/_index_brief.html.haml +25 -0
  295. data/app/views/contacts/_index_full.html.haml +57 -0
  296. data/app/views/contacts/_index_long.html.haml +44 -0
  297. data/app/views/contacts/_new.html.haml +20 -0
  298. data/app/views/contacts/_section_extra.html.haml +26 -0
  299. data/app/views/contacts/_section_general.html.haml +26 -0
  300. data/app/views/contacts/_sidebar_index.html.haml +0 -0
  301. data/app/views/contacts/_sidebar_show.html.haml +52 -0
  302. data/app/views/contacts/_title_bar.html.haml +11 -0
  303. data/app/views/contacts/_top_section.html.haml +45 -0
  304. data/app/views/contacts/_web.html.haml +31 -0
  305. data/app/views/contacts/create.js.haml +23 -0
  306. data/app/views/contacts/destroy.js.haml +9 -0
  307. data/app/views/contacts/edit.js.haml +34 -0
  308. data/app/views/contacts/index.html.haml +18 -0
  309. data/app/views/contacts/index.js.haml +11 -0
  310. data/app/views/contacts/index.xls.builder +104 -0
  311. data/app/views/contacts/new.js.haml +13 -0
  312. data/app/views/contacts/show.html.haml +22 -0
  313. data/app/views/contacts/show.js.haml +5 -0
  314. data/app/views/contacts/update.js.haml +24 -0
  315. data/app/views/dropbox_mailer/dropbox_notification.html.haml +9 -0
  316. data/app/views/emails/_email.html.haml +36 -0
  317. data/app/views/emails/destroy.js.haml +5 -0
  318. data/app/views/entities/_basic_search.html.haml +24 -0
  319. data/app/views/entities/_permissions.html.haml +36 -0
  320. data/app/views/entities/_search.html.haml +16 -0
  321. data/app/views/entities/_section_custom_fields.html.haml +11 -0
  322. data/app/views/entities/_sort_fields.html.haml +3 -0
  323. data/app/views/entities/_title_bar.html.haml +12 -0
  324. data/app/views/entities/attach.js.haml +21 -0
  325. data/app/views/entities/contacts.js.haml +3 -0
  326. data/app/views/entities/discard.js.haml +6 -0
  327. data/app/views/entities/leads.js.haml +3 -0
  328. data/app/views/entities/opportunities.js.haml +3 -0
  329. data/app/views/entities/subscription_update.js.haml +4 -0
  330. data/app/views/entities/versions.js.haml +3 -0
  331. data/app/views/fields/_edit_custom_field_group.html.haml +8 -0
  332. data/app/views/fields/_group.html.haml +11 -0
  333. data/app/views/fields/_group_table.html.haml +13 -0
  334. data/app/views/fields/_group_view.html.haml +10 -0
  335. data/app/views/fields/_groups.html.haml +8 -0
  336. data/app/views/fields/_sidebar_show.html.haml +9 -0
  337. data/app/views/fields/group.js.erb +3 -0
  338. data/app/views/home/_account.html.haml +29 -0
  339. data/app/views/home/_activity.html.haml +35 -0
  340. data/app/views/home/_assets_menu.html.haml +7 -0
  341. data/app/views/home/_duration_menu.html.haml +8 -0
  342. data/app/views/home/_events_menu.html.haml +8 -0
  343. data/app/views/home/_opportunity.html.haml +41 -0
  344. data/app/views/home/_options.html.haml +12 -0
  345. data/app/views/home/_task.html.haml +48 -0
  346. data/app/views/home/_users_menu.html.haml +8 -0
  347. data/app/views/home/index.atom.builder +24 -0
  348. data/app/views/home/index.html.haml +46 -0
  349. data/app/views/home/index.js.haml +7 -0
  350. data/app/views/home/index.rss.builder +20 -0
  351. data/app/views/home/options.js.haml +7 -0
  352. data/app/views/layouts/500.html.haml +17 -0
  353. data/app/views/layouts/_about.html.haml +17 -0
  354. data/app/views/layouts/_footer.html.haml +9 -0
  355. data/app/views/layouts/_header.html.haml +20 -0
  356. data/app/views/layouts/_jumpbox.html.haml +34 -0
  357. data/app/views/layouts/_sidebar.html.haml +12 -0
  358. data/app/views/layouts/_tabbed.html.haml +15 -0
  359. data/app/views/layouts/_tabless.html.haml +3 -0
  360. data/app/views/layouts/admin/_header.html.haml +14 -0
  361. data/app/views/layouts/admin/application.html.haml +24 -0
  362. data/app/views/layouts/application.html.haml +48 -0
  363. data/app/views/layouts/header.xls.builder +8 -0
  364. data/app/views/leads/_contact.html.haml +35 -0
  365. data/app/views/leads/_convert.html.haml +25 -0
  366. data/app/views/leads/_convert_permissions.html.haml +31 -0
  367. data/app/views/leads/_edit.html.haml +23 -0
  368. data/app/views/leads/_index_brief.html.haml +41 -0
  369. data/app/views/leads/_index_long.html.haml +62 -0
  370. data/app/views/leads/_lead.html.haml +5 -0
  371. data/app/views/leads/_leads.html.haml +6 -0
  372. data/app/views/leads/_new.html.haml +24 -0
  373. data/app/views/leads/_opportunity.html.haml +37 -0
  374. data/app/views/leads/_sidebar_index.html.haml +20 -0
  375. data/app/views/leads/_sidebar_show.html.haml +65 -0
  376. data/app/views/leads/_status.html.haml +36 -0
  377. data/app/views/leads/_title_bar.html.haml +16 -0
  378. data/app/views/leads/_top_section.html.haml +30 -0
  379. data/app/views/leads/_web.html.haml +31 -0
  380. data/app/views/leads/convert.js.haml +35 -0
  381. data/app/views/leads/create.js.haml +21 -0
  382. data/app/views/leads/destroy.js.haml +9 -0
  383. data/app/views/leads/edit.js.haml +33 -0
  384. data/app/views/leads/index.html.haml +18 -0
  385. data/app/views/leads/index.js.haml +11 -0
  386. data/app/views/leads/index.xls.builder +102 -0
  387. data/app/views/leads/new.js.haml +11 -0
  388. data/app/views/leads/promote.js.haml +26 -0
  389. data/app/views/leads/reject.js.haml +12 -0
  390. data/app/views/leads/show.html.haml +20 -0
  391. data/app/views/leads/show.js.haml +5 -0
  392. data/app/views/leads/update.js.haml +28 -0
  393. data/app/views/lists/_lists.html.haml +6 -0
  394. data/app/views/lists/_sidebar.html.haml +29 -0
  395. data/app/views/lists/create.js.haml +9 -0
  396. data/app/views/lists/destroy.js.haml +1 -0
  397. data/app/views/opportunities/_edit.html.haml +18 -0
  398. data/app/views/opportunities/_index_brief.html.haml +29 -0
  399. data/app/views/opportunities/_index_long.html.haml +59 -0
  400. data/app/views/opportunities/_new.html.haml +18 -0
  401. data/app/views/opportunities/_opportunities.html.haml +6 -0
  402. data/app/views/opportunities/_opportunity.html.haml +5 -0
  403. data/app/views/opportunities/_sidebar_index.html.haml +20 -0
  404. data/app/views/opportunities/_sidebar_show.html.haml +61 -0
  405. data/app/views/opportunities/_title_bar.html.haml +11 -0
  406. data/app/views/opportunities/_top_section.html.haml +59 -0
  407. data/app/views/opportunities/contacts.js.haml +3 -0
  408. data/app/views/opportunities/create.js.haml +29 -0
  409. data/app/views/opportunities/destroy.js.haml +13 -0
  410. data/app/views/opportunities/edit.js.haml +34 -0
  411. data/app/views/opportunities/index.html.haml +20 -0
  412. data/app/views/opportunities/index.js.haml +11 -0
  413. data/app/views/opportunities/index.xls.builder +71 -0
  414. data/app/views/opportunities/new.js.haml +13 -0
  415. data/app/views/opportunities/show.html.haml +22 -0
  416. data/app/views/opportunities/show.js.haml +5 -0
  417. data/app/views/opportunities/update.js.haml +27 -0
  418. data/app/views/passwords/edit.html.haml +15 -0
  419. data/app/views/passwords/new.html.haml +10 -0
  420. data/app/views/shared/_add_comment.html.haml +8 -0
  421. data/app/views/shared/_address.html.haml +44 -0
  422. data/app/views/shared/_address_show.html.haml +24 -0
  423. data/app/views/shared/_comment.html.haml +11 -0
  424. data/app/views/shared/_edit_comment.html.haml +13 -0
  425. data/app/views/shared/_empty.html.haml +8 -0
  426. data/app/views/shared/_export.html.haml +2 -0
  427. data/app/views/shared/_inline_styles.html.haml +31 -0
  428. data/app/views/shared/_naming.html.haml +9 -0
  429. data/app/views/shared/_paginate.haml +2 -0
  430. data/app/views/shared/_paginate_with_per_page.html.haml +12 -0
  431. data/app/views/shared/_recent.html.haml +4 -0
  432. data/app/views/shared/_recently.html.haml +7 -0
  433. data/app/views/shared/_search.html.haml +15 -0
  434. data/app/views/shared/_select_popup.html.haml +19 -0
  435. data/app/views/shared/_tags.html.haml +10 -0
  436. data/app/views/shared/_tasks.html.haml +10 -0
  437. data/app/views/shared/_timeline.html.haml +2 -0
  438. data/app/views/shared/_total.html.haml +4 -0
  439. data/app/views/subscription_mailer/comment_notification.text.erb +7 -0
  440. data/app/views/tasks/_assigned.html.haml +47 -0
  441. data/app/views/tasks/_completed.html.haml +25 -0
  442. data/app/views/tasks/_edit.html.haml +18 -0
  443. data/app/views/tasks/_empty.html.haml +4 -0
  444. data/app/views/tasks/_new.html.haml +14 -0
  445. data/app/views/tasks/_pending.html.haml +52 -0
  446. data/app/views/tasks/_related.html.haml +32 -0
  447. data/app/views/tasks/_selector.html.haml +8 -0
  448. data/app/views/tasks/_sidebar_index.html.haml +18 -0
  449. data/app/views/tasks/_tasks.html.haml +3 -0
  450. data/app/views/tasks/_title.html.haml +8 -0
  451. data/app/views/tasks/_top_section.html.haml +34 -0
  452. data/app/views/tasks/complete.js.haml +14 -0
  453. data/app/views/tasks/create.js.haml +39 -0
  454. data/app/views/tasks/destroy.js.haml +7 -0
  455. data/app/views/tasks/discard.js.haml +1 -0
  456. data/app/views/tasks/edit.js.haml +26 -0
  457. data/app/views/tasks/filter.js.haml +4 -0
  458. data/app/views/tasks/index.html.haml +20 -0
  459. data/app/views/tasks/index.xls.builder +49 -0
  460. data/app/views/tasks/new.js.haml +8 -0
  461. data/app/views/tasks/uncomplete.js.haml +12 -0
  462. data/app/views/tasks/update.js.haml +19 -0
  463. data/app/views/user_mailer/assigned_entity_notification.html.haml +3 -0
  464. data/app/views/user_mailer/password_reset_instructions.html.haml +6 -0
  465. data/app/views/users/_avatar.html.haml +20 -0
  466. data/app/views/users/_languages.html.haml +9 -0
  467. data/app/views/users/_password.html.haml +27 -0
  468. data/app/views/users/_profile.html.haml +67 -0
  469. data/app/views/users/_user.html.haml +33 -0
  470. data/app/views/users/_user_report.html.haml +6 -0
  471. data/app/views/users/avatar.js.haml +9 -0
  472. data/app/views/users/change_password.js.haml +13 -0
  473. data/app/views/users/edit.js.haml +9 -0
  474. data/app/views/users/index.html.haml +3 -0
  475. data/app/views/users/new.html.haml +19 -0
  476. data/app/views/users/opportunities_overview.html.haml +16 -0
  477. data/app/views/users/password.js.haml +10 -0
  478. data/app/views/users/show.html.haml +15 -0
  479. data/app/views/users/update.js.haml +9 -0
  480. data/app/views/users/upload_avatar.js.haml +7 -0
  481. data/app/views/versions/_version.html.haml +17 -0
  482. data/app/views/versions/_version_item.html.haml +8 -0
  483. data/app/views/versions/_versions.html.haml +11 -0
  484. data/bin/bundle +3 -0
  485. data/bin/rails +4 -0
  486. data/bin/rake +4 -0
  487. data/config.ru +4 -0
  488. data/config/application.rb +77 -0
  489. data/config/boot.rb +10 -0
  490. data/config/database.mysql.mac.yml +32 -0
  491. data/config/database.mysql.yml +33 -0
  492. data/config/database.postgres.docker.yml +25 -0
  493. data/config/database.postgres.yml +26 -0
  494. data/config/database.sqlite.yml +23 -0
  495. data/config/deploy.example.rb +77 -0
  496. data/config/environment.rb +10 -0
  497. data/config/environments/development.rb +46 -0
  498. data/config/environments/production.rb +66 -0
  499. data/config/environments/staging.rb +66 -0
  500. data/config/environments/test.rb +54 -0
  501. data/config/initializers/action_mailer.rb +22 -0
  502. data/config/initializers/assets.rb +14 -0
  503. data/config/initializers/authlogic.rb +6 -0
  504. data/config/initializers/backtrace_silencers.rb +7 -0
  505. data/config/initializers/constants.rb +6 -0
  506. data/config/initializers/cookies_serializer.rb +3 -0
  507. data/config/initializers/custom_field_ransack_translations.rb +17 -0
  508. data/config/initializers/filter_parameter_logging.rb +4 -0
  509. data/config/initializers/gravatar.rb +12 -0
  510. data/config/initializers/inflections.rb +16 -0
  511. data/config/initializers/locale.rb +18 -0
  512. data/config/initializers/mime_types.rb +12 -0
  513. data/config/initializers/paginate_arrays.rb +11 -0
  514. data/config/initializers/ransack.rb +20 -0
  515. data/config/initializers/relative_url_root.rb +10 -0
  516. data/config/initializers/secret_token.rb +25 -0
  517. data/config/initializers/session_store.rb +5 -0
  518. data/config/initializers/simple_form.rb +100 -0
  519. data/config/initializers/views.rb +47 -0
  520. data/config/initializers/wrap_parameters.rb +14 -0
  521. data/config/locales/cz.yml +247 -0
  522. data/config/locales/cz_fat_free_crm.yml +610 -0
  523. data/config/locales/de.yml +237 -0
  524. data/config/locales/de_fat_free_crm.yml +842 -0
  525. data/config/locales/de_ransack.yml +91 -0
  526. data/config/locales/en-GB.yml +219 -0
  527. data/config/locales/en-GB_fat_free_crm.yml +937 -0
  528. data/config/locales/en-GB_ransack.yml +91 -0
  529. data/config/locales/en-US.yml +219 -0
  530. data/config/locales/en-US_fat_free_crm.yml +937 -0
  531. data/config/locales/en-US_ransack.yml +91 -0
  532. data/config/locales/en.yml +23 -0
  533. data/config/locales/es-CL.yml +227 -0
  534. data/config/locales/es-CL_fat_free_crm.yml +929 -0
  535. data/config/locales/es-CL_ransack.yml +91 -0
  536. data/config/locales/es.yml +219 -0
  537. data/config/locales/es_fat_free_crm.yml +917 -0
  538. data/config/locales/es_ransack.yml +91 -0
  539. data/config/locales/fr-CA.yml +224 -0
  540. data/config/locales/fr-CA_fat_free_crm.yml +570 -0
  541. data/config/locales/fr.yml +227 -0
  542. data/config/locales/fr_fat_free_crm.yml +934 -0
  543. data/config/locales/it.yml +219 -0
  544. data/config/locales/it_fat_free_crm.yml +592 -0
  545. data/config/locales/ja.yml +219 -0
  546. data/config/locales/ja_fat_free_crm.yml +557 -0
  547. data/config/locales/ja_ransack.yml +91 -0
  548. data/config/locales/nl.yml +210 -0
  549. data/config/locales/nl_fat_free_crm.yml +920 -0
  550. data/config/locales/nl_ransack.yml +91 -0
  551. data/config/locales/pl.yml +230 -0
  552. data/config/locales/pl_fat_free_crm.yml +570 -0
  553. data/config/locales/pt-BR.yml +232 -0
  554. data/config/locales/pt-BR_fat_free_crm.yml +650 -0
  555. data/config/locales/ru.yml +326 -0
  556. data/config/locales/ru_fat_free_crm.yml +977 -0
  557. data/config/locales/sv-SE.yml +215 -0
  558. data/config/locales/sv-SE_fat_free_crm.yml +565 -0
  559. data/config/locales/th.rb +204 -0
  560. data/config/locales/th_fat_free_crm.yml +558 -0
  561. data/config/locales/zh-CN.yml +241 -0
  562. data/config/locales/zh-CN_fat_free_crm.yml +937 -0
  563. data/config/locales/zh-CN_ransack.yml +91 -0
  564. data/config/routes.rb +199 -0
  565. data/config/settings.default.yml +400 -0
  566. data/config/unicorn.rb +32 -0
  567. data/custom_plan.rb +9 -0
  568. data/db/demo/account_contacts.yml +24 -0
  569. data/db/demo/account_opportunities.yml +24 -0
  570. data/db/demo/accounts.yml +47 -0
  571. data/db/demo/activities.yml +16 -0
  572. data/db/demo/addresses.yml +46 -0
  573. data/db/demo/avatars.yml +16 -0
  574. data/db/demo/campaigns.yml +144 -0
  575. data/db/demo/comments.yml +30 -0
  576. data/db/demo/contact_opportunities.yml +25 -0
  577. data/db/demo/contacts.yml +70 -0
  578. data/db/demo/emails.yml +53 -0
  579. data/db/demo/field_groups.yml +14 -0
  580. data/db/demo/leads.yml +71 -0
  581. data/db/demo/opportunities.yml +48 -0
  582. data/db/demo/permissions.yml +13 -0
  583. data/db/demo/preferences.yml +13 -0
  584. data/db/demo/settings.yml +12 -0
  585. data/db/demo/tasks.yml +64 -0
  586. data/db/demo/users.yml +245 -0
  587. data/db/migrate/20100928030598_create_sessions.rb +21 -0
  588. data/db/migrate/20100928030599_create_users.rb +45 -0
  589. data/db/migrate/20100928030600_create_openid_tables.rb +23 -0
  590. data/db/migrate/20100928030601_create_accounts.rb +26 -0
  591. data/db/migrate/20100928030602_create_permissions.rb +15 -0
  592. data/db/migrate/20100928030603_create_settings.rb +15 -0
  593. data/db/migrate/20100928030604_create_preferences.rb +15 -0
  594. data/db/migrate/20100928030605_create_campaigns.rb +34 -0
  595. data/db/migrate/20100928030606_create_leads.rb +38 -0
  596. data/db/migrate/20100928030607_create_contacts.rb +38 -0
  597. data/db/migrate/20100928030608_create_opportunities.rb +27 -0
  598. data/db/migrate/20100928030609_create_account_contacts.rb +14 -0
  599. data/db/migrate/20100928030610_create_account_opportunities.rb +14 -0
  600. data/db/migrate/20100928030611_create_contact_opportunities.rb +15 -0
  601. data/db/migrate/20100928030612_create_tasks.rb +26 -0
  602. data/db/migrate/20100928030613_create_comments.rb +16 -0
  603. data/db/migrate/20100928030614_create_activities.rb +19 -0
  604. data/db/migrate/20100928030615_create_avatars.rb +16 -0
  605. data/db/migrate/20100928030616_rename_remember_token.rb +11 -0
  606. data/db/migrate/20100928030617_drop_openid_tables.rb +23 -0
  607. data/db/migrate/20100928030618_add_admin_to_users.rb +11 -0
  608. data/db/migrate/20100928030619_add_suspended_to_users.rb +11 -0
  609. data/db/migrate/20100928030620_remove_uuid.rb +24 -0
  610. data/db/migrate/20100928030621_add_email_to_accounts.rb +9 -0
  611. data/db/migrate/20100928030622_add_background_info_to_models.rb +19 -0
  612. data/db/migrate/20100928030623_create_addresses.rb +49 -0
  613. data/db/migrate/20100928030624_add_index_on_permissions.rb +9 -0
  614. data/db/migrate/20100928030625_create_emails.rb +26 -0
  615. data/db/migrate/20100928030626_add_state_to_timeline_objects.rb +13 -0
  616. data/db/migrate/20100928030627_acts_as_taggable_on_migration.rb +29 -0
  617. data/db/migrate/20101221123456_add_single_access_token_to_users.rb +9 -0
  618. data/db/migrate/20101221345678_add_rating_and_category_to_accounts.rb +11 -0
  619. data/db/migrate/20110719082054_add_skype_to_contacts_and_leads.rb +11 -0
  620. data/db/migrate/20111101083437_create_fields.rb +27 -0
  621. data/db/migrate/20111101090312_create_field_groups.rb +15 -0
  622. data/db/migrate/20111116091952_add_field_groups_tag_id.rb +9 -0
  623. data/db/migrate/20111117041311_change_fields_collection_to_text.rb +9 -0
  624. data/db/migrate/20111201030535_add_field_groups_klass_name.rb +24 -0
  625. data/db/migrate/20120121054235_create_lists.rb +10 -0
  626. data/db/migrate/20120216031616_create_versions.rb +18 -0
  627. data/db/migrate/20120216042541_is_paranoid_to_paper_trail.rb +10 -0
  628. data/db/migrate/20120220233724_add_versions_object_changes.rb +9 -0
  629. data/db/migrate/20120224073107_remove_default_value_and_clear_settings.rb +16 -0
  630. data/db/migrate/20120309070209_add_versions_related.rb +6 -0
  631. data/db/migrate/20120314080441_add_subscribed_users_to_entities.rb +23 -0
  632. data/db/migrate/20120316045804_activities_to_versions.rb +35 -0
  633. data/db/migrate/20120405080727_change_subscribed_users_to_set.rb +24 -0
  634. data/db/migrate/20120405080742_change_further_subscribed_users_to_set.rb +27 -0
  635. data/db/migrate/20120406082136_create_groups.rb +19 -0
  636. data/db/migrate/20120413034923_add_index_on_versions_item_type.rb +5 -0
  637. data/db/migrate/20120510025219_add_not_null_constraints_for_timestamp_columns.rb +22 -0
  638. data/db/migrate/20120528102124_increase_length_of_version_events.rb +9 -0
  639. data/db/migrate/20120801032706_add_pair_id_to_fields.rb +5 -0
  640. data/db/migrate/20121003063155_add_settings_to_custom_fields.rb +5 -0
  641. data/db/migrate/20121221033947_fix_country_mapping.rb +31 -0
  642. data/db/migrate/20131207033244_add_user_id_to_lists.rb +6 -0
  643. data/db/migrate/20140916011927_add_created_at_index_on_versions.rb +5 -0
  644. data/db/migrate/20140916012922_add_indexes_to_model_associations.rb +6 -0
  645. data/db/migrate/20141126031837_increase_email_to254_chars.rb +21 -0
  646. data/db/migrate/20141230021159_add_transaction_id_column_to_versions.rb +11 -0
  647. data/db/migrate/20141230205453_add_missing_unique_indices.acts_as_taggable_on_engine.rb +20 -0
  648. data/db/migrate/20141230205454_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
  649. data/db/migrate/20141230205455_add_missing_taggable_index.acts_as_taggable_on_engine.rb +10 -0
  650. data/db/migrate/20150123060900_convert_radio_to_radio_buttons.rb +10 -0
  651. data/db/migrate/20150227123054_remove_last_request_at_from_users.rb +5 -0
  652. data/db/migrate/20150427131956_create_index_related_type.rb +9 -0
  653. data/db/migrate/20160511053730_add_account_contacts_index.rb +5 -0
  654. data/db/schema.rb +459 -0
  655. data/db/seeds.rb +9 -0
  656. data/db/seeds/fields.rb +93 -0
  657. data/docker-compose.yml +13 -0
  658. data/fat_free_crm.gemspec +63 -0
  659. data/lib/development_tasks/gem.rake +13 -0
  660. data/lib/development_tasks/license.rake +77 -0
  661. data/lib/development_tasks/rdoc.rake +20 -0
  662. data/lib/development_tasks/rspec.rake +24 -0
  663. data/lib/fat_free_crm.rb +57 -0
  664. data/lib/fat_free_crm/callback.rb +144 -0
  665. data/lib/fat_free_crm/comment_extensions.rb +28 -0
  666. data/lib/fat_free_crm/core_ext.rb +6 -0
  667. data/lib/fat_free_crm/core_ext/nil.rb +14 -0
  668. data/lib/fat_free_crm/core_ext/string.rb +48 -0
  669. data/lib/fat_free_crm/custom_fields.rb +12 -0
  670. data/lib/fat_free_crm/engine.rb +27 -0
  671. data/lib/fat_free_crm/errors.rb +37 -0
  672. data/lib/fat_free_crm/exceptions.rb +21 -0
  673. data/lib/fat_free_crm/export_csv.rb +33 -0
  674. data/lib/fat_free_crm/exportable.rb +49 -0
  675. data/lib/fat_free_crm/fields.rb +95 -0
  676. data/lib/fat_free_crm/gem_dependencies.rb +40 -0
  677. data/lib/fat_free_crm/gem_ext.rb +10 -0
  678. data/lib/fat_free_crm/gem_ext/action_controller/base.rb +16 -0
  679. data/lib/fat_free_crm/gem_ext/active_record/schema_dumper.rb +27 -0
  680. data/lib/fat_free_crm/gem_ext/active_support/buffered_logger.rb +17 -0
  681. data/lib/fat_free_crm/gem_ext/rails/engine.rb +15 -0
  682. data/lib/fat_free_crm/gem_ext/rake/task.rb +13 -0
  683. data/lib/fat_free_crm/gem_ext/simple_form/action_view_extensions/form_helper.rb +24 -0
  684. data/lib/fat_free_crm/i18n.rb +42 -0
  685. data/lib/fat_free_crm/load_settings.rb +18 -0
  686. data/lib/fat_free_crm/mail_processor/base.rb +227 -0
  687. data/lib/fat_free_crm/mail_processor/comment_replies.rb +69 -0
  688. data/lib/fat_free_crm/mail_processor/dropbox.rb +273 -0
  689. data/lib/fat_free_crm/permissions.rb +109 -0
  690. data/lib/fat_free_crm/renderers.rb +11 -0
  691. data/lib/fat_free_crm/secret_token_generator.rb +59 -0
  692. data/lib/fat_free_crm/sortable.rb +43 -0
  693. data/lib/fat_free_crm/tabs.rb +23 -0
  694. data/lib/fat_free_crm/version.rb +15 -0
  695. data/lib/fat_free_crm/view_factory.rb +81 -0
  696. data/lib/gravatar_image_tag.rb +58 -0
  697. data/lib/missing_translation_detector.rb +50 -0
  698. data/lib/tasks/.gitkeep +0 -0
  699. data/lib/tasks/.gitkeep~master +0 -0
  700. data/lib/tasks/ffcrm/comment_replies.rake +27 -0
  701. data/lib/tasks/ffcrm/config.rake +40 -0
  702. data/lib/tasks/ffcrm/demo.rake +62 -0
  703. data/lib/tasks/ffcrm/dropbox.rake +28 -0
  704. data/lib/tasks/ffcrm/missing_translations.rake +34 -0
  705. data/lib/tasks/ffcrm/secret.rake +15 -0
  706. data/lib/tasks/ffcrm/settings.rake +20 -0
  707. data/lib/tasks/ffcrm/setup.rake +81 -0
  708. data/lib/tasks/ffcrm/update_data.rake +238 -0
  709. data/lib/templates/erb/scaffold/_form.html.erb +13 -0
  710. data/public/404.html +26 -0
  711. data/public/422.html +26 -0
  712. data/public/500.html +26 -0
  713. data/public/favicon.ico +0 -0
  714. data/public/robots.txt +5 -0
  715. data/script/rails +6 -0
  716. data/spec/controllers/admin/groups_controller_spec.rb +9 -0
  717. data/spec/controllers/admin/users_controller_spec.rb +305 -0
  718. data/spec/controllers/applications_controller_spec.rb +41 -0
  719. data/spec/controllers/authentications_controller_spec.rb +148 -0
  720. data/spec/controllers/comments_controller_spec.rb +193 -0
  721. data/spec/controllers/emails_controller_spec.rb +35 -0
  722. data/spec/controllers/entities/accounts_controller_spec.rb +605 -0
  723. data/spec/controllers/entities/campaigns_controller_spec.rb +643 -0
  724. data/spec/controllers/entities/contacts_controller_spec.rb +702 -0
  725. data/spec/controllers/entities/leads_controller_spec.rb +1007 -0
  726. data/spec/controllers/entities/opportunities_controller_spec.rb +902 -0
  727. data/spec/controllers/entities_controller_spec.rb +40 -0
  728. data/spec/controllers/home_controller_spec.rb +231 -0
  729. data/spec/controllers/lists_controller_spec.rb +9 -0
  730. data/spec/controllers/passwords_controller_spec.rb +30 -0
  731. data/spec/controllers/tasks_controller_spec.rb +512 -0
  732. data/spec/controllers/users_controller_spec.rb +431 -0
  733. data/spec/factories/account_factories.rb +38 -0
  734. data/spec/factories/campaign_factories.rb +28 -0
  735. data/spec/factories/contact_factories.rb +43 -0
  736. data/spec/factories/field_factories.rb +37 -0
  737. data/spec/factories/lead_factories.rb +34 -0
  738. data/spec/factories/list_factories.rb +11 -0
  739. data/spec/factories/opportunity_factories.rb +37 -0
  740. data/spec/factories/sequences.rb +31 -0
  741. data/spec/factories/setting_factories.rb +13 -0
  742. data/spec/factories/shared_factories.rb +66 -0
  743. data/spec/factories/subscription_factories.rb +11 -0
  744. data/spec/factories/tag_factories.rb +10 -0
  745. data/spec/factories/task_factories.rb +27 -0
  746. data/spec/factories/user_factories.rb +64 -0
  747. data/spec/features/acceptance_helper.rb +9 -0
  748. data/spec/features/accounts_spec.rb +109 -0
  749. data/spec/features/admin/groups_spec.rb +30 -0
  750. data/spec/features/admin/users_spec.rb +37 -0
  751. data/spec/features/campaigns_spec.rb +103 -0
  752. data/spec/features/contacts_spec.rb +129 -0
  753. data/spec/features/dashboard_spec.rb +66 -0
  754. data/spec/features/leads_spec.rb +129 -0
  755. data/spec/features/opportunities_overview_spec.rb +87 -0
  756. data/spec/features/opportunities_spec.rb +105 -0
  757. data/spec/features/support/browser.rb +18 -0
  758. data/spec/features/support/headless.rb +17 -0
  759. data/spec/features/support/helpers.rb +30 -0
  760. data/spec/features/support/maintain_sessions.rb +10 -0
  761. data/spec/features/support/paths.rb +46 -0
  762. data/spec/features/support/selector_helpers.rb +31 -0
  763. data/spec/features/tasks_spec.rb +93 -0
  764. data/spec/fixtures/rails.png +0 -0
  765. data/spec/helpers/accounts_helper_spec.rb +14 -0
  766. data/spec/helpers/admin/field_groups_helper_spec.rb +18 -0
  767. data/spec/helpers/admin/plugins_helper_spec.rb +9 -0
  768. data/spec/helpers/admin/settings_helper_spec.rb +9 -0
  769. data/spec/helpers/admin/users_helper_spec.rb +9 -0
  770. data/spec/helpers/application_helper_spec.rb +83 -0
  771. data/spec/helpers/authentications_helper_spec.rb +14 -0
  772. data/spec/helpers/campaigns_helper_spec.rb +14 -0
  773. data/spec/helpers/comments_helper_spec.rb +14 -0
  774. data/spec/helpers/contacts_helper_spec.rb +14 -0
  775. data/spec/helpers/emails_helper_spec.rb +9 -0
  776. data/spec/helpers/fields_helper_spec.rb +10 -0
  777. data/spec/helpers/groups_helper_spec.rb +19 -0
  778. data/spec/helpers/home_helper_spec.rb +14 -0
  779. data/spec/helpers/leads_helper_spec.rb +14 -0
  780. data/spec/helpers/lists_helper_spec.rb +19 -0
  781. data/spec/helpers/opportunities_helper_spec.rb +14 -0
  782. data/spec/helpers/passwords_helper_spec.rb +14 -0
  783. data/spec/helpers/tasks_helper_spec.rb +18 -0
  784. data/spec/helpers/users_helper_spec.rb +37 -0
  785. data/spec/lib/comment_extensions_spec.rb +34 -0
  786. data/spec/lib/core_ext/string_spec.rb +21 -0
  787. data/spec/lib/errors_spec.rb +30 -0
  788. data/spec/lib/fields_spec.rb +99 -0
  789. data/spec/lib/mail_processor/base_spec.rb +167 -0
  790. data/spec/lib/mail_processor/comment_replies_spec.rb +68 -0
  791. data/spec/lib/mail_processor/dropbox_spec.rb +304 -0
  792. data/spec/lib/mail_processor/sample_emails/dropbox.rb +171 -0
  793. data/spec/lib/permissions_spec.rb +134 -0
  794. data/spec/lib/secret_token_generator_spec.rb +67 -0
  795. data/spec/lib/view_factory_spec.rb +67 -0
  796. data/spec/mailers/subscription_mailer_spec.rb +47 -0
  797. data/spec/mailers/user_mailer_spec.rb +139 -0
  798. data/spec/models/entities/account_contact_spec.rb +31 -0
  799. data/spec/models/entities/account_opportunity_spec.rb +31 -0
  800. data/spec/models/entities/account_spec.rb +178 -0
  801. data/spec/models/entities/campaign_spec.rb +136 -0
  802. data/spec/models/entities/contact_opportunity_spec.rb +32 -0
  803. data/spec/models/entities/contact_spec.rb +208 -0
  804. data/spec/models/entities/lead_spec.rb +102 -0
  805. data/spec/models/entities/opportunity_spec.rb +287 -0
  806. data/spec/models/fields/custom_field_date_pair_spec.rb +88 -0
  807. data/spec/models/fields/custom_field_pair_spec.rb +74 -0
  808. data/spec/models/fields/custom_field_spec.rb +125 -0
  809. data/spec/models/fields/field_group_spec.rb +27 -0
  810. data/spec/models/fields/field_spec.rb +65 -0
  811. data/spec/models/list_spec.rb +17 -0
  812. data/spec/models/observers/entity_observer_spec.rb +72 -0
  813. data/spec/models/polymorphic/address_spec.rb +36 -0
  814. data/spec/models/polymorphic/avatar_spec.rb +44 -0
  815. data/spec/models/polymorphic/comment_spec.rb +47 -0
  816. data/spec/models/polymorphic/email_spec.rb +40 -0
  817. data/spec/models/polymorphic/task_spec.rb +385 -0
  818. data/spec/models/polymorphic/version_spec.rb +244 -0
  819. data/spec/models/setting_spec.rb +54 -0
  820. data/spec/models/users/abilities/user_ability_spec.rb +63 -0
  821. data/spec/models/users/authentication_spec.rb +17 -0
  822. data/spec/models/users/group_spec.rb +9 -0
  823. data/spec/models/users/permission_spec.rb +48 -0
  824. data/spec/models/users/preference_spec.rb +69 -0
  825. data/spec/models/users/user_spec.rb +237 -0
  826. data/spec/routing/accounts_routing_spec.rb +58 -0
  827. data/spec/routing/admin/users_routing_spec.rb +38 -0
  828. data/spec/routing/campaigns_routing_spec.rb +62 -0
  829. data/spec/routing/comments_routing_spec.rb +30 -0
  830. data/spec/routing/contacts_routing_spec.rb +58 -0
  831. data/spec/routing/emails_routing_spec.rb +38 -0
  832. data/spec/routing/leads_routing_spec.rb +86 -0
  833. data/spec/routing/opportunities_routing_spec.rb +62 -0
  834. data/spec/routing/tasks_routing_spec.rb +66 -0
  835. data/spec/routing/users_routing_spec.rb +82 -0
  836. data/spec/shared/controllers.rb +103 -0
  837. data/spec/shared/models.rb +139 -0
  838. data/spec/spec_helper.rb +107 -0
  839. data/spec/support/assert_select.rb +164 -0
  840. data/spec/support/auth_macros.rb +48 -0
  841. data/spec/support/macros.rb +44 -0
  842. data/spec/support/mail_processor_mocks.rb +35 -0
  843. data/spec/support/uploaded_file.rb +8 -0
  844. data/spec/views/accounts/_edit.haml_spec.rb +42 -0
  845. data/spec/views/accounts/_new.haml_spec.rb +40 -0
  846. data/spec/views/accounts/create.js.haml_spec.rb +51 -0
  847. data/spec/views/accounts/destroy.js.haml_spec.rb +32 -0
  848. data/spec/views/accounts/edit.js.haml_spec.rb +64 -0
  849. data/spec/views/accounts/index.haml_spec.rb +41 -0
  850. data/spec/views/accounts/index.js.haml_spec.rb +32 -0
  851. data/spec/views/accounts/new.js.haml_spec.rb +42 -0
  852. data/spec/views/accounts/show.haml_spec.rb +33 -0
  853. data/spec/views/accounts/update.js.haml_spec.rb +94 -0
  854. data/spec/views/admin/field_groups/create.js.haml_spec.rb +29 -0
  855. data/spec/views/admin/field_groups/destroy.js.haml_spec.rb +29 -0
  856. data/spec/views/admin/field_groups/edit.js.haml_spec.rb +22 -0
  857. data/spec/views/admin/field_groups/new.js.haml_spec.rb +23 -0
  858. data/spec/views/admin/field_groups/update.js.haml_spec.rb +28 -0
  859. data/spec/views/admin/users/_create.haml_spec.rb +21 -0
  860. data/spec/views/admin/users/create.js.haml_spec.rb +40 -0
  861. data/spec/views/admin/users/destroy.js.haml_spec.rb +51 -0
  862. data/spec/views/admin/users/edit.js.haml_spec.rb +42 -0
  863. data/spec/views/admin/users/index.haml_spec.rb +20 -0
  864. data/spec/views/admin/users/index.js.haml_spec.rb +24 -0
  865. data/spec/views/admin/users/new.js.haml_spec.rb +32 -0
  866. data/spec/views/admin/users/reactivate.js.haml_spec.rb +20 -0
  867. data/spec/views/admin/users/show.haml_spec.rb +16 -0
  868. data/spec/views/admin/users/suspend.js.haml_spec.rb +20 -0
  869. data/spec/views/admin/users/update.js.haml_spec.rb +36 -0
  870. data/spec/views/application/auto_complete.haml_spec.rb +46 -0
  871. data/spec/views/authentications/new.haml_spec.rb +29 -0
  872. data/spec/views/campaigns/_edit.haml_spec.rb +42 -0
  873. data/spec/views/campaigns/_new.haml_spec.rb +39 -0
  874. data/spec/views/campaigns/create.js.haml_spec.rb +48 -0
  875. data/spec/views/campaigns/destroy.js.haml_spec.rb +30 -0
  876. data/spec/views/campaigns/edit.js.haml_spec.rb +64 -0
  877. data/spec/views/campaigns/index.haml_spec.rb +35 -0
  878. data/spec/views/campaigns/index.js.haml_spec.rb +32 -0
  879. data/spec/views/campaigns/new.js.haml_spec.rb +48 -0
  880. data/spec/views/campaigns/show.haml_spec.rb +33 -0
  881. data/spec/views/campaigns/update.js.haml_spec.rb +80 -0
  882. data/spec/views/comments/edit.js.haml_spec.rb +29 -0
  883. data/spec/views/contacts/_edit.haml_spec.rb +71 -0
  884. data/spec/views/contacts/_new.haml_spec.rb +50 -0
  885. data/spec/views/contacts/create.js.haml_spec.rb +64 -0
  886. data/spec/views/contacts/destroy.js.haml_spec.rb +43 -0
  887. data/spec/views/contacts/edit.js.haml_spec.rb +72 -0
  888. data/spec/views/contacts/index.haml_spec.rb +35 -0
  889. data/spec/views/contacts/index.js.html_spec.rb +32 -0
  890. data/spec/views/contacts/new.js.haml_spec.rb +45 -0
  891. data/spec/views/contacts/show.haml_spec.rb +30 -0
  892. data/spec/views/contacts/update.js.haml_spec.rb +130 -0
  893. data/spec/views/home/index.haml_spec.rb +34 -0
  894. data/spec/views/home/index.js.haml_spec.rb +31 -0
  895. data/spec/views/home/options.js.haml_spec.rb +51 -0
  896. data/spec/views/leads/_convert.haml_spec.rb +28 -0
  897. data/spec/views/leads/_edit.haml_spec.rb +45 -0
  898. data/spec/views/leads/_new.haml_spec.rb +43 -0
  899. data/spec/views/leads/_sidebar_show.haml_spec.rb +29 -0
  900. data/spec/views/leads/convert.js.haml_spec.rb +77 -0
  901. data/spec/views/leads/create.js.haml_spec.rb +68 -0
  902. data/spec/views/leads/destroy.js.haml_spec.rb +47 -0
  903. data/spec/views/leads/edit.js.haml_spec.rb +74 -0
  904. data/spec/views/leads/index.haml_spec.rb +35 -0
  905. data/spec/views/leads/index.js.haml_spec.rb +32 -0
  906. data/spec/views/leads/new.js.haml_spec.rb +45 -0
  907. data/spec/views/leads/promote.js.haml_spec.rb +141 -0
  908. data/spec/views/leads/reject.js.haml_spec.rb +46 -0
  909. data/spec/views/leads/show.haml_spec.rb +27 -0
  910. data/spec/views/leads/update.js.haml_spec.rb +124 -0
  911. data/spec/views/opportunities/_edit.haml_spec.rb +68 -0
  912. data/spec/views/opportunities/_new.haml_spec.rb +49 -0
  913. data/spec/views/opportunities/create.js.haml_spec.rb +86 -0
  914. data/spec/views/opportunities/destroy.js.haml_spec.rb +65 -0
  915. data/spec/views/opportunities/edit.js.haml_spec.rb +73 -0
  916. data/spec/views/opportunities/index.haml_spec.rb +36 -0
  917. data/spec/views/opportunities/index.js.haml_spec.rb +33 -0
  918. data/spec/views/opportunities/new.js.haml_spec.rb +52 -0
  919. data/spec/views/opportunities/show.haml_spec.rb +30 -0
  920. data/spec/views/opportunities/update.js.haml_spec.rb +149 -0
  921. data/spec/views/tasks/_edit.haml_spec.rb +48 -0
  922. data/spec/views/tasks/complete.js.haml_spec.rb +66 -0
  923. data/spec/views/tasks/create.js.haml_spec.rb +119 -0
  924. data/spec/views/tasks/destroy.js.haml_spec.rb +56 -0
  925. data/spec/views/tasks/edit.js.haml_spec.rb +74 -0
  926. data/spec/views/tasks/index.haml_spec.rb +44 -0
  927. data/spec/views/tasks/new.js.haml_spec.rb +47 -0
  928. data/spec/views/tasks/uncomplete.js.haml_spec.rb +44 -0
  929. data/spec/views/tasks/update.js.haml_spec.rb +141 -0
  930. data/spec/views/users/avatar.js.haml_spec.rb +33 -0
  931. data/spec/views/users/change_password.js.haml_spec.rb +50 -0
  932. data/spec/views/users/edit.js.haml_spec.rb +33 -0
  933. data/spec/views/users/password.js.haml_spec.rb +34 -0
  934. data/spec/views/users/update.js.haml_spec.rb +45 -0
  935. data/spec/views/users/upload_avatar.js.haml_spec.rb +44 -0
  936. data/vendor/assets/images/calendar_date_select/calendar.gif +0 -0
  937. data/vendor/assets/images/chosen-sprite.png +0 -0
  938. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  939. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  940. data/vendor/assets/images/jquery-ui/ui-bg_flat_100_ffffff_40x100.png +0 -0
  941. data/vendor/assets/images/jquery-ui/ui-bg_flat_25_3875d7_40x100.png +0 -0
  942. data/vendor/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
  943. data/vendor/assets/images/jquery-ui/ui-bg_flat_65_3875d7_40x100.png +0 -0
  944. data/vendor/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  945. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  946. data/vendor/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
  947. data/vendor/assets/images/jquery-ui/ui-icons_466bb1_256x240.png +0 -0
  948. data/vendor/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
  949. data/vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  950. data/vendor/assets/javascripts/ajax-chosen-jquery.js +2 -0
  951. data/vendor/assets/javascripts/ajax-chosen.jquery.coffee +171 -0
  952. data/vendor/assets/javascripts/chosen-jquery.js +3 -0
  953. data/vendor/assets/javascripts/chosen.jquery.coffee +574 -0
  954. data/vendor/assets/javascripts/jquery.disable.js +23 -0
  955. data/vendor/assets/javascripts/jquery_timeago/index.js +19 -0
  956. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.cz.js +18 -0
  957. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.de.js +18 -0
  958. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.en-GB.js +20 -0
  959. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.en-US.js +20 -0
  960. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.es-CL.js +18 -0
  961. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.es.js +18 -0
  962. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.fr-CA.js +17 -0
  963. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.fr.js +17 -0
  964. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.it.js +16 -0
  965. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.ja.js +19 -0
  966. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.js +194 -0
  967. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.nl.js +20 -0
  968. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.pl.js +31 -0
  969. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.pt-BR.js +18 -0
  970. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.ru.js +34 -0
  971. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.sv-SE.js +18 -0
  972. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.th.js +20 -0
  973. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.zh-CN.js +20 -0
  974. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-addon.js +1882 -0
  975. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-af.js +20 -0
  976. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-ca.js +20 -0
  977. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-cz.js +20 -0
  978. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-de.js +20 -0
  979. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-el.js +20 -0
  980. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-es-CL.js +20 -0
  981. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-es.js +20 -0
  982. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-et.js +20 -0
  983. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-fi.js +20 -0
  984. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-fr-CA.js +20 -0
  985. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-fr.js +20 -0
  986. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-gl.js +20 -0
  987. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-he.js +20 -0
  988. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-hu.js +20 -0
  989. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-id.js +20 -0
  990. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-it.js +20 -0
  991. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-ja.js +20 -0
  992. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-ko.js +20 -0
  993. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-lt.js +20 -0
  994. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-nl.js +20 -0
  995. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-no.js +20 -0
  996. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-pl.js +20 -0
  997. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-pt-BR.js +22 -0
  998. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-pt.js +20 -0
  999. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-ro.js +20 -0
  1000. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-ru.js +20 -0
  1001. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-sk.js +20 -0
  1002. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-sv-SE.js +20 -0
  1003. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-th.js +19 -0
  1004. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-tr.js +20 -0
  1005. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-vi.js +20 -0
  1006. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-zh-CN.js +20 -0
  1007. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-zh-TW.js +20 -0
  1008. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-cz.js +23 -0
  1009. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-de.js +23 -0
  1010. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-en-GB.js +23 -0
  1011. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-es-CL.js +23 -0
  1012. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-es.js +23 -0
  1013. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-fr-CA.js +21 -0
  1014. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-fr.js +23 -0
  1015. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-it.js +23 -0
  1016. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-ja.js +23 -0
  1017. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-nl.js +21 -0
  1018. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-pl.js +23 -0
  1019. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-pt-BR.js +23 -0
  1020. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-pt.js +21 -0
  1021. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-ru.js +23 -0
  1022. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-sv-SE.js +23 -0
  1023. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-th.js +23 -0
  1024. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-zh-CN.js +23 -0
  1025. data/vendor/assets/javascripts/lib/abstract-chosen.coffee +110 -0
  1026. data/vendor/assets/javascripts/lib/select-parser.coffee +51 -0
  1027. data/vendor/assets/javascripts/rating.js +162 -0
  1028. data/vendor/assets/javascripts/textarea_autocomplete.js +605 -0
  1029. data/vendor/assets/stylesheets/chosen.css.sass +361 -0
  1030. data/vendor/assets/stylesheets/jquery-ui.custom.scss +566 -0
  1031. data/vendor/assets/stylesheets/modalbox.css +107 -0
  1032. data/vendor/gems/globby-0.1.2/LICENSE.txt +20 -0
  1033. data/vendor/gems/globby-0.1.2/README.md +65 -0
  1034. data/vendor/gems/globby-0.1.2/Rakefile +9 -0
  1035. data/vendor/gems/globby-0.1.2/lib/globby.rb +47 -0
  1036. data/vendor/gems/globby-0.1.2/lib/globby/glob.rb +90 -0
  1037. data/vendor/gems/globby-0.1.2/lib/globby/globject.rb +18 -0
  1038. data/vendor/gems/globby-0.1.2/lib/globby/result.rb +20 -0
  1039. data/vendor/gems/globby-0.1.2/spec/gitignore_spec.rb +109 -0
  1040. data/vendor/gems/globby-0.1.2/spec/globby_spec.rb +93 -0
  1041. data/zeus.json +22 -0
  1042. metadata +1566 -0
@@ -0,0 +1,227 @@
1
+ ---
2
+ fr:
3
+ date:
4
+ formats:
5
+ default: ! '%d/%m/%Y'
6
+ short: ! '%e %b'
7
+ long: ! '%e %B %Y'
8
+ day_names:
9
+ - dimanche
10
+ - lundi
11
+ - mardi
12
+ - mercredi
13
+ - jeudi
14
+ - vendredi
15
+ - samedi
16
+ abbr_day_names:
17
+ - dim
18
+ - lun
19
+ - mar
20
+ - mer
21
+ - jeu
22
+ - ven
23
+ - sam
24
+ month_names:
25
+ -
26
+ - janvier
27
+ - février
28
+ - mars
29
+ - avril
30
+ - mai
31
+ - juin
32
+ - juillet
33
+ - août
34
+ - septembre
35
+ - octobre
36
+ - novembre
37
+ - décembre
38
+ abbr_month_names:
39
+ -
40
+ - jan.
41
+ - fév.
42
+ - mar.
43
+ - avr.
44
+ - mai
45
+ - juin
46
+ - juil.
47
+ - août
48
+ - sept.
49
+ - oct.
50
+ - nov.
51
+ - déc.
52
+ order:
53
+ - :day
54
+ - :month
55
+ - :year
56
+ time:
57
+ formats:
58
+ default: ! '%d %B %Y %H:%M:%S'
59
+ short: ! '%d %b %H:%M'
60
+ long: ! '%A %d %B %Y %H:%M'
61
+ am: am
62
+ pm: pm
63
+ datetime:
64
+ distance_in_words:
65
+ half_a_minute: une demi-minute
66
+ less_than_x_seconds:
67
+ zero: moins d'une seconde
68
+ one: moins d'une seconde
69
+ other: moins de %{count} secondes
70
+ x_seconds:
71
+ one: 1 seconde
72
+ other: ! '%{count} secondes'
73
+ less_than_x_minutes:
74
+ zero: moins d'une minute
75
+ one: moins d'une minute
76
+ other: moins de %{count} minutes
77
+ x_minutes:
78
+ one: 1 minute
79
+ other: ! '%{count} minutes'
80
+ about_x_hours:
81
+ one: environ une heure
82
+ other: environ %{count} heures
83
+ x_days:
84
+ one: 1 jour
85
+ other: ! '%{count} jours'
86
+ about_x_months:
87
+ one: environ un mois
88
+ other: environ %{count} mois
89
+ x_months:
90
+ one: 1 mois
91
+ other: ! '%{count} mois'
92
+ about_x_years:
93
+ one: environ un an
94
+ other: environ %{count} ans
95
+ over_x_years:
96
+ one: plus d'un an
97
+ other: plus de %{count} ans
98
+ almost_x_years:
99
+ one: presqu'un an
100
+ other: presque %{count} ans
101
+ prompts:
102
+ year: Année
103
+ month: Mois
104
+ day: Jour
105
+ hour: Heure
106
+ minute: Minute
107
+ second: Seconde
108
+ number:
109
+ format:
110
+ separator: ! ','
111
+ delimiter: ! ' '
112
+ precision: 3
113
+ significant: false
114
+ strip_insignificant_zeros: false
115
+ currency:
116
+ format:
117
+ format: ! '%n %u'
118
+ unit: €
119
+ separator: ! ','
120
+ delimiter: ! ' '
121
+ precision: 2
122
+ significant: false
123
+ strip_insignificant_zeros: false
124
+ percentage:
125
+ format:
126
+ delimiter: ''
127
+ precision:
128
+ format:
129
+ delimiter: ''
130
+ human:
131
+ format:
132
+ delimiter: ''
133
+ precision: 2
134
+ significant: true
135
+ strip_insignificant_zeros: true
136
+ storage_units:
137
+ format: ! '%n %u'
138
+ units:
139
+ byte:
140
+ one: octet
141
+ other: octets
142
+ kb: ko
143
+ mb: Mo
144
+ gb: Go
145
+ tb: To
146
+ decimal_units:
147
+ format: ! '%n %u'
148
+ units:
149
+ unit: ''
150
+ thousand: millier
151
+ million: million
152
+ billion: milliard
153
+ trillion: billion
154
+ quadrillion: million de milliards
155
+ support:
156
+ array:
157
+ words_connector: ! ', '
158
+ two_words_connector: ! ' et '
159
+ last_word_connector: ! ' et '
160
+ select:
161
+ prompt: Veuillez sélectionner
162
+ helpers:
163
+ select:
164
+ prompt: Veuillez sélectionner
165
+ submit:
166
+ create: Créer un %{model}
167
+ update: Modifier ce %{model}
168
+ submit: Enregistrer ce %{model}
169
+ attributes:
170
+ created_at: Créé le
171
+ updated_at: Modifié le
172
+ errors:
173
+ format: Le %{attribute} %{message}
174
+ messages:
175
+ inclusion: n'est pas inclus(e) dans la liste
176
+ exclusion: n'est pas disponible
177
+ invalid: n'est pas valide
178
+ confirmation: ne concorde pas avec la confirmation
179
+ accepted: doit être accepté(e)
180
+ empty: doit être rempli(e)
181
+ blank: doit être rempli(e)
182
+ too_long: est trop long (pas plus de %{count} caractères)
183
+ too_short: est trop court (au moins %{count} caractères)
184
+ wrong_length: ne fait pas la bonne longueur (doit comporter %{count} caractères)
185
+ not_a_number: n'est pas un nombre
186
+ not_an_integer: doit être un nombre entier
187
+ greater_than: doit être supérieur à %{count}
188
+ greater_than_or_equal_to: doit être supérieur ou égal à %{count}
189
+ equal_to: doit être égal à %{count}
190
+ less_than: doit être inférieur à %{count}
191
+ less_than_or_equal_to: doit être inférieur ou égal à %{count}
192
+ odd: doit être impair
193
+ even: doit être pair
194
+ template:
195
+ header: &73570860
196
+ one: ! 'Impossible d''enregistrer ce %{model} : 1 erreur'
197
+ other: ! 'Impossible d''enregistrer ce %{model} : %{count} erreurs'
198
+ body: ! 'Veuillez vérifier les champs suivants : '
199
+ activerecord:
200
+ errors:
201
+ messages:
202
+ inclusion: n'est pas inclus(e) dans la liste
203
+ exclusion: n'est pas disponible
204
+ invalid: n'est pas valide
205
+ confirmation: ne concorde pas avec la confirmation
206
+ accepted: doit être accepté(e)
207
+ empty: doit être rempli(e)
208
+ blank: doit être rempli(e)
209
+ too_long: est trop long (pas plus de %{count} caractères)
210
+ too_short: est trop court (au moins %{count} caractères)
211
+ wrong_length: ne fait pas la bonne longueur (doit comporter %{count} caractères)
212
+ not_a_number: n'est pas un nombre
213
+ not_an_integer: doit être un nombre entier
214
+ greater_than: doit être supérieur à %{count}
215
+ greater_than_or_equal_to: doit être supérieur ou égal à %{count}
216
+ equal_to: doit être égal à %{count}
217
+ less_than: doit être inférieur à %{count}
218
+ less_than_or_equal_to: doit être inférieur ou égal à %{count}
219
+ odd: doit être impair
220
+ even: doit être pair
221
+ taken: n'est pas disponible
222
+ record_invalid: ! 'La validation a échoué : %{errors}'
223
+ template:
224
+ header: *73570860
225
+ body: ! 'Veuillez vérifier les champs suivants : '
226
+ full_messages:
227
+ format: ! '%{attribute} %{message}'
@@ -0,0 +1,934 @@
1
+ ---
2
+ fr:
3
+ language: Français
4
+
5
+ # Generic terms.
6
+ #----------------------------------------------------------------------------
7
+ id: Id
8
+ all: Tous
9
+ at: à
10
+ here: ici
11
+ no_button: Non
12
+ not_implemented: Pas encore implémenté.
13
+ or: ou
14
+ select_none: -- Aucun --
15
+ select_blank: -- Sélectionnez --
16
+ yes_button: Oui
17
+
18
+
19
+ # Settings.
20
+ #----------------------------------------------------------------------------
21
+ tab_dashboard: Tableau de bord
22
+ tab_tasks: Tâches
23
+ tab_campaigns: Campagnes
24
+ tab_leads: Pistes
25
+ tab_accounts: Comptes
26
+ tab_contacts: Contacts
27
+ tab_opportunities: Opportunités
28
+ tab_team: Equipe
29
+ admin_tab_groups: Groupes
30
+ admin_tab_users: Utilisateurs
31
+ admin_tab_fields: Champs Personnalisés
32
+ admin_tab_tags: Tags
33
+ admin_tab_settings: Paramètres
34
+ admin_tab_plugins: Plugins
35
+ affiliate: Affilié
36
+ competitor: Compétiteur
37
+ customer: Client
38
+ partner: Partenaire
39
+ reseller: Revendeur
40
+ vendor: Vendeur
41
+ planned: Planifié
42
+ started: Démarré
43
+ on_hold: En attente
44
+ completed: Complété
45
+ called_off: Abandonné
46
+ new: Nouvelle
47
+ contacted: Contactée
48
+ converted: Convertie
49
+ rejected: Rejetée
50
+ cold_call: Appel spontané
51
+ conference: Conférence
52
+ online: Marketing web
53
+ referral: Référent
54
+ self: Interne
55
+ web: Website
56
+ word_of_mouth: Bouche à oreille
57
+ other: Autre
58
+ prospecting: Prospection
59
+ analysis: Analyse
60
+ presentation: Présentation
61
+ proposal: Proposition
62
+ negotiation: Négotiation
63
+ final_review: Examen final
64
+ won: Clôturée/Gagnée
65
+ lost: Clôturée/Perdue
66
+ call: Appel
67
+ email: Email
68
+ follow_up: Suivi
69
+ lunch: Dîner
70
+ meeting: Réunion
71
+ money: Finance
72
+ trip: Voyage
73
+ overdue: Délai expiré
74
+ due_asap: Dès que possible
75
+ due_today: Aujourd'hui
76
+ due_tomorrow: Demain
77
+ due_this_week: Cette semaine
78
+ due_next_week: La semaine prochaine
79
+ due_later: Plus tard
80
+ due_specific_date: A la date précise...
81
+ completed_today: Aujourd'hui
82
+ completed_yesterday: Hier
83
+ completed_last_week: La semaine dernière
84
+ completed_this_month: Ce mois
85
+ completed_last_month: Le mois dernier
86
+
87
+ # Models/Activity.
88
+ #----------------------------------------------------------------------------
89
+ one_hour: Une heure
90
+ one_day: Un jour
91
+ two_days: Deux jours
92
+ one_week: Une semaine
93
+ two_weeks: Deux semaines
94
+ one_month: Un mois
95
+
96
+ # Model Validations.
97
+ #----------------------------------------------------------------------------
98
+ activerecord:
99
+ errors:
100
+ models:
101
+ authentication:
102
+ attributes:
103
+ login_field:
104
+ is_not_valid: n'est pas valide
105
+ password_field:
106
+ is_not_valid: n'est pas valide
107
+ account:
108
+ attributes:
109
+ name:
110
+ missing_account_name: ^Vérifiez le nom de compte.
111
+ access:
112
+ share_account: ^Spécifiez un utilisateur avec qui partager le compte.
113
+ campaign:
114
+ attributes:
115
+ name:
116
+ missing_campaign_name: ^Précisez un nom de campagne.
117
+ ends_on:
118
+ dates_not_in_sequence: ^Vérifiez que la date de fin de campagne soit
119
+ avant la date de début.
120
+ access:
121
+ share_campaign: ^Préciser un utilisateur avec qui partager la campagne.
122
+ contact:
123
+ attributes:
124
+ first_name:
125
+ missing_first_name: ^Précisez le prénom
126
+ last_name:
127
+ missing_last_name: ^Précisez le nom.
128
+ access:
129
+ share_contact: ^Précisez avec quel utilisateur partager le contact.
130
+ lead:
131
+ attributes:
132
+ first_name:
133
+ missing_first_name: ^Précisez le prénom
134
+ last_name:
135
+ missing_last_name: ^Précisez le nom.
136
+ access:
137
+ share_lead: ^Précisez avec quel utilisateur partager la piste.
138
+ opportunity:
139
+ attributes:
140
+ name:
141
+ missing_opportunity_name: ^Spécifiez un nom d'opportunité.
142
+ access:
143
+ share_opportunity: ^Précisez avec quel utilisateur partager l'opportunité.
144
+ task:
145
+ attributes:
146
+ name:
147
+ missing_task_name: ^Précisez le nom de la tâche.
148
+ calendar:
149
+ invalid_date: ^Précisez une date valide
150
+ user:
151
+ attributes:
152
+ username:
153
+ missing_username: ^Précisez un nom d'utilisateur.
154
+ username_taken: ^Ce nom d'utilisateur est déjà pris
155
+ email:
156
+ missing_email: ^Précisez une adresse e-mail
157
+ email_in_use: ^Un utilisateur existe déjà avec cette adresse.
158
+ custom_field:
159
+ required: ^%{field} est requis.
160
+ maxlength: ^%{field} est trop long.
161
+ endbeforestart: ^%{field} ne peut pas finir avoir d'avoir démarré.
162
+ attribute_options:
163
+ opportunity:
164
+ stage:
165
+ prospecting: Prospection
166
+ analysis: Analyse
167
+ presentation: Présentation
168
+ proposal: Proposition
169
+ negotiation: Négotiation
170
+ final_review: Examen final
171
+ won: Clôturée/Gagnée
172
+ lost: Clôturée/Perdue
173
+ account:
174
+ rating:
175
+ "0": "-"
176
+ "1": "★"
177
+ "2": "★★"
178
+ "3": "★★★"
179
+ "4": "★★★★"
180
+ "5": "★★★★★"
181
+
182
+ msg_account_suspended: Ce compte utilisateur a été suspendu.
183
+ password_reset_instruction: instructions de réinitialisation du mot de passe
184
+
185
+ # Controllers.
186
+ #----------------------------------------------------------------------------
187
+ msg_account_created: Votre compte a été créé, il est en attente d'approbation par
188
+ system administrator.
189
+ msg_account_not_approved: Votre compte n'a pas encore été approuvé.
190
+ msg_asset_deleted: ! '%{value} a été supprimé.'
191
+ msg_asset_not_available: Ce %{value} n'est plus disponible.
192
+ msg_asset_rejected: ! '%{value} à été rejetée.'
193
+ msg_bad_image_file: ^Nous n'avons pas pu télécharger ou redimensionner votre image.
194
+ msg_cant_create_related: Impossible de crée le %{asset} puisque le %{related} n'est
195
+ plus disponnible.
196
+ msg_cant_delete_user: ^Impossible de supprimer l'utilisateur car %{value} a des
197
+ objets liés encore présents.
198
+ msg_cant_do: Impossible de %{action} le %{asset} puisqu'il n'est plus disponible.
199
+ msg_email_not_found: Aucun utilisateur ne correspond a cette adresse
200
+ msg_enter_new_password: Saisissez votre nouveau mot de passe.
201
+ msg_goodbye: Vous avez été déconnecté, merci d'utiliser Fat Free CRM!
202
+ msg_invalid_password: ^Saisissez votre mot de passe actuel
203
+ msg_invalig_login: Utilisateur ou mot de passe non valide.
204
+ msg_last_login: Votre dernière connection était le %{value}.
205
+ msg_login_needed: Vous devez être connecté pour accéder a cette page.
206
+ msg_logout_needed: Vous devez être déconnecté pour accéder a cette page.
207
+ msg_password_changed: Votre mot de passe a été modifié
208
+ msg_password_not_changed: Votre mot de passe n'a pas été modifié
209
+ msg_password_updated: Modification de mot de passe réussie.
210
+ msg_pwd_instructions_sent: Les instruction de modification de mot de passe vous
211
+ on été envoyées. Vérifiez vos e-mails
212
+ msg_require_admin: Vous devez être administrateur pour accéder a cette page
213
+ msg_successful_signup: Enregistrement réussi. Bienvenu dans Fat Free CRM
214
+ msg_welcome: Bienvenue dans Fat Free CRM
215
+ msg_not_authorized: Vous n'êtes pas authorisé à réaliser cette action.
216
+ msg_assets_not_available: Le %{value} n'est pas disponible.
217
+
218
+ # Options.
219
+ #----------------------------------------------------------------------------
220
+ option_amount*probability: Montant pondéré
221
+ activity_options: Voir les %{action_type} %{models} effectuées par %{user} dans
222
+ les derniers %{period}.
223
+ all_users: tous les utilisateurs
224
+ option_after: après
225
+ option_all: tous
226
+ option_all_users: Tous les utilisateurs
227
+ option_amount: montant
228
+ option_before: avant
229
+ option_brief: court
230
+ option_closes_on: date de clôture
231
+ option_company: société
232
+ option_created_at: date de création
233
+ option_ends_on: date de fin
234
+ option_first_name: prénom
235
+ option_last_name: nom
236
+ option_leads_count: pistes actuelles
237
+ option_long: long
238
+ option_name: nom
239
+ option_probability: probabilité
240
+ option_rating: évaluation
241
+ option_revenue: revenu actuel
242
+ option_starts_on: date de début
243
+ option_target_leads: pistes cibles
244
+ option_target_revenue: revenus cibles
245
+ option_updated_at: date de modification
246
+ show_per_page: Voir %{number} %{models} par page au format %{fmt}.
247
+ sort_by: Trier par %{field}.
248
+ sort_by_displaying: Trier les %{models} par %{field} et afficher le prénom %{position}
249
+ le nom.
250
+ entities_per_page: ! '%{entity} par page:'
251
+ contacts_index_long: Format long
252
+ contacts_index_brief: Format court
253
+ contacts_index_full: Format entier
254
+ opportunities_index_normal: Format normal
255
+ accounts_index_normal: Format normal
256
+ leads_index_normal: Format normal
257
+ campaigns_index_normal: Format normal
258
+
259
+ # Views -> Profile.
260
+ #----------------------------------------------------------------------------
261
+ aim: AOL IM
262
+ already_signed_up: Déjà inscrit?
263
+ alt_email: e-mail secondaire
264
+ avatar: Image(avatar)
265
+ change_password: Modifier le mot de passe
266
+ company: Société
267
+ contact_info: Informations de contact
268
+ current_password: Mot de passe actuel
269
+ edit_profile: Modifier le profil
270
+ first_name: Prénom
271
+ google: Google IM
272
+ gravatar_help: Vous ne connaissez pas Gravatar? Informations sur Gravatar
273
+ image_file: Fichier image
274
+ image_help: L'image que vous envoyez sera redimensionnée à 75 x 75 pixels. Les formats
275
+ supportés sont GIF, JPEG et PNG.
276
+ job_title: Titre/Fonction
277
+ last_name: Nom
278
+ login_now_link: Connectez vous maintenant!
279
+ mobile: Mobile
280
+ my_profile: Mon profil
281
+ new_password: Nouveau mot de passe
282
+ password: Mot de passe
283
+ password_confirmation: Confirmez le nouveau mot de passe
284
+ phone: Téléphone
285
+ profile: Profil
286
+ profile_language: Langue
287
+ save_profile: Enregistrer le profil
288
+ sign_up: Créer un compte
289
+ sign_up_button: S'inscrire
290
+ skype: Skype
291
+ upload_picture: Envoyez une image
292
+ use_gravatar: Utilisez Gravatar
293
+ user: Utilisateur
294
+ username: Nom d'utilisateur
295
+ yahoo: Yahoo IM
296
+ born_on: Né le
297
+ reports_to: Rends compte à
298
+ access: Accès
299
+
300
+ # Views -> Authenticate.
301
+ #----------------------------------------------------------------------------
302
+ forgot_password: Mot de passe oublié
303
+ login: Se connecter
304
+ no_account: Vous n'avez pas de compte?
305
+ remember_me: Se souvenir de moi
306
+ sign_up_now: Créez le maintenant!
307
+
308
+ # Views -> Accounts.
309
+ #----------------------------------------------------------------------------
310
+ account: Compte
311
+ account_id: Compte
312
+ select_an_account: Sélectionner un compte
313
+ account_small: compte
314
+ account_summary: Résumé du compte
315
+ account_categories: Catégories de compte
316
+ accounts: Comptes
317
+ accounts_options: Options des comptes
318
+ accounts_small: comptes
319
+ assigned_to: Assigné à
320
+ billing_address: Adresse de facturation
321
+ create_account: Créer un compte
322
+ date_created: Date de création
323
+ date_updated: Date de modification
324
+ fax: Fax
325
+ intro: Vous pouvez ajouter les informations de %{value} plus tard.
326
+ keep_private: Garder privé, ne pas partager avec les autres
327
+ mail_to: Envoyer à %{value}
328
+ make_public: Partager avec tous
329
+ mobile_small: mobile
330
+ open_in_window: Ouvrir %{value} dans une nouvelle fenêtre
331
+ phone_small: téléphone
332
+ phone_toll_free: Tel. gratuit
333
+ pipeline: Prévisions
334
+ same_as_billing: identique à facturation
335
+ save_account: Enregistrer le compte
336
+ share_with: Partager avec les personnes suivantes
337
+ shipping_address: Adresse de livraison
338
+ total_accounts: Total des comptes
339
+ website: Site web
340
+ account_with_title_department: ! '%{title}, %{department} chez %{account}'
341
+ account_with_title: ! '%{title} chez %{account}'
342
+
343
+ # Views -> Campaigns.
344
+ #----------------------------------------------------------------------------
345
+ actual: Etat actuel
346
+ actual_performance: Performance Actuelle
347
+ budget: Budget
348
+ budget_label: Budget (€)
349
+ campaign: Campagne
350
+ campaign_and_leads: campagne et ses pistes
351
+ campaign_small: campagne
352
+ campaign_summary: Résumé de la campagne
353
+ campaign_targets: Prévisions de la campagne
354
+ campaign_statuses: Status des campagnes
355
+ campaigns: Campagnes
356
+ campaigns_options: Options des campagnes
357
+ campaigns_small: campagnes
358
+ conversion: Conversion
359
+ conversion_label: Conversion (%)
360
+ conversion_number: ! '%{value} de conversion'
361
+ create_campaign: Créer une Campagne
362
+ end_date: Date de fin
363
+ finished_on: terminée le %{value}
364
+ finishes_in: se termine dans %{value}
365
+ no_start_date: pas de date de début spécifiée
366
+ number_of_leads: Nombre de pistes
367
+ objectives: Objectifs
368
+ objectives_help: Spécifiez un objectif en nombre de pistes, taux de conversion de
369
+ pistes/opportunités, revenu espéré et budget. Ces valeurs seront utilisées lors
370
+ de l'évaluation des performances de la campagne
371
+ objectives_small: Objectifs de la campagne
372
+ revenue: Revenu
373
+ revenue_label: Revenu (€)
374
+ revenue_number: ! '%{value} pour revenu'
375
+ save_campaign: Enregistrer la campagne
376
+ start_date: Date de début
377
+ started_ago: démarré il y a %{value}
378
+ starts_in: démarré dans %{value}
379
+ starts_today: démarre aujourd'hui!
380
+ target: Prévisionnel
381
+ total_campaigns: Total des Campagnes
382
+ was_supposed_to_finish: présumée se terminer le %{value}
383
+ was_supposed_to_start: était supposée démarrer il y a %{time_ago} le %{start_date}
384
+ was_supposed_to_start_in: était supposée démarrer dans %{starts_in} le %{start_date}
385
+ select_a_campaign: Choisissez une campagne
386
+
387
+ # Views -> Contacts.
388
+ #----------------------------------------------------------------------------
389
+ alt_email_small: Autre
390
+ blog: Site Web/Blog
391
+ contact: Contact
392
+ contact_small: contact
393
+ contacts: Contacts
394
+ contacts_options: Options des contacts
395
+ contacts_small: contacts
396
+ create_contact: Créer un Contact
397
+ department: Département
398
+ department_small: ! 'département %{value} '
399
+ do_not_call: ne pas appeler
400
+ extra_info: Informations supplémentaires
401
+ extra_info_small: infos supplémentaires
402
+ facebook: Facebook
403
+ linked_in: LinkedIn
404
+ myself: Moi-même
405
+ permissions_intro_private: Par défaut vous seul aurez accès à %{value}. Vous pouvez
406
+ modifier les permissions ultérieurement.
407
+ permissions_intro_public: Par défaut tous les utilisateurs auront accès à %{value}.
408
+ Vous pouvez modifier les permissions ultérieurement.
409
+ permissions_intro_shared: Par défaut seul les utilisateurs sélectionnés auront accès
410
+ à %{value}. Vous pouvez modifier les permissions ultérieurement.
411
+ referred_by: Référencé par
412
+ referred_by_small: référence par
413
+ save_contact: Enregistrer le contact
414
+ twitter: Twitter
415
+ unassigned: Non assigné
416
+ web_presence: Présence Web
417
+ web_presence_small: présence web
418
+ works_at: ! '%{job_title} chez %{company}'
419
+ general_info: Informations générales
420
+ show_general_info_small: Montrer les informations générales pour ce contact.
421
+ show_extra_info_small: Montrer les informations supplémentaires pour ce contact.
422
+ tag_details: ! 'Détails %{tag}'
423
+ show_tag_info_small: Montrer l'information %{tag} pour ce contact.
424
+ shared_with_everyone: Partagé avec tout le monde
425
+ title: Titre
426
+ subscriptions: Souscriptions
427
+
428
+ # Views -> Leads.
429
+ #----------------------------------------------------------------------------
430
+ convert: Convertir
431
+ convert_lead: Convertir la piste
432
+ convert_lead_permissions_intro: Les permissions du contact seront dupliquées depuis
433
+ la piste. Vous pouvez modifier les permissions du contact ultérieurement.
434
+ convert_lead_text: En convertissant la piste %{value} il/elle deviendra un contact
435
+ associé à un compte existant ou nouvellement créé. Le statut de la piste sera
436
+ automatiquement positionné à converti.
437
+ create_lead: Créer une piste
438
+ create_opp_for_contact: Vous pouvez éventuellement créer une opportunité pour le
439
+ contact %{value} en spécifiant le nom, l'étape courante, la date de clôture estimée,
440
+ la probabilité de vente, le montant de l'affaire, la remise offerte.
441
+ lead: Piste
442
+ lead_info_small: contact de la piste
443
+ lead_permissions_intro_private: Par défaut les permissions seront dupliquée depuis
444
+ la campagne ou positionnées sur privé. Vous pouvez modifier les permissions ultérieurement.
445
+ lead_permissions_intro_public: Par défaut les permissions seront dupliquée depuis
446
+ la campagne ou positionnées sur publique. Vous pouvez modifier les permissions
447
+ ultérieurement.
448
+ lead_permissions_intro_shared: Par défaut les permissions seront dupliquée depuis
449
+ la campagne ou partagées avec les utilisateurs spécifiés. Vous pouvez modifier
450
+ les permissions ultérieurement.
451
+ lead_small: piste
452
+ lead_status_small: statut de la piste
453
+ lead_summary: Résumé de la piste
454
+ lead_statuses: Statut des pistes
455
+ leads: Pistes
456
+ leads_options: Options des pistes
457
+ leads_small: Pistes
458
+ none: Aucun
459
+ rating: Evaluation
460
+ reject: Rejeter
461
+ reject_lead_confirm: Etes vous certain de vouloir rejeter cette piste?
462
+ save_lead: Enregistrer la piste
463
+ source: Source
464
+ status: Statut
465
+ total_leads: Total des pistes
466
+ show_status_info_small: Montrer les information sur le statut de ce prospect.
467
+ show_contact_info_small: Montrer les informations de contact pour ce prospect.
468
+
469
+ # Views -> Opportunities.
470
+ #----------------------------------------------------------------------------
471
+ amount: Montant
472
+ close_date: Date de clôture
473
+ closed_ago_on: clôturé il y a %{time_ago} le %{date}
474
+ closes_today: doit être clôturé aujourd'hui!
475
+ closing_date: la date de clôture est %{value}
476
+ create_opportunity: Créer une opportunité
477
+ currency: (€)
478
+ days_late: En retard de
479
+ days_left: Jours restant
480
+ discount: Remise
481
+ discount_number: avec %{value} de remise
482
+ expected_to_close: doit être clôturé dans %{time} le %{date}
483
+ from: de
484
+ no_closing_date: Aucune date de clôture fixée
485
+ no_discount: sans remise
486
+ opportunities: Opportunités
487
+ opportunities_options: Options des opportunités
488
+ opportunities_small: opportunités
489
+ opportunity: Opportunité
490
+ opportunity_small: opportunité
491
+ opportunity_stages: Etapes d'opportunité
492
+ opportunity_summary: Coup d'oeil sur l'opportunité
493
+ opportunity_summary_text: ! '%{amount} avec %{discount} de remise et %{probability}
494
+ de probabilité'
495
+ past_due: en retard, devait être clôturé il y a %{value}
496
+ probability: Probabilité
497
+ probability_number: et %{value} de probabilité
498
+ save_opportunity: Enregistrer l'opportunité
499
+ stage: Etape
500
+ total_opportunities: Total des opportunités
501
+ weighted_amount: Montant pondéré
502
+
503
+ # Views -> Tasks.
504
+ #----------------------------------------------------------------------------
505
+ task: Tâche
506
+ task_small: tâche
507
+ tasks: Tâches
508
+ tasks_small: tâches
509
+ assign_to: Assigner à
510
+ assigned_tab: Assigné
511
+ assigned_tasks: Tâches assignées
512
+ category: Catégorie
513
+ completed_tab: Complétée
514
+ completed_tasks: Tâches complétées
515
+ create_task: Créer une tâche
516
+ create_task_small: créer une nouvelle tâche
517
+ due: A faire
518
+ feel_free: N'hésitez pas à
519
+ move_to: aller à
520
+ no_tasks: Vous n'avez aucune tâche %{value}
521
+ no_tasks_pending: en attente
522
+ no_tasks_assigned: assignée
523
+ no_tasks_completed: complétée
524
+ pending_tab: En attente
525
+ pending_tasks: Tâches en attente
526
+ related: ! 're:'
527
+ save_task: Enregistrer la tâche
528
+ task_assigned: La tâche à été assignée à %{value}
529
+ task_assigned_to: et assignée à %{value}
530
+ task_completed: complétée
531
+ task_uncomplete: Revenir
532
+ task_completed_ago: complétée il y a %{value}
533
+ task_completed_by: complétée il y a %{time_ago} par %{user}
534
+ task_created: La tâche à été créée
535
+ task_due_in: échéance dans %{value}
536
+ task_due_later: à faire bientôt
537
+ task_due_now: à faire maintenant
538
+ task_due_today: à faire aujourd'hui
539
+ task_from: De %{value}
540
+ task_overdue: en retard, échéance prévue le
541
+ task_pending: La tâche à été mise en attente
542
+ total_tasks: Total des %{value}
543
+ view_assigned_tasks: voir les tâches assignées
544
+ view_pending_tasks: voir les tâches en attente
545
+
546
+ # Views -> Team.
547
+ #----------------------------------------------------------------------------
548
+ unassigned_opportunities: Opportunités non assignées
549
+ no_opportunities_found: Il n'y a actuellement pas d'opportunité en cours.
550
+
551
+ # Views -> Home.
552
+ #----------------------------------------------------------------------------
553
+ action_completed: a complété le/la
554
+ action_created: a créé le/la
555
+ action_deleted: a supprimé le/la
556
+ action_email: a échangé des mails avec
557
+ action_reassigned: a réassigné le/la
558
+ action_rejected: a rejeté le/la
559
+ action_rescheduled: a re-planifié le/la
560
+ action_updated: a mis à jour le/la
561
+ action_viewed: a vu le/la
562
+ action_won: a gagné une
563
+ activities: Activités
564
+ no_activity_records: Aucune activité trouvée.
565
+ recent_activity: Activité récente
566
+ recent_activity_options: Options des activités récentes
567
+ subject_account: compte
568
+ subject_campaign: campagne
569
+ subject_contact: contact
570
+ subject_lead: piste
571
+ subject_opportunity: opportunité
572
+ subject_task: tâche
573
+ subject_user: utilisateur
574
+ tag_list: Tags
575
+ created_past_participle: Création d'enregistrements
576
+ view_past_participle: Consultations
577
+ update_past_participle: Modifications
578
+ destroy_past_participle: Supressions
579
+ all_events_past_participle: Activités
580
+ action_create_comment: ! '- "%{comment}"'
581
+ my_tasks: Mes tâches
582
+ no_task_records: Vous n'avez pas de tâche.
583
+ my_opportunities: Mes opportunités
584
+ no_opportunity_records: Vous n'avez pas d'opportunité.
585
+ my_accounts: Mes comptes
586
+ no_account_records: Vous n'avez pas de compte.
587
+ not_showing_hidden_entities: ! '%{count} %{entity} cachées.'
588
+
589
+ # Views -> Common.
590
+ #----------------------------------------------------------------------------
591
+ add_note: Ajouter une note
592
+ save_note: Enregistrer la note
593
+ add_note_help: Ajouter une nouvelle note...
594
+ edit_note: Modifier la note
595
+ added_ago: ajoutée il y a %{value}
596
+ added_by: ajoutée il y a %{time_ago} par %{user}
597
+ back: Retour
598
+ cancel: Annuler
599
+ close_form: Fermer le formulaire
600
+ confirm_delete: ! 'Êtes-vous certain de vouloir supprimer ceci : %{value}?'
601
+ copy_permissions: Copier les permissions de %{value}
602
+ could_not_find: ! 'Aucun(e) %{value} n''a été trouvé(e). N''hésitez pas à '
603
+ could_not_find_matching: Aucun(e) %{value} n'a été trouvé(e) correspondant à
604
+ create_new: créer un(e)
605
+ create_a_new: créer un(e)
606
+ select_existing: sélectionnez un(e)
607
+ delete: Supprimer
608
+ discard: Abandonner
609
+ edit: Modifier
610
+ items_total: ! '%{count} total.'
611
+ less: Moins...
612
+ me: moi
613
+ more: Plus...
614
+ n_a: N/R
615
+ name: Nom
616
+ no_match: Aucun(e) %{value} ne correspond
617
+ no_recent_items: Il n'y rien de récent à afficher pour l'instant.
618
+ options: Options
619
+ permissions: Permissions
620
+ please_retry: essayez une autre requête.
621
+ recent_items: Objets récents
622
+ select_contact: Choisir un contact
623
+ select_lead: Choisir une piste
624
+ select_task: Choisir une tâche
625
+ select_opportunity: Choisir une opportunité
626
+ search_assets: Recherche de %{value}
627
+ time_ago: il y a %{value}
628
+ background_info: Informations
629
+ address: Adresse
630
+ street1: Rue 1
631
+ street2: Rue 2
632
+ city: Ville
633
+ zipcode: Code postal
634
+ state: Région
635
+ country: Pays
636
+ select_a_country: Choisir un pays
637
+ expand_all: Tout déplier
638
+ collapse_all: Tout replier
639
+ expanded: déplier
640
+ collapsed: replier
641
+
642
+ # Views -> Layout.
643
+ #----------------------------------------------------------------------------
644
+ about: A propos
645
+ about_dev_group: Groupe de discussion pour les développeurs
646
+ about_features: Fonctionnalités et bugs
647
+ about_ffc: A propos de Fat Free CRM
648
+ about_ffc_resources: Ressources pour Fat Free CRM (Nouvelle fenêtre)
649
+ about_ffc_version: version de Fat Free CRM
650
+ about_home_page: Page d'accueil
651
+ about_project_page: Page du projet
652
+ about_thank_you: Merci d'utiliser Fat Free CRM!
653
+ about_twitter: mises à jours sur Twitter
654
+ about_user_group: Groupe de discussion pour les utilisateurs
655
+ admin: Administration
656
+ logout: Se déconnecter
657
+ quick_find: Recherche rapide
658
+ welcome: Bienvenue
659
+
660
+ # Advanced search
661
+ accounts_advanced_search: Recherche avancée des comptes
662
+ advanced_search: Recherche avancée
663
+ basic_search: Recherche basique
664
+ search_results_count:
665
+ one: ! '%{count} résultat pour la recherche.'
666
+ other: ! '%{count} résultats pour la recherche.'
667
+
668
+ # Views -> Comments.
669
+ #----------------------------------------------------------------------------
670
+ comment: Commentaire
671
+ edit_comment: Modifier le commentaire
672
+ show: Voir
673
+ update: Modifier
674
+ following_users_will_be_notified: Les utilisateurs suivants seront notifiés par email
675
+ notifications_tooltip: Les utilisateurs abonnés recevront les nouveaux commentaires par email
676
+ subscribe_via_email: S'abonner par email
677
+ disable_email_subscriptions: Annuler l'abonnement email
678
+ added_note: Ajout de lq note %{value}
679
+
680
+ # Views -> Emails.
681
+ #----------------------------------------------------------------------------
682
+
683
+ # Views -> Passwords.
684
+ #----------------------------------------------------------------------------
685
+ confirm_password_intro: Saisissez votre nouveau mot de passe et sa confirmation.
686
+ password_intro: Précisez votre adresse e-mail, et les instructions pour les réinitialiser
687
+ vous seront communiquées.
688
+ reset_password: Ré-initialisation du mot de passe
689
+ update_password_and_login: Modification de l'identifiant et du mot de passe
690
+
691
+ # Views -> Admin
692
+ #----------------------------------------------------------------------------
693
+ back_to_crm: Retour à Fat Free CRM
694
+ crm_admin_page: Administration de Fat Free CRM
695
+
696
+ # Views -> Admin -> Groups
697
+ #----------------------------------------------------------------------------
698
+ create_group: Créer un groupe
699
+ save_group: Enregistrer le groupe
700
+ group_members: membres
701
+ groups: Groupes
702
+ groups_small: groupes
703
+ group_small: groupe
704
+
705
+ # Views -> Admin -> Users
706
+ #----------------------------------------------------------------------------
707
+ confirm_group_delete: Etes vous sûr de vouloir supprimer ce groupe ? Il y a %{count} objects qui
708
+ référencent encore ce groupe.
709
+ approve: Approuver
710
+ create_user: Créer un utilisateur
711
+ last_logged_in: last logged in %{value}
712
+ personal_information: Informations complémentaires
713
+ reactivate: Réactiver
714
+ save_user: Enregistrer l'utilisateur
715
+ suspend: Suspendre
716
+ user_active: Actif
717
+ user_admin: Admin
718
+ user_awaits_approval: en attente de votre approbation
719
+ user_confirm_delete: Un utilisateur ne peut être supprimé que si aucun objet lui
720
+ appartenant existent toujours.
721
+ user_is_admin: L'utilisateur est administrateur
722
+ user_never_logged_in: ne s'est pas encore connecté
723
+ user_signed_up: est enregistré
724
+ user_signed_up_on: s'est enregistré le %{value}
725
+ user_since: utilisateur depuis le %{value}
726
+ user_suspended: Suspendu
727
+ user_suspended_on: suspendu le %{value}
728
+ users: Utilisateurs
729
+ users_small: utilisateurs
730
+
731
+ # Views -> Versions
732
+ #----------------------------------------------------------------------------
733
+ versions: Historique
734
+ version:
735
+ create: Créé par %{by} il y a %{item}.
736
+ update: Modifié par %{by} il y a %{item}.
737
+ destroy: Détruit par %{by} il y a %{item}.
738
+ set: ! '%{attr} renseigné %{to}'
739
+ unset: ! '%{attr} supprimé'
740
+ change: ! '%{attr} changé de %{from} à %{to}'
741
+ anonymous: anonyme
742
+ account_contact_id: ID du compte
743
+ account_contact_name: Nom du compte
744
+ user_id: ID de l'utilisateur
745
+ created_at: Crée le
746
+ updated_at: Modifié le
747
+
748
+ # Export.
749
+ #----------------------------------------------------------------------------
750
+ to_xls: Exporter au format Excel
751
+ to_csv: Exporter au format CSV (enregistrements supprimés inclus)
752
+ to_rss: fil RSS
753
+ to_atom: fil Atom
754
+ to_perm: Permalink
755
+
756
+ # Dropbox.
757
+ #----------------------------------------------------------------------------
758
+ dropbox_notification_subject: dropbox - Email ajouté - %{subject}
759
+ dropbox_notification_intro: a ajouté l'email que vous avez envoyé à la dropbox
760
+ dropbox_notification_to: ajoutés aux
761
+ subject: Sujet
762
+ body: Corps
763
+
764
+ # Comment Inbox
765
+ #----------------------------------------------------------------------------
766
+ comment_notification:
767
+ intro: ! '%{user_full_name} a commenté %{entity_type}: %{entity_name}'
768
+ reply_instructions: Répondez à cet email pour ajouter un commentaire, ou visionnez
769
+ le %{entity} en ligne
770
+
771
+ # Lists
772
+ #----------------------------------------------------------------------------
773
+ global_lists: Listes globales
774
+ personal_lists: Mes listes
775
+ list: Liste
776
+ no_saved_lists: Pas de liste enregistrée
777
+ make_current_view_list: Faire de la vue courante une liste
778
+ list_name_info: Si vous utilisez le nom d'une liste existante vous écraserez cette
779
+ liste avec vos paramètres courants
780
+
781
+ # Pluralizations.
782
+ #----------------------------------------------------------------------------
783
+ pluralize:
784
+ comment:
785
+ one: 1 commentaire
786
+ other: ! '%{count} commentaires'
787
+ contact:
788
+ one: 1 contact
789
+ other: ! '%{count} contacts'
790
+ opportunity:
791
+ one: 1 opportunité
792
+ other: ! '%{count} opportunités'
793
+ lead:
794
+ one: 1 prospect
795
+ other: ! '%{count} prospects'
796
+ day:
797
+ one: 1 jour
798
+ other: ! '%{count} jours'
799
+ login:
800
+ one: 1 identifiant
801
+ other: ! '%{count} identifiants'
802
+
803
+ # Custom date/time formats.
804
+ #----------------------------------------------------------------------------
805
+ date:
806
+ formats:
807
+ mmddyyyy: ! '%d/%m/%Y'
808
+ mmdd: ! '%e %b'
809
+ mmddyy: ! '%e %b %Y'
810
+ time:
811
+ formats:
812
+ mmddhhss: ! '%b %e à %H:%M%'
813
+ mmddyyyy_hhmm: ! '%d/%m/%Y à %H:%M'
814
+
815
+ # will_paginate translations copied for 'en-US'
816
+ #----------------------------------------------------------------------------
817
+ will_paginate:
818
+ previous_label: ! '← Précédent'
819
+ next_label: Suivant →
820
+ page_gap: ! '…'
821
+ page_entries_info:
822
+ single_page:
823
+ zero: Aucun(e) %{name} trouvé
824
+ one: Affichage de 1 %{name}
825
+ other: Affichage de %{count} %{plural}
826
+ multi_page: Affichage des %{plural} %{from} à %{to} de %{total} au total
827
+
828
+ # Views -> Admin -> Custom Fields
829
+ #----------------------------------------------------------------------------
830
+ label: Etiquette
831
+ custom_fields: Champs personnalisés
832
+ custom_field_options: Options des champs personnalisés
833
+ create_field: Créer un champ
834
+ save_field: Enregistrer le champ
835
+ create_field_group: Créer une section (groupe de champs)
836
+ edit_field_group: Editer la section
837
+ save_field_group: enregistrer la section
838
+ field_group_empty: Il n'y a aucun champ dans cette section
839
+ select_or_create_tags: Sélectionner un tag ou créez un nouveau tag en validant par
840
+ la touche entrée.
841
+ restrict_by_tag: Restriction par tag
842
+ restrict_by_tag_info: Cette section ne sera visible que pour les %{assets} qui seront
843
+ taggé(e)s"
844
+ field_group_tag_restriction: Cette section est visible pour les %{assets} qui sont
845
+ taggé(e)s "%{tag}"
846
+ field_group_unrestricted: Cette section est visible pour l'ensemble des %{assets}
847
+ field_group_confirm_delete: Quand une section est supprimée, tous les champs personnalisés
848
+ sont déplacés vers la section par défaut.
849
+ msg_cant_delete_field_group: Cette section ne peut pas être supprimée.
850
+ admin_fields_info: ! 'Les champs personnalisés sont affichés dans des sections.
851
+ Créez d''abord une nouvelle section, ou ajoutez les champs dans une section existante
852
+ ci-dessous. Vous pouvez faire glisser les champs pour ordonner leur présentation ou les faire
853
+ changer de section.'
854
+
855
+ # Views -> Admin -> Tags
856
+ #----------------------------------------------------------------------------
857
+ admin_fields_info2: ! 'Il est recommandé de redémarrer le serveur après l''ajout ou la suppression d''un
858
+ champ personnalisé'
859
+
860
+ tags: Tags
861
+ tag_small: tag
862
+ tagged: Taggé
863
+ create_tag: Créer un tag
864
+ save_tag: Enregistrer le tag
865
+ field_group_tags: Sections visibles pour ce tag
866
+
867
+ # Views -> Admin -> Plugins
868
+ #----------------------------------------------------------------------------
869
+ tag_with_taggings_confirm_delete: En supprimant ce tag, il sera supprimé de %{value}
870
+ enregistrements.
871
+ msg_cant_delete_tag: Impossible de supprimer '%{value}' car il est associé à au
872
+ moins une section.
873
+ views:
874
+ admin:
875
+ plugins:
876
+ author: Auteur
877
+ version: Version
878
+ description: Description
879
+
880
+ # Simple Form translations
881
+ #----------------------------------------------------------------------------
882
+ simple_form:
883
+ 'yes': Oui
884
+ 'no': Non
885
+ required:
886
+ text: required
887
+ mark: ! '*'
888
+ error_notification:
889
+ default_message: ! 'Votre demande ne peut aboutir, les erreurs suivantes se
890
+ sont déclenchées:'
891
+
892
+ # Form field types
893
+ #----------------------------------------------------------------------------
894
+ field_types:
895
+ string:
896
+ title: Texte court
897
+ text:
898
+ title: Texte long
899
+ select:
900
+ title: Liste de sélection
901
+ multiselect:
902
+ title: Liste de sélection (multiple)
903
+ radio_buttons:
904
+ title: Boutons radio
905
+ boolean:
906
+ title: Case à cocher
907
+ check_boxes:
908
+ title: Liste de cases à cocher
909
+ date:
910
+ title: Date
911
+ date_pair:
912
+ title: Paire de dates
913
+ datetime:
914
+ title: Date et Heure
915
+ datetime_pair:
916
+ title: Paire de dates et heures
917
+ email:
918
+ title: Addresse email
919
+ url:
920
+ title: URL
921
+ tel:
922
+ title: Numéro de téléphone
923
+ decimal:
924
+ title: Nombre décimal
925
+ integer:
926
+ title: Nombre entier
927
+ float:
928
+ title: Nombre flottant
929
+ pair:
930
+ start: Début
931
+ end: Fin
932
+ from_to: De %{from} à %{to}
933
+ from_only: De %{from}
934
+ to_only: A %{to}