fat_free_crm 0.11.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fat_free_crm might be problematic. Click here for more details.

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