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,91 @@
1
+ ---
2
+ es:
3
+ ransack:
4
+ search: buscar
5
+ predicate: predicado
6
+ and: y
7
+ or: o
8
+ any: algún
9
+ all: todos
10
+ combinator: combinador
11
+ attribute: atributo
12
+ value: valor
13
+ condition: condición
14
+ sort: ordenar
15
+ asc: ascendente
16
+ desc: descendente
17
+ submit: Buscar
18
+ add_group: Añadir un grupo de filtros
19
+ group_first: Mostrando resultados donde %{combinator} de las siguientes coincidencias
20
+ group_rest: ! '...y donde %{combinator} de las siguientes coincidencias'
21
+ add_condition: Añadir un filtro
22
+ remove_condition: Borrar un filtro
23
+ predicates:
24
+ eq: es
25
+ eq_any: es cualquier
26
+ eq_all: es todo
27
+ not_eq: no es
28
+ not_eq_any: no es ninguna
29
+ not_eq_all: no es todo
30
+ matches: coincidencias
31
+ matches_any: coincide con cualquiera
32
+ matches_all: coincide con todos
33
+ does_not_match: no coincide
34
+ does_not_match_any: no coincide ninguno
35
+ does_not_match_all: no coincide todos
36
+ lt: es menor que
37
+ lt_any: es menor que cualquiera
38
+ lt_all: es menor que todos
39
+ lteq: es menor o igual que
40
+ lteq_any: es menor o igual que cualquiera
41
+ lteq_all: es menor o igual que todos
42
+ gt: es mayor que
43
+ gt_any: es mayor que cualquiera
44
+ gt_all: es mayor que todos
45
+ gteq: es mayor o igual que
46
+ gteq_any: es mayor o igual que cualquiera
47
+ gteq_all: es mayor o igual que todos
48
+ in: esta en
49
+ in_any: esta en cualquiera
50
+ in_all: esta en todos
51
+ not_in: no esta en
52
+ not_in_any: no esta en ninguno
53
+ not_in_all: no esta en todos
54
+ cont: contiene
55
+ cont_any: contiene algún
56
+ cont_all: contiene todos
57
+ not_cont: no contiene
58
+ not_cont_any: no contiene ningún
59
+ not_cont_all: no contiene todo
60
+ start: empieza con
61
+ start_any: empieza con cualquiera
62
+ start_all: empieza con todo
63
+ not_start: no empieza con
64
+ not_start_any: no empieza con cualquiera
65
+ not_start_all: no empieza con todo
66
+ end: termina con
67
+ end_any: termina con cualquiera
68
+ end_all: termina con todo
69
+ not_end: no termina con
70
+ not_end_any: no termina con ninguna
71
+ not_end_all: no termina con todas
72
+ 'true': es cierto
73
+ 'false': es falso
74
+ present: esta presente
75
+ blank: es blanco
76
+ 'null': es nulo
77
+ not_null: no es nulo
78
+ alt:
79
+ date:
80
+ lt: es antes
81
+ lt_any: es antes de cualquier
82
+ lt_all: es antes de todos
83
+ lteq: es antes o en
84
+ lteq_any: es antes o en cualquier
85
+ lteq_all: es antes o en todos
86
+ gt: es después
87
+ gt_any: es después de cualquier
88
+ gt_all: es despueś de todos
89
+ gteq: es despueś o en
90
+ gteq_any: es despueś o en cualquier
91
+ gteq_all: es despueś o en todos
@@ -0,0 +1,224 @@
1
+ ---
2
+ fr-CA:
3
+ date:
4
+ formats:
5
+ default: ! '%Y-%m-%d'
6
+ short: ! '%y-%m-%d'
7
+ long: ! '%d %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
+ - :year
54
+ - :month
55
+ - :day
56
+ time:
57
+ formats:
58
+ default: ! '%H:%M:%S'
59
+ short: ! '%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: Mille milliard
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
+ errors:
170
+ format: Le %{attribute} %{message}
171
+ messages:
172
+ inclusion: n'est pas inclus(e) dans la liste
173
+ exclusion: n'est pas disponible
174
+ invalid: n'est pas valide
175
+ confirmation: ne concorde pas avec la confirmation
176
+ accepted: doit être accepté(e)
177
+ empty: doit être rempli(e)
178
+ blank: doit être rempli(e)
179
+ too_long: est trop long (pas plus de %{count} caractères)
180
+ too_short: est trop court (au moins %{count} caractères)
181
+ wrong_length: ne fait pas la bonne longueur (doit comporter %{count} caractères)
182
+ not_a_number: n'est pas un nombre
183
+ not_an_integer: doit être un nombre entier
184
+ greater_than: doit être supérieur à %{count}
185
+ greater_than_or_equal_to: doit être supérieur ou égal à %{count}
186
+ equal_to: doit être égal à %{count}
187
+ less_than: doit être inférieur à %{count}
188
+ less_than_or_equal_to: doit être inférieur ou égal à %{count}
189
+ odd: doit être impair
190
+ even: doit être pair
191
+ attributes:
192
+ created_at: Créé le
193
+ updated_at: Modifié le
194
+ activerecord:
195
+ errors:
196
+ messages:
197
+ inclusion: n'est pas inclus(e) dans la liste
198
+ exclusion: n'est pas disponible
199
+ invalid: n'est pas valide
200
+ confirmation: ne concorde pas avec la confirmation
201
+ accepted: doit être accepté(e)
202
+ empty: doit être rempli(e)
203
+ blank: doit être rempli(e)
204
+ too_long: est trop long (pas plus de %{count} caractères)
205
+ too_short: est trop court (au moins %{count} caractères)
206
+ wrong_length: ne fait pas la bonne longueur (doit comporter %{count} caractères)
207
+ not_a_number: n'est pas un nombre
208
+ not_an_integer: doit être un nombre entier
209
+ greater_than: doit être supérieur à %{count}
210
+ greater_than_or_equal_to: doit être supérieur ou égal à %{count}
211
+ equal_to: doit être égal à %{count}
212
+ less_than: doit être inférieur à %{count}
213
+ less_than_or_equal_to: doit être inférieur ou égal à %{count}
214
+ odd: doit être impair
215
+ even: doit être pair
216
+ taken: n'est pas disponible
217
+ record_invalid: ! 'La validation a échoué : %{errors}'
218
+ template:
219
+ header:
220
+ one: ! 'Impossible d''enregistrer ce %{model} : 1 erreur'
221
+ other: ! 'Impossible d''enregistrer ce %{model} : %{count} erreurs'
222
+ body: ! 'Veuillez vérifier les champs suivants : '
223
+ full_messages:
224
+ format: ! '%{attribute} %{message}'
@@ -0,0 +1,570 @@
1
+ # French I18n file for Fat Free CRM
2
+ # Translation by Cédric Brancourt aka Electron-libre
3
+ # cedric.brancourt@gmail.com
4
+ #
5
+ # French Canadian adjustments
6
+ # by Serafim Junior Dos Santos Fagundes <serafim@cyb3r.ca>
7
+
8
+ ---
9
+ fr-CA:
10
+ language: Français (Canadien)
11
+ all: Tous
12
+ at: à
13
+ here: ici
14
+ no_button: Non
15
+ not_implemented: Pas encore implémenté.
16
+ or: ou
17
+ select_none: -- Aucun --
18
+ select_blank: -- Selectionnez --
19
+ yes_button: Oui
20
+ tab_dashboard: Résumé
21
+ tab_tasks: Tâches
22
+ tab_campaigns: Campagnes
23
+ tab_leads: Pistes
24
+ tab_accounts: Comptes
25
+ tab_contacts: Contacts
26
+ tab_opportunities: Opportunités
27
+ admin_tab_users: Utilisateurs
28
+ admin_tab_settings: Paramètres
29
+ admin_tab_plugins: Plugins
30
+ planned: Planifié
31
+ started: Démarré
32
+ on_hold: En attente
33
+ completed: Complétée
34
+ called_off: Abandonné
35
+ new: Nouveau
36
+ contacted: Contacté
37
+ converted: Converti
38
+ rejected: Rejeté
39
+ cold_call: Appel entrant
40
+ conference: Conférence
41
+ online: Online Marketing
42
+ referral: Référant
43
+ self: Interne
44
+ web: Website
45
+ word_of_mouth: Bouche à oreille
46
+ other: Autre
47
+ prospecting: Prospection
48
+ analysis: Analyse
49
+ presentation: Présentation
50
+ proposal: Proposition
51
+ negotiation: Négociation
52
+ final_review: Examen final
53
+ won: Clôturé/Gagné
54
+ lost: Clôture/Perdu
55
+ call: Appel
56
+ email: E-mail
57
+ follow_up: Relance
58
+ lunch: Dîné
59
+ meeting: Réunion
60
+ money: Argent
61
+ trip: Voyage
62
+ overdue: Délai expiré
63
+ due_asap: Dès que possible
64
+ due_today: Aujourd'hui
65
+ due_tomorrow: Demain
66
+ due_this_week: Cette semaine
67
+ due_next_week: La semaine prochaine
68
+ due_later: Plus tard
69
+ due_specific_date: A date précise...
70
+ completed_today: Ajourd'hui
71
+ completed_yesterday: Hier
72
+ completed_last_week: La semaine dernière
73
+ completed_this_month: Ce mois
74
+ completed_last_month: Le mois dernier
75
+ one_hour: Une heure
76
+ one_day: Un jour
77
+ two_days: Deux jours
78
+ one_week: Une semaine
79
+ two_weeks: Deux semaines
80
+ one_month: Un mois
81
+ activerecord:
82
+ errors:
83
+ models:
84
+ authentication:
85
+ attributes:
86
+ login_field:
87
+ is_not_valid: n'est pas valide
88
+ password_field:
89
+ is_not_valid: n'est pas valide
90
+ account:
91
+ attributes:
92
+ name:
93
+ missing_account_name: ^Vérifiez le nom de compte.
94
+ access:
95
+ share_account: ^Spécifiez un utilisateur avec qui partager le compte.
96
+ campaign:
97
+ attributes:
98
+ name:
99
+ missing_campaign_name: ^Précisez un nom de campagne.
100
+ ends_on:
101
+ dates_not_in_sequence: ^Vérifiez que la date de fin de campagne soit
102
+ avant la date de début.
103
+ access:
104
+ share_campaign: ^Préciser un utilisateur avec qui partager la campagne.
105
+ contact:
106
+ attributes:
107
+ first_name:
108
+ missing_first_name: ^Précisez le prénom
109
+ last_name:
110
+ missing_last_name: ^Précisez le nom.
111
+ access:
112
+ share_contact: ^Précisez avec quel utilisateur partager le contact.
113
+ lead:
114
+ attributes:
115
+ first_name:
116
+ missing_first_name: ^Précisez le prénom
117
+ last_name:
118
+ missing_last_name: ^Précisez le nom.
119
+ access:
120
+ share_lead: ^Précisez avec quel utilisateur partager la piste.
121
+ opportunity:
122
+ attributes:
123
+ name:
124
+ missing_opportunity_name: ^Spécifiez un nom d'opportunité.
125
+ access:
126
+ share_opportunity: ^Précisez avec quel utilisateur partager l'opportunité.
127
+ task:
128
+ attributes:
129
+ name:
130
+ missing_task_name: ^Précisez le nom de la tâche.
131
+ calendar:
132
+ invalid_date: ^Précisez une date valide
133
+ user:
134
+ attributes:
135
+ username:
136
+ missing_username: ^Précisez un nom d'utilisateur.
137
+ username_taken: ^Ce nom d'utilisateur est déjà pris
138
+ email:
139
+ missing_email: ^Précisez une adresse e-mail
140
+ email_in_use: ^Un utilisateur existe déjà avec cette adresse.
141
+ errors:
142
+ template:
143
+ header:
144
+ one: ! 'Impossible d''enregistrer ce %{model} : 1 erreur'
145
+ other: ! 'Impossible d''enregistrer ce %{model} : %{count} erreurs'
146
+ body: ! 'Veuillez vérifier les champs suivants : '
147
+ msg_account_suspended: Ce compte utilisateur a été suspendu.
148
+ password_reset_instruction: instruction de reinitialisation du mot de passe
149
+ msg_account_created: Votre compte a été créé, il est en attente d'approbation par
150
+ l'administrateur
151
+ msg_account_not_approved: Votre compte n'à pas encore été approuvé
152
+ msg_asset_deleted: ! '%{value} à été supprimé'
153
+ msg_asset_not_available: Ce %{value} n'est plus disponible.
154
+ msg_asset_not_authorized: You are not authorized to view this %{value}.
155
+ msg_assets_not_available: Les %{value} ne sont pas disponibles.
156
+ msg_asset_rejected: ! '%{value} à été rejetée.'
157
+ msg_bad_image_file: ^Nous n'avons pu télécharger ou redimensionner votre image.
158
+ msg_cant_create_related: Impossible de crée le %{asset} puisque le %{related} n'est
159
+ plus disponnible.
160
+ msg_cant_delete_user: ^Impossible de supprimer car %{value} a des objets présents.
161
+ msg_cant_do: Impossible de %{action} le %{asset} puisqu'il n'est plus disponible.
162
+ msg_email_not_found: Aucun utilisateur ne correspond a cette adresse
163
+ msg_enter_new_password: Saisissez votre nouveau mot de passe.
164
+ msg_goodbye: Vous avez été déconnecté, merci d'utiliser Fat Free CRM!
165
+ msg_invalid_password: ^Saisissez votre mot de passe actuel
166
+ msg_invalig_login: Utilisateur ou mot de passe non valide.
167
+ msg_last_login: Votre dernière connection était le %{value}.
168
+ msg_login_needed: Vous devez être connecté pour accéder a cette page.
169
+ msg_logout_needed: Vous devez être déconnecté pour accéder a cette page.
170
+ msg_password_changed: Votre mot de passe a été modifié
171
+ msg_password_not_changed: Votre mot de passe n'a pas été modifié
172
+ msg_password_updated: Modification de mot de passe réussie.
173
+ msg_pwd_instructions_sent: Les instruction de modification de mot de passe vous
174
+ on été envoyées. Vérifiez vos e-mails
175
+ msg_require_admin: Vous devez être administrateur pour accéder a cette page
176
+ msg_successful_signup: Enregistrement réussi. Bienvenu dans Fat Free CRM
177
+ msg_welcome: Bienvenu dans Fat Free CRM
178
+ option_amount*probability: Montant pondéré
179
+ activity_options: Voir les actions %{models} effectuées par %{user} dans les derniers
180
+ %{period}.
181
+ all_users: tous les utilisateurs
182
+ option_after: après
183
+ option_all: tous
184
+ option_all_users: Tous les utilisateurs
185
+ option_amount: montant
186
+ option_before: avant
187
+ option_brief: court
188
+ option_closes_on: date de clôture
189
+ option_company: société
190
+ option_created_at: date de création
191
+ option_ends_on: date de fin
192
+ option_first_name: prénom
193
+ option_last_name: nom
194
+ option_leads_count: pistes actuelles
195
+ option_long: long
196
+ option_name: nom
197
+ option_probability: probabilité
198
+ option_rating: évaluation
199
+ option_revenue: revenu actuel
200
+ option_starts_on: date de début
201
+ option_target_leads: pistes cibles
202
+ option_target_revenue: revenus cibles
203
+ option_updated_at: date de modification
204
+ show_per_page: Voir %{number} %{models} par page au format %{fmt}.
205
+ sort_by: Trier par %{field}.
206
+ sort_by_displaying: Trier %{models} par %{field} afficher le prénom %{position}
207
+ le nom.
208
+ aim: AOL IM
209
+ already_signed_up: Déjà enregistré?
210
+ alt_email: e-mail secondaire
211
+ avatar: Image
212
+ change_password: Modifier le mot de passe
213
+ company: Société
214
+ contact_info: Informations de contact
215
+ current_password: Mot de passe actuel
216
+ edit_profile: Modifier le profile
217
+ first_name: Prénom
218
+ google: Google IM
219
+ gravatar_help: Vous ne connaissez pas Gravatar? Informations sur Gravatar
220
+ image_file: Fichier image
221
+ image_help: L'image que vous envoyez sera redimensionnée à 75 x 75 pixels. Les formats
222
+ supportés sont GIF, JPEG et PNG.
223
+ job_title: Titre/Fonction
224
+ last_name: Nom
225
+ login_now_link: Connectez vous maintenant!
226
+ mobile: Mobile
227
+ my_profile: Mon profile
228
+ new_password: Nouveau mot de passe
229
+ password: Mot de passe
230
+ password_confirmation: Confirmez le nouveau mot de passe
231
+ phone: Téléphone
232
+ profile: Profile
233
+ profile_language: Langue
234
+ save_profile: Enregistrer le profile
235
+ sign_up: Enregistrement
236
+ sign_up_button: Enregistrement
237
+ skype: Skype
238
+ upload_picture: Envoyez une image
239
+ use_gravatar: Utilisez Gravatar
240
+ user: Utilisateur
241
+ username: Nom d'utilisateur
242
+ yahoo: Yahoo IM
243
+ forgot_password: Mot de passe oublié
244
+ login: Connection
245
+ no_account: Vous ne possédez pas de compte?
246
+ remember_me: Se souvenir de moi
247
+ sign_up_now: S'enregistrer maintenant!
248
+ account: Compte
249
+ account_small: compte
250
+ accounts: Comptes
251
+ accounts_options: Options des comptes
252
+ accounts_small: comptes
253
+ assigned_to: Assigné à
254
+ billing_address: Adresse de facturation
255
+ create_account: Créer un compte
256
+ date_created: Date de création
257
+ date_updated: Date de modification
258
+ fax: Fax
259
+ intro: Vous pouvez ajouter les informations de %{value} plus tard.
260
+ mobile_small: mobile
261
+ open_in_window: Ouvrir %{value} dans une nouvelle fenêtre
262
+ phone_small: téléphone
263
+ phone_toll_free: Tel. gratuit
264
+ keep_private: Garder privé, ne pas partager avec les autres
265
+ make_public: Partager avec tous
266
+ same_as_billing: identique à facturation
267
+ save_account: Enregistrer le compte
268
+ share_with: Partager avec les personnes suivantes
269
+ shipping_address: Adresse de livraison
270
+ website: Site Web
271
+ actual: Actuel
272
+ actual_performance: Performance Actuelle
273
+ budget: Budget
274
+ budget_label: Budget ($)
275
+ campaign: Campagne
276
+ campaign_and_leads: campagne et ses pistes
277
+ campaign_small: campagne
278
+ campaign_summary: Résumé de la campagne
279
+ campaign_targets: Cibles de la campagne
280
+ campaigns: Campagnes
281
+ campaigns_options: Options de campagnes
282
+ campaigns_small: campagnes
283
+ conversion: Conversion
284
+ conversion_label: Conversion (%)
285
+ conversion_number: ! '%{value} conversion'
286
+ create_campaign: Créer une Campagne
287
+ end_date: Date de fin
288
+ finished_on: terminé le %{value}
289
+ finishes_in: se termine dans %{value}
290
+ no_start_date: pas de date de début spécifiée
291
+ number_of_leads: Nombre de pistes
292
+ objectives: Objectifs
293
+ objectives_help: Spécifiez un objectif en nombre de pistes, taux de conversion de
294
+ pistes/opportunités, revenu espéré et budget. Ces valeurs seront utilisées lors
295
+ de l'évaluation des performances de la campagne
296
+ objectives_small: objectifs de la campagne
297
+ revenue: Revenu
298
+ revenue_label: Revenu ($)
299
+ revenue_number: ! '%{value} pour revenu'
300
+ save_campaign: Enregistrer la campagne
301
+ start_date: Date de début
302
+ started_ago: démarré il y a %{value}
303
+ starts_in: démarré dans %{value}
304
+ starts_today: démarre aujourd'hui!
305
+ target: Cible
306
+ total_campaigns: Total des Campagnes
307
+ was_supposed_to_finish: présumée se terminer le %{value}
308
+ was_supposed_to_start: était supposée démarrer il y a %{time_ago} le %{start_date}
309
+ address: Adresse
310
+ alt_email_small: Autre
311
+ blog: Site Web/Blog
312
+ contact: Contact
313
+ contact_small: contact
314
+ contacts: Contacts
315
+ contacts_options: Options des Contacts
316
+ contacts_small: contacts
317
+ create_contact: Créer un Contact
318
+ department: Département
319
+ department_small: ! 'département %{value} '
320
+ do_not_call: ne pas appeler
321
+ extra_info: Informations supplémentaires
322
+ extra_info_small: contact supplémentaire
323
+ facebook: Facebook
324
+ linked_in: LinkedIn
325
+ myself: Moi-même
326
+ permissions_intro_private: Par défaut vous seul aurez accès à %{value}. Vous pouvez
327
+ modifier les permissions ultérieurement.
328
+ permissions_intro_public: Par défaut tous les utilisateurs auront accès à %{value}.
329
+ Vous pouvez modifier les permissions ultérieurement.
330
+ permissions_intro_shared: Par défaut seul les utilisateurs sélectionnés auront accès
331
+ à %{value}. Vous pouvez modifier les permissions ultérieurement.
332
+ referred_by: Référencé par
333
+ referred_by_small: référence par
334
+ save_contact: Enregistrer le contact
335
+ twitter: Twitter
336
+ web_presence: Présence Web
337
+ web_presence_small: présence web
338
+ works_at: ! '%{job_title} chez %{company}'
339
+ convert: Convertir
340
+ convert_lead: Convertir la piste
341
+ convert_lead_permissions_intro: Les permissions du contact seront dupliquées depuis
342
+ la piste. Vous pouvez modifier les permissions du contact ultérieurement.
343
+ convert_lead_text: En convertissant la piste %{value} il/elle deviendras un contact
344
+ associé a un compte existant ou nouvellement créé. Le statut de la piste sera
345
+ automatiquement positionné à converti.
346
+ create_lead: Créer une piste
347
+ create_opp_for_contact: Vous pouvez éventuellement créer une opportunité pour le
348
+ contact %{value} en spécifiant le nom, l'étape courante, la date de clôture estimée,
349
+ la probabilité de vente, le montant de l'affaire, la remise offerte.
350
+ lead: Piste
351
+ lead_info_small: contact de la piste
352
+ lead_permissions_intro_private: Par défaut les permissions seront dupliquée depuis
353
+ la campagne ou positionnées sur privé. Vous pouvez modifier les permissions ultérieurement.
354
+ lead_permissions_intro_public: Par défaut les permissions seront dupliquée depuis
355
+ la campagne ou positionnées sur publique. Vous pouvez modifier les permissions
356
+ ultérieurement.
357
+ lead_permissions_intro_shared: Par défaut les permissions seront dupliquée depuis
358
+ la campagne ou partagées avec les utilisateurs spécifiés. Vous pouvez modifier
359
+ les permissions ultérieurement.
360
+ lead_small: piste
361
+ lead_status_small: statut de la piste
362
+ lead_summary: Résumé de la piste
363
+ leads: Pistes
364
+ leads_options: Options des pistes
365
+ leads_small: Pistes
366
+ none: Aucun
367
+ rating: Evaluation
368
+ reject: Rejeter
369
+ reject_lead_confirm: Etes vous certain de vouloir rejeter cette piste?
370
+ save_lead: Enregistrer la piste
371
+ source: Source
372
+ status: Statut
373
+ total_leads: Total des pistes
374
+ amount: Montant
375
+ close_date: Date de clôture
376
+ closed_ago_on: clôturé il y a%{time_ago} le %{date}
377
+ closes_today: doit être clôturé aujourd'hui!
378
+ closing_date: la date de clôture est %{value}
379
+ create_opportunity: Créer une opportunité
380
+ currency: ($)
381
+ days_late: En retard de
382
+ days_left: Jours restant
383
+ discount: Remise
384
+ discount_number: avec %{value} remise
385
+ expected_to_close: doit être clôturé dans %{time} le %{date}
386
+ from: de
387
+ no_closing_date: Aucune date de clôture fixée
388
+ no_discount: sans remise
389
+ opportunities: Opportunités
390
+ opportunities_options: Options des Opportunités
391
+ opportunities_small: Opportunités
392
+ opportunity: Opportunité
393
+ opportunity_small: opportunité
394
+ opportunity_summary: Opportunité At a Glance
395
+ opportunity_summary_text: ! '%{amount} avec %{discount} de remise et %{probability}
396
+ de probabilité'
397
+ past_due: en retard, devais être clôturé il y a %{value}.
398
+ probability: Probabilité
399
+ probability_number: et %{value} de probabilité
400
+ save_opportunity: Enregistrer l'opportunité
401
+ stage: Etape
402
+ total_opportunities: Total des opportunités
403
+ weighted_amount: Montant pondéré
404
+ assign_to: Assigner à
405
+ assigned_tab: Assigné
406
+ assigned_tasks: Tâches assignées
407
+ category: Catégories
408
+ completed_tab: Complété
409
+ completed_tasks: Tâche complétée
410
+ create_task: Créer une tâche
411
+ create_task_small: crée une nouvelle tâche
412
+ due: A faire
413
+ feel_free: N'hésitez pas à
414
+ move_to: aller à
415
+ no_tasks: ! 'Vous n''avez aucune tâche %{value} '
416
+ no_tasks_pending: en attente
417
+ no_tasks_assigned: assignée
418
+ no_tasks_completed: complétée
419
+ pending_tab: En attente
420
+ pending_tasks: Taches en attente
421
+ related: ! 're:'
422
+ save_task: Enregistrer la tâche
423
+ task_assigned: La tâche à été assignée à %{value}
424
+ task_assigned_to: et assignée à %{value}
425
+ task_completed: complétée
426
+ task_uncomplete: Revenir
427
+ task_completed_ago: complétée il y a %{value}
428
+ task_completed_by: complétée il y a %{time_ago} par %{user}
429
+ task_created: La tâche à été crée.
430
+ task_due_in: échéance dans %{value}
431
+ task_due_later: a faire bientôt
432
+ task_due_now: échoit maintenant
433
+ task_due_today: échoit aujourd'hui
434
+ task_from: De %{value}
435
+ task_overdue: en retard, échoyait le
436
+ task_pending: La tâche à été mise en attente.
437
+ task_small: tâches
438
+ tasks: Taches
439
+ total_tasks: Total %{value}
440
+ view_assigned_tasks: voir les tâches assignées
441
+ view_pending_tasks: voir les tâches en attente
442
+ action_commented: commenté le
443
+ action_completed: Complété
444
+ action_created: créé
445
+ action_deleted: supprimé
446
+ action_email: courriels échangés avec
447
+ action_reassigned: réassigné
448
+ action_rejected: rejeté
449
+ action_rescheduled: re-planifié
450
+ action_updated: mis à jour
451
+ action_viewed: vu
452
+ action_won: gagné
453
+ no_activity_records: Aucune activité trouvée.
454
+ recent_activity: Activité récente
455
+ recent_activity_options: Options des activités récentes
456
+ subject_account: compte
457
+ subject_campaign: campagne
458
+ subject_contact: contact
459
+ subject_lead: piste
460
+ subject_opportunity: opportunité
461
+ subject_task: tache
462
+ add_note: Ajouter une note
463
+ save_note: Enregistrer la note
464
+ add_note_help: Ajouter une nouvelle note...
465
+ added_ago: ajoutée il y a %{value}
466
+ added_by: ajoutée il y a %{time_ago} par %{user}
467
+ back: Retour
468
+ cancel: Annuler
469
+ close_form: Fermer le formulaire
470
+ confirm_delete: ! 'Êtes-vous certain de vouloir supprimer ceci : %{value}?'
471
+ copy_permissions: Copier les permissions de %{value}
472
+ could_not_find: ! '%{value} N''a pas été trouvé. N''hésitez pas à '
473
+ could_not_find_matching: Aucun(e) %{value} n'a été trouvé correspondant à
474
+ create_new: créer un(e)
475
+ select_existing: sélectionnez
476
+ delete: Supprimer
477
+ discard: Rejeter
478
+ edit: Modifier
479
+ items_total: ! '%{count} total.'
480
+ less: Moins...
481
+ me: moi
482
+ more: Plus...
483
+ n_a: N/A
484
+ name: Nom
485
+ no_match: Acun(e) %{value} ne correspond
486
+ no_recent_items: Il n'y rien de récent à afficher
487
+ options: Options
488
+ permissions: Permissions
489
+ please_retry: tentez une autre requête.
490
+ recent_items: Objets récents
491
+ search_assets: Recherche de %{value}
492
+ time_ago: il y a %{value}
493
+ about: A propos
494
+ about_dev_group: Groupe de discussion développeur
495
+ about_features: Fonctionnalités et bugs
496
+ about_ffc: A propos Fat Free CRM
497
+ about_ffc_resources: Ressources Fat Free CRM (Nouvelle fenêtre)
498
+ about_ffc_version: Fat Free CRM version
499
+ about_home_page: Page d'accueil
500
+ about_project_page: Page du projet
501
+ about_thank_you: Merci d'utiliser Fat Free CRM!
502
+ about_twitter: Twitter commit updates
503
+ about_user_group: Discussion group for users
504
+ admin: Admin
505
+ logout: Déconnection
506
+ quick_find: Recherche rapide
507
+ welcome: Bienvenu
508
+ edit_comment: Edition de commentaire
509
+ show: Voir
510
+ update: Modifier
511
+ confirm_password_intro: Saisissez votre nouveau mot de passe et sa confirmation.
512
+ password_intro: Précisez votre adresse e-mail, et les instructions pour les réinitialiser
513
+ vous seront communiquées.
514
+ reset_password: Ré-initialisation du mot de passe
515
+ update_password_and_login: Modification de l'identifiant et du mot de passe
516
+ back_to_crm: Retour à Fat Free CRM
517
+ crm_admin_page: Administration Fat Free CRM
518
+ approve: Approuver
519
+ create_user: Créer un utilisateur
520
+ last_logged_in: last logged in %{value}
521
+ personal_information: Informations personnelles
522
+ reactivate: Réactiver
523
+ save_user: Enregistrer l'utilisateur
524
+ suspend: Suspendre
525
+ user_active: Actif
526
+ user_admin: Admin
527
+ user_awaits_approval: en attente de votre approbation
528
+ user_confirm_delete: Un utilisateur ne peut être supprimé que si aucun objet lui
529
+ appartenant existent toujours.
530
+ user_is_admin: L'utilisateur est administrateur
531
+ user_never_logged_in: ne s'est pas encore connecté
532
+ user_signed_up: Est enregistré
533
+ user_signed_up_on: s'est enregistré le %{value}
534
+ user_since: utilisateur depuis %{value}
535
+ user_suspended: Suspendu
536
+ user_suspended_on: suspendu le %{value}
537
+ users: Utilisateurs
538
+ users_small: utilisateurs
539
+ dropbox_notification_subject: dropbox - Ajouté email - %{subject}
540
+ dropbox_notification_intro: D'ajouter l'email que vous avez envoyé à la sélection
541
+ dropbox_notification_to: Ajoutés aux
542
+ subject: Sujet
543
+ body: Corps
544
+ pluralize:
545
+ comment:
546
+ one: 1 comment
547
+ other: ! '%{count} comments'
548
+ contact:
549
+ one: 1 contact
550
+ other: ! '%{count} contacts'
551
+ opportunity:
552
+ one: 1 opportunité
553
+ other: ! '%{count} opportunités'
554
+ lead:
555
+ one: 1 piste
556
+ other: ! '%{count} pistes'
557
+ day:
558
+ one: 1 jour
559
+ other: ! '%{count} jours'
560
+ login:
561
+ one: 1 identifiant
562
+ other: ! '%{count} identifiants'
563
+ date:
564
+ formats:
565
+ mmddyyyy: ! '%d/%m/%Y'
566
+ mmdd: ! '%e %b'
567
+ mmddyy: ! '%e %b, %Y'
568
+ time:
569
+ formats:
570
+ mmddhhss: ! '%e %b à %l:%M%p'