reduced_fat_crm 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
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,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: bf418a06d326ec4f3182788c478e590d2d822c9e
4
+ data.tar.gz: 70cf393c0bbe3ef0d73524019b7dfe7a3246c472
5
+ SHA512:
6
+ metadata.gz: 331326c122b1851d29014ec08d0f481851a2e6d2f9ffcd7c18546e39a23fadc9217d3baebe55cf503e59a72ad80e406c58223813cb04431fef8b49fd5ef1e6f2
7
+ data.tar.gz: 8d7e332a4d0a68b6fba3812e8637e226db1f56f96ad59835ae8b1e7962ed456baca142fc3f3119b4cd5a3ce9f3f262ec760003ba82e60d850aa3b602628bdef6
@@ -0,0 +1,36 @@
1
+ config/*.yml
2
+ config/deploy.rb
3
+ !config/settings.default.yml
4
+ !config/database.mysql.mac.yml
5
+ !config/database.mysql.yml
6
+ !config/database.postgres.yml
7
+ !config/database.postgres.docker.yml
8
+ !config/database.sqlite.yml
9
+ !config/settings.default.yml
10
+
11
+ .rspec
12
+ spec/reports
13
+ spec/internal/public/avatars
14
+ spec/internal/public/assets
15
+ coverage/*
16
+ db/*.sql*
17
+ log/*.log
18
+ doc/
19
+ vendor/bundle
20
+ Gemfile.ci.lock
21
+
22
+ public/avatars/**/*
23
+ public/assets
24
+
25
+ tmp
26
+ Design
27
+ .bundle
28
+ .idea/
29
+ .DS_Store
30
+ .rvmrc
31
+ .ruby-version
32
+ .ruby-gemset
33
+ .sass-cache
34
+ *~
35
+ *.swp
36
+ *.gem
@@ -0,0 +1,5 @@
1
+ StringLiterals:
2
+ Enabled: false
3
+
4
+ Metrics/LineLength:
5
+ Enabled: false
@@ -0,0 +1,3 @@
1
+ stage:
2
+ after_database:
3
+ - rake ffcrm:demo:load
@@ -0,0 +1,41 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.2
5
+ - 2.3.3
6
+ env:
7
+ - DB=mysql
8
+ - DB=postgres
9
+ - DB=sqlite
10
+
11
+ matrix:
12
+ exclude:
13
+ - rvm: 2.2
14
+ env: DB=mysql
15
+ - rvm: 2.2
16
+ env: DB=sqlite
17
+
18
+ bundler_args: --path=vendor/bundle --without heroku
19
+
20
+ cache: bundler
21
+
22
+ before_install:
23
+ - "export DISPLAY=:99.0"
24
+ - "sh -e /etc/init.d/xvfb start"
25
+
26
+ before_script:
27
+ - sh -c "cp config/database.$DB.yml config/database.yml"
28
+ - sh -c "if [ \"$DB\" = 'postgres' ]; then psql -c 'create database fat_free_crm_test;' -U postgres; fi"
29
+ - sh -c "if [ \"$DB\" = 'mysql' ]; then mysql -e 'create database fat_free_crm_test;'; fi"
30
+ - sh -c "RAILS_ENV=test bundle exec rake db:schema:load"
31
+
32
+ # Run specs
33
+ script: "RAILS_ENV=test bundle exec rake"
34
+
35
+ notifications:
36
+ webhooks:
37
+ urls:
38
+ - https://webhooks.gitter.im/e/859260451e154d78c1be
39
+ on_success: change # options: [always|never|change] default: always
40
+ on_failure: always # options: [always|never|change] default: always
41
+ on_start: false # default: false
@@ -0,0 +1,1923 @@
1
+ It does not matter how slowly you go as long as you do not stop.
2
+ -- Confucius
3
+
4
+ First they ignore you, then they laugh at you, then they fight you,
5
+ then you win. –- Mahatma Gandhi
6
+
7
+ Mon, Dec 5, 2016 (0.14.0)
8
+ ---------------------------------------------------------------------
9
+ Forked to publish 'reduced_fat_crm', a version of fat-free-crm with
10
+ more pull requests merged and more contributors.
11
+
12
+ At this stage, no classes etc have been renamed.
13
+
14
+ - Various security fixes
15
+ - Enable CORS headers
16
+ - Ruby 2.0 or less dropped from CI
17
+
18
+
19
+ Missing release notes
20
+ ---------------------------------------------------------------------
21
+ 0.13.6 - February 12, 2015
22
+ 0.13.5 - January 22, 2015
23
+ 0.13.4 - September 4, 2014
24
+ 0.13.3 - August 26, 2014
25
+ 0.13.2 - January 9, 2014
26
+ 0.13.1 - January 7, 2014
27
+ 0.13.0 - December 27, 2013
28
+ 0.12.3 - January 9, 2014
29
+ 0.12.2 - January 7, 2014
30
+ 0.12.1 - December 27, 2013
31
+
32
+
33
+ Fri, Jun 28, 2013 (0.12.0)
34
+ ---------------------------------------------------------------------
35
+ - Ruby 1.9 support only (no ruby 1.8 and not yet ruby 2)
36
+ - Fixed version pagination bug thanks to reubenjs
37
+ - Can set default stage for opportunities
38
+ - First name can now be optional on leads, contacts and accounts (if desired)
39
+ - Number of search results is now displayed
40
+ - Fixed pagination ordering when displaying entities that belong to a master entity (e.g. opportunities inside a contact)
41
+ - Fixed tests
42
+ - Fixed avatar upload bug (by updating paperclip gem)
43
+ - Can now search for campaigns in opportunities advanced search
44
+ - Added ActiveSupport lazy load hooks for cleaner plugin integration
45
+ - Fixed bug where MS Smartquotes broke the dropbox (Thanks bitgangsta)
46
+ - Updated German translations (thanks Phillip Ullmann)
47
+ - Display relationship between contact and it's corresponding lead in the sidebar (thanks Phillip Ullmann)
48
+
49
+ Tue, Mar 16, 2013
50
+ ---------------------------------------------------------------------
51
+ - Changed Fat Free CRM license to MIT, see MIT-LICENSE file.
52
+
53
+ Sat, Dec 29, 2012 (0.11.4)
54
+ ---------------------------------------------------------------------
55
+ - Updated countries list
56
+ - Please see an important fix for country data: https://github.com/fatfreecrm/fat_free_crm/wiki/The-Countries-Problem-and-How-to-Fix-It
57
+ - 0.11.4 will be the last ruby 1.8 release
58
+ - Comments can be added when items are created
59
+ - Dashboard shows assigned accounts and opportunities
60
+ - Now uses Rails 3.2
61
+ - Added Group tab in admin section
62
+ - Added jQuery datepicker
63
+ - Custom fields are now included in XLS export
64
+ - Updated Chinese translations
65
+ - Added Ransack / RansackUI search
66
+ - Added a Team tab to the interface
67
+ - Added ability to add new item views via plugins
68
+ -
69
+
70
+ Wed, May 9, 2012 (0.11.2)
71
+ ---------------------------------------------------------------------
72
+ - Better html email parsing
73
+ - Users can subscribe to contacts/accounts etc
74
+ - Use CanCan for permissions
75
+ - Add jQuery UI
76
+ - German translation updates
77
+
78
+ Fri, Mar 30, 2012 (0.11.1)
79
+ ---------------------------------------------------------------------
80
+ - Added Travis continuous integration service
81
+ - Rails 3 compatibility
82
+ - Added a few view hooks
83
+ - Dropbox now understands alt_email
84
+ - Updated translation file format
85
+ - Export includes full_name where applicable
86
+ - CSS bug fixes
87
+ - Swedish & Italian translations
88
+ - Controllers respond to JSON requests
89
+ - Several hundred other commits...
90
+
91
+ Tue, Sep 7, 2010
92
+ ---------------------------------------------------------------------
93
+ - Added Gemfile and Gemfile.lock.
94
+ - Installed plugins.
95
+ - Merged with crossroads/rails3 fork; (runs 'rake crm:setup').
96
+
97
+ Mon, Sep 6, 2010
98
+ ---------------------------------------------------------------------
99
+ - Generated empty Rails3 project.
100
+
101
+ Tue, Aug 31, 2010
102
+ ---------------------------------------------------------------------
103
+ - Release 0.10.1.
104
+ - Updated CHANGELOG and CONTRIBUTORS files.
105
+
106
+ Sun, Aug 29, 2010
107
+ ---------------------------------------------------------------------
108
+ - Added clickable labels to tasks sidebar checkboxes.
109
+
110
+ Thu, Aug 26, 2010
111
+ ---------------------------------------------------------------------
112
+ - Added missing Polish translations (thanks, Kamil!)
113
+
114
+ Fri, Aug 20, 2010
115
+ ---------------------------------------------------------------------
116
+ - Fixed deprecation warnings about plugins/**/tasks (thanks, Nathan!)
117
+ - Fixed Rails Engines deprecation warnings (thanks, Nathan!)
118
+ - [rake crm:setup] command now also runs plugin migrations (thanks, Nathan!)
119
+
120
+ Thu, Aug 19, 2010
121
+ ---------------------------------------------------------------------
122
+ - Checkboxes now have clickable labels (thanks, Steve!)
123
+ - Load 'awesome_print' gem (if available) in development mode (thanks, Nathan!)
124
+
125
+ Wed, Aug 18, 2010
126
+ ---------------------------------------------------------------------
127
+ - Added 'javascript_includes' hook (thanks, Nathan!)
128
+
129
+ Tue, Aug 17, 2010
130
+ ---------------------------------------------------------------------
131
+ - Properly set the account value when attaching a contact to the account (closed LH #165)
132
+ - Fixed failing dropbox specs by rescuing proper exception (Rails 2.3.8).
133
+ - Added PrependEngineViews library module to let Fat Free CRM plugins override default views.
134
+
135
+ Mon, Aug 16, 2010
136
+ ---------------------------------------------------------------------
137
+ - Minor UI tweaks.
138
+
139
+ Sat, Aug 14, 2010
140
+ ---------------------------------------------------------------------
141
+ - Added view hooks after top section (thanks, Ben!)
142
+ - Fixed default access for objects created by dropbox (thanks, Steve!)
143
+
144
+ Fri, Aug 13, 2010
145
+ ---------------------------------------------------------------------
146
+ - Stopped emails being associated with Campaigns that don't exist (thanks, Steve!)
147
+ - Fixed plugins tab initialization when the 'settings' table had not been created yet (thanks, Nathan!)
148
+
149
+ Thu, Aug 12, 2010
150
+ ---------------------------------------------------------------------
151
+ - Fixed activerecord deprecation warnings (thanks, Nathan!)
152
+ - Fixed factory generator for email (thanks, Nathan!)
153
+
154
+ Tue, Aug 10, 2010
155
+ ---------------------------------------------------------------------
156
+ - Added rules to .gitignore to ignore any plugins starting with crm_* (thanks, Nathan!)
157
+
158
+ Mon, Aug 9, 2010
159
+ ---------------------------------------------------------------------
160
+ - Display absolute dates in addition to relative ones (thanks, Peter!)
161
+ - Add absolute dates and fix relative dates for campaigns (thanks, Peter!)
162
+
163
+ Sat, Aug 7, 2010
164
+ ---------------------------------------------------------------------
165
+ - Make sure Task selection popup doesn't affect Quick Find.
166
+ - Close asset selection popup on <Enter>.
167
+ - Finished refactoring to move #attach logic from application controller to models.
168
+
169
+ Fri, Aug 6, 2010
170
+ ---------------------------------------------------------------------
171
+ - Germal translation fixes (thanks, Ralf!)
172
+ - Removed Rails deprecation warnings (thanks, Ralf!)
173
+
174
+ Thu, Aug 5, 2010
175
+ ---------------------------------------------------------------------
176
+ - Fat Free CRM by default requires Rails 2.3.8.
177
+ - Bundled will_paginate and faker as vendor/gems.
178
+
179
+ Wed, Aug 4, 2010
180
+ ---------------------------------------------------------------------
181
+ - Made dropbox email address comparision was case-insensitve (thanks, Ralf!)
182
+ - Removed duplicate association Opportunity#account (was: has_one + belongs_to) (thanks, Ralf!)
183
+ - Multiple fixes for Rails 2.3.8 upgrade (thanks, Ralf!)
184
+
185
+ Tue, Aug 3, 2010
186
+ ---------------------------------------------------------------------
187
+ - Don't auto-complete user create/edit forms (thanks, Alexander!)
188
+ - Multiple fixes in Germal translation (thanks, Ralf!)
189
+
190
+ Fri, Jul 30, 2010
191
+ ---------------------------------------------------------------------
192
+ - If a contact has no name, fill in the account name instead (thanks, Peter!)
193
+
194
+ Wed, Jul 28, 2010
195
+ ---------------------------------------------------------------------
196
+ - Sort contacts by last name by default (thanks, Peter!)
197
+
198
+ Tue, Jul 27, 2010
199
+ ---------------------------------------------------------------------
200
+ - Fixed named scope condition syntax in the Opportunity model (thanks, Elad!)
201
+ - Refactored to move #attach logic from application controller to models.
202
+
203
+ Mon, Jul 12, 2010
204
+ ---------------------------------------------------------------------
205
+ - Refactored to move #discard logic from application controller to models.
206
+
207
+ Thu, Jul 7, 2010
208
+ ---------------------------------------------------------------------
209
+ - Added controller#attach specs.
210
+ - Added more comprehensive controller#discard specs.
211
+
212
+ Wed, Jul 7, 2010
213
+ ---------------------------------------------------------------------
214
+ - Allow searching by email for Accounts, Contacts, and Leads.
215
+ - Added #discard controller specs.
216
+
217
+ Sun, Jul 4, 2010
218
+ ---------------------------------------------------------------------
219
+ - Allow explicit controller name when refreshing sidebar.
220
+ - Handle #discard requests the same way #attach are handled (i.e. in parent object controller).
221
+
222
+ Fri, Jul 2, 2010
223
+ ---------------------------------------------------------------------
224
+ - Moved common #attach handler to application controller.
225
+ - Strike through completed tasks in the auto_complete list.
226
+ - Implemented #discard for tasks.
227
+ - Implemented selecting and attaching tasks.
228
+ - Allow auto_complete for tasks.
229
+ - Implemented #attach for Opportunities and #attach/#discard for Contacts.
230
+ - Added #attach routes to handle requests to attach existing assets to related item.
231
+
232
+ Mon, Jun 12, 2010
233
+ ---------------------------------------------------------------------
234
+ - Use default permissions when creating an account from within a contact (thanks, Matthiew!)
235
+ - Removed 'Custom' opportunity stage and replaced it with comment in config/settings.yml.
236
+ - Named scope fix for Postgres/Heroku (closes LH #213).
237
+
238
+ Wed, Jun 7, 2010
239
+ ---------------------------------------------------------------------
240
+ - pt-BR updates (thanks, Enderson!)
241
+
242
+ Thu, Jun 17, 2010
243
+ ---------------------------------------------------------------------
244
+ - Don't count lost opportunities towards Account total (closes LH #205).
245
+ - Fixed vertical offset of asset selection popup.
246
+ - Made multiple selection popups coexist on a single page.
247
+
248
+ Fri, Jun 11, 2010
249
+ ---------------------------------------------------------------------
250
+ - Fixed issue with linking to edit/delete for models with multipart names (thanks, Nicholas!)
251
+
252
+ Tue, Jun 8, 2010
253
+ ---------------------------------------------------------------------
254
+ - Added load_select_popups_for() helper on asset landing pages.
255
+ - Refactored to add sections with [Create/Select...] on landing pages.
256
+
257
+ Fri, Jun 4, 2010
258
+ ---------------------------------------------------------------------
259
+ - Initial prototype of seleting related asset from the asset's landing page.
260
+ - Added discard action related specs.
261
+
262
+ Fri, May 28, 2010
263
+ ---------------------------------------------------------------------
264
+ - Do not offer :converted status choice when creating new lead (closes LH #199).
265
+
266
+ Thu, May 27, 2010
267
+ ---------------------------------------------------------------------
268
+ - Added simplified Chinese translation (thanks, James Zhang!)
269
+ - Initial implementation of discarding attached opportunity.
270
+
271
+ Tue, May 25, 2010
272
+ ---------------------------------------------------------------------
273
+ - Final dropbox touches before merging it all to the master branch.
274
+ - Avoid collision with .email CSS class which is used to display Task category strip.
275
+ - Dropbox related localizations.
276
+
277
+ Mon, May 24, 2010
278
+ ---------------------------------------------------------------------
279
+ - More work on the dropbox library.
280
+
281
+ Mon, May 10, 2010
282
+ ---------------------------------------------------------------------
283
+ - Allow to detach an account when editing a contact or an opportunity (closes LH #184).
284
+
285
+ Wed, May 5, 2010
286
+ ---------------------------------------------------------------------
287
+ - Added migration to have index on permissions (thanks, Yura!)
288
+ - Added link_to_email to Bcc: to dropbox if it has been set up (closes LH #183).
289
+
290
+ Mon, May 3, 2010
291
+ ---------------------------------------------------------------------
292
+ - Pushed [rails3] branch to Github, let the porting start :-)
293
+
294
+ Thu, Apr 29, 2010
295
+ ---------------------------------------------------------------------
296
+ - Replaced Facebox with Modalbox (closes LH #170).
297
+
298
+ Tue, Mar 9, 2010
299
+ ---------------------------------------------------------------------
300
+ - Check if new [background_info] setting is properly loaded.
301
+ - Merged in dropdown calendar localization patches (thanks, Yura!)
302
+ - Updated list of contributors.
303
+ - Version 0.9.10
304
+
305
+ Fri, Feb 26, 2010
306
+ ---------------------------------------------------------------------
307
+ - More work on to support scheduling tasks with specific time deadline.
308
+
309
+ Thu, Feb 25, 2010
310
+ ---------------------------------------------------------------------
311
+ - Refactored compound address code to support field hints.
312
+ - Added French locale (thanks, Cédric!)
313
+
314
+ Wed, Feb 24, 2010
315
+ ---------------------------------------------------------------------
316
+ - Added new hook hook in user profile template (thanks, Jose Luis!)
317
+
318
+ Sun, Feb 21, 2010
319
+ ---------------------------------------------------------------------
320
+ - Added :background_info option to Settings making it optional
321
+ - Refactored background info in forms and sidebar views
322
+ - Fixed fixtures and factories for the new Address model
323
+
324
+ Fri, Feb 19, 2010
325
+ ---------------------------------------------------------------------
326
+ - Added support for creating tasks with specific time deadline (thanks, Yura!)
327
+
328
+ Wed, Feb 17, 2010
329
+ ---------------------------------------------------------------------
330
+ - Added support for compound addresses (thanks, Jose Luis!)
331
+ - Fixed for :quote_ident issue with Postgres (thanks, Matt!)
332
+ - Added missing translations to the rest of locale files.
333
+
334
+ Tue, Feb 16, 2010
335
+ ---------------------------------------------------------------------
336
+ - Added localization support for dropdown calendar (thanks, Yura!)
337
+
338
+ Wed, Feb 10, 2010
339
+ ---------------------------------------------------------------------
340
+ - Added background info field to all major models (thanks, Jose Luis!)
341
+ - Added hook to sidebar index template (thanks, Jose Luis!)
342
+
343
+ Tue, Feb 9, 2010
344
+ ---------------------------------------------------------------------
345
+ - Default permissions are now configurable in settings.yml (thanks, Jose Luis!)
346
+ - More localization tweaks for date formats and tasks (thanks, Kamil and Yura!)
347
+ - Minor refactoring.
348
+
349
+ Sun, Feb 7, 2010
350
+ ---------------------------------------------------------------------
351
+ - Updated Russian locale files (thanks, Roman!)
352
+ - Updated task editing to support localization (thanks, Yura!)
353
+ - Added email attribute to Accounts -- run rake db:migrate (thanks, Jose Luis!)
354
+ - Updated README to mention http://demo.fatfreecrm.com
355
+
356
+ Thu, Feb 4, 2010
357
+ ---------------------------------------------------------------------
358
+ - Fixed few i18n omissions in locale files.
359
+ - Added support for editing and deleting notes (thanks, Jose Luis!)
360
+
361
+ Tue, Feb 2, 2010
362
+ ---------------------------------------------------------------------
363
+ - Added Polish translation (thanks, Kamil!)
364
+
365
+ Wed, Jan 27, 2010
366
+ ---------------------------------------------------------------------
367
+ - Fixed task time zone specs (thanks, Tom!)
368
+
369
+ Mon, Jan 25, 2010
370
+ ---------------------------------------------------------------------
371
+ - Small tweak to better support Heroku deployments (thanks, Ryan!)
372
+
373
+ Tue, Jan 19, 2010
374
+ ---------------------------------------------------------------------
375
+ - Updated Russian translation (thanks, Roman!)
376
+
377
+ Tue, Jan 12, 2010
378
+ ---------------------------------------------------------------------
379
+ - Pulled remaining English strings out of JavaScript (thanks, Gavin!)
380
+ - Added missing message to locale files.
381
+
382
+ Mon, Jan 11, 2010
383
+ ---------------------------------------------------------------------
384
+ - Added Spanish translation (thanks, Beatriz!)
385
+ - Fixed text encoding issues with Ruby 1.9/MySQL and HAML (thanks, Gavin!)
386
+
387
+ Wed, Jan 7, 2010
388
+ ---------------------------------------------------------------------
389
+ - Added :per_user_locale setting (default is false).
390
+ - Added some CSS eye candy (drop shadows and options links).
391
+ - Version 0.9.9b
392
+
393
+ Wed, Jan 6, 2010
394
+ ---------------------------------------------------------------------
395
+ - Updated Thai and Portuguese language translations.
396
+
397
+ Mon, Jan 4, 2010
398
+ ---------------------------------------------------------------------
399
+ - Implemented REST API for fetching asset notes (thanks, Adrian!)
400
+
401
+ Sun, Jan 3, 2010
402
+ ---------------------------------------------------------------------
403
+ - Return stringified hook data when called from within templates, and the actual data otherwise.
404
+
405
+ Thu, Dec 31, 2009
406
+ ---------------------------------------------------------------------
407
+ - Version 0.9.9a -- Happy New Year!
408
+ - Added [rake crm:settings:show] task.
409
+ - Minor fixes.
410
+
411
+ Wed, Dec 30, 2009
412
+ ---------------------------------------------------------------------
413
+ - More Ruby 1.9 compatibility fixes: all specs pass.
414
+
415
+ Tue, Dec 29, 2009
416
+ ---------------------------------------------------------------------
417
+ - Fixed Ruby 1.9 compatibility issues with I18n.t (thanks, Gavin!)
418
+ - Fixed rendering of callback hooks to be compatible with Ruby 1.9.
419
+ - Fixed password reset submission form (thanks, Roman!)
420
+
421
+ Mon, Dec 28, 2009
422
+ ---------------------------------------------------------------------
423
+ - XSS cleanup across views and models (thanks, Louis!)
424
+ - Refactoring permissions templates (thanks, Rit!)
425
+ - Updated README file.
426
+ - Version 0.9.9 (yay!)
427
+
428
+ Sat, Dec 19, 2009
429
+ ---------------------------------------------------------------------
430
+ - Fixed deprecation warning when adding a new comment.
431
+ - Fixed Apache/Passenger issue of not being able to load tab settings.
432
+ - Merged in I18n branch: Fat Free CRM could be easily localized now by dropping in config/locales file.
433
+ - Added exception handling and custom 500 status code template.
434
+
435
+ Mon, Dec 14, 2009
436
+ ---------------------------------------------------------------------
437
+ - Make sure no activity records are left behind when model record gets deleted from the database.
438
+
439
+ Sun, Dec 13, 2009
440
+ ---------------------------------------------------------------------
441
+ - Fixed broken sidebar search in Admin/Users.
442
+ - Refactored sidebar rendering to explicitly check if template file exists.
443
+
444
+ Sat, Dec 12, 2009
445
+ ---------------------------------------------------------------------
446
+ - Upgraded [simple_column_search] plugin that adds search support for Postgres.
447
+ - More I18n tweaks in views.
448
+ - Metallica show at HP Pavilion in San Jose!
449
+
450
+ Sun, Nov 29, 2009
451
+ ---------------------------------------------------------------------
452
+ - Added optional PLUGIN=plugin parameter to "rake crm:settings:load" task.
453
+ - Sorted locale keys, synced up English, Portuguese, and Russian locale files.
454
+
455
+ Tue, Nov 24, 2009
456
+ ---------------------------------------------------------------------
457
+ - Happy birthday, Fat Free CRM is one year old!
458
+
459
+ Wed, Nov 18, 2009
460
+ ---------------------------------------------------------------------
461
+ - Added Thai language translation (thanks, Apirak!)
462
+
463
+ Mon, Nov 16, 2009
464
+ ---------------------------------------------------------------------
465
+ - Streamlined CSS styles to fix text wrapping.
466
+ - Added explicit CSS value to fix tabs height (thanks, Apirak!)
467
+ - Fixed time calculations for dashboard activities.
468
+
469
+ Thu, Nov 12, 2009
470
+ ---------------------------------------------------------------------
471
+ - Restructured settings to take advantage of locale.
472
+ - NOTE: re-run crm:settings:load
473
+
474
+ Wed, Nov 11, 2009
475
+ ---------------------------------------------------------------------
476
+ - Moved hardcoded setting values from config/settings.yml to locale.
477
+
478
+ Mon, Nov 9, 2009
479
+ ---------------------------------------------------------------------
480
+ - Merged with lanadv/i18n branch (thanks, Lana!)
481
+
482
+ Fri, Nov 6, 2009
483
+ ---------------------------------------------------------------------
484
+ - Adjust total campaign revenue when related opportunity is won (LH #121).
485
+ - Refresh campaign sidebar when updating related opportunity (LH #121).
486
+ - Refresh campaign sidebar when rejecting or converting related lead (LH #121).
487
+ - Display newly created opportunity when converting lead from campaign page (LH #121).
488
+
489
+ Thu, Nov 5, 2009
490
+ ---------------------------------------------------------------------
491
+ - Writing specs for LH #121.
492
+
493
+ Wed, Nov 4, 2009
494
+ ---------------------------------------------------------------------
495
+ - Correctly set opportunity campaign and source when converting a lead (LH #119).
496
+ - Show correct campaign name and source when adding a lead from campaign landing page.
497
+ - Update lead counters when reassigning leads between campaigns (LH #117).
498
+
499
+ Sun, Nov 1, 2009
500
+ ---------------------------------------------------------------------
501
+ - Implemented I18n for options across all models.
502
+
503
+ Sat, Oct 31, 2009
504
+ ---------------------------------------------------------------------
505
+ - Correctly show opportunity summary when opportunity stage hasn't been specified.
506
+ - Update Campaign summary when creating or deleting related lead or opportunity.
507
+ - Fixed "rake crm:setup" task to be compatible with ruby 1.9.
508
+
509
+ Fri, Oct 30, 2009
510
+ ---------------------------------------------------------------------
511
+ - Introduced Sortable module, more work on I18n.
512
+
513
+ Sat, Oct 24, 2009
514
+ ---------------------------------------------------------------------
515
+ - Allow renaming both main and admin tabs (see config/settings.yml).
516
+ - Refactored gravatars to always show default image if gravatar is missing.
517
+ - Fixed Facebox usage within Admin area.
518
+ - Release 0.9.8a.
519
+
520
+ Thu, Oct 22, 2009
521
+ ---------------------------------------------------------------------
522
+ - Fixed SASS deprecation warnings making it compatible with Heroku again (thanks, Jim!).
523
+ - Refactored Facebox library (again!) to take into account [base_url] setting.
524
+
525
+ Wed, Oct 21, 2009
526
+ ---------------------------------------------------------------------
527
+ - Include modules from "lib/fat_free_crm.rb" so that they're loaded when running rake.
528
+
529
+ Tue, Oct 20, 2009
530
+ ---------------------------------------------------------------------
531
+ - Added Language option stubs to user's profile.
532
+ - Disabled tab highlighting when showing user's profile.
533
+ - Include all Fat Free CRM modules from Rails initializer.
534
+ - Added FatFreeCRM::I18n module.
535
+
536
+ Sun, Oct 18, 2009
537
+ ---------------------------------------------------------------------
538
+ - Merged localization commits onto i18n branch (thanks, Lana!)
539
+
540
+ Wed, Oct 14, 2009
541
+ ---------------------------------------------------------------------
542
+ - Make sure opportunity name does not exceed 64 characters (thanks, Rit!)
543
+ - Changed required Rails version to v2.3.4
544
+ - Updated model annotations for schema version #023.
545
+ - Release 0.9.8.
546
+
547
+ Sun, Oct 11, 2009
548
+ ---------------------------------------------------------------------
549
+ - Added full support for deploying Fat Free CRM in subdirectory (see config/settings.yml).
550
+ - Made Facebox library work with the project is deployed in subdirectory.
551
+
552
+ Sat, Oct 10, 2009
553
+ ---------------------------------------------------------------------
554
+ - Happy birthday, Diana!
555
+ - Setting up Apache with the latest Passenger.
556
+
557
+ Fri, Oct 9, 2009
558
+ ---------------------------------------------------------------------
559
+ - Prevent multiple form submissions by pressing [Submit] button twice.
560
+ - Fixed apparent MySQL migration error on Windows/XP.
561
+
562
+ Wed, Oct 7, 2009
563
+ ---------------------------------------------------------------------
564
+ - Moved [uses_user_permission] code from plugin to core library.
565
+ - Added inspector logging.
566
+
567
+ Mon, Oct 5, 2009
568
+ ---------------------------------------------------------------------
569
+ - Added [rake crm:hooks] task that enumerates the hooks (thanks, Eric!)
570
+
571
+ Sat, Oct 3, 2009
572
+ ---------------------------------------------------------------------
573
+ - Removed [uses_mysql_uuid] plugin and deprecated support for UUIDs.
574
+
575
+ Tue, Sep 29, 2009
576
+ ---------------------------------------------------------------------
577
+ - Adjusted activity timestamp to reflect UTC offset (thanks, Andrew!)
578
+ - Allow creating opportunities with non-unique name.
579
+ - Added :auto_complete controller hook.
580
+
581
+ Sun, Sep 27, 2009
582
+ ---------------------------------------------------------------------
583
+ - Added sidebar hooks on asset landing pages.
584
+ - crm_tags: added support for showing tags on asset landing pages.
585
+
586
+ Sat, Sep 26, 2009
587
+ ---------------------------------------------------------------------
588
+ - Added hooks for inline CSS styles and JavaScript epilogue.
589
+ - crm_tags: added JavaScript and CSS stylesheets for tags.
590
+ - crm_tags: make sure tags stay unique when searching.
591
+
592
+ Thu, Sep 24, 2009
593
+ ---------------------------------------------------------------------
594
+ - crm_tags: Made controller methods work with query string that contains tags.
595
+
596
+ Tue, Sep 22, 2009
597
+ ---------------------------------------------------------------------
598
+ - crm_tags: Proof of concept of combining query string with hash-prefixed tags.
599
+
600
+ Mon, Sep 21, 2009
601
+ ---------------------------------------------------------------------
602
+ - Added hooks to model view partials.
603
+
604
+ Mon, Sep 21, 2009
605
+ ---------------------------------------------------------------------
606
+ - Added hooks to model view partials.
607
+
608
+ Sun, Sep 20, 2009
609
+ ---------------------------------------------------------------------
610
+ - More work on [crm_tags] plugin.
611
+
612
+ Fri, Sep 18, 2009
613
+ ---------------------------------------------------------------------
614
+ - Merged String#to_url (thanks, Rit!)
615
+
616
+ Thu, Sep 17, 2009
617
+ ---------------------------------------------------------------------
618
+ - Fixed task completion bug for tasks with specific due date (thanks, Andrew!)
619
+ - Added more task model specs.
620
+
621
+ Mon, Sep 14, 2009
622
+ ---------------------------------------------------------------------
623
+ - Merged in Andrew's patch that solves disappearing tasks puzzle (thanks, Andrew!)
624
+ - Created task model specs that prove Andrew's theory.
625
+
626
+ Sun, Sep 13, 2009
627
+ ---------------------------------------------------------------------
628
+ - Added [get_*] controller hooks.
629
+ - Refactored FatFreeCRM::Callback.hook to simplify and support hook chains.
630
+ - Implemented controller hooks in [crm_tags] plugin.
631
+
632
+ Sat, Sep 12, 2009
633
+ ---------------------------------------------------------------------
634
+ - Added [*_top_section_bottom] view hooks.
635
+ - Make Rails not to reload core classes when developing a plugin.
636
+
637
+ Thu, Sep 10, 2009
638
+ ---------------------------------------------------------------------
639
+ - More work on [crm_tags] plugin and its view hooks.
640
+
641
+ Wed, Sep 9, 2009
642
+ ---------------------------------------------------------------------
643
+ - Injecting [acts_as_taggable_on] to existing models.
644
+
645
+ Mon, Sep 7, 2009
646
+ ---------------------------------------------------------------------
647
+ - Started with [crm_tags] plugin.
648
+
649
+ Sun, Sep 6, 2009
650
+ ---------------------------------------------------------------------
651
+ - Release 0.9.7.
652
+ - Open up [Quick find] on click rather than on mouseover.
653
+ - Added bounce effect to the login screen (fun!).
654
+ - Added CONTRIBUTORS file.
655
+
656
+ Sat, Sep 5, 2009
657
+ ---------------------------------------------------------------------
658
+ - Added overlay to the facebox library.
659
+ - Upgraded Rails Engines plugin (edge 2009-06-16).
660
+ - Boot Rails Engines right after Rails boots itself up.
661
+
662
+ Thu, Sep 3, 2009
663
+ ---------------------------------------------------------------------
664
+ - Make sure [rake crm:setup:admin] can actually assign admin attribute (thanks Rit!)
665
+ - Correctly assign and revoke admin rights in Admin/Users (thanks Rit!)
666
+ - Refactored Tabs code to avoid duplication.
667
+
668
+ Tue, Sep 1, 2009
669
+ ---------------------------------------------------------------------
670
+ - Fixed user signup vulnerability (thanks, Rit!)
671
+ - Suppress terminal echo when asking for admin password in [rake crm:setup:admin] task.
672
+
673
+ Sun, Aug 30, 2009
674
+ ---------------------------------------------------------------------
675
+ - Get flip_subtitle working in IE8 (thanks, Hamish!)
676
+ - Make sure simple_column_search does not escape period and single quote (thanks, Rit!)
677
+ - Don't suspend Admin users (thanks, Rit!)
678
+ - Moved [crm_sample_tabs] plugin into separate repository.
679
+ - Merged plugin tab support into the master branch.
680
+
681
+ Sat, Aug 29, 2009
682
+ ---------------------------------------------------------------------
683
+ - Some refactoring and more comments explaining the examples in [crm_sample_plugin].
684
+
685
+ Thu, Aug 27, 2009
686
+ ---------------------------------------------------------------------
687
+ - Make sure we can run Rake tasks when Settings are missing.
688
+ - Reload User class in [rake crm:setup] task to make sure migration attributes are set.
689
+ - Make sure the user has been authenticated before checking whether she is awaiting approval.
690
+
691
+ Wed, Aug 26, 2009
692
+ ---------------------------------------------------------------------
693
+ - Implemented #tab method for plugin registration.
694
+
695
+ Tue, Aug 25, 2009
696
+ ---------------------------------------------------------------------
697
+ - Added [crm_sample_tabs] plugin with the tab registration prototype.
698
+
699
+ Mon, Aug 24, 2009
700
+ ---------------------------------------------------------------------
701
+ - Implemented user approvals in Admin/Users and closed LH #29.
702
+ - Release 0.9.6.
703
+
704
+ Sat, Aug 22, 2009
705
+ ---------------------------------------------------------------------
706
+ - Implemented :needs_approval setting for user signups.
707
+
708
+ Fri, Aug 21, 2009
709
+ ---------------------------------------------------------------------
710
+ - Added new :user_signup setting (see config/settings.yml).
711
+ - User signups are only allowed if :user_signup is set to :allowed or :needs_approval.
712
+
713
+ Thu, Aug 20, 2009
714
+ ---------------------------------------------------------------------
715
+ - Added support for unattended [rake crm:setup] and [rake crm:setup:admin] tasks.
716
+ - Warn about database reset in [rake crm:setup] task.
717
+ - Removed dependency on Highline gem and removed it from vendors/gems.
718
+ - Added [:user_signup] setting and started with the signup permissions.
719
+
720
+ Wed, Aug 19, 2009
721
+ ---------------------------------------------------------------------
722
+ - Added view hooks on landing pages of all major models.
723
+
724
+ Tue, Aug 18, 2009
725
+ ---------------------------------------------------------------------
726
+ - More work on [crm_issues] plugin.
727
+
728
+ Mon, Aug 17, 2009
729
+ ---------------------------------------------------------------------
730
+ - Work on [crm_issues] plugin.
731
+
732
+ Sat, Aug 15, 2009
733
+ ---------------------------------------------------------------------
734
+ - Implemented plugin dependencies to be able to change plugin loading order.
735
+ - Pass on [lead.id] when converting it into a contact (LH #86).
736
+ - Corrected format of opportunity closing date (GH #7).
737
+
738
+ Fri, Aug 14, 2009
739
+ ---------------------------------------------------------------------
740
+ - Reviewed pccl fork and [fat_free_issues] plugin.
741
+
742
+ Thu, Aug 13, 2009
743
+ ---------------------------------------------------------------------
744
+ - Added user search and pagination to Admin/Users.
745
+
746
+ Wed, Aug 12, 2009
747
+ ---------------------------------------------------------------------
748
+ - Adding search and pagination to Admin/Users.
749
+
750
+ Tue, Aug 11, 2009
751
+ ---------------------------------------------------------------------
752
+ - Installed [Highline] gem in vendor/gems for [rake crm:setup:admin] task.
753
+ - Implemented [rake crm:setup:admin] task to create admin user.
754
+
755
+ Sat, Aug 8, 2009
756
+ ---------------------------------------------------------------------
757
+ - Added :before_destroy filters for User model.
758
+ - Implemented deleting users in Admin interface.
759
+ - Refactored flash messages to set notice/warning class on the fly.
760
+
761
+ Wed, Aug 5, 2009
762
+ ---------------------------------------------------------------------
763
+ - Added confirmation when deleting an user (Admin/Users/Delete).
764
+
765
+ Tue, Aug 4, 2009
766
+ ---------------------------------------------------------------------
767
+ - Upgraded [acts_as_commentable] plugin for Ruby 1.9 compatibility.
768
+ - Updated tab settings to allow Fat Free CRM to run from a subdirectory (thanks, okyada!).
769
+ - Updated [rake crm:settings:load] task to ensure Rails 2.3.3 compatibility.
770
+ - Implemented Admin > [Edit User] form.
771
+
772
+ Mon, Aug 3, 2009
773
+ ---------------------------------------------------------------------
774
+ - Implemented Admin > [Create User] form.
775
+ - Include all application helpers except the ones in /admin/helpers subdirectory (GH #5).
776
+ - Make sure editing assets doesn't change asset owner (LH #79).
777
+ - Implemented [Suspend] and [Reactivate] when managing users.
778
+ - Prevent suspended user from logging in.
779
+
780
+ Sun, Aug 2, 2009
781
+ ---------------------------------------------------------------------
782
+ - Updated authentication to allow creating users with blank passwords.
783
+
784
+ Sat, Aug 1, 2009
785
+ ---------------------------------------------------------------------
786
+ - More work on Admin/Users: added list of users and [Create User] form.
787
+
788
+ Fri, Jul 31, 2009
789
+ ---------------------------------------------------------------------
790
+ - Added [suspended_at] to User model, fixed typo (LH #81).
791
+
792
+ Thu, Jul 30, 2009
793
+ ---------------------------------------------------------------------
794
+ - Fixed ActionMailer password reset issue (thanks, James!).
795
+ - Use truncate() instead of shorten() for multibyte chars (thanks, Dima!).
796
+ - Increased the size of the textarea when adding notes (LH #80).
797
+
798
+ Wed, Jul 29, 2009
799
+ ---------------------------------------------------------------------
800
+ - More work on building the Admin infrastructure.
801
+
802
+ Tue, Jul 28, 2009
803
+ ---------------------------------------------------------------------
804
+ - Building Admin infrastructure.
805
+
806
+ Mon, Jul 27, 2009
807
+ ---------------------------------------------------------------------
808
+ - Dropped open_id related tables, added [admin] flag to [users] table.
809
+
810
+ Sun, Jul 26, 2009
811
+ ---------------------------------------------------------------------
812
+ - Added timezone support.
813
+
814
+ Fri, Jul 24, 2009
815
+ ---------------------------------------------------------------------
816
+ - Fixed a typo that affected individual permissions (thanks, Guillermo!)
817
+ - Refactored password reset controller and related views.
818
+ - Merged in Spanish translation from chillicoder/master (thanks, Martin!).
819
+ - Release 0.9.5.
820
+
821
+ Thu, Jul 23, 2009
822
+ ---------------------------------------------------------------------
823
+ - Made UUID support optional (affects MySQL v5+ users only).
824
+ - Removed task-specific flash area; changed to use generic flash messages instead.
825
+ - Store current user in the class to make it easier to access it from observers.
826
+ - Removed password length restriction to allow blank passwords.
827
+
828
+ Tue, Jul 21, 2009
829
+ ---------------------------------------------------------------------
830
+ - Upgraded HAML/SASS to version 2.2.2 (Powerful Penny) and made it a plugin.
831
+ - Ruby 1.9.1 compatibility fixes.
832
+
833
+ Mon, Jul 20, 2009
834
+ ---------------------------------------------------------------------
835
+ - Happy birthday, Lana!
836
+ - Annotated models for schema version #19.
837
+ - Implemented Profile > Change Password.
838
+ - Added ability to show flash notices from RJS templates.
839
+ - Removed [open_id_authentication] plugin since it's no longer needed.
840
+ - First gathering at #fatfreecrm channel on irc.freenode.net (thanks, Eric!)
841
+
842
+ Sun, Jul 19, 2009
843
+ ---------------------------------------------------------------------
844
+ - Completed upgrade to Authlogic 2.1.2
845
+ - Removed support for OpenID authentication
846
+
847
+ Sat, Jul 18, 2009
848
+ ---------------------------------------------------------------------
849
+ - Upgrading to Authlogic 2.1.2
850
+
851
+ Wed, Jul 15, 2009
852
+ ---------------------------------------------------------------------
853
+ - Moved avatars in separate directories based on who the avatar belongs to.
854
+ - Implemented avatar_for() to encapsulate uploaded image, gravatar, and default icon.
855
+ - Fixed Paperclip bug when :url option is a lambda and not a string.
856
+ - Release 0.9.4.
857
+
858
+ Mon, Jul 13, 2009
859
+ ---------------------------------------------------------------------
860
+ - Finished with user avatar upload, including controller and view specs.
861
+
862
+ Sun, Jul 12, 2009
863
+ ---------------------------------------------------------------------
864
+ - Back home from Pismo Beach.
865
+
866
+ Thu, Jul 9, 2009
867
+ ---------------------------------------------------------------------
868
+ - On my way to Pismo Beach, CA.
869
+
870
+ Tue, Jul 7, 2009
871
+ ---------------------------------------------------------------------
872
+ - More tweaks for Profile > Upload Avatar form.
873
+
874
+ Mon, Jul 6, 2009
875
+ ---------------------------------------------------------------------
876
+ - Replaced [mini_magick/has_image] combo with [paperclip] plugin.
877
+ - Installed [responds-to-parent-plugin].
878
+ - Added [Avatar] model.
879
+ - Implemented Ajax avatar uploads through hidden frame.
880
+
881
+ Sun, Jul 5, 2009
882
+ ---------------------------------------------------------------------
883
+ - Installed [mini_magick] gem and [has_image] plugin.
884
+
885
+ Sat, Jul 4, 2009
886
+ ---------------------------------------------------------------------
887
+ - Finished [Edit Profile] form which now updates all other page elements.
888
+ - Use root route instead of home (thanks, Dr.Nic!)
889
+
890
+ Fri, Jul 3, 2009
891
+ ---------------------------------------------------------------------
892
+ - Added user controller and view specs.
893
+ - Converted [Edit Profile] form to Ajax, implemented update.
894
+
895
+ Wed, Jul 1, 2009
896
+ ---------------------------------------------------------------------
897
+ - Added copyright notices (thanks, Michael!).
898
+ - Added routes and Ajax form stubs for [Edit Profile], [Upload Avatar], and [Change Password].
899
+
900
+ Tue, Jun 30, 2009
901
+ ---------------------------------------------------------------------
902
+ - More work on user profile.
903
+ - Applied patches to fix an issue with comments and their formatting (thanks, Eric!).
904
+
905
+ Sun, Jun 28, 2009
906
+ ---------------------------------------------------------------------
907
+ - Another iteration on User Profiles; all users now have personal profile page.
908
+ - Fixed form validation issue on asset landing pages (closes GH #3).
909
+ - Refactored form validation specs.
910
+ - Release 0.9.3.
911
+
912
+ Sat, Jun 27, 2009
913
+ ---------------------------------------------------------------------
914
+ Combined [Preferences] and [Profile] into single [Preferences] menu item.
915
+
916
+ Thu, Jun 25, 2008
917
+ ---------------------------------------------------------------------
918
+ - Hide [Create...] form before showing [Edit...] to make sure initial focus gets set properly.
919
+ - Rewrote config/settings.yml to use more familiar Ruby-like syntax.
920
+
921
+ Mon, Jun 22, 2009
922
+ ---------------------------------------------------------------------
923
+ - Fat Free CRM website is up at http://www.fatfreecrm.com
924
+
925
+ Sat, Jun 20, 2009
926
+ ---------------------------------------------------------------------
927
+ - Assets now show all related tasks, even if they were not created or assigned by current user.
928
+ - Release 0.9.2.
929
+
930
+ Fri, Jun 19, 2009
931
+ ---------------------------------------------------------------------
932
+ - Revamping the way a list of tasks is shown on related asset page.
933
+ - Added [completed_by] field to Task model to be able to show who completed the task.
934
+
935
+ Thu, Jun 18, 2009
936
+ ---------------------------------------------------------------------
937
+ - Fixed task creation issue on landing pages; added missing task stylesheets.
938
+ - Simplified version handling to avoid unnecessary database queries.
939
+ - Fixed Rails 2.3 incompatibility (expand/collapse in forms and [Cancel] for notes).
940
+ - Changed defaults to more reasonable values (thanks, Lana!).
941
+
942
+ Mon, Jun 15, 2009
943
+ ---------------------------------------------------------------------
944
+ - Updated Readme file (added links to direct downloads and Google Groups).
945
+ - Installed [facebox-for-prototype] JavaScript library.
946
+ - Implemented About box showing version number and helpful links (rerun rake crm:setup!)
947
+
948
+ Sat, Jun 13, 2009
949
+ ---------------------------------------------------------------------
950
+ - Upgraded to work with Rails 2.3.2
951
+ - Upgraded [rspec], [rspec-rails], and [open-id-authentication] plugins.
952
+ - Upgraded [acts-as-paranoid] plugin.
953
+ - Fixed task title naming issue.
954
+ - Fixed opportunity unique index issue (SQLite).
955
+ - Tagged 0.9.0 to build downloadable distributions on Github.
956
+
957
+ Thu, Jun 11, 2009
958
+ ---------------------------------------------------------------------
959
+ - Finished user options for the Recent Activity (LH #46).
960
+ - Fixed sporadic spec failures when running with SQLite.
961
+
962
+ Wed, Jun 10, 2009
963
+ ---------------------------------------------------------------------
964
+ - Implemented options for Opportunities and Contacts.
965
+ - Started with the options for the Recent Activity.
966
+
967
+ Tue, Jun 9, 2009
968
+ ---------------------------------------------------------------------
969
+ - Implemented options for Accounts.
970
+
971
+ Sun, Jun 6, 2009
972
+ ---------------------------------------------------------------------
973
+ - Implemented options for Leads.
974
+ - Happy birthday, Rema!
975
+
976
+ Thu, Jun 4, 2009
977
+ ---------------------------------------------------------------------
978
+ - Implemented :sort_by option for Campaigns.
979
+ - Wrote specs and finished [Options] for Campaigns.
980
+
981
+ Wed, Jun 3, 2009
982
+ ---------------------------------------------------------------------
983
+ - Implemented :per_page, and :format user preferences for Campaigns.
984
+ - Revisited user Preference model and wrote full spec coverage.
985
+ - Refactored application.js to simplify remote form updates.
986
+ - Updated stylesheets to support long and brief list formats.
987
+
988
+ Tue, Jun 2, 2009
989
+ ---------------------------------------------------------------------
990
+ - Added [Options] form for Campaigns with all preferences stubbed.
991
+
992
+ Mon, Jun 1, 2009
993
+ ---------------------------------------------------------------------
994
+ - Happy birthday, Sophie!
995
+
996
+ Sun, May 31, 2009
997
+ ---------------------------------------------------------------------
998
+ - Work on adding [Options] inline form and related controller actions.
999
+
1000
+ Sat, May 30, 2009
1001
+ ---------------------------------------------------------------------
1002
+ - Implemented crm.Menu class and added menu related CSS styles.
1003
+
1004
+ Fri, May 29, 2009
1005
+ ---------------------------------------------------------------------
1006
+ - Fixed opportunity assignment issue reported by Deepu (LH #49).
1007
+ - Fixed similar issue with the contact assignments.
1008
+ - Fixed account sidebar issue when shipping/billing addresses are missing.
1009
+
1010
+ Thu, May 28, 2009
1011
+ ---------------------------------------------------------------------
1012
+ - Server installation and configuration at Linode.
1013
+
1014
+ Wed, May 27, 2009
1015
+ ---------------------------------------------------------------------
1016
+ - Refactored auto_complete to use before_filter.
1017
+ - Created shared behavior specs to test auto_complete.
1018
+ - Display a message when no quick find matches were found.
1019
+ - Uninstalled [auto_complete] plugin since we're not using it.
1020
+ - Signed up for Linode.com
1021
+
1022
+ Tue, May 26, 2009
1023
+ ---------------------------------------------------------------------
1024
+ - Happy birthday, Laura!
1025
+
1026
+ Mon, May 25, 2009
1027
+ ---------------------------------------------------------------------
1028
+ - Implemented jumpbox (called "Quick Find").
1029
+
1030
+ Sun, May 24, 2009
1031
+ ---------------------------------------------------------------------
1032
+ - More work on jumpbox.
1033
+
1034
+ Sat, May 23, 2009
1035
+ ---------------------------------------------------------------------
1036
+ - Restructured application's JavaScript and added crm.Popup class.
1037
+ - Added "Jump to..." link that shows the jumpbox (see LH #45).
1038
+
1039
+ Fri, May 22, 2009
1040
+ ---------------------------------------------------------------------
1041
+ - Happy birthday, Dad!
1042
+
1043
+ Thu, May 21, 2009
1044
+ ---------------------------------------------------------------------
1045
+ - Fixed JavaScript and CSS caching issues in production environment.
1046
+
1047
+ Wed, May 20, 2009
1048
+ ---------------------------------------------------------------------
1049
+ - Gracefully handle use cases when previous or related asset is deleted or protected.
1050
+ - Make sure commentable object exists and is accessible to current user.
1051
+ - Implemented specs for Comments controller.
1052
+
1053
+ Tue, May 19, 2009
1054
+ ---------------------------------------------------------------------
1055
+ - Added missing and protected object handling for #convert, #promote, #reject (Leads).
1056
+ - Added new [tracked_by] named scope for Tasks.
1057
+ - Added missing and protected object handling for Tasks.
1058
+ - Refactored rescue clause to use respond_to_not_found().
1059
+
1060
+ Mon, May 18, 2009
1061
+ ---------------------------------------------------------------------
1062
+ - Added missing and protected object handling for #update and #delete (all except Tasks).
1063
+
1064
+ Sun, May 17, 2009
1065
+ ---------------------------------------------------------------------
1066
+ - Added missing object handling for #edit action (all core objects except Tasks).
1067
+ - If object permissions prevent access, treat the object as missing.
1068
+ - Refacoring: use more idiomatic Rails named scope (User#except).
1069
+
1070
+ Sat, May 16, 2009
1071
+ ---------------------------------------------------------------------
1072
+ - Added missing object handling for #show action (all core objects except Tasks).
1073
+ - Added controller routing specs for new routes.
1074
+
1075
+ Fri, May 15, 2009
1076
+ ---------------------------------------------------------------------
1077
+ - Replaced explicit MySQL trigger creation with [add_uuid_trigger].
1078
+
1079
+ Thu, May 14, 2009
1080
+ ---------------------------------------------------------------------
1081
+ - Started with LH #34 (Gracefully handle missing objects).
1082
+ - Replaced regular flash messages with non-sticky ones.
1083
+ - Make sure search box gets shown after creating, updating, or deleting an account.
1084
+
1085
+ Wed, May 13, 2009
1086
+ ---------------------------------------------------------------------
1087
+ - Implemented search for campaigns, opportunities, accounts, and contacts.
1088
+ - Made it easier to reject leads (LH #35).
1089
+ - Added sidebar summary for accounts.
1090
+ - Added web presence links for leads and contacts.
1091
+
1092
+ Tue, May 12, 2009
1093
+ ---------------------------------------------------------------------
1094
+ - Added company field to leads search.
1095
+
1096
+ Mon, May 11, 2009
1097
+ ---------------------------------------------------------------------
1098
+ - Implemented live search for leads that can be reused in other controllers.
1099
+ - Fixed demo data generation to produce random recently viewed items list.
1100
+
1101
+ Sun, May 10, 2009
1102
+ ---------------------------------------------------------------------
1103
+ - More work on simplifying search.
1104
+
1105
+ Fri, May 8, 2009
1106
+ ---------------------------------------------------------------------
1107
+ - Created initial implementation of live search (Leads only so far).
1108
+
1109
+ Thu, May 7, 2009
1110
+ ---------------------------------------------------------------------
1111
+ - Installed [simple_column_search] plugin.
1112
+ - Initial implementation of live search for Leads.
1113
+
1114
+ Wed, May 6, 2009
1115
+ ---------------------------------------------------------------------
1116
+ - Implemented prototype search box for Leads with stubbed controller.
1117
+
1118
+ Tue, May 5, 2009
1119
+ ---------------------------------------------------------------------
1120
+ - Started with live search (LH #22).
1121
+
1122
+ Mon, May 4, 2009
1123
+ ---------------------------------------------------------------------
1124
+ - Last bit of paging refactoring before closing LH #18.
1125
+
1126
+ Sun, May 3, 2009
1127
+ ---------------------------------------------------------------------
1128
+ - Implemented Ajax pagination for Opportunities.
1129
+ - Simplified paging by using single proxy to store and retrieve current page.
1130
+
1131
+ Sat, May 2, 2009
1132
+ ---------------------------------------------------------------------
1133
+ - Implemented Ajax pagination for Contacts.
1134
+
1135
+ Fri, May 1, 2009
1136
+ ---------------------------------------------------------------------
1137
+ - Implemented Ajax pagination for Campaigns.
1138
+
1139
+ Thu, Apr 30, 2009
1140
+ ---------------------------------------------------------------------
1141
+ - Implemented Ajax pagination for Accounts.
1142
+
1143
+ Wed, Apr 29, 2009
1144
+ ---------------------------------------------------------------------
1145
+ - Implemented Ajax pagination for Leads.
1146
+
1147
+ Tue, Apr 28, 2009
1148
+ ---------------------------------------------------------------------
1149
+ - Started to explore alternative approach to pagination (see Leads).
1150
+
1151
+ Mon, Apr 27, 2009
1152
+ ---------------------------------------------------------------------
1153
+ - Initial implementation of on demand paging (Accounts only so far).
1154
+ - Fixed SQLite incompatibilities (thanks, James!)
1155
+ - Restructured pagination templates and added specs.
1156
+
1157
+ Sun, Apr 26, 2009
1158
+ ---------------------------------------------------------------------
1159
+ - Researched on demand paginations, and [will_paginate].
1160
+
1161
+ Sat, Apr 25, 2009
1162
+ ---------------------------------------------------------------------
1163
+ - Installed [will_paginate] plugin.
1164
+
1165
+ Fri, Apr 24, 2009
1166
+ ---------------------------------------------------------------------
1167
+ - Happy birthday -- we're 5 month old ;-)
1168
+ - Make sure tasks don't get onto recently viewed items list.
1169
+ - Added "completed", "reassigned", and "rescheduled" activity logs for tasks (closes LH #17).
1170
+
1171
+ Thu, Apr 23, 2009
1172
+ ---------------------------------------------------------------------
1173
+ - Filter activities based on asset permissions, even for deleted assets.
1174
+ - Pulled in first patches from fork (thanks, Scott!)
1175
+
1176
+ Wed, Apr 22, 2009
1177
+ ---------------------------------------------------------------------
1178
+ - Filter activities based on asset permissions (existing assets only so far).
1179
+
1180
+ Tue, Apr 21, 2009
1181
+ ---------------------------------------------------------------------
1182
+ - Honor object permissions when displaying activity log (LH #17).
1183
+
1184
+ Mon, Apr 20, 2009
1185
+ ---------------------------------------------------------------------
1186
+ - Finished with recently viewed items sidebar panel (LH #28).
1187
+
1188
+ Sun, Apr 19, 2009
1189
+ ---------------------------------------------------------------------
1190
+ - Refresh recently viewed items when creating, editing, or deleting core objects.
1191
+
1192
+ Sat, Apr 18, 2009
1193
+ ---------------------------------------------------------------------
1194
+ - Scraped the idea of demo factories -- fixtures are easier to use and maintain.
1195
+ - Updated demo fixtures and crm:demo:load task to simulate user activities and recently viewed items.
1196
+ - Implemented "commented on" user activity type.
1197
+
1198
+ Fri, Apr 17, 2009
1199
+ ---------------------------------------------------------------------
1200
+ - Back from LA and UCSB.
1201
+
1202
+ Thu, Apr 16, 2009
1203
+ ---------------------------------------------------------------------
1204
+ - More work on demo factories: loading users and accounts.
1205
+
1206
+ Wed, Apr 15, 2009
1207
+ ---------------------------------------------------------------------
1208
+ - Creating, updating, or deleting core assets also updates recently viewed items list.
1209
+
1210
+ Tue, Apr 14, 2009
1211
+ ---------------------------------------------------------------------
1212
+ - Fixed missing uuid generation caused by observing models.
1213
+
1214
+ Mon, Apr 13, 2009
1215
+ ---------------------------------------------------------------------
1216
+ - Harv Ecker is up in San Francisco tonight.
1217
+
1218
+ Sun, Apr 12, 2009
1219
+ ---------------------------------------------------------------------
1220
+ - Initial implementation of recently visited items.
1221
+
1222
+ Sat, Apr 11, 2009
1223
+ ---------------------------------------------------------------------
1224
+ - Lovely IRS weekend.
1225
+
1226
+ Fri, Apr 10, 2009
1227
+ ---------------------------------------------------------------------
1228
+ - Added activity tracking for recently viewed items.
1229
+ - Added activity named scopes to select records by user and action.
1230
+
1231
+ Thu, Apr 9, 2009
1232
+ ---------------------------------------------------------------------
1233
+ - Fixed activity time-stamp format in Dashboard.
1234
+
1235
+ Wed, Apr 8, 2009
1236
+ ---------------------------------------------------------------------
1237
+ - Created Activity model, related table, and factory.
1238
+ - Basic initial implementation of activity observers and recent activity.
1239
+ - Created specs for activity observers.
1240
+
1241
+ Tue, Apr 7, 2009
1242
+ ---------------------------------------------------------------------
1243
+ - Added quick reschedule links to [Edit Task].
1244
+ - Finished with editing tasks.
1245
+
1246
+ Mon, Apr 6, 2009
1247
+ ---------------------------------------------------------------------
1248
+ - Introduced called_from_(index|landing)_page? helpers.
1249
+ - A couple of bug fixes (hiding [Lead Convert] and handling HTTP :delete).
1250
+
1251
+ Sun, Apr 5, 2009
1252
+ ---------------------------------------------------------------------
1253
+ - More tweaks rescheduling and reassigning tasks.
1254
+
1255
+ Sat, Apr 4, 2009
1256
+ ---------------------------------------------------------------------
1257
+ - Added :before_update hooks for task along with related model specs.
1258
+ - Renamed [task.due_at_hint] to [task.bucket] to simplify naming conventions.
1259
+ - Initial implementation of task rescheduling and reassigning.
1260
+
1261
+ Fri, Apr 3, 2009
1262
+ ---------------------------------------------------------------------
1263
+ - Moved [Edit Task] cancellation logic from controller to view.
1264
+
1265
+ Thu, Apr 2, 2009
1266
+ ---------------------------------------------------------------------
1267
+ - Added view specs for task#destroy, fixed a couple task related bugs.
1268
+ - Refactored view specs.
1269
+
1270
+ Wed, Apr 1, 2009
1271
+ ---------------------------------------------------------------------
1272
+ - Finished [Edit Lead] views and view specs.
1273
+ - Started with [Edit Task] form and related views.
1274
+ - Refactored create, edit, and complete task views and created the specs.
1275
+
1276
+ Tue, Mar 31, 2009
1277
+ ---------------------------------------------------------------------
1278
+ - More work on [Edit Lead] views and specs.
1279
+
1280
+ Mon, Mar 30, 2009
1281
+ ---------------------------------------------------------------------
1282
+ - More work on [Edit Lead] form (leads controller and its specs).
1283
+
1284
+ Sun, Mar 29, 2009
1285
+ ---------------------------------------------------------------------
1286
+ - Finished with [Edit Campaign] including controller and view specs.
1287
+
1288
+ Sat, Mar 28, 2009
1289
+ ---------------------------------------------------------------------
1290
+ - Fixed updating permissions bug in [uses_user_permissions] plugin.
1291
+ - Fixed editing shared permissions for opportunities, contacts, and accounts.
1292
+
1293
+ Thu, Mar 26, 2009
1294
+ ---------------------------------------------------------------------
1295
+ - Refactored custom Rails initializers and added custom date format.
1296
+ - Finished with [Edit Opportunity] including full controller and views specs.
1297
+ - Fixed JavaScript bug caused by not wiping out hidden create form.
1298
+ - Use String#shorten instead of truncate() helper.
1299
+
1300
+ Wed, Mar 25, 2009
1301
+ ---------------------------------------------------------------------
1302
+ - More work on [Edit Opportunity] and its specs.
1303
+
1304
+ Tue, Mar 24, 2009
1305
+ ---------------------------------------------------------------------
1306
+ - Finished with [Edit Contacts] including full controller and views specs.
1307
+
1308
+ Mon, Mar 23, 2009
1309
+ ---------------------------------------------------------------------
1310
+ - Finishing touches for [Edit Contacts] forms.
1311
+ - Moved sidebar to the lefthand column, changes location of Sass templates.
1312
+ - Added [x] close button to all inline forms.
1313
+
1314
+ Sat, Mar 21, 2009
1315
+ ---------------------------------------------------------------------
1316
+ - More work on [Edit Contact] form (spec coverage pending).
1317
+ - Fixed task controller specs when due tomorrow == due this week.
1318
+ - Added spec coverage for [Edit Contact].
1319
+ - Added [x] form control, link_to_cancel and link_to_close helpers.
1320
+
1321
+ Fri, Mar 20, 2009
1322
+ ---------------------------------------------------------------------
1323
+ - More work on editing a contact.
1324
+
1325
+ Wed, Mar 18, 2009
1326
+ ---------------------------------------------------------------------
1327
+ - Updated view specs to use Factories, 100% pass.
1328
+ - Updated task controller specs to use Factories.
1329
+ - A week of transition to [factory_girl] is over: 317 specs, all green.
1330
+
1331
+ Mon, Mar 16, 2009
1332
+ ---------------------------------------------------------------------
1333
+ - Refactored leads controller specs using factories.
1334
+
1335
+ Sun, Mar 15, 2009
1336
+ ---------------------------------------------------------------------
1337
+ - Started refactoring leads controller specs.
1338
+
1339
+ Sat, Mar 14, 2009
1340
+ ---------------------------------------------------------------------
1341
+ - Implemented specs for Account views and Home controller.
1342
+ - Implemented specs for Campaigns controller.
1343
+
1344
+ Fri, Mar 13, 2009
1345
+ ---------------------------------------------------------------------
1346
+ - Implemented specs for Settings model.
1347
+
1348
+ Thu, Mar 12, 2009
1349
+ ---------------------------------------------------------------------
1350
+ - 100% spec code coverage for Accounts, Contacts, and Opportunities.
1351
+
1352
+ Wed, Mar 11, 2009
1353
+ ---------------------------------------------------------------------
1354
+ - Installed [factory_girl] plugin.
1355
+ - Created model factories for all core models.
1356
+ - Rewrote account controller specs to use factories instead of mocks.
1357
+ - Started refactoring opportunity controller specs to use factories instead of mocks
1358
+ - Added #as_hash and #invert class methods to Settings
1359
+
1360
+ Tue, Mar 10, 2009
1361
+ ---------------------------------------------------------------------
1362
+ - Put in place inline for Lead editing and conversion.
1363
+ - Started with inline forms for Task editing.
1364
+ - Depreciated contexts, refactored application's JavaScript.
1365
+
1366
+ Mon, Mar 9, 2009
1367
+ ---------------------------------------------------------------------
1368
+ - Put in place inline edit forms for Campaigns, Accounts, Contacts, and Opportunities.
1369
+
1370
+ Sun, Mar 8, 2009
1371
+ ---------------------------------------------------------------------
1372
+ - More work on inline edit and create forms.
1373
+
1374
+ Sat, Mar 7, 2009
1375
+ ---------------------------------------------------------------------
1376
+ - Moved context code to module and made it available to controllers and views.
1377
+ - Started with [Edit Contact] form.
1378
+
1379
+ Fri, Mar 6, 2009
1380
+ ---------------------------------------------------------------------
1381
+ - Implemented [Edit Account] form.
1382
+ - Implemented basic functions of [Edit Campaign].
1383
+
1384
+ Thu, Mar 5, 2009
1385
+ ---------------------------------------------------------------------
1386
+ - Moved some JavaScript code from helpers to application.js.
1387
+ - Added support for showing interchangeable inline forms (Convert and Edit).
1388
+ - Refactored saving/restoring context for inline forms.
1389
+
1390
+ Wed, Mar 4, 2009
1391
+ ---------------------------------------------------------------------
1392
+ - Refactored tools menu in lists to use block div.
1393
+ - Refactored lead conversion to use remote form.
1394
+ - Started with the [Edit Lead] inline form.
1395
+
1396
+ Tue, Mar 3, 2009
1397
+ ---------------------------------------------------------------------
1398
+ - Refactored lead star rating to always show 5 stars (grayed out or not).
1399
+ - Removed [notes] field from core models and forms.
1400
+ - Created v0.1 "Steinitz" milestone and tickets for "Steinitz" release.
1401
+ - Set up GitHub service hook to integrate commits with the Lighthouse.
1402
+
1403
+ Mon, Mar 2, 2009
1404
+ ---------------------------------------------------------------------
1405
+ - Implemented Lead and Contact summary sidebar for individual Leads and Contacts.
1406
+
1407
+ Sun, Mar 1, 2009
1408
+ ---------------------------------------------------------------------
1409
+ - Added core extension library.
1410
+ - Implemented Opportunity summary sidebar for individual Opportunity.
1411
+
1412
+ Sat, Feb 28, 2009
1413
+ ---------------------------------------------------------------------
1414
+ - Added gravatar support for leads and contacts.
1415
+
1416
+ Fri, Feb 27, 2009
1417
+ ---------------------------------------------------------------------
1418
+ - Added [gravatar] plugin and implemented gravatars for notes.
1419
+
1420
+ Thu, Feb 26, 2009
1421
+ ---------------------------------------------------------------------
1422
+ - Github commits are up on Twitter at http://twitter.com/fatfreecrm
1423
+ - More refactoring to simplify handling of inline forms.
1424
+ - Implemented adding related tasks for Leads, Accounts, Contacts, and Opportunities.
1425
+
1426
+ Wed, Feb 25, 2009
1427
+ ---------------------------------------------------------------------
1428
+ - Refactored tasks, added ability to create related tasks (Campaigns only so far).
1429
+
1430
+ Tue, Feb 24, 2009
1431
+ ---------------------------------------------------------------------
1432
+ - Implemented adding opportunities from the [Campaign] landing page.
1433
+ - Implemented adding opportunities from [Contact] landing page.
1434
+ - Implemented adding contacts from [Opportunity] landing page.
1435
+ - Three months anniversary ;-).
1436
+
1437
+ Mon, Feb 23, 2009
1438
+ ---------------------------------------------------------------------
1439
+ - Implemented adding leads from the [Campaign] landing page.
1440
+ - Implemented adding contacts from the [Account] landing page.
1441
+ - Implemented adding opportunities from the [Account] landing page.
1442
+ - Updated README file.
1443
+
1444
+ Sun, Feb 22, 2009
1445
+ ---------------------------------------------------------------------
1446
+ - Adding parent object support for inline forms.
1447
+
1448
+ Fri, Feb 20, 2009
1449
+ ---------------------------------------------------------------------
1450
+ - Major refactoring to support inline form embedding throughout the system.
1451
+
1452
+ Thu, Feb 19, 2009
1453
+ ---------------------------------------------------------------------
1454
+ - Simplified storing expand/collapse state for form sections.
1455
+ - Started refactoring to support inline form embedding.
1456
+
1457
+ Wed, Feb 18, 2009
1458
+ ---------------------------------------------------------------------
1459
+ - Converted [Create...] forms to remote to be able to reuse them inline.
1460
+ - Refactored javascript and stylesheet includes for popup calendar control.
1461
+ - Consolidated scattered inline stylesheets into single shared partial.
1462
+
1463
+ Tue, Feb 17, 2009
1464
+ ---------------------------------------------------------------------
1465
+ - Refactored styles, added [Campaign] to [Lead] and [Opportunity] landing pages.
1466
+ - Added [Contacts] and [Opportunities] to [Account] landing page.
1467
+ - Added [Accounts] and [Opportunities] to [Contact] landing page.
1468
+ - Added [Accounts] and [Campaigns] to [Opportunity] landing page.
1469
+ - Refactored JavaScript code to automatically set focus on first form field.
1470
+
1471
+ Mon, Feb 16, 2009
1472
+ ---------------------------------------------------------------------
1473
+ - Save shown/hidden state of [post a note] form for all commentable models.
1474
+ - Updated controller and view specs to support commentables.
1475
+ - Added comments fixture to generate sample comments for all the core models.
1476
+
1477
+ Sun, Feb 15, 2009
1478
+ ---------------------------------------------------------------------
1479
+ - Implemented adding notes for campaign.
1480
+ - Added notes for other core models (Account, Contact, Lead, and Opportunity).
1481
+
1482
+ Sat, Feb 14, 2009
1483
+ ---------------------------------------------------------------------
1484
+ - More design work on campaign landing page (adding comments, etc.)
1485
+
1486
+ Fri, Feb 13, 2009
1487
+ ---------------------------------------------------------------------
1488
+ - Implemented Campaign Summary sidebar for the campaign landing page.
1489
+ - Generated [Comment] scaffold and created database migration.
1490
+ - Added [acts_as_commentable] to core models.
1491
+ - Added visible/invisible helpers to flip element's visibility style.
1492
+
1493
+ Thu, Feb 12, 2009
1494
+ ---------------------------------------------------------------------
1495
+ - Installed [acts_as_commentable] plugin.
1496
+ - More work designing simple and consistent landing pages.
1497
+
1498
+ Wed, Feb 11, 2009
1499
+ ---------------------------------------------------------------------
1500
+ - Researching and mocking up landing pages for campaigns and leads.
1501
+
1502
+ Tue, Feb 10, 2009
1503
+ ---------------------------------------------------------------------
1504
+ - Implemented creating and assigning tasks for the specific date from the calendar.
1505
+
1506
+ Mon, Feb 9, 2009
1507
+ ---------------------------------------------------------------------
1508
+ - Converted remaining forms to HAML and the stylesheet to SASS.
1509
+
1510
+ Sun, Feb 8, 2009
1511
+ ---------------------------------------------------------------------
1512
+ - Added custom logger to highlight logged messages.
1513
+ - Added [task_at_hint] field to [tasks] table to capture due date request.
1514
+ - Refactored task model and crm.date_select_popup() in application.js.
1515
+
1516
+ Sat, Feb 7, 2009
1517
+ ---------------------------------------------------------------------
1518
+ - Created initial implementation of adding a new task (all except specific date).
1519
+ - Refactored tasks code to simplify filtering.
1520
+ - Implemented flipping between dropdown and calendar popup.
1521
+ - Updated task related controller and view specs.
1522
+
1523
+ Fri, Feb 6, 2009
1524
+ ---------------------------------------------------------------------
1525
+ - Finished implementing after_filter callback hook in [web-to-lead] plugin.
1526
+ - Implemented tasks deletion for all three views.
1527
+ - More fun with SASS stylesheets -- pretty cool stuff.
1528
+
1529
+ Thu, Feb 5, 2009
1530
+ ---------------------------------------------------------------------
1531
+ - More work researching application's after_filter and making it work right.
1532
+
1533
+ Wed, Feb 4, 2009
1534
+ ---------------------------------------------------------------------
1535
+ - Added [app_after_filter] hook and moved the rest of [web-to-lead] code to plugin.
1536
+ - Started converting CSS to SASS.
1537
+
1538
+ Tue, Feb 3, 2009
1539
+ ---------------------------------------------------------------------
1540
+ - Added README.rdoc and sample database configuration files, updated sample users.
1541
+ - Added :app_before_filter hook, extracted [web-to-lead] code and moved it to plugin.
1542
+ - Tweaks to login and signup forms (to be converted to HAML soon).
1543
+
1544
+ Mon, Feb 2, 2009
1545
+ ---------------------------------------------------------------------
1546
+ - Updated task related controller and view specs.
1547
+ - Extracted sample plugin and moved it into separate Git repository.
1548
+
1549
+ Sun, Feb 1, 2009
1550
+ ---------------------------------------------------------------------
1551
+ - SuperBowl!!
1552
+ - Refactored tasks controller to offload most of sidebar and filter processing to task model.
1553
+ - Impletented tasks/complete for pending tasks.
1554
+
1555
+ Sat, Jan 31, 2009
1556
+ ---------------------------------------------------------------------
1557
+ - [Create new task] and [Assign new task] forms now save/restore their display state.
1558
+ - Implemented task filtering for all three views.
1559
+ - Added completion checkboxes and created initial implementation.
1560
+
1561
+ Fri, Jan 30, 2009
1562
+ ---------------------------------------------------------------------
1563
+ - Ruby 1.9.1 final was released today!
1564
+ - Added new named scopes to support assignments and completed tasks.
1565
+ - Added sidebar filters for completed tasks.
1566
+ - Added CSS styles for single-line lists and redesigned task templates.
1567
+
1568
+ Thu, Jan 29, 2009
1569
+ ---------------------------------------------------------------------
1570
+ - Unpacked gem dependencies to /vendor/gems (ruby-openid, haml, and faker).
1571
+ - Check whether database connection is available in [uses_mysql_uuid] plugin.
1572
+ - Made task filters work for pending and assigned tasks.
1573
+
1574
+ Wed, Jan 28, 2009
1575
+ ---------------------------------------------------------------------
1576
+ - Implemented task selector to switch between pending, assigned, and completed tasks.
1577
+ - Major overhaul of task templates to support three task views.
1578
+ - Changed rake's namespace from [app] to [crm].
1579
+
1580
+ Tue, Jan 27, 2009
1581
+ ---------------------------------------------------------------------
1582
+ - Added sidebar tasks filtering by due date.
1583
+ - Added CSS styles for selector control.
1584
+ - Added prototype selector control for tasks.
1585
+
1586
+ Mon, Jan 26, 2009
1587
+ ---------------------------------------------------------------------
1588
+ - Added support for inline forms and added [Create New Task] form.
1589
+ - Updated task named scopes to evaluate them on each request rather than on server startup.
1590
+
1591
+ Sun, Jan 25, 2009
1592
+ ---------------------------------------------------------------------
1593
+ - Added task categories and due dates to system settings.
1594
+ - Completed first implementation of Tasks index page.
1595
+
1596
+ Sat, Jan 24, 2009
1597
+ ---------------------------------------------------------------------
1598
+ - Added named scopes for tasks model, created tasks fixtures.
1599
+ - Two months anniversary ;-).
1600
+
1601
+ Fri, Jan 23, 2009
1602
+ ---------------------------------------------------------------------
1603
+ - Moved permissions related code to [uses_user_permissions] Rails plugin.
1604
+ - Refactored models to make use of [uses_user_permissions] plugin.
1605
+ - Moved permission model to [uses_user_permissions] plugin.
1606
+ - Updated [Task] model and database schema for [Tasks] table.
1607
+
1608
+ Thu, Jan 22, 2009
1609
+ ---------------------------------------------------------------------
1610
+ - Implemented list delete for accounts, campaigns, leads, and opportunities.
1611
+ - Generated Tasks scaffold.
1612
+ - Added [Tasks] tab to default settings, renamed [Home] tab to [Dashboard].
1613
+
1614
+ Wed, Jan 21, 2009
1615
+ ---------------------------------------------------------------------
1616
+ - Implemented list delete for contacts.
1617
+
1618
+ Tue, Jan 20, 2009
1619
+ ---------------------------------------------------------------------
1620
+ - Refactored Setting.opportunity_stage to make sure the insertion order is preserved.
1621
+ - Implemented opportunities filtering by stage.
1622
+ - Welcome, Mr. President.
1623
+
1624
+ Mon, Jan 19, 2009
1625
+ ---------------------------------------------------------------------
1626
+ - Improved login/logout flash messages.
1627
+ - Refactored list templates to use collection partials.
1628
+ - Added sidebar for Campaigns to filter them out by status.
1629
+
1630
+ Sun, Jan 18, 2009
1631
+ ---------------------------------------------------------------------
1632
+ - More fine tuning of plugins and callback hooks.
1633
+ - Sample plugin now implements view, controller, and controller filter hooks.
1634
+
1635
+ Sat, Jan 17, 2009
1636
+ ---------------------------------------------------------------------
1637
+ - Implemented FatFreeCRM::Plugin and FatFreeCRM::Callback modules.
1638
+ - Created first sample Fat Free CRM plugin!
1639
+ - Uninstalled Searchlogic plugin and added Rails Engines.
1640
+ - Fixed :my scope to use LEFT OUTER JOINs with permissions.
1641
+
1642
+ Fri, Jan 16, 2009
1643
+ ---------------------------------------------------------------------
1644
+ - Experimenting with application plugins.
1645
+
1646
+ Thu, Jan 15, 2009
1647
+ ---------------------------------------------------------------------
1648
+ - Exploring infrastructure for application plugins.
1649
+
1650
+ Wed, Jan 14, 2009
1651
+ ---------------------------------------------------------------------
1652
+ - Added :my named scope for main models to support permissions.
1653
+ - Refactored all controllers to use :my permission-based scopes.
1654
+ - Refactored [Leads/Index] and [Leads/Filter] to use collection partial.
1655
+ - Added missing database indices.
1656
+
1657
+ Tue, Jan 13, 2009
1658
+ ---------------------------------------------------------------------
1659
+ - Added rendering of local sidebar template if it's available.
1660
+ - Added sidebar for Leads and implemented initial version of leads filtering by status.
1661
+
1662
+ Mon, Jan 12, 2009
1663
+ ---------------------------------------------------------------------
1664
+ - Replaced account template stubs with actual contact and opportunity numbers.
1665
+ - Added web-to-lead submission hook to Leads controller (thanks bitdigital)!
1666
+
1667
+ Sun, Jan 11, 2009
1668
+ ---------------------------------------------------------------------
1669
+ - Made campaign and lead models track lead-to-opportunity conversion ratio.
1670
+
1671
+ Sat, Jan 10, 2009
1672
+ ---------------------------------------------------------------------
1673
+ - Implemented backend for [Opportunity/New].
1674
+ - Refactored models validation code.
1675
+ - Added fixtures for join tables.
1676
+
1677
+ Fri, Jan 9, 2009
1678
+ ---------------------------------------------------------------------
1679
+ - Converted [Opportunity/Show] to HAML and created [Opportunity/New] form (with backend stub).
1680
+
1681
+ Thu, Jan 8, 2009
1682
+ ---------------------------------------------------------------------
1683
+ - Simplified submission for forms with account create/select.
1684
+ - Added app-specific rake tasks -- app:setup, app:demo, and app:reset.
1685
+ - Updated [uses_mysql_uuid] plugin to explicitly check for MySQL v5 or later.
1686
+ - Updated database migrations and rake tasks to make them database-type neutral.
1687
+ - Fat Free CRM now works with MySQL v4 and SQLite!
1688
+
1689
+ Wed, Jan 7, 2009
1690
+ ---------------------------------------------------------------------
1691
+ - Implemented backend for [Contact/New].
1692
+ - Made model functions more general for better code reuse.
1693
+
1694
+ Tue, Jan 6, 2009
1695
+ ---------------------------------------------------------------------
1696
+ - Figured out how to make [has_one :through] work and save the join record.
1697
+ - Restructured [uses_mysql_uuid] to use proper module nesting and extend base with SingletonMethods.
1698
+ - Fixes in opportunity/index and contact/delete.
1699
+ - Created [Contact/New] form (with backend stub).
1700
+ - Moved common JavaScript functions to application namespace.
1701
+
1702
+ Mon, Jan 5, 2009
1703
+ ---------------------------------------------------------------------
1704
+ - Finished refatoring [Lead/Convert].
1705
+ - Started with index page for contacts.
1706
+
1707
+ Sun, Jan 4, 2009
1708
+ ---------------------------------------------------------------------
1709
+ - Streamlined [Lead/Convert] to make it use objects and default values.
1710
+ - Added [assigned_to] to accounts and [access] to opportunities.
1711
+ - Updated [Account/New] form.
1712
+
1713
+ Sat, Jan 3, 2009
1714
+ ---------------------------------------------------------------------
1715
+ - Refactoring of [Lead/Convert] using [fields_for].
1716
+
1717
+ Fri, Jan 2, 2009
1718
+ ---------------------------------------------------------------------
1719
+ - Implemented backend for [Lead/Convert] - create contact along with optional account and opportunity.
1720
+ - Fixed [uses_mysql_uuid] to work with AR validations.
1721
+ - Minor database schema changes.
1722
+
1723
+ Thu, Jan 1, 2009 -- Happy New Year!
1724
+ ---------------------------------------------------------------------
1725
+ - Created [account_contacts], [account_opportunities], and [contact_opportunities] join tables.
1726
+ - Implemented HTML designs and JavaScript for [Lead/Convert] and [Contact/New] forms (with backend stubs).
1727
+
1728
+ Wed, Dec 31, 2008
1729
+ ---------------------------------------------------------------------
1730
+ - More design work on [Lead/Convert] and [Contact/New] forms.
1731
+
1732
+ Tue, Dec 30, 2008
1733
+ ---------------------------------------------------------------------
1734
+ - Added new view/edit/delete icons, started with [Lead/Convert].
1735
+ - Minor changes in [opportunities] migration.
1736
+
1737
+ Mon, Dec 29, 2008
1738
+ ---------------------------------------------------------------------
1739
+ - More work on opportunity index page.
1740
+ - Fixed find() class override in [uses_mysql_uuid] plugin.
1741
+
1742
+ Sun, Dec 28, 2008
1743
+ ---------------------------------------------------------------------
1744
+ - Added opportunity stage settings and colors.
1745
+ - Created opportunities fixtures and started with opportunity index page.
1746
+
1747
+ Sat, Dec 27, 2008
1748
+ ---------------------------------------------------------------------
1749
+ - Added find() override in [uses_mysql_uuid] plugin to make it possible to use find() instead of find_by_uuid().
1750
+ - Added [contacts] and [opportunities] database migrations.
1751
+ - Generated [opportunity] scaffold, added [contacts] fixtures.
1752
+
1753
+ Fri, Dec 26, 2008
1754
+ ---------------------------------------------------------------------
1755
+ - Some model and javascript refactoring.
1756
+ - Another sweep at specs to make them pass with the introduction of UUIDs.
1757
+
1758
+ Thu, Dec 25, 2008
1759
+ ---------------------------------------------------------------------
1760
+ - Update campaign lead count and conversion ratio when creating a new lead.
1761
+ - Make sure :uuid gets reloaded from the database and not from cached attributes.
1762
+ - Added extra fields to [User] model and implemented [User/Edit profile].
1763
+
1764
+ Wed, Dec 24, 2008
1765
+ ---------------------------------------------------------------------
1766
+ - Created [uses_mysql_uuid] plugin.
1767
+ - Converted account, campaign, contact, lead, and user models to use UUIDs.
1768
+ - Updated controllers to use find_by_uuid() instead of find().
1769
+ - Updated routes to recognize and extract UUID from URLs.
1770
+
1771
+ Tue, Dec 23, 2008
1772
+ ---------------------------------------------------------------------
1773
+ - Updated controller and view specs.
1774
+ - Added permissions section to [Lead/New] form.
1775
+ - Added validation and saving to [Lead] model to actually create new leads.
1776
+
1777
+ Mon, Dec 22, 2008
1778
+ ---------------------------------------------------------------------
1779
+ - Moved form section toggling to application helper and home controller.
1780
+ - Implemented section toggling in account and campaign forms.
1781
+ - Added [toll_free_phone] field to accounts.
1782
+ - Added .top and .req styles for field labels.
1783
+ - Show/hide form sections based on session where we now store expand/collapse state.
1784
+
1785
+ Sun, Dec 21, 2008
1786
+ ---------------------------------------------------------------------
1787
+ - Redesigned [Lead/New] and revamped related CSS styles.
1788
+ - Reorganized global settings to make it easier to access them at runtime.
1789
+ - Toggle sections using link_to_remote() to be able to store toggle status in a session.
1790
+ - Reveal/hide form sections using toggle/slide visual effect.
1791
+
1792
+ Sat, Dec 20, 2008
1793
+ ---------------------------------------------------------------------
1794
+ - Metallica show at Oakland Coliseum was totally amazing!
1795
+
1796
+ Fri, Dec 19, 2008
1797
+ ---------------------------------------------------------------------
1798
+ - Replaced stub text fields with autocomplete in [Leads/New].
1799
+
1800
+ Thu, Dec 18, 2008
1801
+ ---------------------------------------------------------------------
1802
+ - Implemented ratings JavaScript library to show star ratings.
1803
+ - Updated [leads] schema, more polishing for [Leads/New] form.
1804
+
1805
+ Wed, Dec 17, 2008
1806
+ ---------------------------------------------------------------------
1807
+ - Added flash confirmation messages for deletes.
1808
+ - Work on [Leads/New] form (campaign autocomplete, etc.)
1809
+
1810
+ Tue, Dec 16, 2008
1811
+ ---------------------------------------------------------------------
1812
+ - Updated designs for leads, campaigns, and opportunities using left-hand strips.
1813
+ - Implemented new design for accounts index page.
1814
+
1815
+ Mon, Dec 15, 2008
1816
+ ---------------------------------------------------------------------
1817
+ - More work on leads index page.
1818
+ - Added leads fixture that uses [faker] gem.
1819
+ - Restructured status settings to use :label and :color.
1820
+
1821
+ Sun, Dec 14, 2008
1822
+ ---------------------------------------------------------------------
1823
+ - Work on leads schema, model, and fixtures.
1824
+
1825
+ Sat, Dec 13, 2008
1826
+ ---------------------------------------------------------------------
1827
+ - Insalled [annotate_models] plugin and generated model annotations.
1828
+ - Generated campaign fixtures.
1829
+ - Updated [Campaign] model to include actual vs. targets.
1830
+ - Added permissions to [Campaign/New].
1831
+ - Cleaned up specs and fixtures.
1832
+
1833
+ Thu, Dec 11, 2008
1834
+ ---------------------------------------------------------------------
1835
+ - New tableless design for campaign index page.
1836
+ - Added new .list CSS styles.
1837
+ - Made select date popup work with Safari.
1838
+
1839
+ Wed, Dec 10, 2008
1840
+ ---------------------------------------------------------------------
1841
+ - Made calendar_date_select work with field getting focus (campaign/new).
1842
+ - More work on list of campaigns page.
1843
+
1844
+ Tue, Dec 9, 2008
1845
+ ---------------------------------------------------------------------
1846
+ - Implemented [Campaing/New] with dates validation and status set.
1847
+
1848
+ Mon, Dec 8, 2008
1849
+ ---------------------------------------------------------------------
1850
+ - More work polishing campaigns.
1851
+ - Added rake task to reset the application (rake app:reset).
1852
+ - Automatically set focus on first form field.
1853
+
1854
+ Sun, Dec 7, 2008
1855
+ ---------------------------------------------------------------------
1856
+ - Work on [campaigns] database schema and model.
1857
+ - Started with [Campaigns/New], integrated calendar_date_select for start/end dates.
1858
+
1859
+ Sat, Dec 6, 2008
1860
+ ---------------------------------------------------------------------
1861
+ - Implemented account deletion.
1862
+ - Fixes for header and signup page layout.
1863
+
1864
+ Fri, Dec 5, 2008
1865
+ ---------------------------------------------------------------------
1866
+ - Installed [advanced_errors] plugin to have full control over the message text.
1867
+ - Implemented [Account/New] validating account data and preserving submitted form values.
1868
+ - More work on polishing accounts index page.
1869
+
1870
+ Thu, Dec 4, 2008
1871
+ ---------------------------------------------------------------------
1872
+ - Added Preferences controller stub and header link.
1873
+ - Updated tabs helper to use global settings to show tabs.
1874
+ - Updated spec fixtures to use randomly generated dates and counts.
1875
+ - Converted all layouts to haml.
1876
+
1877
+ Wed, Dec 3, 2008
1878
+ ---------------------------------------------------------------------
1879
+ - Added LICENSE file with the GNU Affero General Public License.
1880
+ - Fixed auto-generated specs to make them all pass.
1881
+ - Implemented hash methods for user preferences.
1882
+
1883
+ Tue, Dec 2, 2008
1884
+ ---------------------------------------------------------------------
1885
+ - Added [Setting] and [Preference] models.
1886
+ - Added [campaigns], [leads], and [contacts] scaffolds.
1887
+ - Added [config/settings.yml] with default application settings.
1888
+ - Created [lib/tasks/settings.rake] to load default settings to the database.
1889
+ - Implemented [Setting] model.
1890
+
1891
+ Mon, Dec 1, 2008
1892
+ ---------------------------------------------------------------------
1893
+ - Created [Permission] polymorphic model, added fixtures to load sample users, accounts, and permissions.
1894
+
1895
+ Sun, Nov 30, 2008
1896
+ ---------------------------------------------------------------------
1897
+ - More work on [accounts] model, CSS styles, and [add account] form.
1898
+
1899
+ Sat, Nov 29, 2008
1900
+ ---------------------------------------------------------------------
1901
+ - Added tabbed and tabless layouts, implemented tabs and current tab tracking.
1902
+ - Applied CSS styles to all tabless forms (login, sign up, and forgot password).
1903
+ - Created two column layout for the main contents area.
1904
+ - Created [Accounts] scaffold and added [Accounts] tab.
1905
+
1906
+ Fri, Nov 28, 2008
1907
+ ---------------------------------------------------------------------
1908
+ - Implemented sign up, login, logout, and forgotten password using [authlogic] plugin.
1909
+
1910
+ Wed, Nov 26, 2008
1911
+ ---------------------------------------------------------------------
1912
+ - Installed [open_id_authentication] plugin.
1913
+ - Modified [users] table to work with [authlogic] plugin, added tables for openid authentication.
1914
+
1915
+ Tue, Nov 25, 2008
1916
+ ---------------------------------------------------------------------
1917
+ - Installed plugins: [authlogic], [searchlogic], [calendar_date_select], [auto_complete], [in_place_editor], and [haml].
1918
+
1919
+ Mon, Nov 24, 2008
1920
+ ---------------------------------------------------------------------
1921
+ - Added [sessions] and [users] tables, created [User] model.
1922
+ - Installed Rspec and [acts_as_paranoid] plugins.
1923
+ - Created the project and posted it on GitHub.