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
+ de:
3
+ ransack:
4
+ search: suche
5
+ predicate: aussage
6
+ and: und
7
+ or: oder
8
+ any: mindestens eins
9
+ all: alle
10
+ combinator: kombinator
11
+ attribute: attribut
12
+ value: wert
13
+ condition: bedingung
14
+ sort: sortieren
15
+ asc: aufsteigend
16
+ desc: absteigend
17
+ submit: Suche
18
+ add_group: Füge eine Gruppe von Filtern hinzu
19
+ group_first: Zeige Ergebnisse von %{combinator} für die folgenden Treffer
20
+ group_rest: ! '...und %{combinator} für die folgenden Treffer'
21
+ add_condition: Füge einen Filter hinzu
22
+ remove_condition: Entferne einen Filter
23
+ predicates:
24
+ eq: entspricht
25
+ eq_any: entspricht einem
26
+ eq_all: entspricht allen
27
+ not_eq: entspricht nicht
28
+ not_eq_any: entspricht mindestens einem nicht
29
+ not_eq_all: entspricht allen nicht
30
+ matches: trifft zu
31
+ matches_any: trifft bei mindestens einem zu
32
+ matches_all: trifft bei allen zu
33
+ does_not_match: trifft nicht zu
34
+ does_not_match_any: trifft bei mindestens einem nicht zu
35
+ does_not_match_all: trifft bei keinem zu
36
+ lt: weniger als
37
+ lt_any: mindestens eins kleiner
38
+ lt_all: alle kleiner
39
+ lteq: kleiner oder gleich
40
+ lteq_any: mindestens eines kleiner oder gleich
41
+ lteq_all: alle kleiner oder gleich
42
+ gt: größer als
43
+ gt_any: mindestens eines größer
44
+ gt_all: alle größer
45
+ gteq: größer oder gleich
46
+ gteq_any: mindestens eines größer oder gleich
47
+ gteq_all: alle größer oder gleich
48
+ in: ist innerhalb
49
+ in_any: ist innerhalb von einem
50
+ in_all: ist innerhalb von allen
51
+ not_in: ist nicht enthalten
52
+ not_in_any: ist in einem nicht enthalten
53
+ not_in_all: ist in allen nicht enthalten
54
+ cont: enthält
55
+ cont_any: enthält einen
56
+ cont_all: enthält alle
57
+ not_cont: beinhaltet nicht
58
+ not_cont_any: beinhaltet mindestens eine nicht
59
+ not_cont_all: beinhaltet alle nicht
60
+ start: beginnt mit
61
+ start_any: mindestens eines beginnt mit
62
+ start_all: alle beginnen mit
63
+ not_start: beginnt nicht mit
64
+ not_start_any: mindestens eines beginnt nicht mit
65
+ not_start_all: alle beginnen nicht mit
66
+ end: endet mit
67
+ end_any: mindestens eines endet mit
68
+ end_all: alle enden mit
69
+ not_end: endet nicht mit
70
+ not_end_any: mindestens eines endet nicht mit
71
+ not_end_all: alle enden nicht mit
72
+ 'true': ist wahr
73
+ 'false': ist falsch
74
+ present: existiert
75
+ blank: ist leer
76
+ 'null': ist null
77
+ not_null: ist nicht null
78
+ alt:
79
+ date:
80
+ lt: ist bevor
81
+ lt_any: mindestens eines ist bevor
82
+ lt_all: alle sind bevor
83
+ lteq: ist bevor oder am
84
+ lteq_any: mindestens eines ist bevor oder am
85
+ lteq_all: alle sind bevor oder am
86
+ gt: ist nach
87
+ gt_any: mindestens eines ist nach
88
+ gt_all: alle sind nach
89
+ gteq: ist danach oder am
90
+ gteq_any: mindestens eines ist danach oder am
91
+ gteq_all: alle sind danach oder am
@@ -0,0 +1,219 @@
1
+ ---
2
+ en-GB:
3
+ date:
4
+ formats:
5
+ default: ! '%d-%m-%Y'
6
+ short: ! '%d %b'
7
+ long: ! '%d %B, %Y'
8
+ day_names:
9
+ - Sunday
10
+ - Monday
11
+ - Tuesday
12
+ - Wednesday
13
+ - Thursday
14
+ - Friday
15
+ - Saturday
16
+ abbr_day_names:
17
+ - Sun
18
+ - Mon
19
+ - Tue
20
+ - Wed
21
+ - Thu
22
+ - Fri
23
+ - Sat
24
+ month_names:
25
+ -
26
+ - January
27
+ - February
28
+ - March
29
+ - April
30
+ - May
31
+ - June
32
+ - July
33
+ - August
34
+ - September
35
+ - October
36
+ - November
37
+ - December
38
+ abbr_month_names:
39
+ -
40
+ - Jan
41
+ - Feb
42
+ - Mar
43
+ - Apr
44
+ - May
45
+ - Jun
46
+ - Jul
47
+ - Aug
48
+ - Sep
49
+ - Oct
50
+ - Nov
51
+ - Dec
52
+ order:
53
+ - :day
54
+ - :month
55
+ - :year
56
+ time:
57
+ formats:
58
+ default: ! '%a, %d %b %Y %H:%M:%S %z'
59
+ short: ! '%d %b %H:%M'
60
+ long: ! '%d %B, %Y %H:%M'
61
+ am: am
62
+ pm: pm
63
+ support:
64
+ array:
65
+ words_connector: ! ', '
66
+ two_words_connector: ! ' and '
67
+ last_word_connector: ! ', and '
68
+ select:
69
+ prompt: Please select
70
+ number:
71
+ format:
72
+ separator: .
73
+ delimiter: ! ','
74
+ precision: 3
75
+ significant: false
76
+ strip_insignificant_zeros: false
77
+ currency:
78
+ format:
79
+ format: ! '%u%n'
80
+ unit: £
81
+ separator: .
82
+ delimiter: ! ','
83
+ precision: 2
84
+ significant: false
85
+ strip_insignificant_zeros: false
86
+ percentage:
87
+ format:
88
+ delimiter: ''
89
+ precision:
90
+ format:
91
+ delimiter: ''
92
+ human:
93
+ format:
94
+ delimiter: ''
95
+ precision: 3
96
+ significant: true
97
+ strip_insignificant_zeros: true
98
+ storage_units:
99
+ format: ! '%n %u'
100
+ units:
101
+ byte:
102
+ one: Byte
103
+ other: Bytes
104
+ kb: KB
105
+ mb: MB
106
+ gb: GB
107
+ tb: TB
108
+ decimal_units:
109
+ format: ! '%n %u'
110
+ units:
111
+ unit: ''
112
+ thousand: Thousand
113
+ million: Million
114
+ billion: Billion
115
+ trillion: Trillion
116
+ quadrillion: Quadrillion
117
+ datetime:
118
+ distance_in_words:
119
+ half_a_minute: half a minute
120
+ less_than_x_seconds:
121
+ one: less than 1 second
122
+ other: less than %{count} seconds
123
+ x_seconds:
124
+ one: 1 second
125
+ other: ! '%{count} seconds'
126
+ less_than_x_minutes:
127
+ one: less than a minute
128
+ other: less than %{count} minutes
129
+ x_minutes:
130
+ one: 1 minute
131
+ other: ! '%{count} minutes'
132
+ about_x_hours:
133
+ one: about 1 hour
134
+ other: about %{count} hours
135
+ x_days:
136
+ one: 1 day
137
+ other: ! '%{count} days'
138
+ about_x_months:
139
+ one: about 1 month
140
+ other: about %{count} months
141
+ x_months:
142
+ one: 1 month
143
+ other: ! '%{count} months'
144
+ about_x_years:
145
+ one: about 1 year
146
+ other: about %{count} years
147
+ over_x_years:
148
+ one: over 1 year
149
+ other: over %{count} years
150
+ almost_x_years:
151
+ one: almost 1 year
152
+ other: almost %{count} years
153
+ prompts:
154
+ year: Year
155
+ month: Month
156
+ day: Day
157
+ hour: Hour
158
+ minute: Minute
159
+ second: Seconds
160
+ helpers:
161
+ select:
162
+ prompt: Please select
163
+ submit:
164
+ create: Create %{model}
165
+ update: Update %{model}
166
+ submit: Save %{model}
167
+ errors:
168
+ format: ! '%{attribute} %{message}'
169
+ messages:
170
+ inclusion: is not included in the list
171
+ exclusion: is reserved
172
+ invalid: is invalid
173
+ confirmation: doesn't match confirmation
174
+ accepted: must be accepted
175
+ empty: can't be empty
176
+ blank: can't be blank
177
+ too_long: is too long (maximum is %{count} characters)
178
+ too_short: is too short (minimum is %{count} characters)
179
+ wrong_length: is the wrong length (should be %{count} characters)
180
+ not_a_number: is not a number
181
+ not_an_integer: must be an integer
182
+ greater_than: must be greater than %{count}
183
+ greater_than_or_equal_to: must be greater than or equal to %{count}
184
+ equal_to: must be equal to %{count}
185
+ less_than: must be less than %{count}
186
+ less_than_or_equal_to: must be less than or equal to %{count}
187
+ odd: must be odd
188
+ even: must be even
189
+ activerecord:
190
+ errors:
191
+ template:
192
+ header:
193
+ one: 1 error prohibited this %{model} from being saved
194
+ other: ! '%{count} errors prohibited this %{model} from being saved'
195
+ body: ! 'There were problems with the following fields:'
196
+ messages:
197
+ inclusion: is not included in the list
198
+ exclusion: is reserved
199
+ invalid: is invalid
200
+ confirmation: doesn't match confirmation
201
+ accepted: must be accepted
202
+ empty: can't be empty
203
+ blank: can't be blank
204
+ too_long: is too long (maximum is %{count} characters)
205
+ too_short: is too short (minimum is %{count} characters)
206
+ wrong_length: is the wrong length (should be %{count} characters)
207
+ not_a_number: is not a number
208
+ not_an_integer: must be an integer
209
+ greater_than: must be greater than %{count}
210
+ greater_than_or_equal_to: must be greater than or equal to %{count}
211
+ equal_to: must be equal to %{count}
212
+ less_than: must be less than %{count}
213
+ less_than_or_equal_to: must be less than or equal to %{count}
214
+ odd: must be odd
215
+ even: must be even
216
+ taken: has already been taken
217
+ record_invalid: ! 'Validation failed: %{errors}'
218
+ full_messages:
219
+ format: ! '%{attribute} %{message}'
@@ -0,0 +1,937 @@
1
+ ---
2
+ en-GB:
3
+ language: English (UK)
4
+
5
+ # Generic terms.
6
+ #----------------------------------------------------------------------------
7
+ id: Id
8
+ all: All
9
+ at: at
10
+ here: here
11
+ no_button: 'No'
12
+ not_implemented: Not implemented yet.
13
+ or: or
14
+ select_none: -- None --
15
+ select_blank: -- Select --
16
+ yes_button: 'Yes'
17
+
18
+
19
+ # Settings.
20
+ #----------------------------------------------------------------------------
21
+ tab_dashboard: Dashboard
22
+ tab_tasks: Tasks
23
+ tab_campaigns: Campaigns
24
+ tab_leads: Leads
25
+ tab_accounts: Accounts
26
+ tab_contacts: Contacts
27
+ tab_opportunities: Opportunities
28
+ tab_team: Team
29
+ admin_tab_groups: Groups
30
+ admin_tab_users: Users
31
+ admin_tab_fields: Custom Fields
32
+ admin_tab_tags: Tags
33
+ admin_tab_settings: Settings
34
+ admin_tab_plugins: Plugins
35
+ affiliate: Affiliate
36
+ competitor: Competitor
37
+ customer: Customer
38
+ partner: Partner
39
+ reseller: Reseller
40
+ vendor: Vendor
41
+ planned: Planned
42
+ started: Started
43
+ on_hold: On Hold
44
+ completed: Completed
45
+ called_off: Called Off
46
+ new: New
47
+ contacted: Contacted
48
+ converted: Converted
49
+ rejected: Rejected
50
+ cold_call: Cold Call
51
+ conference: Conference
52
+ online: Online Marketing
53
+ referral: Referral
54
+ self: Self Generated
55
+ web: Website
56
+ word_of_mouth: Word of Mouth
57
+ other: Other
58
+ prospecting: Prospecting
59
+ analysis: Analysis
60
+ presentation: Presentation
61
+ proposal: Proposal
62
+ negotiation: Negotiation
63
+ final_review: Final Review
64
+ won: Closed/Won
65
+ lost: Closed/Lost
66
+ call: Call
67
+ email: Email
68
+ follow_up: Follow-up
69
+ lunch: Lunch
70
+ meeting: Meeting
71
+ money: Money
72
+ trip: Trip
73
+ overdue: Overdue
74
+ due_asap: As Soon As Possible
75
+ due_today: Today
76
+ due_tomorrow: Tomorrow
77
+ due_this_week: This Week
78
+ due_next_week: Next Week
79
+ due_later: Sometime Later
80
+ due_specific_date: On Specific Date...
81
+ completed_today: Today
82
+ completed_yesterday: Yesterday
83
+ completed_last_week: Last week
84
+ completed_this_month: This month
85
+ completed_last_month: Last month
86
+
87
+ # Models/Activity.
88
+ #----------------------------------------------------------------------------
89
+ one_hour: One Hour
90
+ one_day: One Day
91
+ two_days: Two Days
92
+ one_week: One Week
93
+ two_weeks: Two Weeks
94
+ one_month: One Month
95
+
96
+ # Model Validations.
97
+ #----------------------------------------------------------------------------
98
+ activerecord:
99
+ errors:
100
+ models:
101
+ authentication:
102
+ attributes:
103
+ login_field:
104
+ is_not_valid: is not valid
105
+ password_field:
106
+ is_not_valid: is not valid
107
+ account:
108
+ attributes:
109
+ name:
110
+ missing_account_name: ^Please specify account name.
111
+ access:
112
+ share_account: ^Please specify users to share the account with.
113
+ campaign:
114
+ attributes:
115
+ name:
116
+ missing_campaign_name: ^Please specify campaign name.
117
+ ends_on:
118
+ dates_not_in_sequence: ^Please make sure the campaign end date is after
119
+ the start date.
120
+ access:
121
+ share_campaign: ^Please specify users to share the campaign with.
122
+ contact:
123
+ attributes:
124
+ first_name:
125
+ missing_first_name: ^Please specify first name.
126
+ last_name:
127
+ missing_last_name: ^Please specify last name.
128
+ access:
129
+ share_contact: ^Please specify users to share the contact with.
130
+ lead:
131
+ attributes:
132
+ first_name:
133
+ missing_first_name: ^Please specify first name.
134
+ last_name:
135
+ missing_last_name: ^Please specify last name.
136
+ access:
137
+ share_lead: ^Please specify users to share the lead with.
138
+ opportunity:
139
+ attributes:
140
+ name:
141
+ missing_opportunity_name: ^Please specify opportunity name.
142
+ access:
143
+ share_opportunity: ^Please specify users to share the opportunity with.
144
+ task:
145
+ attributes:
146
+ name:
147
+ missing_task_name: ^Please specify task name.
148
+ calendar:
149
+ invalid_date: ^Please specify valid date.
150
+ user:
151
+ attributes:
152
+ username:
153
+ missing_username: ^Please specify username.
154
+ username_taken: ^This username is already taken.
155
+ email:
156
+ missing_email: ^Please specify email address.
157
+ email_in_use: ^There is another user with the same email.
158
+ custom_field:
159
+ required: ^%{field} is required.
160
+ maxlength: ^%{field} is too long.
161
+ endbeforestart: ^%{field} cannot end before it begins.
162
+ attribute_options:
163
+ opportunity:
164
+ stage:
165
+ prospecting: Prospecting
166
+ analysis: Analysis
167
+ presentation: Presentation
168
+ proposal: Proposal
169
+ negotiation: Negotiation
170
+ final_review: Final Review
171
+ won: Closed/Won
172
+ lost: Closed/Lost
173
+ account:
174
+ rating:
175
+ "0": "-"
176
+ "1": "★"
177
+ "2": "★★"
178
+ "3": "★★★"
179
+ "4": "★★★★"
180
+ "5": "★★★★★"
181
+
182
+ msg_account_suspended: User account has been suspended.
183
+ password_reset_instruction: password reset instructions
184
+
185
+ # Controllers.
186
+ #----------------------------------------------------------------------------
187
+ msg_account_created: Your account has been created and is awaiting approval by the
188
+ system administrator.
189
+ msg_account_not_approved: Your account has not been approved yet.
190
+ msg_asset_deleted: ! '%{value} has been deleted.'
191
+ msg_asset_not_available: This %{value} is no longer available.
192
+ msg_not_authorized: You are not authorized to take this action.
193
+ msg_assets_not_available: The %{value} are not available.
194
+ msg_asset_rejected: ! '%{value} has been rejected.'
195
+ msg_bad_image_file: ^Could't upload or resize the image file you specified.
196
+ msg_cant_create_related: Can't create the %{asset} since the %{related} is no longer
197
+ available.
198
+ msg_cant_delete_user: ^Couldn't delete the user since %{value} has related assets
199
+ present.
200
+ msg_cant_do: Can't %{action} the %{asset} since it's no longer available.
201
+ msg_email_not_found: No user was found with that email address.
202
+ msg_enter_new_password: Please enter your new password.
203
+ msg_goodbye: You have been logged out. Thank you for using Fat Free CRM!
204
+ msg_invalid_password: ^Please specify valid current password
205
+ msg_invalig_login: Invalid username or password.
206
+ msg_last_login: Your last login was on %{value}.
207
+ msg_login_needed: You must be logged in to access this page.
208
+ msg_logout_needed: You must be logged out to access this page.
209
+ msg_password_changed: Your password has been changed.
210
+ msg_password_not_changed: Your password has not been changed.
211
+ msg_password_updated: Password was successfully updated.
212
+ msg_pwd_instructions_sent: Instructions to reset your password have been sent to
213
+ you. Please check your email.
214
+ msg_require_admin: You must be Administrator to access this page.
215
+ msg_successful_signup: Successful signup, welcome to Fat Free CRM!
216
+ msg_welcome: Welcome to Fat Free CRM!
217
+
218
+ # Options.
219
+ #----------------------------------------------------------------------------
220
+ option_amount*probability: weighted amount
221
+ activity_options: Show %{models} %{action_type} performed by %{user} in the past
222
+ %{period}.
223
+ all_users: all users
224
+ option_after: after
225
+ option_all: all
226
+ option_all_users: All Users
227
+ option_amount: amount
228
+ option_before: before
229
+ option_brief: brief
230
+ option_closes_on: close date
231
+ option_company: company
232
+ option_created_at: date created
233
+ option_ends_on: end date
234
+ option_first_name: first name
235
+ option_last_name: last name
236
+ option_leads_count: actual leads
237
+ option_long: long
238
+ option_name: name
239
+ option_probability: probability
240
+ option_rating: rating
241
+ option_revenue: actual revenue
242
+ option_starts_on: start date
243
+ option_target_leads: target leads
244
+ option_target_revenue: target revenue
245
+ option_updated_at: date updated
246
+ show_per_page: Show %{number} %{models} per page using %{fmt} format.
247
+ sort_by: Sort by %{field}
248
+ sort_by_displaying: Sort %{models} by %{field} displaying first name %{position}
249
+ last name.
250
+ entities_per_page: ! '%{entity} per page:'
251
+ contacts_index_long: Long format
252
+ contacts_index_brief: Brief format
253
+ contacts_index_full: Full format
254
+ opportunities_index_normal: Normal format
255
+ accounts_index_normal: Normal format
256
+ leads_index_normal: Normal format
257
+ campaigns_index_normal: Normal format
258
+
259
+ # Views -> Profile.
260
+ #----------------------------------------------------------------------------
261
+ aim: AOL IM
262
+ already_signed_up: Already signed up?
263
+ alt_email: Alternative email
264
+ avatar: Avatar
265
+ change_password: Change Password
266
+ company: Company
267
+ contact_info: Contact Information
268
+ current_password: Current password
269
+ edit_profile: Edit Profile
270
+ first_name: First name
271
+ google: Google IM
272
+ gravatar_help: Not familiar with Gravatars? Learn about Gravatars
273
+ image_file: Image file
274
+ image_help: The image file you upload will be automatically resized to 75 x 75 pixels.
275
+ Supported formats are GIF, JPG, and PNG.
276
+ job_title: Title
277
+ last_name: Last name
278
+ login_now_link: Login Now!
279
+ mobile: Mobile
280
+ my_profile: My Profile
281
+ new_password: New password
282
+ password: Password
283
+ password_confirmation: Confirm new password
284
+ phone: Phone
285
+ profile: Profile
286
+ profile_language: Language
287
+ save_profile: Save Profile
288
+ sign_up: Sign Up
289
+ sign_up_button: Sign Up
290
+ skype: Skype
291
+ upload_picture: Upload Picture
292
+ use_gravatar: Use Gravatar
293
+ user: User
294
+ username: Username
295
+ yahoo: Yahoo IM
296
+ born_on: Born on
297
+ reports_to: Reports to
298
+ access: Access
299
+
300
+ # Views -> Authenticate.
301
+ #----------------------------------------------------------------------------
302
+ forgot_password: Forgot Password
303
+ login: Login
304
+ no_account: Do not have an account?
305
+ remember_me: Remember Me
306
+ sign_up_now: Sign Up Now!
307
+
308
+ # Views -> Accounts.
309
+ #----------------------------------------------------------------------------
310
+ account: Account
311
+ account_id: Account
312
+ select_an_account: Select an Account
313
+ account_small: account
314
+ account_summary: Account Summary
315
+ account_categories: Account Categories
316
+ accounts: Accounts
317
+ accounts_options: Accounts Options
318
+ accounts_small: accounts
319
+ assigned_to: Assigned to
320
+ billing_address: Billing address
321
+ create_account: Create Account
322
+ date_created: Date Created
323
+ date_updated: Date Updated
324
+ fax: Fax
325
+ intro: You can add %{value} information later.
326
+ keep_private: Keep it private, do not share with others
327
+ mail_to: Mail to %{value}
328
+ make_public: Share it with everyone
329
+ mobile_small: mobile
330
+ open_in_window: Open %{value} in a new window
331
+ phone_small: phone
332
+ phone_toll_free: Freephone
333
+ pipeline: Pipeline
334
+ same_as_billing: same as billing
335
+ save_account: Save Account
336
+ share_with: Share it with the following people
337
+ shipping_address: Shipping address
338
+ total_accounts: Total Accounts
339
+ website: Website
340
+ account_with_title_department: ! '%{title}, %{department} at %{account}'
341
+ account_with_title: ! '%{title} at %{account}'
342
+
343
+ # Views -> Campaigns.
344
+ #----------------------------------------------------------------------------
345
+ actual: Actual
346
+ actual_performance: Actual Performance
347
+ budget: Budget
348
+ budget_label: Budget (£)
349
+ campaign: Campaign
350
+ campaign_and_leads: campaign and its leads
351
+ campaign_small: campaign
352
+ campaign_summary: Campaign Summary
353
+ campaign_targets: Campaign Targets
354
+ campaign_statuses: Campaign Statuses
355
+ campaigns: Campaigns
356
+ campaigns_options: Campaigns Options
357
+ campaigns_small: campaigns
358
+ conversion: Conversion
359
+ conversion_label: Conversion (%)
360
+ conversion_number: ! '%{value} conversion'
361
+ target_conversion: Target conversion
362
+ create_campaign: Create Campaign
363
+ end_date: End date
364
+ finished_on: completed on %{value}
365
+ finishes_in: finishes in %{value}
366
+ no_start_date: no start date specified
367
+ number_of_leads: Number of leads
368
+ objectives: Objectives
369
+ objectives_help: Please specify target number of leads, expected leads-to-opportunities
370
+ conversion ratio, target revenue, and campaign budget. These numbers will let
371
+ you track actual campaign performance.
372
+ objectives_small: campaign objectives
373
+ revenue: Revenue
374
+ revenue_label: Revenue (£)
375
+ revenue_number: ! '%{value} in revenue'
376
+ save_campaign: Save Campaign
377
+ start_date: Start date
378
+ started_ago: started %{value} ago
379
+ starts_in: starts in %{value}
380
+ starts_today: starts today!
381
+ target: Target
382
+ total_campaigns: Total Campaigns
383
+ was_supposed_to_finish: was supposed to finish on %{value}
384
+ was_supposed_to_start: was supposed to start %{time_ago} ago on %{start_date}
385
+ was_supposed_to_start_in: was supposed to start in %{starts_in} on %{start_date}
386
+ select_a_campaign: Select a campaign
387
+
388
+ # Views -> Contacts.
389
+ #----------------------------------------------------------------------------
390
+ alt_email_small: Other
391
+ blog: Website/Blog
392
+ contact: Contact
393
+ contact_small: contact
394
+ contacts: Contacts
395
+ contacts_options: Contacts Options
396
+ contacts_small: contacts
397
+ contact_summary: Contact Summary
398
+ create_contact: Create Contact
399
+ department: Department
400
+ department_small: ! '%{value} department'
401
+ do_not_call: Do not call
402
+ extra_info: Extra Information
403
+ extra_info_small: extra contact
404
+ facebook: Facebook
405
+ linked_in: LinkedIn
406
+ myself: Myself
407
+ permissions_intro_private: By default only you will have access to the %{value}.
408
+ You can change permissions later.
409
+ permissions_intro_public: By default all users will have access to the %{value}.
410
+ You can change permissions later.
411
+ permissions_intro_shared: By default only the selected users will have access to
412
+ the %{value}. You can change permissions later.
413
+ referred_by: Referred by
414
+ referred_by_small: referred by
415
+ save_contact: Save Contact
416
+ twitter: Twitter
417
+ unassigned: Unassigned
418
+ web_presence: Web Presence
419
+ web_presence_small: web presence
420
+ works_at: ! '%{job_title} at %{company}'
421
+ general_info: General Information
422
+ show_general_info_small: Show general information for this contact.
423
+ show_extra_info_small: Show extra information for this contact.
424
+ tag_details: ! '%{tag} Details'
425
+ show_tag_info_small: Show %{tag} information for this contact.
426
+ shared_with_everyone: Shared with everyone
427
+ title: Title
428
+ subscriptions: Subscriptions
429
+
430
+ # Views -> Leads.
431
+ #----------------------------------------------------------------------------
432
+ convert: Convert
433
+ convert_lead: Convert Lead
434
+ convert_lead_permissions_intro: Contact permissions will be copied from the lead
435
+ being converted. You can change contact permissions later.
436
+ convert_lead_text: By converting the lead %{value} will become a contact associated
437
+ with the existing or newly created account. Lead status will be automatically
438
+ set to converted.
439
+ create_lead: Create Lead
440
+ create_opp_for_contact: You can optionally create an opportunity for the %{value}
441
+ contact by specifying the name, current stage, estimated closing date, sale probability,
442
+ amount of the deal, and the discount offered.
443
+ lead: Lead
444
+ lead_info_small: lead contact
445
+ lead_permissions_intro_private: By default permissions will be copied from the campaign
446
+ or set to private. You can change lead permissions later.
447
+ lead_permissions_intro_public: By default permissions will be copied from the campaign
448
+ or set to public. You can change lead permissions later.
449
+ lead_permissions_intro_shared: By default permissions will be copied from the campaign
450
+ or shared with the specified users. You can change lead permissions later.
451
+ lead_small: lead
452
+ lead_status_small: lead status
453
+ lead_summary: Lead Summary
454
+ lead_statuses: Lead Statuses
455
+ leads: Leads
456
+ leads_options: Leads Options
457
+ leads_small: leads
458
+ none: None
459
+ rating: Rating
460
+ reject: Reject
461
+ reject_lead_confirm: Are you sure you want to reject this lead?
462
+ save_lead: Save Lead
463
+ source: Source
464
+ status: Status
465
+ total_leads: Total Leads
466
+ show_status_info_small: Show status information for this lead.
467
+ show_contact_info_small: Show contact information for this lead.
468
+
469
+ # Views -> Opportunities.
470
+ #----------------------------------------------------------------------------
471
+ amount: Amount
472
+ close_date: Close date
473
+ closes_on: Closes on
474
+ closed_ago_on: closed %{time_ago} ago on %{date}
475
+ closes_today: expected to close today!
476
+ closing_date: closing date is %{value}
477
+ create_opportunity: Create Opportunity
478
+ currency: (£)
479
+ days_late: Late by
480
+ days_left: Days left
481
+ discount: Discount
482
+ discount_number: with %{value} discount
483
+ expected_to_close: expected to close in %{time} on %{date}
484
+ from: from
485
+ no_closing_date: no expected closing date
486
+ no_discount: with no discount
487
+ opportunities: Opportunities
488
+ opportunities_options: Opportunities Options
489
+ opportunities_small: opportunities
490
+ opportunity: Opportunity
491
+ opportunity_small: opportunity
492
+ opportunity_stages: Opportunity Stages
493
+ opportunity_summary: Opportunity At a Glance
494
+ opportunity_summary_text: ! '%{amount} with %{discount} discount and %{probability}
495
+ probability'
496
+ past_due: past due, was expected to close %{value} ago
497
+ probability: Probability
498
+ probability_number: and %{value} probability
499
+ save_opportunity: Save Opportunity
500
+ stage: Stage
501
+ total_opportunities: Total Opportunities
502
+ weighted_amount: Weighted amount
503
+
504
+ # Views -> Tasks.
505
+ #----------------------------------------------------------------------------
506
+ task: Task
507
+ task_small: task
508
+ tasks: Tasks
509
+ tasks_small: tasks
510
+ assign_to: Assign to
511
+ assigned_tab: Assigned
512
+ assigned_tasks: Assigned Tasks
513
+ category: Category
514
+ completed_tab: Completed
515
+ completed_tasks: Completed Tasks
516
+ create_task: Create Task
517
+ create_task_small: create new task
518
+ due: Due
519
+ feel_free: Feel free to
520
+ move_to: move to
521
+ no_tasks: You don't have any %{value} tasks
522
+ no_tasks_pending: pending
523
+ no_tasks_assigned: assigned
524
+ no_tasks_completed: completed
525
+ pending_tab: Pending
526
+ pending_tasks: Pending Tasks
527
+ related: ! 're:'
528
+ save_task: Save Task
529
+ task_assigned: The task has been assigned to %{value}
530
+ task_assigned_to: and assigned to %{value}
531
+ task_completed: completed
532
+ task_uncomplete: Uncomplete
533
+ task_completed_ago: completed %{value} ago
534
+ task_completed_by: completed %{time_ago} ago (%{date}) by %{user}
535
+ task_created: The task has been created
536
+ task_due_in: due in %{value}
537
+ task_due_later: due sometime soon
538
+ task_due_now: due now
539
+ task_due_today: due today
540
+ task_from: From %{value}
541
+ task_overdue: late, was due on
542
+ task_pending: The task has been moved to pending tasks
543
+ total_tasks: Total %{value}
544
+ view_assigned_tasks: view assigned tasks
545
+ view_pending_tasks: view pending tasks
546
+
547
+ # Views -> Team.
548
+ #----------------------------------------------------------------------------
549
+ unassigned_opportunities: Unassigned Opportunities
550
+ no_opportunities_found: There are currently no outstanding opportunities.
551
+
552
+ # Views -> Home.
553
+ #----------------------------------------------------------------------------
554
+ action_completed: completed
555
+ action_create: created
556
+ action_destroy: deleted
557
+ action_reassigned: reassigned
558
+ action_rejected: rejected
559
+ action_rescheduled: rescheduled
560
+ action_update: updated
561
+ action_view: viewed
562
+ action_won: won
563
+ activities: Activities
564
+ no_activity_records: No activity records found.
565
+ recent_activity: Recent Activity
566
+ recent_activity_options: Recent Activity Options
567
+ subject_account: account
568
+ subject_address: address on
569
+ subject_campaign: campaign
570
+ subject_comment: comment on
571
+ subject_contact: contact
572
+ subject_email: email on
573
+ subject_lead: lead
574
+ subject_opportunity: opportunity
575
+ subject_task: task
576
+ subject_user: user
577
+ tag_list: Tags
578
+ create_past_participle: Record Creations
579
+ view_past_participle: Views
580
+ update_past_participle: Updates
581
+ destroy_past_participle: Deletions
582
+ all_events_past_participle: Activities
583
+ action_create_comment: ! '- "%{comment}"'
584
+ my_tasks: My Tasks
585
+ no_task_records: You have no tasks.
586
+ my_opportunities: My Opportunities
587
+ no_opportunity_records: You have no opportunities.
588
+ my_accounts: My Accounts
589
+ no_account_records: You have no accounts
590
+ not_showing_hidden_entities: Not showing %{count} hidden %{entity}.
591
+
592
+ # Views -> Common.
593
+ #----------------------------------------------------------------------------
594
+ add_note: Add Note
595
+ save_note: Save Note
596
+ add_note_help: Add a new note...
597
+ edit_note: Edit Note
598
+ added_ago: added %{value}
599
+ added_by: added %{time_ago} by %{user}
600
+ back: Back
601
+ cancel: Cancel
602
+ close_form: Close form
603
+ comment_intro: You can add comments later.
604
+ confirm_delete: Are you sure you want to delete this %{value}?
605
+ copy_permissions: Copy %{value} permissions
606
+ could_not_find: Couldn't find any %{value}. Feel free to
607
+ could_not_find_matching: Couldn't find any %{value} matching
608
+ create_new: create new
609
+ create_a_new: create a new
610
+ select_existing: select existing
611
+ delete: Delete
612
+ discard: Discard
613
+ edit: Edit
614
+ items_total: ! '%{count} total.'
615
+ less: Less...
616
+ me: me
617
+ more: More...
618
+ n_a: N/A
619
+ name: Name
620
+ no_match: No %{value} match
621
+ no_recent_items: There are no recent items to display yet.
622
+ options: Options
623
+ permissions: Permissions
624
+ please_retry: please try another query.
625
+ recent_items: Recent Items
626
+ select_contact: Select Contact
627
+ select_lead: Select Lead
628
+ select_task: Select Task
629
+ select_opportunity: Select Opportunity
630
+ search_assets: Search %{value}
631
+ time_ago: ! '%{value} ago'
632
+ background_info: Background
633
+ address: Address
634
+ street1: Street 1
635
+ street2: Street 2
636
+ city: City
637
+ zipcode: Post Code
638
+ state: County
639
+ country: Country
640
+ select_a_country: Select a Country
641
+ expand_all: Expand all
642
+ collapse_all: Collapse all
643
+ expanded: Expanded
644
+ collapsed: Collapsed
645
+
646
+ # Views -> Layout.
647
+ #----------------------------------------------------------------------------
648
+ about: About
649
+ about_dev_group: Discussion group for developers
650
+ about_features: Features and bugs
651
+ about_ffc: About Fat Free CRM
652
+ about_ffc_resources: Fat Free CRM resources (links open a new window)
653
+ about_ffc_version: Fat Free CRM version
654
+ about_home_page: Home page
655
+ about_project_page: Project page
656
+ about_thank_you: Thank you for using Fat Free CRM! We appreciate your business and
657
+ hope you enjoy using the software.
658
+ about_twitter: Twitter commit updates
659
+ about_user_group: Discussion group for users
660
+ admin: Admin
661
+ logout: Logout
662
+ quick_find: Quick find
663
+ welcome: Welcome
664
+
665
+ # Advanced search
666
+ accounts_advanced_search: Accounts Advanced search
667
+ advanced_search: Advanced search
668
+ basic_search: Basic search
669
+ search_results_count:
670
+ one: Search found %{count} result.
671
+ other: Search found %{count} results.
672
+
673
+ # Views -> Comments.
674
+ #----------------------------------------------------------------------------
675
+ comment: Comment
676
+ edit_comment: Editing comment
677
+ show: Show
678
+ update: Update
679
+ following_users_will_be_notified: The following users will be notified by email
680
+ notifications_tooltip: Subscribers will receive new comments via email
681
+ subscribe_via_email: Subscribe via email
682
+ disable_email_subscriptions: Disable email subscription
683
+ added_note: added note %{value}
684
+
685
+ # Views -> Emails.
686
+ #----------------------------------------------------------------------------
687
+
688
+ # Views -> Passwords.
689
+ #----------------------------------------------------------------------------
690
+ confirm_password_intro: Please type your new password and then confirm it.
691
+ password_intro: Please specify your email address, and the instructions to reset
692
+ your password will be sent to you.
693
+ reset_password: Reset Password
694
+ update_password_and_login: Update Password and Login
695
+
696
+ # Views -> Admin
697
+ #----------------------------------------------------------------------------
698
+ back_to_crm: Back to Fat Free CRM
699
+ crm_admin_page: Fat Free CRM Administration
700
+
701
+ # Views -> Admin -> Groups
702
+ #----------------------------------------------------------------------------
703
+ create_group: Create Group
704
+ save_group: Save Group
705
+ group_members: members
706
+ groups: Groups
707
+ groups_small: groups
708
+ group_small: group
709
+
710
+ # Views -> Admin -> Users
711
+ #----------------------------------------------------------------------------
712
+ confirm_group_delete: Are you sure you wish to delete this group? There are %{count}
713
+ items that still reference it.
714
+ approve: Approve
715
+ create_user: Create User
716
+ last_logged_in: last logged in %{value}
717
+ personal_information: Personal Information
718
+ group_memberships: Group Memberships
719
+ reactivate: Reactivate
720
+ save_user: Save User
721
+ suspend: Suspend
722
+ user_active: Active
723
+ user_admin: Admin
724
+ user_awaits_approval: awaits your approval
725
+ user_confirm_delete: A user can only be deleted if no related assets are left behind.
726
+ user_is_admin: The user is Administrator
727
+ user_never_logged_in: hasn't logged in yet
728
+ user_signed_up: Signed Up
729
+ user_signed_up_on: signed up on %{value}
730
+ user_since: user since %{value}
731
+ user_suspended: Suspended
732
+ user_suspended_on: suspended on %{value}
733
+ users: Users
734
+ users_small: users
735
+
736
+ # Views -> Versions
737
+ #----------------------------------------------------------------------------
738
+ versions: History
739
+ version:
740
+ create: ! '%{item} created by %{by}'
741
+ update: ! '%{item} modified by %{by}'
742
+ destroy: ! '%{item} destroyed by %{by}'
743
+ set_html: ! '%{attr} set to %{to}'
744
+ unset_html: ! '%{attr} unset'
745
+ change_html: ! '%{attr} changed from %{from} to %{to}'
746
+ anonymous: anonymous
747
+ account_contact_id: Account id
748
+ account_contact_name: Account name
749
+ user_id: User id
750
+ created_at: Created at
751
+ updated_at: Updated at
752
+
753
+ # Export.
754
+ #----------------------------------------------------------------------------
755
+ to_xls: Export to Excel
756
+ to_csv: Export to comma-delimited file format (including deleted records)
757
+ to_rss: RSS feed
758
+ to_atom: Atom feed
759
+ to_perm: Permalink
760
+
761
+ # Dropbox.
762
+ #----------------------------------------------------------------------------
763
+ dropbox_notification_subject: dropbox - Added email - %{subject}
764
+ dropbox_notification_intro: Succesfully added the email you sent to dropbox
765
+ dropbox_notification_to: Added to
766
+ subject: Subject
767
+ body: Body
768
+
769
+ # Comment Inbox
770
+ #----------------------------------------------------------------------------
771
+ comment_notification:
772
+ intro: ! '%{user_full_name} commented on %{entity_type}: %{entity_name}'
773
+ reply_instructions: Reply to this email directly to add a new comment, or view
774
+ the %{entity} online
775
+
776
+ # Lists
777
+ #----------------------------------------------------------------------------
778
+ global_lists: Global lists
779
+ personal_lists: My lists
780
+ list: List
781
+ no_saved_lists: No saved lists
782
+ make_current_view_list: Make current view a list
783
+ list_name_info: If you use the name of an existing list, you will overwrite that
784
+ list with your current settings
785
+
786
+ # Pluralizations.
787
+ #----------------------------------------------------------------------------
788
+ pluralize:
789
+ comment:
790
+ one: 1 comment
791
+ other: ! '%{count} comments'
792
+ contact:
793
+ one: 1 contact
794
+ other: ! '%{count} contacts'
795
+ opportunity:
796
+ one: 1 opportunity
797
+ other: ! '%{count} opportunities'
798
+ lead:
799
+ one: 1 lead
800
+ other: ! '%{count} leads'
801
+ day:
802
+ one: 1 day
803
+ other: ! '%{count} days'
804
+ login:
805
+ one: 1 login
806
+ other: ! '%{count} logins'
807
+
808
+ # Custom date/time formats.
809
+ #----------------------------------------------------------------------------
810
+ date:
811
+ formats:
812
+ mmddyyyy: ! '%Y-%m-%d'
813
+ mmdd: ! '%e %b'
814
+ mmddyy: ! '%e %b, %Y'
815
+ time:
816
+ formats:
817
+ mmddhhss: ! '%e %b at %l:%M%p'
818
+ mmddyyyy_hhmm: ! '%e %b %Y at %l:%M%p'
819
+
820
+ # will_paginate translations copied for 'en-US'
821
+ #----------------------------------------------------------------------------
822
+ will_paginate:
823
+ previous_label: ! '← Previous'
824
+ next_label: Next →
825
+ page_gap: ! '…'
826
+ page_entries_info:
827
+ single_page:
828
+ zero: No %{plural} found
829
+ one: Displaying 1 %{name}
830
+ other: Displaying all %{count} %{plural}
831
+ multi_page: Displaying %{plural} %{from} - %{to} of %{total} in total
832
+
833
+ # Views -> Admin -> Custom Fields
834
+ #----------------------------------------------------------------------------
835
+ label: Label
836
+ custom_fields: Custom Fields
837
+ custom_field_options: Custom Field Options
838
+ create_field: Create field
839
+ save_field: Save field
840
+ create_field_group: Create field group
841
+ edit_field_group: Edit field group
842
+ save_field_group: Save field group
843
+ field_group_empty: There are no fields in this group.
844
+ select_or_create_tags: Select some tags, or create a new tag by pressing 'enter'.
845
+ restrict_by_tag: ! 'Restrict by Tag:'
846
+ restrict_by_tag_info: (Only show fields for %{assets} that are tagged with the following)
847
+ field_group_tag_restriction: This field group applies to %{assets} tagged with "%{tag}"
848
+ field_group_unrestricted: This field group applies to all %{assets}
849
+ field_group_confirm_delete: If a field group is deleted, any fields will be moved
850
+ to the default field group.
851
+ msg_cant_delete_field_group: Field Group could not be deleted.
852
+ admin_fields_info: ! 'Custom fields are displayed in groups.
853
+ Create a new field group, or add fields to one of the groups below.
854
+ You can drag and drop fields to change their display order or move them between
855
+ field groups.'
856
+ # Views -> Admin -> Tags
857
+ #----------------------------------------------------------------------------
858
+ admin_fields_info2: ! 'It is strongly recommended you restart your server after
859
+ adding or removing any custom field.
860
+
861
+ '
862
+ tags: Tags
863
+ tag_small: tag
864
+ tagged: Tagged
865
+ create_tag: Create Tag
866
+ save_tag: Save Tag
867
+ field_group_tags: Field Groups shown for this Tag
868
+
869
+ # Views -> Admin -> Plugins
870
+ #----------------------------------------------------------------------------
871
+ tag_with_taggings_confirm_delete: If this tag is deleted, it will be removed from
872
+ %{value} records.
873
+ msg_cant_delete_tag: Couldn't delete '%{value}' since it has associated Field Groups.
874
+ views:
875
+ admin:
876
+ plugins:
877
+ author: Author
878
+ version: Version
879
+ description: Description
880
+
881
+ # Simple Form translations
882
+ #----------------------------------------------------------------------------
883
+ simple_form:
884
+ yes: 'Yes'
885
+ no: 'No'
886
+ required:
887
+ text: required
888
+ mark: ! '*'
889
+ # You can uncomment the line below if you need to overwrite the whole required html.
890
+ # When using html, text and mark won't be used.
891
+ # html: '<abbr title="required">*</abbr>'
892
+ error_notification:
893
+ default_message: ! 'Some errors were found, please take a look:'
894
+
895
+ # Form field types
896
+ #----------------------------------------------------------------------------
897
+ field_types:
898
+ string:
899
+ title: Short Answer
900
+ text:
901
+ title: Long Answer
902
+ select:
903
+ title: Select List
904
+ multiselect:
905
+ title: Multi Select
906
+ radio_buttons:
907
+ title: Radio Buttons
908
+ boolean:
909
+ title: Checkbox
910
+ check_boxes:
911
+ title: Checkbox List
912
+ date:
913
+ title: Date
914
+ date_pair:
915
+ title: Date Pair
916
+ datetime:
917
+ title: Date & Time
918
+ datetime_pair:
919
+ title: Date & Time Pair
920
+ email:
921
+ title: Email Address
922
+ url:
923
+ title: URL
924
+ tel:
925
+ title: Phone Number
926
+ decimal:
927
+ title: Number (Decimal)
928
+ integer:
929
+ title: Number (Integer)
930
+ float:
931
+ title: Number (Floating Point)
932
+ pair:
933
+ start: Start
934
+ end: End
935
+ from_to: From %{from} to %{to}
936
+ from_only: From %{from}
937
+ to_only: Until %{to}