reduced_fat_crm 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1042) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +36 -0
  3. data/.rubocop.yml +5 -0
  4. data/.teatro.yml +3 -0
  5. data/.travis.yml +41 -0
  6. data/CHANGELOG +1923 -0
  7. data/CONTRIBUTORS +91 -0
  8. data/Capfile +25 -0
  9. data/Dockerfile +18 -0
  10. data/Gemfile +88 -0
  11. data/Gemfile.lock +430 -0
  12. data/Guardfile +24 -0
  13. data/MIT-LICENSE +21 -0
  14. data/Procfile +1 -0
  15. data/README.md +153 -0
  16. data/Rakefile +9 -0
  17. data/app/assets/images/1x1.gif +0 -0
  18. data/app/assets/images/asterisk.gif +0 -0
  19. data/app/assets/images/avatar.jpg +0 -0
  20. data/app/assets/images/blog.gif +0 -0
  21. data/app/assets/images/facebook.gif +0 -0
  22. data/app/assets/images/info.png +0 -0
  23. data/app/assets/images/info_tiny.png +0 -0
  24. data/app/assets/images/linkedin.gif +0 -0
  25. data/app/assets/images/loading.gif +0 -0
  26. data/app/assets/images/notifications.png +0 -0
  27. data/app/assets/images/skype.gif +0 -0
  28. data/app/assets/images/sortable.gif +0 -0
  29. data/app/assets/images/stars.gif +0 -0
  30. data/app/assets/images/twitter.gif +0 -0
  31. data/app/assets/javascripts/admin/fields.js.coffee +72 -0
  32. data/app/assets/javascripts/application.js.erb +41 -0
  33. data/app/assets/javascripts/crm.js.coffee +428 -0
  34. data/app/assets/javascripts/crm_chosen.js.coffee +29 -0
  35. data/app/assets/javascripts/crm_classes.js.coffee +215 -0
  36. data/app/assets/javascripts/crm_comments.js.coffee +28 -0
  37. data/app/assets/javascripts/crm_loginout.js.coffee +27 -0
  38. data/app/assets/javascripts/crm_select2.js.coffee +31 -0
  39. data/app/assets/javascripts/crm_sortable.js.coffee +32 -0
  40. data/app/assets/javascripts/crm_tags.js.coffee +22 -0
  41. data/app/assets/javascripts/crm_textarea_autocomplete.js.coffee +33 -0
  42. data/app/assets/javascripts/datepicker.js.coffee +20 -0
  43. data/app/assets/javascripts/format_buttons.js.coffee +52 -0
  44. data/app/assets/javascripts/lists.js.coffee +54 -0
  45. data/app/assets/javascripts/pagination.js.coffee +16 -0
  46. data/app/assets/javascripts/search.js.coffee +55 -0
  47. data/app/assets/javascripts/timeago.js.coffee +21 -0
  48. data/app/assets/stylesheets/about.css.scss +10 -0
  49. data/app/assets/stylesheets/admin/fields.css.scss +17 -0
  50. data/app/assets/stylesheets/advanced_search.css.scss +108 -0
  51. data/app/assets/stylesheets/application.css.erb +37 -0
  52. data/app/assets/stylesheets/base.scss +78 -0
  53. data/app/assets/stylesheets/common.scss +765 -0
  54. data/app/assets/stylesheets/ffcrm_chosen.scss +69 -0
  55. data/app/assets/stylesheets/fields.scss +27 -0
  56. data/app/assets/stylesheets/format_buttons.css.scss +40 -0
  57. data/app/assets/stylesheets/groups.css.scss +8 -0
  58. data/app/assets/stylesheets/header.scss +121 -0
  59. data/app/assets/stylesheets/index_headers.css.scss +5 -0
  60. data/app/assets/stylesheets/lists.css.scss +26 -0
  61. data/app/assets/stylesheets/print.css.scss +77 -0
  62. data/app/assets/stylesheets/rails.scss +133 -0
  63. data/app/assets/stylesheets/safari.scss +11 -0
  64. data/app/assets/stylesheets/textarea_autocomplete.scss +47 -0
  65. data/app/controllers/admin/application_controller.rb +30 -0
  66. data/app/controllers/admin/field_groups_controller.rb +83 -0
  67. data/app/controllers/admin/fields_controller.rb +118 -0
  68. data/app/controllers/admin/groups_controller.rb +65 -0
  69. data/app/controllers/admin/plugins_controller.rb +17 -0
  70. data/app/controllers/admin/settings_controller.rb +14 -0
  71. data/app/controllers/admin/tags_controller.rb +71 -0
  72. data/app/controllers/admin/users_controller.rb +144 -0
  73. data/app/controllers/application_controller.rb +276 -0
  74. data/app/controllers/authentications_controller.rb +51 -0
  75. data/app/controllers/comments_controller.rb +93 -0
  76. data/app/controllers/emails_controller.rb +18 -0
  77. data/app/controllers/entities/accounts_controller.rb +158 -0
  78. data/app/controllers/entities/campaigns_controller.rb +197 -0
  79. data/app/controllers/entities/contacts_controller.rb +178 -0
  80. data/app/controllers/entities/leads_controller.rb +256 -0
  81. data/app/controllers/entities/opportunities_controller.rb +222 -0
  82. data/app/controllers/entities_controller.rb +214 -0
  83. data/app/controllers/home_controller.rb +156 -0
  84. data/app/controllers/lists_controller.rb +40 -0
  85. data/app/controllers/passwords_controller.rb +65 -0
  86. data/app/controllers/tasks_controller.rb +219 -0
  87. data/app/controllers/users_controller.rb +159 -0
  88. data/app/helpers/accounts_helper.rb +110 -0
  89. data/app/helpers/addresses_helper.rb +17 -0
  90. data/app/helpers/admin/application_helper.rb +15 -0
  91. data/app/helpers/admin/field_groups_helper.rb +25 -0
  92. data/app/helpers/admin/fields_helper.rb +18 -0
  93. data/app/helpers/admin/plugins_helper.rb +7 -0
  94. data/app/helpers/admin/settings_helper.rb +7 -0
  95. data/app/helpers/admin/tags_helper.rb +10 -0
  96. data/app/helpers/admin/users_helper.rb +51 -0
  97. data/app/helpers/application_helper.rb +527 -0
  98. data/app/helpers/authentications_helper.rb +7 -0
  99. data/app/helpers/campaigns_helper.rb +34 -0
  100. data/app/helpers/comments_helper.rb +11 -0
  101. data/app/helpers/contacts_helper.rb +21 -0
  102. data/app/helpers/emails_helper.rb +7 -0
  103. data/app/helpers/fields_helper.rb +7 -0
  104. data/app/helpers/groups_helper.rb +7 -0
  105. data/app/helpers/home_helper.rb +66 -0
  106. data/app/helpers/javascript_helper.rb +30 -0
  107. data/app/helpers/leads_helper.rb +85 -0
  108. data/app/helpers/lists_helper.rb +7 -0
  109. data/app/helpers/opportunities_helper.rb +46 -0
  110. data/app/helpers/passwords_helper.rb +7 -0
  111. data/app/helpers/remote_link_pagination_helper.rb +8 -0
  112. data/app/helpers/tags_helper.rb +29 -0
  113. data/app/helpers/tasks_helper.rb +139 -0
  114. data/app/helpers/users_helper.rb +35 -0
  115. data/app/helpers/versions_helper.rb +32 -0
  116. data/app/inputs/date_pair_input.rb +65 -0
  117. data/app/inputs/date_time_input.rb +36 -0
  118. data/app/inputs/datetime_pair_input.rb +25 -0
  119. data/app/inputs/text_input.rb +12 -0
  120. data/app/mailers/dropbox_mailer.rb +18 -0
  121. data/app/mailers/subscription_mailer.rb +30 -0
  122. data/app/mailers/user_mailer.rb +32 -0
  123. data/app/models/entities/account.rb +142 -0
  124. data/app/models/entities/account_contact.rb +28 -0
  125. data/app/models/entities/account_opportunity.rb +26 -0
  126. data/app/models/entities/campaign.rb +116 -0
  127. data/app/models/entities/contact.rb +215 -0
  128. data/app/models/entities/contact_opportunity.rb +27 -0
  129. data/app/models/entities/lead.rb +197 -0
  130. data/app/models/entities/opportunity.rb +190 -0
  131. data/app/models/fields/core_field.rb +37 -0
  132. data/app/models/fields/custom_field.rb +148 -0
  133. data/app/models/fields/custom_field_date_pair.rb +42 -0
  134. data/app/models/fields/custom_field_datetime_pair.rb +12 -0
  135. data/app/models/fields/custom_field_pair.rb +42 -0
  136. data/app/models/fields/field.rb +129 -0
  137. data/app/models/fields/field_group.rb +63 -0
  138. data/app/models/list.rb +17 -0
  139. data/app/models/observers/entity_observer.rb +43 -0
  140. data/app/models/observers/lead_observer.rb +29 -0
  141. data/app/models/observers/opportunity_observer.rb +47 -0
  142. data/app/models/observers/task_observer.rb +31 -0
  143. data/app/models/polymorphic/address.rb +59 -0
  144. data/app/models/polymorphic/avatar.rb +55 -0
  145. data/app/models/polymorphic/comment.rb +73 -0
  146. data/app/models/polymorphic/email.rb +59 -0
  147. data/app/models/polymorphic/tag.rb +21 -0
  148. data/app/models/polymorphic/tagging.rb +8 -0
  149. data/app/models/polymorphic/task.rb +284 -0
  150. data/app/models/polymorphic/version.rb +81 -0
  151. data/app/models/setting.rb +103 -0
  152. data/app/models/users/ability.rb +59 -0
  153. data/app/models/users/authentication.rb +54 -0
  154. data/app/models/users/group.rb +13 -0
  155. data/app/models/users/permission.rb +27 -0
  156. data/app/models/users/preference.rb +50 -0
  157. data/app/models/users/user.rb +184 -0
  158. data/app/views/accounts/_account.html.haml +5 -0
  159. data/app/views/accounts/_contact_info.html.haml +37 -0
  160. data/app/views/accounts/_edit.html.haml +21 -0
  161. data/app/views/accounts/_index_brief.html.haml +32 -0
  162. data/app/views/accounts/_index_long.html.haml +42 -0
  163. data/app/views/accounts/_new.html.haml +21 -0
  164. data/app/views/accounts/_sidebar_index.html.haml +20 -0
  165. data/app/views/accounts/_sidebar_show.html.haml +57 -0
  166. data/app/views/accounts/_title_bar.html.haml +11 -0
  167. data/app/views/accounts/_top_section.html.haml +29 -0
  168. data/app/views/accounts/create.js.haml +17 -0
  169. data/app/views/accounts/destroy.js.haml +6 -0
  170. data/app/views/accounts/edit.js.haml +31 -0
  171. data/app/views/accounts/index.html.haml +18 -0
  172. data/app/views/accounts/index.js.haml +11 -0
  173. data/app/views/accounts/index.xls.builder +84 -0
  174. data/app/views/accounts/new.js.haml +11 -0
  175. data/app/views/accounts/show.html.haml +26 -0
  176. data/app/views/accounts/show.js.haml +5 -0
  177. data/app/views/accounts/update.js.haml +19 -0
  178. data/app/views/admin/custom_fields/_base_field.html.haml +21 -0
  179. data/app/views/admin/custom_fields/_check_boxes_field.html.haml +6 -0
  180. data/app/views/admin/custom_fields/_date_field.html.haml +14 -0
  181. data/app/views/admin/custom_fields/_date_pair_field.html.haml +21 -0
  182. data/app/views/admin/custom_fields/_datetime_field.html.haml +14 -0
  183. data/app/views/admin/custom_fields/_datetime_pair_field.html.haml +21 -0
  184. data/app/views/admin/custom_fields/_radio_field.html.haml +6 -0
  185. data/app/views/admin/custom_fields/_select_field.html.haml +25 -0
  186. data/app/views/admin/custom_fields/_string_field.html.haml +2 -0
  187. data/app/views/admin/field_groups/_confirm.html.haml +5 -0
  188. data/app/views/admin/field_groups/_edit.html.haml +8 -0
  189. data/app/views/admin/field_groups/_field_group.html.haml +28 -0
  190. data/app/views/admin/field_groups/_new.html.haml +10 -0
  191. data/app/views/admin/field_groups/_top_section.html.haml +14 -0
  192. data/app/views/admin/field_groups/confirm.js.haml +7 -0
  193. data/app/views/admin/field_groups/create.js.haml +14 -0
  194. data/app/views/admin/field_groups/destroy.js.haml +9 -0
  195. data/app/views/admin/field_groups/edit.js.haml +12 -0
  196. data/app/views/admin/field_groups/new.js.haml +8 -0
  197. data/app/views/admin/field_groups/update.js.haml +8 -0
  198. data/app/views/admin/fields/_field.html.haml +17 -0
  199. data/app/views/admin/fields/_form.html.haml +35 -0
  200. data/app/views/admin/fields/_sidebar_index.html.haml +1 -0
  201. data/app/views/admin/fields/_sidebar_show.html.haml +1 -0
  202. data/app/views/admin/fields/_sort_by.html.haml +10 -0
  203. data/app/views/admin/fields/_subform.html.haml +6 -0
  204. data/app/views/admin/fields/create.js.haml +17 -0
  205. data/app/views/admin/fields/destroy.js.haml +8 -0
  206. data/app/views/admin/fields/edit.js.haml +3 -0
  207. data/app/views/admin/fields/index.html.haml +34 -0
  208. data/app/views/admin/fields/show.html.haml +41 -0
  209. data/app/views/admin/fields/update.js.haml +13 -0
  210. data/app/views/admin/groups/_edit.html.haml +12 -0
  211. data/app/views/admin/groups/_form.html.haml +11 -0
  212. data/app/views/admin/groups/_group.html.haml +16 -0
  213. data/app/views/admin/groups/_new.html.haml +12 -0
  214. data/app/views/admin/groups/create.js.haml +10 -0
  215. data/app/views/admin/groups/destroy.js.haml +9 -0
  216. data/app/views/admin/groups/edit.js.haml +14 -0
  217. data/app/views/admin/groups/index.html.haml +18 -0
  218. data/app/views/admin/groups/index.js.haml +2 -0
  219. data/app/views/admin/groups/new.js.haml +9 -0
  220. data/app/views/admin/groups/show.html.haml +11 -0
  221. data/app/views/admin/groups/update.js.haml +9 -0
  222. data/app/views/admin/plugins/_plugin.html.haml +13 -0
  223. data/app/views/admin/plugins/index.html.haml +3 -0
  224. data/app/views/admin/settings/index.html.haml +3 -0
  225. data/app/views/admin/tags/_confirm.html.haml +5 -0
  226. data/app/views/admin/tags/_edit.html.haml +9 -0
  227. data/app/views/admin/tags/_new.html.haml +10 -0
  228. data/app/views/admin/tags/_tag.html.haml +29 -0
  229. data/app/views/admin/tags/_top_section.html.haml +6 -0
  230. data/app/views/admin/tags/confirm.js.haml +7 -0
  231. data/app/views/admin/tags/create.js.haml +11 -0
  232. data/app/views/admin/tags/destroy.js.haml +10 -0
  233. data/app/views/admin/tags/edit.js.haml +20 -0
  234. data/app/views/admin/tags/index.html.haml +17 -0
  235. data/app/views/admin/tags/new.js.haml +7 -0
  236. data/app/views/admin/tags/update.js.haml +9 -0
  237. data/app/views/admin/users/_confirm.html.haml +5 -0
  238. data/app/views/admin/users/_edit.html.haml +11 -0
  239. data/app/views/admin/users/_new.html.haml +11 -0
  240. data/app/views/admin/users/_profile.html.haml +54 -0
  241. data/app/views/admin/users/_sidebar_index.html.haml +2 -0
  242. data/app/views/admin/users/_user.html.haml +66 -0
  243. data/app/views/admin/users/confirm.js.haml +7 -0
  244. data/app/views/admin/users/create.js.haml +10 -0
  245. data/app/views/admin/users/destroy.js.haml +10 -0
  246. data/app/views/admin/users/edit.js.haml +20 -0
  247. data/app/views/admin/users/index.html.haml +13 -0
  248. data/app/views/admin/users/index.js.haml +2 -0
  249. data/app/views/admin/users/new.js.haml +9 -0
  250. data/app/views/admin/users/reactivate.js.haml +3 -0
  251. data/app/views/admin/users/show.html.haml +5 -0
  252. data/app/views/admin/users/suspend.js.haml +3 -0
  253. data/app/views/admin/users/update.js.haml +9 -0
  254. data/app/views/application/_auto_complete.html.haml +10 -0
  255. data/app/views/application/index.atom.builder +34 -0
  256. data/app/views/application/index.rss.builder +31 -0
  257. data/app/views/application/show.atom.builder +32 -0
  258. data/app/views/application/show.rss.builder +29 -0
  259. data/app/views/authentications/new.html.haml +19 -0
  260. data/app/views/campaigns/_campaign.html.haml +5 -0
  261. data/app/views/campaigns/_edit.html.haml +18 -0
  262. data/app/views/campaigns/_index_brief.html.haml +15 -0
  263. data/app/views/campaigns/_index_long.html.haml +20 -0
  264. data/app/views/campaigns/_metrics.html.haml +16 -0
  265. data/app/views/campaigns/_new.html.haml +18 -0
  266. data/app/views/campaigns/_objectives.html.haml +30 -0
  267. data/app/views/campaigns/_sidebar_index.html.haml +20 -0
  268. data/app/views/campaigns/_sidebar_show.html.haml +91 -0
  269. data/app/views/campaigns/_status.html.haml +24 -0
  270. data/app/views/campaigns/_title_bar.html.haml +11 -0
  271. data/app/views/campaigns/_top_section.html.haml +29 -0
  272. data/app/views/campaigns/create.js.haml +20 -0
  273. data/app/views/campaigns/destroy.js.haml +6 -0
  274. data/app/views/campaigns/edit.js.haml +31 -0
  275. data/app/views/campaigns/index.html.haml +18 -0
  276. data/app/views/campaigns/index.js.haml +11 -0
  277. data/app/views/campaigns/index.xls.builder +77 -0
  278. data/app/views/campaigns/new.js.haml +11 -0
  279. data/app/views/campaigns/show.html.haml +26 -0
  280. data/app/views/campaigns/show.js.haml +5 -0
  281. data/app/views/campaigns/update.js.haml +22 -0
  282. data/app/views/comments/_comment.html.haml +29 -0
  283. data/app/views/comments/_edit.html.haml +11 -0
  284. data/app/views/comments/_new.html.haml +35 -0
  285. data/app/views/comments/_subscription_links.html.haml +13 -0
  286. data/app/views/comments/create.js.haml +14 -0
  287. data/app/views/comments/destroy.js.haml +5 -0
  288. data/app/views/comments/edit.js.haml +11 -0
  289. data/app/views/comments/update.js.haml +9 -0
  290. data/app/views/contacts/_contact.html.haml +5 -0
  291. data/app/views/contacts/_contacts.html.haml +7 -0
  292. data/app/views/contacts/_edit.html.haml +19 -0
  293. data/app/views/contacts/_extra.html.haml +36 -0
  294. data/app/views/contacts/_index_brief.html.haml +25 -0
  295. data/app/views/contacts/_index_full.html.haml +57 -0
  296. data/app/views/contacts/_index_long.html.haml +44 -0
  297. data/app/views/contacts/_new.html.haml +20 -0
  298. data/app/views/contacts/_section_extra.html.haml +26 -0
  299. data/app/views/contacts/_section_general.html.haml +26 -0
  300. data/app/views/contacts/_sidebar_index.html.haml +0 -0
  301. data/app/views/contacts/_sidebar_show.html.haml +52 -0
  302. data/app/views/contacts/_title_bar.html.haml +11 -0
  303. data/app/views/contacts/_top_section.html.haml +45 -0
  304. data/app/views/contacts/_web.html.haml +31 -0
  305. data/app/views/contacts/create.js.haml +23 -0
  306. data/app/views/contacts/destroy.js.haml +9 -0
  307. data/app/views/contacts/edit.js.haml +34 -0
  308. data/app/views/contacts/index.html.haml +18 -0
  309. data/app/views/contacts/index.js.haml +11 -0
  310. data/app/views/contacts/index.xls.builder +104 -0
  311. data/app/views/contacts/new.js.haml +13 -0
  312. data/app/views/contacts/show.html.haml +22 -0
  313. data/app/views/contacts/show.js.haml +5 -0
  314. data/app/views/contacts/update.js.haml +24 -0
  315. data/app/views/dropbox_mailer/dropbox_notification.html.haml +9 -0
  316. data/app/views/emails/_email.html.haml +36 -0
  317. data/app/views/emails/destroy.js.haml +5 -0
  318. data/app/views/entities/_basic_search.html.haml +24 -0
  319. data/app/views/entities/_permissions.html.haml +36 -0
  320. data/app/views/entities/_search.html.haml +16 -0
  321. data/app/views/entities/_section_custom_fields.html.haml +11 -0
  322. data/app/views/entities/_sort_fields.html.haml +3 -0
  323. data/app/views/entities/_title_bar.html.haml +12 -0
  324. data/app/views/entities/attach.js.haml +21 -0
  325. data/app/views/entities/contacts.js.haml +3 -0
  326. data/app/views/entities/discard.js.haml +6 -0
  327. data/app/views/entities/leads.js.haml +3 -0
  328. data/app/views/entities/opportunities.js.haml +3 -0
  329. data/app/views/entities/subscription_update.js.haml +4 -0
  330. data/app/views/entities/versions.js.haml +3 -0
  331. data/app/views/fields/_edit_custom_field_group.html.haml +8 -0
  332. data/app/views/fields/_group.html.haml +11 -0
  333. data/app/views/fields/_group_table.html.haml +13 -0
  334. data/app/views/fields/_group_view.html.haml +10 -0
  335. data/app/views/fields/_groups.html.haml +8 -0
  336. data/app/views/fields/_sidebar_show.html.haml +9 -0
  337. data/app/views/fields/group.js.erb +3 -0
  338. data/app/views/home/_account.html.haml +29 -0
  339. data/app/views/home/_activity.html.haml +35 -0
  340. data/app/views/home/_assets_menu.html.haml +7 -0
  341. data/app/views/home/_duration_menu.html.haml +8 -0
  342. data/app/views/home/_events_menu.html.haml +8 -0
  343. data/app/views/home/_opportunity.html.haml +41 -0
  344. data/app/views/home/_options.html.haml +12 -0
  345. data/app/views/home/_task.html.haml +48 -0
  346. data/app/views/home/_users_menu.html.haml +8 -0
  347. data/app/views/home/index.atom.builder +24 -0
  348. data/app/views/home/index.html.haml +46 -0
  349. data/app/views/home/index.js.haml +7 -0
  350. data/app/views/home/index.rss.builder +20 -0
  351. data/app/views/home/options.js.haml +7 -0
  352. data/app/views/layouts/500.html.haml +17 -0
  353. data/app/views/layouts/_about.html.haml +17 -0
  354. data/app/views/layouts/_footer.html.haml +9 -0
  355. data/app/views/layouts/_header.html.haml +20 -0
  356. data/app/views/layouts/_jumpbox.html.haml +34 -0
  357. data/app/views/layouts/_sidebar.html.haml +12 -0
  358. data/app/views/layouts/_tabbed.html.haml +15 -0
  359. data/app/views/layouts/_tabless.html.haml +3 -0
  360. data/app/views/layouts/admin/_header.html.haml +14 -0
  361. data/app/views/layouts/admin/application.html.haml +24 -0
  362. data/app/views/layouts/application.html.haml +48 -0
  363. data/app/views/layouts/header.xls.builder +8 -0
  364. data/app/views/leads/_contact.html.haml +35 -0
  365. data/app/views/leads/_convert.html.haml +25 -0
  366. data/app/views/leads/_convert_permissions.html.haml +31 -0
  367. data/app/views/leads/_edit.html.haml +23 -0
  368. data/app/views/leads/_index_brief.html.haml +41 -0
  369. data/app/views/leads/_index_long.html.haml +62 -0
  370. data/app/views/leads/_lead.html.haml +5 -0
  371. data/app/views/leads/_leads.html.haml +6 -0
  372. data/app/views/leads/_new.html.haml +24 -0
  373. data/app/views/leads/_opportunity.html.haml +37 -0
  374. data/app/views/leads/_sidebar_index.html.haml +20 -0
  375. data/app/views/leads/_sidebar_show.html.haml +65 -0
  376. data/app/views/leads/_status.html.haml +36 -0
  377. data/app/views/leads/_title_bar.html.haml +16 -0
  378. data/app/views/leads/_top_section.html.haml +30 -0
  379. data/app/views/leads/_web.html.haml +31 -0
  380. data/app/views/leads/convert.js.haml +35 -0
  381. data/app/views/leads/create.js.haml +21 -0
  382. data/app/views/leads/destroy.js.haml +9 -0
  383. data/app/views/leads/edit.js.haml +33 -0
  384. data/app/views/leads/index.html.haml +18 -0
  385. data/app/views/leads/index.js.haml +11 -0
  386. data/app/views/leads/index.xls.builder +102 -0
  387. data/app/views/leads/new.js.haml +11 -0
  388. data/app/views/leads/promote.js.haml +26 -0
  389. data/app/views/leads/reject.js.haml +12 -0
  390. data/app/views/leads/show.html.haml +20 -0
  391. data/app/views/leads/show.js.haml +5 -0
  392. data/app/views/leads/update.js.haml +28 -0
  393. data/app/views/lists/_lists.html.haml +6 -0
  394. data/app/views/lists/_sidebar.html.haml +29 -0
  395. data/app/views/lists/create.js.haml +9 -0
  396. data/app/views/lists/destroy.js.haml +1 -0
  397. data/app/views/opportunities/_edit.html.haml +18 -0
  398. data/app/views/opportunities/_index_brief.html.haml +29 -0
  399. data/app/views/opportunities/_index_long.html.haml +59 -0
  400. data/app/views/opportunities/_new.html.haml +18 -0
  401. data/app/views/opportunities/_opportunities.html.haml +6 -0
  402. data/app/views/opportunities/_opportunity.html.haml +5 -0
  403. data/app/views/opportunities/_sidebar_index.html.haml +20 -0
  404. data/app/views/opportunities/_sidebar_show.html.haml +61 -0
  405. data/app/views/opportunities/_title_bar.html.haml +11 -0
  406. data/app/views/opportunities/_top_section.html.haml +59 -0
  407. data/app/views/opportunities/contacts.js.haml +3 -0
  408. data/app/views/opportunities/create.js.haml +29 -0
  409. data/app/views/opportunities/destroy.js.haml +13 -0
  410. data/app/views/opportunities/edit.js.haml +34 -0
  411. data/app/views/opportunities/index.html.haml +20 -0
  412. data/app/views/opportunities/index.js.haml +11 -0
  413. data/app/views/opportunities/index.xls.builder +71 -0
  414. data/app/views/opportunities/new.js.haml +13 -0
  415. data/app/views/opportunities/show.html.haml +22 -0
  416. data/app/views/opportunities/show.js.haml +5 -0
  417. data/app/views/opportunities/update.js.haml +27 -0
  418. data/app/views/passwords/edit.html.haml +15 -0
  419. data/app/views/passwords/new.html.haml +10 -0
  420. data/app/views/shared/_add_comment.html.haml +8 -0
  421. data/app/views/shared/_address.html.haml +44 -0
  422. data/app/views/shared/_address_show.html.haml +24 -0
  423. data/app/views/shared/_comment.html.haml +11 -0
  424. data/app/views/shared/_edit_comment.html.haml +13 -0
  425. data/app/views/shared/_empty.html.haml +8 -0
  426. data/app/views/shared/_export.html.haml +2 -0
  427. data/app/views/shared/_inline_styles.html.haml +31 -0
  428. data/app/views/shared/_naming.html.haml +9 -0
  429. data/app/views/shared/_paginate.haml +2 -0
  430. data/app/views/shared/_paginate_with_per_page.html.haml +12 -0
  431. data/app/views/shared/_recent.html.haml +4 -0
  432. data/app/views/shared/_recently.html.haml +7 -0
  433. data/app/views/shared/_search.html.haml +15 -0
  434. data/app/views/shared/_select_popup.html.haml +19 -0
  435. data/app/views/shared/_tags.html.haml +10 -0
  436. data/app/views/shared/_tasks.html.haml +10 -0
  437. data/app/views/shared/_timeline.html.haml +2 -0
  438. data/app/views/shared/_total.html.haml +4 -0
  439. data/app/views/subscription_mailer/comment_notification.text.erb +7 -0
  440. data/app/views/tasks/_assigned.html.haml +47 -0
  441. data/app/views/tasks/_completed.html.haml +25 -0
  442. data/app/views/tasks/_edit.html.haml +18 -0
  443. data/app/views/tasks/_empty.html.haml +4 -0
  444. data/app/views/tasks/_new.html.haml +14 -0
  445. data/app/views/tasks/_pending.html.haml +52 -0
  446. data/app/views/tasks/_related.html.haml +32 -0
  447. data/app/views/tasks/_selector.html.haml +8 -0
  448. data/app/views/tasks/_sidebar_index.html.haml +18 -0
  449. data/app/views/tasks/_tasks.html.haml +3 -0
  450. data/app/views/tasks/_title.html.haml +8 -0
  451. data/app/views/tasks/_top_section.html.haml +34 -0
  452. data/app/views/tasks/complete.js.haml +14 -0
  453. data/app/views/tasks/create.js.haml +39 -0
  454. data/app/views/tasks/destroy.js.haml +7 -0
  455. data/app/views/tasks/discard.js.haml +1 -0
  456. data/app/views/tasks/edit.js.haml +26 -0
  457. data/app/views/tasks/filter.js.haml +4 -0
  458. data/app/views/tasks/index.html.haml +20 -0
  459. data/app/views/tasks/index.xls.builder +49 -0
  460. data/app/views/tasks/new.js.haml +8 -0
  461. data/app/views/tasks/uncomplete.js.haml +12 -0
  462. data/app/views/tasks/update.js.haml +19 -0
  463. data/app/views/user_mailer/assigned_entity_notification.html.haml +3 -0
  464. data/app/views/user_mailer/password_reset_instructions.html.haml +6 -0
  465. data/app/views/users/_avatar.html.haml +20 -0
  466. data/app/views/users/_languages.html.haml +9 -0
  467. data/app/views/users/_password.html.haml +27 -0
  468. data/app/views/users/_profile.html.haml +67 -0
  469. data/app/views/users/_user.html.haml +33 -0
  470. data/app/views/users/_user_report.html.haml +6 -0
  471. data/app/views/users/avatar.js.haml +9 -0
  472. data/app/views/users/change_password.js.haml +13 -0
  473. data/app/views/users/edit.js.haml +9 -0
  474. data/app/views/users/index.html.haml +3 -0
  475. data/app/views/users/new.html.haml +19 -0
  476. data/app/views/users/opportunities_overview.html.haml +16 -0
  477. data/app/views/users/password.js.haml +10 -0
  478. data/app/views/users/show.html.haml +15 -0
  479. data/app/views/users/update.js.haml +9 -0
  480. data/app/views/users/upload_avatar.js.haml +7 -0
  481. data/app/views/versions/_version.html.haml +17 -0
  482. data/app/views/versions/_version_item.html.haml +8 -0
  483. data/app/views/versions/_versions.html.haml +11 -0
  484. data/bin/bundle +3 -0
  485. data/bin/rails +4 -0
  486. data/bin/rake +4 -0
  487. data/config.ru +4 -0
  488. data/config/application.rb +77 -0
  489. data/config/boot.rb +10 -0
  490. data/config/database.mysql.mac.yml +32 -0
  491. data/config/database.mysql.yml +33 -0
  492. data/config/database.postgres.docker.yml +25 -0
  493. data/config/database.postgres.yml +26 -0
  494. data/config/database.sqlite.yml +23 -0
  495. data/config/deploy.example.rb +77 -0
  496. data/config/environment.rb +10 -0
  497. data/config/environments/development.rb +46 -0
  498. data/config/environments/production.rb +66 -0
  499. data/config/environments/staging.rb +66 -0
  500. data/config/environments/test.rb +54 -0
  501. data/config/initializers/action_mailer.rb +22 -0
  502. data/config/initializers/assets.rb +14 -0
  503. data/config/initializers/authlogic.rb +6 -0
  504. data/config/initializers/backtrace_silencers.rb +7 -0
  505. data/config/initializers/constants.rb +6 -0
  506. data/config/initializers/cookies_serializer.rb +3 -0
  507. data/config/initializers/custom_field_ransack_translations.rb +17 -0
  508. data/config/initializers/filter_parameter_logging.rb +4 -0
  509. data/config/initializers/gravatar.rb +12 -0
  510. data/config/initializers/inflections.rb +16 -0
  511. data/config/initializers/locale.rb +18 -0
  512. data/config/initializers/mime_types.rb +12 -0
  513. data/config/initializers/paginate_arrays.rb +11 -0
  514. data/config/initializers/ransack.rb +20 -0
  515. data/config/initializers/relative_url_root.rb +10 -0
  516. data/config/initializers/secret_token.rb +25 -0
  517. data/config/initializers/session_store.rb +5 -0
  518. data/config/initializers/simple_form.rb +100 -0
  519. data/config/initializers/views.rb +47 -0
  520. data/config/initializers/wrap_parameters.rb +14 -0
  521. data/config/locales/cz.yml +247 -0
  522. data/config/locales/cz_fat_free_crm.yml +610 -0
  523. data/config/locales/de.yml +237 -0
  524. data/config/locales/de_fat_free_crm.yml +842 -0
  525. data/config/locales/de_ransack.yml +91 -0
  526. data/config/locales/en-GB.yml +219 -0
  527. data/config/locales/en-GB_fat_free_crm.yml +937 -0
  528. data/config/locales/en-GB_ransack.yml +91 -0
  529. data/config/locales/en-US.yml +219 -0
  530. data/config/locales/en-US_fat_free_crm.yml +937 -0
  531. data/config/locales/en-US_ransack.yml +91 -0
  532. data/config/locales/en.yml +23 -0
  533. data/config/locales/es-CL.yml +227 -0
  534. data/config/locales/es-CL_fat_free_crm.yml +929 -0
  535. data/config/locales/es-CL_ransack.yml +91 -0
  536. data/config/locales/es.yml +219 -0
  537. data/config/locales/es_fat_free_crm.yml +917 -0
  538. data/config/locales/es_ransack.yml +91 -0
  539. data/config/locales/fr-CA.yml +224 -0
  540. data/config/locales/fr-CA_fat_free_crm.yml +570 -0
  541. data/config/locales/fr.yml +227 -0
  542. data/config/locales/fr_fat_free_crm.yml +934 -0
  543. data/config/locales/it.yml +219 -0
  544. data/config/locales/it_fat_free_crm.yml +592 -0
  545. data/config/locales/ja.yml +219 -0
  546. data/config/locales/ja_fat_free_crm.yml +557 -0
  547. data/config/locales/ja_ransack.yml +91 -0
  548. data/config/locales/nl.yml +210 -0
  549. data/config/locales/nl_fat_free_crm.yml +920 -0
  550. data/config/locales/nl_ransack.yml +91 -0
  551. data/config/locales/pl.yml +230 -0
  552. data/config/locales/pl_fat_free_crm.yml +570 -0
  553. data/config/locales/pt-BR.yml +232 -0
  554. data/config/locales/pt-BR_fat_free_crm.yml +650 -0
  555. data/config/locales/ru.yml +326 -0
  556. data/config/locales/ru_fat_free_crm.yml +977 -0
  557. data/config/locales/sv-SE.yml +215 -0
  558. data/config/locales/sv-SE_fat_free_crm.yml +565 -0
  559. data/config/locales/th.rb +204 -0
  560. data/config/locales/th_fat_free_crm.yml +558 -0
  561. data/config/locales/zh-CN.yml +241 -0
  562. data/config/locales/zh-CN_fat_free_crm.yml +937 -0
  563. data/config/locales/zh-CN_ransack.yml +91 -0
  564. data/config/routes.rb +199 -0
  565. data/config/settings.default.yml +400 -0
  566. data/config/unicorn.rb +32 -0
  567. data/custom_plan.rb +9 -0
  568. data/db/demo/account_contacts.yml +24 -0
  569. data/db/demo/account_opportunities.yml +24 -0
  570. data/db/demo/accounts.yml +47 -0
  571. data/db/demo/activities.yml +16 -0
  572. data/db/demo/addresses.yml +46 -0
  573. data/db/demo/avatars.yml +16 -0
  574. data/db/demo/campaigns.yml +144 -0
  575. data/db/demo/comments.yml +30 -0
  576. data/db/demo/contact_opportunities.yml +25 -0
  577. data/db/demo/contacts.yml +70 -0
  578. data/db/demo/emails.yml +53 -0
  579. data/db/demo/field_groups.yml +14 -0
  580. data/db/demo/leads.yml +71 -0
  581. data/db/demo/opportunities.yml +48 -0
  582. data/db/demo/permissions.yml +13 -0
  583. data/db/demo/preferences.yml +13 -0
  584. data/db/demo/settings.yml +12 -0
  585. data/db/demo/tasks.yml +64 -0
  586. data/db/demo/users.yml +245 -0
  587. data/db/migrate/20100928030598_create_sessions.rb +21 -0
  588. data/db/migrate/20100928030599_create_users.rb +45 -0
  589. data/db/migrate/20100928030600_create_openid_tables.rb +23 -0
  590. data/db/migrate/20100928030601_create_accounts.rb +26 -0
  591. data/db/migrate/20100928030602_create_permissions.rb +15 -0
  592. data/db/migrate/20100928030603_create_settings.rb +15 -0
  593. data/db/migrate/20100928030604_create_preferences.rb +15 -0
  594. data/db/migrate/20100928030605_create_campaigns.rb +34 -0
  595. data/db/migrate/20100928030606_create_leads.rb +38 -0
  596. data/db/migrate/20100928030607_create_contacts.rb +38 -0
  597. data/db/migrate/20100928030608_create_opportunities.rb +27 -0
  598. data/db/migrate/20100928030609_create_account_contacts.rb +14 -0
  599. data/db/migrate/20100928030610_create_account_opportunities.rb +14 -0
  600. data/db/migrate/20100928030611_create_contact_opportunities.rb +15 -0
  601. data/db/migrate/20100928030612_create_tasks.rb +26 -0
  602. data/db/migrate/20100928030613_create_comments.rb +16 -0
  603. data/db/migrate/20100928030614_create_activities.rb +19 -0
  604. data/db/migrate/20100928030615_create_avatars.rb +16 -0
  605. data/db/migrate/20100928030616_rename_remember_token.rb +11 -0
  606. data/db/migrate/20100928030617_drop_openid_tables.rb +23 -0
  607. data/db/migrate/20100928030618_add_admin_to_users.rb +11 -0
  608. data/db/migrate/20100928030619_add_suspended_to_users.rb +11 -0
  609. data/db/migrate/20100928030620_remove_uuid.rb +24 -0
  610. data/db/migrate/20100928030621_add_email_to_accounts.rb +9 -0
  611. data/db/migrate/20100928030622_add_background_info_to_models.rb +19 -0
  612. data/db/migrate/20100928030623_create_addresses.rb +49 -0
  613. data/db/migrate/20100928030624_add_index_on_permissions.rb +9 -0
  614. data/db/migrate/20100928030625_create_emails.rb +26 -0
  615. data/db/migrate/20100928030626_add_state_to_timeline_objects.rb +13 -0
  616. data/db/migrate/20100928030627_acts_as_taggable_on_migration.rb +29 -0
  617. data/db/migrate/20101221123456_add_single_access_token_to_users.rb +9 -0
  618. data/db/migrate/20101221345678_add_rating_and_category_to_accounts.rb +11 -0
  619. data/db/migrate/20110719082054_add_skype_to_contacts_and_leads.rb +11 -0
  620. data/db/migrate/20111101083437_create_fields.rb +27 -0
  621. data/db/migrate/20111101090312_create_field_groups.rb +15 -0
  622. data/db/migrate/20111116091952_add_field_groups_tag_id.rb +9 -0
  623. data/db/migrate/20111117041311_change_fields_collection_to_text.rb +9 -0
  624. data/db/migrate/20111201030535_add_field_groups_klass_name.rb +24 -0
  625. data/db/migrate/20120121054235_create_lists.rb +10 -0
  626. data/db/migrate/20120216031616_create_versions.rb +18 -0
  627. data/db/migrate/20120216042541_is_paranoid_to_paper_trail.rb +10 -0
  628. data/db/migrate/20120220233724_add_versions_object_changes.rb +9 -0
  629. data/db/migrate/20120224073107_remove_default_value_and_clear_settings.rb +16 -0
  630. data/db/migrate/20120309070209_add_versions_related.rb +6 -0
  631. data/db/migrate/20120314080441_add_subscribed_users_to_entities.rb +23 -0
  632. data/db/migrate/20120316045804_activities_to_versions.rb +35 -0
  633. data/db/migrate/20120405080727_change_subscribed_users_to_set.rb +24 -0
  634. data/db/migrate/20120405080742_change_further_subscribed_users_to_set.rb +27 -0
  635. data/db/migrate/20120406082136_create_groups.rb +19 -0
  636. data/db/migrate/20120413034923_add_index_on_versions_item_type.rb +5 -0
  637. data/db/migrate/20120510025219_add_not_null_constraints_for_timestamp_columns.rb +22 -0
  638. data/db/migrate/20120528102124_increase_length_of_version_events.rb +9 -0
  639. data/db/migrate/20120801032706_add_pair_id_to_fields.rb +5 -0
  640. data/db/migrate/20121003063155_add_settings_to_custom_fields.rb +5 -0
  641. data/db/migrate/20121221033947_fix_country_mapping.rb +31 -0
  642. data/db/migrate/20131207033244_add_user_id_to_lists.rb +6 -0
  643. data/db/migrate/20140916011927_add_created_at_index_on_versions.rb +5 -0
  644. data/db/migrate/20140916012922_add_indexes_to_model_associations.rb +6 -0
  645. data/db/migrate/20141126031837_increase_email_to254_chars.rb +21 -0
  646. data/db/migrate/20141230021159_add_transaction_id_column_to_versions.rb +11 -0
  647. data/db/migrate/20141230205453_add_missing_unique_indices.acts_as_taggable_on_engine.rb +20 -0
  648. data/db/migrate/20141230205454_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
  649. data/db/migrate/20141230205455_add_missing_taggable_index.acts_as_taggable_on_engine.rb +10 -0
  650. data/db/migrate/20150123060900_convert_radio_to_radio_buttons.rb +10 -0
  651. data/db/migrate/20150227123054_remove_last_request_at_from_users.rb +5 -0
  652. data/db/migrate/20150427131956_create_index_related_type.rb +9 -0
  653. data/db/migrate/20160511053730_add_account_contacts_index.rb +5 -0
  654. data/db/schema.rb +459 -0
  655. data/db/seeds.rb +9 -0
  656. data/db/seeds/fields.rb +93 -0
  657. data/docker-compose.yml +13 -0
  658. data/fat_free_crm.gemspec +63 -0
  659. data/lib/development_tasks/gem.rake +13 -0
  660. data/lib/development_tasks/license.rake +77 -0
  661. data/lib/development_tasks/rdoc.rake +20 -0
  662. data/lib/development_tasks/rspec.rake +24 -0
  663. data/lib/fat_free_crm.rb +57 -0
  664. data/lib/fat_free_crm/callback.rb +144 -0
  665. data/lib/fat_free_crm/comment_extensions.rb +28 -0
  666. data/lib/fat_free_crm/core_ext.rb +6 -0
  667. data/lib/fat_free_crm/core_ext/nil.rb +14 -0
  668. data/lib/fat_free_crm/core_ext/string.rb +48 -0
  669. data/lib/fat_free_crm/custom_fields.rb +12 -0
  670. data/lib/fat_free_crm/engine.rb +27 -0
  671. data/lib/fat_free_crm/errors.rb +37 -0
  672. data/lib/fat_free_crm/exceptions.rb +21 -0
  673. data/lib/fat_free_crm/export_csv.rb +33 -0
  674. data/lib/fat_free_crm/exportable.rb +49 -0
  675. data/lib/fat_free_crm/fields.rb +95 -0
  676. data/lib/fat_free_crm/gem_dependencies.rb +40 -0
  677. data/lib/fat_free_crm/gem_ext.rb +10 -0
  678. data/lib/fat_free_crm/gem_ext/action_controller/base.rb +16 -0
  679. data/lib/fat_free_crm/gem_ext/active_record/schema_dumper.rb +27 -0
  680. data/lib/fat_free_crm/gem_ext/active_support/buffered_logger.rb +17 -0
  681. data/lib/fat_free_crm/gem_ext/rails/engine.rb +15 -0
  682. data/lib/fat_free_crm/gem_ext/rake/task.rb +13 -0
  683. data/lib/fat_free_crm/gem_ext/simple_form/action_view_extensions/form_helper.rb +24 -0
  684. data/lib/fat_free_crm/i18n.rb +42 -0
  685. data/lib/fat_free_crm/load_settings.rb +18 -0
  686. data/lib/fat_free_crm/mail_processor/base.rb +227 -0
  687. data/lib/fat_free_crm/mail_processor/comment_replies.rb +69 -0
  688. data/lib/fat_free_crm/mail_processor/dropbox.rb +273 -0
  689. data/lib/fat_free_crm/permissions.rb +109 -0
  690. data/lib/fat_free_crm/renderers.rb +11 -0
  691. data/lib/fat_free_crm/secret_token_generator.rb +59 -0
  692. data/lib/fat_free_crm/sortable.rb +43 -0
  693. data/lib/fat_free_crm/tabs.rb +23 -0
  694. data/lib/fat_free_crm/version.rb +15 -0
  695. data/lib/fat_free_crm/view_factory.rb +81 -0
  696. data/lib/gravatar_image_tag.rb +58 -0
  697. data/lib/missing_translation_detector.rb +50 -0
  698. data/lib/tasks/.gitkeep +0 -0
  699. data/lib/tasks/.gitkeep~master +0 -0
  700. data/lib/tasks/ffcrm/comment_replies.rake +27 -0
  701. data/lib/tasks/ffcrm/config.rake +40 -0
  702. data/lib/tasks/ffcrm/demo.rake +62 -0
  703. data/lib/tasks/ffcrm/dropbox.rake +28 -0
  704. data/lib/tasks/ffcrm/missing_translations.rake +34 -0
  705. data/lib/tasks/ffcrm/secret.rake +15 -0
  706. data/lib/tasks/ffcrm/settings.rake +20 -0
  707. data/lib/tasks/ffcrm/setup.rake +81 -0
  708. data/lib/tasks/ffcrm/update_data.rake +238 -0
  709. data/lib/templates/erb/scaffold/_form.html.erb +13 -0
  710. data/public/404.html +26 -0
  711. data/public/422.html +26 -0
  712. data/public/500.html +26 -0
  713. data/public/favicon.ico +0 -0
  714. data/public/robots.txt +5 -0
  715. data/script/rails +6 -0
  716. data/spec/controllers/admin/groups_controller_spec.rb +9 -0
  717. data/spec/controllers/admin/users_controller_spec.rb +305 -0
  718. data/spec/controllers/applications_controller_spec.rb +41 -0
  719. data/spec/controllers/authentications_controller_spec.rb +148 -0
  720. data/spec/controllers/comments_controller_spec.rb +193 -0
  721. data/spec/controllers/emails_controller_spec.rb +35 -0
  722. data/spec/controllers/entities/accounts_controller_spec.rb +605 -0
  723. data/spec/controllers/entities/campaigns_controller_spec.rb +643 -0
  724. data/spec/controllers/entities/contacts_controller_spec.rb +702 -0
  725. data/spec/controllers/entities/leads_controller_spec.rb +1007 -0
  726. data/spec/controllers/entities/opportunities_controller_spec.rb +902 -0
  727. data/spec/controllers/entities_controller_spec.rb +40 -0
  728. data/spec/controllers/home_controller_spec.rb +231 -0
  729. data/spec/controllers/lists_controller_spec.rb +9 -0
  730. data/spec/controllers/passwords_controller_spec.rb +30 -0
  731. data/spec/controllers/tasks_controller_spec.rb +512 -0
  732. data/spec/controllers/users_controller_spec.rb +431 -0
  733. data/spec/factories/account_factories.rb +38 -0
  734. data/spec/factories/campaign_factories.rb +28 -0
  735. data/spec/factories/contact_factories.rb +43 -0
  736. data/spec/factories/field_factories.rb +37 -0
  737. data/spec/factories/lead_factories.rb +34 -0
  738. data/spec/factories/list_factories.rb +11 -0
  739. data/spec/factories/opportunity_factories.rb +37 -0
  740. data/spec/factories/sequences.rb +31 -0
  741. data/spec/factories/setting_factories.rb +13 -0
  742. data/spec/factories/shared_factories.rb +66 -0
  743. data/spec/factories/subscription_factories.rb +11 -0
  744. data/spec/factories/tag_factories.rb +10 -0
  745. data/spec/factories/task_factories.rb +27 -0
  746. data/spec/factories/user_factories.rb +64 -0
  747. data/spec/features/acceptance_helper.rb +9 -0
  748. data/spec/features/accounts_spec.rb +109 -0
  749. data/spec/features/admin/groups_spec.rb +30 -0
  750. data/spec/features/admin/users_spec.rb +37 -0
  751. data/spec/features/campaigns_spec.rb +103 -0
  752. data/spec/features/contacts_spec.rb +129 -0
  753. data/spec/features/dashboard_spec.rb +66 -0
  754. data/spec/features/leads_spec.rb +129 -0
  755. data/spec/features/opportunities_overview_spec.rb +87 -0
  756. data/spec/features/opportunities_spec.rb +105 -0
  757. data/spec/features/support/browser.rb +18 -0
  758. data/spec/features/support/headless.rb +17 -0
  759. data/spec/features/support/helpers.rb +30 -0
  760. data/spec/features/support/maintain_sessions.rb +10 -0
  761. data/spec/features/support/paths.rb +46 -0
  762. data/spec/features/support/selector_helpers.rb +31 -0
  763. data/spec/features/tasks_spec.rb +93 -0
  764. data/spec/fixtures/rails.png +0 -0
  765. data/spec/helpers/accounts_helper_spec.rb +14 -0
  766. data/spec/helpers/admin/field_groups_helper_spec.rb +18 -0
  767. data/spec/helpers/admin/plugins_helper_spec.rb +9 -0
  768. data/spec/helpers/admin/settings_helper_spec.rb +9 -0
  769. data/spec/helpers/admin/users_helper_spec.rb +9 -0
  770. data/spec/helpers/application_helper_spec.rb +83 -0
  771. data/spec/helpers/authentications_helper_spec.rb +14 -0
  772. data/spec/helpers/campaigns_helper_spec.rb +14 -0
  773. data/spec/helpers/comments_helper_spec.rb +14 -0
  774. data/spec/helpers/contacts_helper_spec.rb +14 -0
  775. data/spec/helpers/emails_helper_spec.rb +9 -0
  776. data/spec/helpers/fields_helper_spec.rb +10 -0
  777. data/spec/helpers/groups_helper_spec.rb +19 -0
  778. data/spec/helpers/home_helper_spec.rb +14 -0
  779. data/spec/helpers/leads_helper_spec.rb +14 -0
  780. data/spec/helpers/lists_helper_spec.rb +19 -0
  781. data/spec/helpers/opportunities_helper_spec.rb +14 -0
  782. data/spec/helpers/passwords_helper_spec.rb +14 -0
  783. data/spec/helpers/tasks_helper_spec.rb +18 -0
  784. data/spec/helpers/users_helper_spec.rb +37 -0
  785. data/spec/lib/comment_extensions_spec.rb +34 -0
  786. data/spec/lib/core_ext/string_spec.rb +21 -0
  787. data/spec/lib/errors_spec.rb +30 -0
  788. data/spec/lib/fields_spec.rb +99 -0
  789. data/spec/lib/mail_processor/base_spec.rb +167 -0
  790. data/spec/lib/mail_processor/comment_replies_spec.rb +68 -0
  791. data/spec/lib/mail_processor/dropbox_spec.rb +304 -0
  792. data/spec/lib/mail_processor/sample_emails/dropbox.rb +171 -0
  793. data/spec/lib/permissions_spec.rb +134 -0
  794. data/spec/lib/secret_token_generator_spec.rb +67 -0
  795. data/spec/lib/view_factory_spec.rb +67 -0
  796. data/spec/mailers/subscription_mailer_spec.rb +47 -0
  797. data/spec/mailers/user_mailer_spec.rb +139 -0
  798. data/spec/models/entities/account_contact_spec.rb +31 -0
  799. data/spec/models/entities/account_opportunity_spec.rb +31 -0
  800. data/spec/models/entities/account_spec.rb +178 -0
  801. data/spec/models/entities/campaign_spec.rb +136 -0
  802. data/spec/models/entities/contact_opportunity_spec.rb +32 -0
  803. data/spec/models/entities/contact_spec.rb +208 -0
  804. data/spec/models/entities/lead_spec.rb +102 -0
  805. data/spec/models/entities/opportunity_spec.rb +287 -0
  806. data/spec/models/fields/custom_field_date_pair_spec.rb +88 -0
  807. data/spec/models/fields/custom_field_pair_spec.rb +74 -0
  808. data/spec/models/fields/custom_field_spec.rb +125 -0
  809. data/spec/models/fields/field_group_spec.rb +27 -0
  810. data/spec/models/fields/field_spec.rb +65 -0
  811. data/spec/models/list_spec.rb +17 -0
  812. data/spec/models/observers/entity_observer_spec.rb +72 -0
  813. data/spec/models/polymorphic/address_spec.rb +36 -0
  814. data/spec/models/polymorphic/avatar_spec.rb +44 -0
  815. data/spec/models/polymorphic/comment_spec.rb +47 -0
  816. data/spec/models/polymorphic/email_spec.rb +40 -0
  817. data/spec/models/polymorphic/task_spec.rb +385 -0
  818. data/spec/models/polymorphic/version_spec.rb +244 -0
  819. data/spec/models/setting_spec.rb +54 -0
  820. data/spec/models/users/abilities/user_ability_spec.rb +63 -0
  821. data/spec/models/users/authentication_spec.rb +17 -0
  822. data/spec/models/users/group_spec.rb +9 -0
  823. data/spec/models/users/permission_spec.rb +48 -0
  824. data/spec/models/users/preference_spec.rb +69 -0
  825. data/spec/models/users/user_spec.rb +237 -0
  826. data/spec/routing/accounts_routing_spec.rb +58 -0
  827. data/spec/routing/admin/users_routing_spec.rb +38 -0
  828. data/spec/routing/campaigns_routing_spec.rb +62 -0
  829. data/spec/routing/comments_routing_spec.rb +30 -0
  830. data/spec/routing/contacts_routing_spec.rb +58 -0
  831. data/spec/routing/emails_routing_spec.rb +38 -0
  832. data/spec/routing/leads_routing_spec.rb +86 -0
  833. data/spec/routing/opportunities_routing_spec.rb +62 -0
  834. data/spec/routing/tasks_routing_spec.rb +66 -0
  835. data/spec/routing/users_routing_spec.rb +82 -0
  836. data/spec/shared/controllers.rb +103 -0
  837. data/spec/shared/models.rb +139 -0
  838. data/spec/spec_helper.rb +107 -0
  839. data/spec/support/assert_select.rb +164 -0
  840. data/spec/support/auth_macros.rb +48 -0
  841. data/spec/support/macros.rb +44 -0
  842. data/spec/support/mail_processor_mocks.rb +35 -0
  843. data/spec/support/uploaded_file.rb +8 -0
  844. data/spec/views/accounts/_edit.haml_spec.rb +42 -0
  845. data/spec/views/accounts/_new.haml_spec.rb +40 -0
  846. data/spec/views/accounts/create.js.haml_spec.rb +51 -0
  847. data/spec/views/accounts/destroy.js.haml_spec.rb +32 -0
  848. data/spec/views/accounts/edit.js.haml_spec.rb +64 -0
  849. data/spec/views/accounts/index.haml_spec.rb +41 -0
  850. data/spec/views/accounts/index.js.haml_spec.rb +32 -0
  851. data/spec/views/accounts/new.js.haml_spec.rb +42 -0
  852. data/spec/views/accounts/show.haml_spec.rb +33 -0
  853. data/spec/views/accounts/update.js.haml_spec.rb +94 -0
  854. data/spec/views/admin/field_groups/create.js.haml_spec.rb +29 -0
  855. data/spec/views/admin/field_groups/destroy.js.haml_spec.rb +29 -0
  856. data/spec/views/admin/field_groups/edit.js.haml_spec.rb +22 -0
  857. data/spec/views/admin/field_groups/new.js.haml_spec.rb +23 -0
  858. data/spec/views/admin/field_groups/update.js.haml_spec.rb +28 -0
  859. data/spec/views/admin/users/_create.haml_spec.rb +21 -0
  860. data/spec/views/admin/users/create.js.haml_spec.rb +40 -0
  861. data/spec/views/admin/users/destroy.js.haml_spec.rb +51 -0
  862. data/spec/views/admin/users/edit.js.haml_spec.rb +42 -0
  863. data/spec/views/admin/users/index.haml_spec.rb +20 -0
  864. data/spec/views/admin/users/index.js.haml_spec.rb +24 -0
  865. data/spec/views/admin/users/new.js.haml_spec.rb +32 -0
  866. data/spec/views/admin/users/reactivate.js.haml_spec.rb +20 -0
  867. data/spec/views/admin/users/show.haml_spec.rb +16 -0
  868. data/spec/views/admin/users/suspend.js.haml_spec.rb +20 -0
  869. data/spec/views/admin/users/update.js.haml_spec.rb +36 -0
  870. data/spec/views/application/auto_complete.haml_spec.rb +46 -0
  871. data/spec/views/authentications/new.haml_spec.rb +29 -0
  872. data/spec/views/campaigns/_edit.haml_spec.rb +42 -0
  873. data/spec/views/campaigns/_new.haml_spec.rb +39 -0
  874. data/spec/views/campaigns/create.js.haml_spec.rb +48 -0
  875. data/spec/views/campaigns/destroy.js.haml_spec.rb +30 -0
  876. data/spec/views/campaigns/edit.js.haml_spec.rb +64 -0
  877. data/spec/views/campaigns/index.haml_spec.rb +35 -0
  878. data/spec/views/campaigns/index.js.haml_spec.rb +32 -0
  879. data/spec/views/campaigns/new.js.haml_spec.rb +48 -0
  880. data/spec/views/campaigns/show.haml_spec.rb +33 -0
  881. data/spec/views/campaigns/update.js.haml_spec.rb +80 -0
  882. data/spec/views/comments/edit.js.haml_spec.rb +29 -0
  883. data/spec/views/contacts/_edit.haml_spec.rb +71 -0
  884. data/spec/views/contacts/_new.haml_spec.rb +50 -0
  885. data/spec/views/contacts/create.js.haml_spec.rb +64 -0
  886. data/spec/views/contacts/destroy.js.haml_spec.rb +43 -0
  887. data/spec/views/contacts/edit.js.haml_spec.rb +72 -0
  888. data/spec/views/contacts/index.haml_spec.rb +35 -0
  889. data/spec/views/contacts/index.js.html_spec.rb +32 -0
  890. data/spec/views/contacts/new.js.haml_spec.rb +45 -0
  891. data/spec/views/contacts/show.haml_spec.rb +30 -0
  892. data/spec/views/contacts/update.js.haml_spec.rb +130 -0
  893. data/spec/views/home/index.haml_spec.rb +34 -0
  894. data/spec/views/home/index.js.haml_spec.rb +31 -0
  895. data/spec/views/home/options.js.haml_spec.rb +51 -0
  896. data/spec/views/leads/_convert.haml_spec.rb +28 -0
  897. data/spec/views/leads/_edit.haml_spec.rb +45 -0
  898. data/spec/views/leads/_new.haml_spec.rb +43 -0
  899. data/spec/views/leads/_sidebar_show.haml_spec.rb +29 -0
  900. data/spec/views/leads/convert.js.haml_spec.rb +77 -0
  901. data/spec/views/leads/create.js.haml_spec.rb +68 -0
  902. data/spec/views/leads/destroy.js.haml_spec.rb +47 -0
  903. data/spec/views/leads/edit.js.haml_spec.rb +74 -0
  904. data/spec/views/leads/index.haml_spec.rb +35 -0
  905. data/spec/views/leads/index.js.haml_spec.rb +32 -0
  906. data/spec/views/leads/new.js.haml_spec.rb +45 -0
  907. data/spec/views/leads/promote.js.haml_spec.rb +141 -0
  908. data/spec/views/leads/reject.js.haml_spec.rb +46 -0
  909. data/spec/views/leads/show.haml_spec.rb +27 -0
  910. data/spec/views/leads/update.js.haml_spec.rb +124 -0
  911. data/spec/views/opportunities/_edit.haml_spec.rb +68 -0
  912. data/spec/views/opportunities/_new.haml_spec.rb +49 -0
  913. data/spec/views/opportunities/create.js.haml_spec.rb +86 -0
  914. data/spec/views/opportunities/destroy.js.haml_spec.rb +65 -0
  915. data/spec/views/opportunities/edit.js.haml_spec.rb +73 -0
  916. data/spec/views/opportunities/index.haml_spec.rb +36 -0
  917. data/spec/views/opportunities/index.js.haml_spec.rb +33 -0
  918. data/spec/views/opportunities/new.js.haml_spec.rb +52 -0
  919. data/spec/views/opportunities/show.haml_spec.rb +30 -0
  920. data/spec/views/opportunities/update.js.haml_spec.rb +149 -0
  921. data/spec/views/tasks/_edit.haml_spec.rb +48 -0
  922. data/spec/views/tasks/complete.js.haml_spec.rb +66 -0
  923. data/spec/views/tasks/create.js.haml_spec.rb +119 -0
  924. data/spec/views/tasks/destroy.js.haml_spec.rb +56 -0
  925. data/spec/views/tasks/edit.js.haml_spec.rb +74 -0
  926. data/spec/views/tasks/index.haml_spec.rb +44 -0
  927. data/spec/views/tasks/new.js.haml_spec.rb +47 -0
  928. data/spec/views/tasks/uncomplete.js.haml_spec.rb +44 -0
  929. data/spec/views/tasks/update.js.haml_spec.rb +141 -0
  930. data/spec/views/users/avatar.js.haml_spec.rb +33 -0
  931. data/spec/views/users/change_password.js.haml_spec.rb +50 -0
  932. data/spec/views/users/edit.js.haml_spec.rb +33 -0
  933. data/spec/views/users/password.js.haml_spec.rb +34 -0
  934. data/spec/views/users/update.js.haml_spec.rb +45 -0
  935. data/spec/views/users/upload_avatar.js.haml_spec.rb +44 -0
  936. data/vendor/assets/images/calendar_date_select/calendar.gif +0 -0
  937. data/vendor/assets/images/chosen-sprite.png +0 -0
  938. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  939. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  940. data/vendor/assets/images/jquery-ui/ui-bg_flat_100_ffffff_40x100.png +0 -0
  941. data/vendor/assets/images/jquery-ui/ui-bg_flat_25_3875d7_40x100.png +0 -0
  942. data/vendor/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
  943. data/vendor/assets/images/jquery-ui/ui-bg_flat_65_3875d7_40x100.png +0 -0
  944. data/vendor/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  945. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  946. data/vendor/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
  947. data/vendor/assets/images/jquery-ui/ui-icons_466bb1_256x240.png +0 -0
  948. data/vendor/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
  949. data/vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  950. data/vendor/assets/javascripts/ajax-chosen-jquery.js +2 -0
  951. data/vendor/assets/javascripts/ajax-chosen.jquery.coffee +171 -0
  952. data/vendor/assets/javascripts/chosen-jquery.js +3 -0
  953. data/vendor/assets/javascripts/chosen.jquery.coffee +574 -0
  954. data/vendor/assets/javascripts/jquery.disable.js +23 -0
  955. data/vendor/assets/javascripts/jquery_timeago/index.js +19 -0
  956. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.cz.js +18 -0
  957. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.de.js +18 -0
  958. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.en-GB.js +20 -0
  959. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.en-US.js +20 -0
  960. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.es-CL.js +18 -0
  961. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.es.js +18 -0
  962. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.fr-CA.js +17 -0
  963. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.fr.js +17 -0
  964. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.it.js +16 -0
  965. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.ja.js +19 -0
  966. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.js +194 -0
  967. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.nl.js +20 -0
  968. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.pl.js +31 -0
  969. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.pt-BR.js +18 -0
  970. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.ru.js +34 -0
  971. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.sv-SE.js +18 -0
  972. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.th.js +20 -0
  973. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.zh-CN.js +20 -0
  974. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-addon.js +1882 -0
  975. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-af.js +20 -0
  976. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-ca.js +20 -0
  977. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-cz.js +20 -0
  978. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-de.js +20 -0
  979. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-el.js +20 -0
  980. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-es-CL.js +20 -0
  981. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-es.js +20 -0
  982. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-et.js +20 -0
  983. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-fi.js +20 -0
  984. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-fr-CA.js +20 -0
  985. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-fr.js +20 -0
  986. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-gl.js +20 -0
  987. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-he.js +20 -0
  988. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-hu.js +20 -0
  989. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-id.js +20 -0
  990. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-it.js +20 -0
  991. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-ja.js +20 -0
  992. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-ko.js +20 -0
  993. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-lt.js +20 -0
  994. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-nl.js +20 -0
  995. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-no.js +20 -0
  996. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-pl.js +20 -0
  997. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-pt-BR.js +22 -0
  998. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-pt.js +20 -0
  999. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-ro.js +20 -0
  1000. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-ru.js +20 -0
  1001. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-sk.js +20 -0
  1002. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-sv-SE.js +20 -0
  1003. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-th.js +19 -0
  1004. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-tr.js +20 -0
  1005. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-vi.js +20 -0
  1006. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-zh-CN.js +20 -0
  1007. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-zh-TW.js +20 -0
  1008. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-cz.js +23 -0
  1009. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-de.js +23 -0
  1010. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-en-GB.js +23 -0
  1011. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-es-CL.js +23 -0
  1012. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-es.js +23 -0
  1013. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-fr-CA.js +21 -0
  1014. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-fr.js +23 -0
  1015. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-it.js +23 -0
  1016. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-ja.js +23 -0
  1017. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-nl.js +21 -0
  1018. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-pl.js +23 -0
  1019. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-pt-BR.js +23 -0
  1020. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-pt.js +21 -0
  1021. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-ru.js +23 -0
  1022. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-sv-SE.js +23 -0
  1023. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-th.js +23 -0
  1024. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-zh-CN.js +23 -0
  1025. data/vendor/assets/javascripts/lib/abstract-chosen.coffee +110 -0
  1026. data/vendor/assets/javascripts/lib/select-parser.coffee +51 -0
  1027. data/vendor/assets/javascripts/rating.js +162 -0
  1028. data/vendor/assets/javascripts/textarea_autocomplete.js +605 -0
  1029. data/vendor/assets/stylesheets/chosen.css.sass +361 -0
  1030. data/vendor/assets/stylesheets/jquery-ui.custom.scss +566 -0
  1031. data/vendor/assets/stylesheets/modalbox.css +107 -0
  1032. data/vendor/gems/globby-0.1.2/LICENSE.txt +20 -0
  1033. data/vendor/gems/globby-0.1.2/README.md +65 -0
  1034. data/vendor/gems/globby-0.1.2/Rakefile +9 -0
  1035. data/vendor/gems/globby-0.1.2/lib/globby.rb +47 -0
  1036. data/vendor/gems/globby-0.1.2/lib/globby/glob.rb +90 -0
  1037. data/vendor/gems/globby-0.1.2/lib/globby/globject.rb +18 -0
  1038. data/vendor/gems/globby-0.1.2/lib/globby/result.rb +20 -0
  1039. data/vendor/gems/globby-0.1.2/spec/gitignore_spec.rb +109 -0
  1040. data/vendor/gems/globby-0.1.2/spec/globby_spec.rb +93 -0
  1041. data/zeus.json +22 -0
  1042. metadata +1566 -0
@@ -0,0 +1,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.