fat_free_crm 0.13.6 → 0.14.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 (534) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +5 -0
  3. data/.travis.yml +8 -5
  4. data/CHANGELOG +26 -0
  5. data/Gemfile +26 -26
  6. data/Gemfile.lock +280 -250
  7. data/Guardfile +0 -1
  8. data/README.md +7 -9
  9. data/Rakefile +1 -1
  10. data/app/assets/javascripts/application.js.erb +1 -0
  11. data/app/assets/javascripts/crm.js.coffee +6 -7
  12. data/app/assets/javascripts/search.js.coffee +7 -1
  13. data/app/assets/stylesheets/about.css.scss +10 -0
  14. data/app/assets/stylesheets/application.css.erb +2 -0
  15. data/app/assets/stylesheets/common.scss +1 -1
  16. data/app/controllers/admin/application_controller.rb +3 -3
  17. data/app/controllers/admin/field_groups_controller.rb +12 -7
  18. data/app/controllers/admin/fields_controller.rb +21 -17
  19. data/app/controllers/admin/groups_controller.rb +10 -4
  20. data/app/controllers/admin/plugins_controller.rb +1 -2
  21. data/app/controllers/admin/settings_controller.rb +1 -2
  22. data/app/controllers/admin/tags_controller.rb +10 -4
  23. data/app/controllers/admin/users_controller.rb +32 -12
  24. data/app/controllers/application_controller.rb +58 -38
  25. data/app/controllers/authentications_controller.rb +5 -8
  26. data/app/controllers/comments_controller.rb +15 -11
  27. data/app/controllers/emails_controller.rb +1 -2
  28. data/app/controllers/entities/accounts_controller.rb +20 -20
  29. data/app/controllers/entities/campaigns_controller.rb +25 -22
  30. data/app/controllers/entities/contacts_controller.rb +25 -24
  31. data/app/controllers/entities/leads_controller.rb +33 -31
  32. data/app/controllers/entities/opportunities_controller.rb +31 -28
  33. data/app/controllers/entities_controller.rb +26 -22
  34. data/app/controllers/home_controller.rb +18 -18
  35. data/app/controllers/lists_controller.rb +11 -7
  36. data/app/controllers/passwords_controller.rb +5 -6
  37. data/app/controllers/tasks_controller.rb +23 -18
  38. data/app/controllers/users_controller.rb +31 -7
  39. data/app/helpers/accounts_helper.rb +40 -42
  40. data/app/helpers/addresses_helper.rb +1 -3
  41. data/app/helpers/admin/application_helper.rb +4 -4
  42. data/app/helpers/admin/field_groups_helper.rb +5 -7
  43. data/app/helpers/admin/fields_helper.rb +2 -3
  44. data/app/helpers/admin/plugins_helper.rb +0 -1
  45. data/app/helpers/admin/settings_helper.rb +0 -1
  46. data/app/helpers/admin/tags_helper.rb +1 -1
  47. data/app/helpers/admin/users_helper.rb +16 -18
  48. data/app/helpers/application_helper.rb +127 -119
  49. data/app/helpers/authentications_helper.rb +0 -1
  50. data/app/helpers/campaigns_helper.rb +5 -7
  51. data/app/helpers/comments_helper.rb +0 -1
  52. data/app/helpers/contacts_helper.rb +0 -1
  53. data/app/helpers/home_helper.rb +14 -14
  54. data/app/helpers/javascript_helper.rb +30 -0
  55. data/app/helpers/leads_helper.rb +7 -7
  56. data/app/helpers/opportunities_helper.rb +8 -10
  57. data/app/helpers/passwords_helper.rb +0 -1
  58. data/app/helpers/tags_helper.rb +1 -3
  59. data/app/helpers/tasks_helper.rb +24 -26
  60. data/app/helpers/users_helper.rb +6 -7
  61. data/app/helpers/versions_helper.rb +3 -5
  62. data/app/inputs/date_pair_input.rb +6 -7
  63. data/app/inputs/date_time_input.rb +3 -4
  64. data/app/inputs/datetime_pair_input.rb +0 -1
  65. data/app/inputs/text_input.rb +2 -2
  66. data/app/mailers/dropbox_mailer.rb +4 -7
  67. data/app/mailers/subscription_mailer.rb +4 -5
  68. data/app/mailers/user_mailer.rb +7 -9
  69. data/app/models/entities/account.rb +31 -28
  70. data/app/models/entities/account_contact.rb +2 -1
  71. data/app/models/entities/account_opportunity.rb +1 -1
  72. data/app/models/entities/campaign.rb +22 -19
  73. data/app/models/entities/contact.rb +55 -53
  74. data/app/models/entities/contact_opportunity.rb +1 -1
  75. data/app/models/entities/lead.rb +49 -41
  76. data/app/models/entities/opportunity.rb +38 -38
  77. data/app/models/fields/custom_field.rb +21 -27
  78. data/app/models/fields/custom_field_date_pair.rb +7 -8
  79. data/app/models/fields/custom_field_datetime_pair.rb +0 -2
  80. data/app/models/fields/custom_field_pair.rb +8 -10
  81. data/app/models/fields/field.rb +29 -30
  82. data/app/models/fields/field_group.rb +4 -4
  83. data/app/models/list.rb +1 -1
  84. data/app/models/observers/entity_observer.rb +1 -1
  85. data/app/models/observers/lead_observer.rb +1 -1
  86. data/app/models/observers/opportunity_observer.rb +1 -1
  87. data/app/models/observers/task_observer.rb +1 -1
  88. data/app/models/polymorphic/address.rb +7 -7
  89. data/app/models/polymorphic/avatar.rb +8 -9
  90. data/app/models/polymorphic/comment.rb +16 -10
  91. data/app/models/polymorphic/email.rb +13 -6
  92. data/app/models/polymorphic/tag.rb +2 -2
  93. data/app/models/polymorphic/task.rb +45 -45
  94. data/{config/initializers/paper_trail.rb → app/models/polymorphic/version.rb} +26 -31
  95. data/app/models/setting.rb +12 -17
  96. data/app/models/users/ability.rb +5 -6
  97. data/app/models/users/authentication.rb +6 -5
  98. data/app/models/users/group.rb +1 -3
  99. data/app/models/users/permission.rb +3 -3
  100. data/app/models/users/preference.rb +7 -7
  101. data/app/models/users/user.rb +36 -43
  102. data/app/views/accounts/_top_section.html.haml +2 -2
  103. data/app/views/accounts/edit.js.haml +0 -1
  104. data/app/views/admin/fields/_field.html.haml +1 -1
  105. data/app/views/admin/tags/_tag.html.haml +1 -1
  106. data/app/views/admin/users/_user.html.haml +4 -4
  107. data/app/views/campaigns/_top_section.html.haml +1 -1
  108. data/app/views/campaigns/edit.js.haml +0 -2
  109. data/app/views/contacts/_top_section.html.haml +1 -1
  110. data/app/views/contacts/edit.js.haml +0 -1
  111. data/app/views/entities/_basic_search.html.haml +1 -1
  112. data/app/views/home/_account.html.haml +2 -2
  113. data/app/views/home/_opportunity.html.haml +2 -2
  114. data/app/views/layouts/_about.html.haml +1 -1
  115. data/app/views/leads/_top_section.html.haml +1 -1
  116. data/app/views/leads/edit.js.haml +0 -2
  117. data/app/views/lists/_sidebar.html.haml +1 -1
  118. data/app/views/opportunities/_top_section.html.haml +2 -2
  119. data/app/views/opportunities/edit.js.haml +0 -1
  120. data/app/views/shared/_tags.html.haml +2 -1
  121. data/app/views/tasks/_edit.html.haml +2 -3
  122. data/app/views/tasks/_top_section.html.haml +1 -1
  123. data/app/views/users/_user.html.haml +2 -1
  124. data/app/views/users/opportunities_overview.html.haml +2 -2
  125. data/bin/bundle +3 -0
  126. data/bin/rails +4 -0
  127. data/bin/rake +4 -0
  128. data/config/application.rb +16 -33
  129. data/config/boot.rb +1 -1
  130. data/config/database.mysql.mac.yml +1 -0
  131. data/config/database.mysql.yml +1 -0
  132. data/config/database.postgres.docker.yml +1 -1
  133. data/config/database.postgres.yml +1 -0
  134. data/config/database.sqlite.yml +1 -0
  135. data/config/deploy.example.rb +3 -5
  136. data/config/environments/development.rb +13 -14
  137. data/config/environments/production.rb +8 -7
  138. data/config/environments/staging.rb +43 -41
  139. data/config/environments/test.rb +12 -14
  140. data/config/initializers/assets.rb +14 -0
  141. data/config/initializers/backtrace_silencers.rb +7 -0
  142. data/config/initializers/cookies_serializer.rb +3 -0
  143. data/config/initializers/custom_field_ransack_translations.rb +1 -1
  144. data/config/initializers/filter_parameter_logging.rb +4 -0
  145. data/config/initializers/inflections.rb +16 -0
  146. data/config/initializers/mime_types.rb +0 -1
  147. data/config/initializers/paginate_arrays.rb +0 -1
  148. data/config/initializers/ransack.rb +5 -5
  149. data/config/initializers/session_store.rb +5 -0
  150. data/config/initializers/simple_form.rb +1 -1
  151. data/config/initializers/views.rb +33 -33
  152. data/config/initializers/wrap_parameters.rb +14 -0
  153. data/config/locales/cz_fat_free_crm.yml +1 -1
  154. data/config/locales/de_fat_free_crm.yml +2 -2
  155. data/config/locales/en-GB_fat_free_crm.yml +2 -3
  156. data/config/locales/en-US_fat_free_crm.yml +2 -3
  157. data/config/locales/en.yml +23 -0
  158. data/config/locales/es-CL.yml +227 -0
  159. data/config/locales/es-CL_fat_free_crm.yml +929 -0
  160. data/config/locales/es-CL_ransack.yml +91 -0
  161. data/config/locales/es.yml +53 -59
  162. data/config/locales/es_fat_free_crm.yml +708 -370
  163. data/config/locales/es_ransack.yml +91 -0
  164. data/config/locales/fr-CA_fat_free_crm.yml +7 -7
  165. data/config/locales/fr_fat_free_crm.yml +285 -81
  166. data/config/locales/it_fat_free_crm.yml +1 -1
  167. data/config/locales/ja_fat_free_crm.yml +1 -1
  168. data/config/locales/nl.yml +210 -0
  169. data/config/locales/nl_fat_free_crm.yml +920 -0
  170. data/config/locales/nl_ransack.yml +91 -0
  171. data/config/locales/pl_fat_free_crm.yml +1 -1
  172. data/config/locales/pt-BR_fat_free_crm.yml +111 -38
  173. data/config/locales/ru_fat_free_crm.yml +3 -4
  174. data/config/locales/sv-SE_fat_free_crm.yml +1 -1
  175. data/config/locales/th.rb +157 -158
  176. data/config/locales/th_fat_free_crm.yml +1 -1
  177. data/config/locales/zh-CN_fat_free_crm.yml +3 -4
  178. data/config/routes.rb +93 -94
  179. data/config/unicorn.rb +25 -2
  180. data/custom_plan.rb +0 -2
  181. data/db/demo/accounts.yml +4 -5
  182. data/db/demo/addresses.yml +5 -5
  183. data/db/demo/campaigns.yml +2 -2
  184. data/db/demo/comments.yml +1 -1
  185. data/db/demo/contacts.yml +8 -8
  186. data/db/demo/emails.yml +5 -5
  187. data/db/demo/leads.yml +10 -10
  188. data/db/demo/opportunities.yml +2 -2
  189. data/db/demo/tasks.yml +2 -2
  190. data/db/demo/users.yml +12 -16
  191. data/db/migrate/20100928030598_create_sessions.rb +1 -2
  192. data/db/migrate/20100928030599_create_users.rb +24 -25
  193. data/db/migrate/20100928030600_create_openid_tables.rb +11 -12
  194. data/db/migrate/20100928030601_create_accounts.rb +14 -15
  195. data/db/migrate/20100928030602_create_permissions.rb +2 -3
  196. data/db/migrate/20100928030603_create_settings.rb +4 -5
  197. data/db/migrate/20100928030604_create_preferences.rb +3 -4
  198. data/db/migrate/20100928030605_create_campaigns.rb +19 -20
  199. data/db/migrate/20100928030606_create_leads.rb +26 -27
  200. data/db/migrate/20100928030607_create_contacts.rb +26 -27
  201. data/db/migrate/20100928030608_create_opportunities.rb +15 -16
  202. data/db/migrate/20100928030609_create_account_contacts.rb +2 -3
  203. data/db/migrate/20100928030610_create_account_opportunities.rb +2 -3
  204. data/db/migrate/20100928030611_create_contact_opportunities.rb +3 -4
  205. data/db/migrate/20100928030612_create_tasks.rb +14 -15
  206. data/db/migrate/20100928030613_create_comments.rb +6 -7
  207. data/db/migrate/20100928030614_create_activities.rb +6 -7
  208. data/db/migrate/20100928030615_create_avatars.rb +5 -6
  209. data/db/migrate/20100928030616_rename_remember_token.rb +0 -1
  210. data/db/migrate/20100928030617_drop_openid_tables.rb +11 -11
  211. data/db/migrate/20100928030618_add_admin_to_users.rb +1 -2
  212. data/db/migrate/20100928030619_add_suspended_to_users.rb +0 -1
  213. data/db/migrate/20100928030620_remove_uuid.rb +3 -3
  214. data/db/migrate/20100928030621_add_email_to_accounts.rb +1 -2
  215. data/db/migrate/20100928030622_add_background_info_to_models.rb +0 -1
  216. data/db/migrate/20100928030623_create_addresses.rb +14 -16
  217. data/db/migrate/20100928030624_add_index_on_permissions.rb +2 -3
  218. data/db/migrate/20100928030625_create_emails.rb +15 -16
  219. data/db/migrate/20100928030626_add_state_to_timeline_objects.rb +2 -3
  220. data/db/migrate/20100928030627_acts_as_taggable_on_migration.rb +2 -3
  221. data/db/migrate/20101221123456_add_single_access_token_to_users.rb +0 -1
  222. data/db/migrate/20101221345678_add_rating_and_category_to_accounts.rb +2 -3
  223. data/db/migrate/20110719082054_add_skype_to_contacts_and_leads.rb +2 -3
  224. data/db/migrate/20111101083437_create_fields.rb +14 -15
  225. data/db/migrate/20111101090312_create_field_groups.rb +4 -5
  226. data/db/migrate/20111116091952_add_field_groups_tag_id.rb +0 -1
  227. data/db/migrate/20111117041311_change_fields_collection_to_text.rb +0 -1
  228. data/db/migrate/20111201030535_add_field_groups_klass_name.rb +4 -4
  229. data/db/migrate/20120121054235_create_lists.rb +1 -1
  230. data/db/migrate/20120216031616_create_versions.rb +5 -5
  231. data/db/migrate/20120216042541_is_paranoid_to_paper_trail.rb +1 -3
  232. data/db/migrate/20120224073107_remove_default_value_and_clear_settings.rb +1 -1
  233. data/db/migrate/20120316045804_activities_to_versions.rb +6 -6
  234. data/db/migrate/20120405080727_change_subscribed_users_to_set.rb +5 -5
  235. data/db/migrate/20120405080742_change_further_subscribed_users_to_set.rb +5 -5
  236. data/db/migrate/20120406082136_create_groups.rb +1 -1
  237. data/db/migrate/20120510025219_add_not_null_constraints_for_timestamp_columns.rb +2 -1
  238. data/db/migrate/20120528102124_increase_length_of_version_events.rb +2 -2
  239. data/db/migrate/20121003063155_add_settings_to_custom_fields.rb +1 -1
  240. data/db/migrate/20121221033947_fix_country_mapping.rb +0 -1
  241. data/db/migrate/20131207033244_add_user_id_to_lists.rb +1 -1
  242. data/db/migrate/20141126031837_increase_email_to254_chars.rb +14 -14
  243. data/db/migrate/20141230021159_add_transaction_id_column_to_versions.rb +11 -0
  244. data/db/migrate/20141230205453_add_missing_unique_indices.acts_as_taggable_on_engine.rb +20 -0
  245. data/db/migrate/20141230205454_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
  246. data/db/migrate/20141230205455_add_missing_taggable_index.acts_as_taggable_on_engine.rb +10 -0
  247. data/db/migrate/20150123060900_convert_radio_to_radio_buttons.rb +10 -0
  248. data/db/migrate/20150227123054_remove_last_request_at_from_users.rb +5 -0
  249. data/db/migrate/20150427131956_create_index_related_type.rb +9 -0
  250. data/db/migrate/20160511053730_add_account_contacts_index.rb +5 -0
  251. data/db/schema.rb +236 -228
  252. data/db/seeds.rb +1 -2
  253. data/db/seeds/fields.rb +36 -37
  254. data/{fig.yml → docker-compose.yml} +0 -0
  255. data/fat_free_crm.gemspec +31 -18
  256. data/lib/development_tasks/license.rake +29 -29
  257. data/lib/fat_free_crm.rb +1 -5
  258. data/lib/fat_free_crm/callback.rb +28 -20
  259. data/lib/fat_free_crm/comment_extensions.rb +1 -1
  260. data/lib/fat_free_crm/core_ext.rb +1 -1
  261. data/lib/fat_free_crm/core_ext/nil.rb +0 -3
  262. data/lib/fat_free_crm/core_ext/string.rb +7 -21
  263. data/lib/fat_free_crm/custom_fields.rb +2 -2
  264. data/lib/fat_free_crm/engine.rb +14 -0
  265. data/lib/fat_free_crm/errors.rb +0 -2
  266. data/lib/fat_free_crm/exceptions.rb +3 -4
  267. data/lib/fat_free_crm/export_csv.rb +0 -2
  268. data/lib/fat_free_crm/exportable.rb +5 -7
  269. data/lib/fat_free_crm/fields.rb +7 -8
  270. data/lib/fat_free_crm/gem_dependencies.rb +4 -1
  271. data/lib/fat_free_crm/gem_ext/active_record/schema_dumper.rb +2 -2
  272. data/lib/fat_free_crm/gem_ext/active_support/buffered_logger.rb +0 -3
  273. data/lib/fat_free_crm/gem_ext/rails/engine.rb +5 -12
  274. data/lib/fat_free_crm/gem_ext/rake/task.rb +1 -1
  275. data/lib/fat_free_crm/gem_ext/simple_form/action_view_extensions/form_helper.rb +1 -2
  276. data/lib/fat_free_crm/i18n.rb +2 -3
  277. data/lib/fat_free_crm/load_settings.rb +0 -2
  278. data/lib/fat_free_crm/mail_processor/base.rb +15 -16
  279. data/lib/fat_free_crm/mail_processor/comment_replies.rb +5 -10
  280. data/lib/fat_free_crm/mail_processor/dropbox.rb +56 -59
  281. data/lib/fat_free_crm/permissions.rb +18 -15
  282. data/lib/fat_free_crm/renderers.rb +2 -2
  283. data/lib/fat_free_crm/secret_token_generator.rb +3 -9
  284. data/lib/fat_free_crm/sortable.rb +4 -8
  285. data/lib/fat_free_crm/version.rb +2 -2
  286. data/lib/fat_free_crm/view_factory.rb +3 -8
  287. data/lib/gravatar_image_tag.rb +19 -24
  288. data/lib/missing_translation_detector.rb +10 -10
  289. data/lib/tasks/ffcrm/comment_replies.rake +3 -5
  290. data/lib/tasks/ffcrm/config.rake +3 -5
  291. data/lib/tasks/ffcrm/demo.rake +14 -16
  292. data/lib/tasks/ffcrm/dropbox.rake +3 -5
  293. data/lib/tasks/ffcrm/missing_translations.rake +1 -1
  294. data/lib/tasks/ffcrm/secret.rake +1 -3
  295. data/lib/tasks/ffcrm/settings.rake +2 -4
  296. data/lib/tasks/ffcrm/setup.rake +3 -6
  297. data/lib/tasks/ffcrm/update_data.rake +110 -116
  298. data/spec/controllers/admin/groups_controller_spec.rb +0 -1
  299. data/spec/controllers/admin/users_controller_spec.rb +98 -102
  300. data/spec/controllers/applications_controller_spec.rb +17 -21
  301. data/spec/controllers/authentications_controller_spec.rb +57 -61
  302. data/spec/controllers/comments_controller_spec.rb +32 -39
  303. data/spec/controllers/emails_controller_spec.rb +6 -7
  304. data/spec/controllers/entities/accounts_controller_spec.rb +204 -214
  305. data/spec/controllers/entities/campaigns_controller_spec.rb +210 -224
  306. data/spec/controllers/entities/contacts_controller_spec.rb +250 -270
  307. data/spec/controllers/entities/leads_controller_spec.rb +415 -438
  308. data/spec/controllers/entities/opportunities_controller_spec.rb +344 -359
  309. data/spec/controllers/entities_controller_spec.rb +10 -14
  310. data/spec/controllers/home_controller_spec.rb +85 -92
  311. data/spec/controllers/lists_controller_spec.rb +0 -1
  312. data/spec/controllers/passwords_controller_spec.rb +5 -9
  313. data/spec/controllers/tasks_controller_spec.rb +193 -210
  314. data/spec/controllers/users_controller_spec.rb +137 -146
  315. data/spec/factories/account_factories.rb +11 -13
  316. data/spec/factories/campaign_factories.rb +6 -6
  317. data/spec/factories/contact_factories.rb +21 -22
  318. data/spec/factories/field_factories.rb +8 -10
  319. data/spec/factories/lead_factories.rb +16 -16
  320. data/spec/factories/list_factories.rb +2 -2
  321. data/spec/factories/opportunity_factories.rb +8 -10
  322. data/spec/factories/sequences.rb +8 -9
  323. data/spec/factories/setting_factories.rb +2 -2
  324. data/spec/factories/shared_factories.rb +26 -30
  325. data/spec/factories/tag_factories.rb +1 -1
  326. data/spec/factories/task_factories.rb +11 -11
  327. data/spec/factories/user_factories.rb +22 -27
  328. data/spec/features/acceptance_helper.rb +1 -1
  329. data/spec/features/accounts_spec.rb +65 -61
  330. data/spec/features/admin/groups_spec.rb +11 -12
  331. data/spec/features/admin/users_spec.rb +17 -19
  332. data/spec/features/campaigns_spec.rb +61 -57
  333. data/spec/features/contacts_spec.rb +90 -59
  334. data/spec/features/dashboard_spec.rb +20 -21
  335. data/spec/features/leads_spec.rb +88 -67
  336. data/spec/features/opportunities_overview_spec.rb +31 -31
  337. data/spec/features/opportunities_spec.rb +64 -60
  338. data/spec/features/support/browser.rb +2 -2
  339. data/spec/features/support/headless.rb +1 -1
  340. data/spec/features/support/helpers.rb +5 -6
  341. data/spec/features/support/paths.rb +1 -2
  342. data/spec/features/support/selector_helpers.rb +2 -2
  343. data/spec/features/tasks_spec.rb +60 -54
  344. data/spec/helpers/accounts_helper_spec.rb +2 -5
  345. data/spec/helpers/admin/field_groups_helper_spec.rb +4 -4
  346. data/spec/helpers/admin/plugins_helper_spec.rb +0 -1
  347. data/spec/helpers/admin/settings_helper_spec.rb +0 -1
  348. data/spec/helpers/admin/users_helper_spec.rb +0 -1
  349. data/spec/helpers/application_helper_spec.rb +30 -33
  350. data/spec/helpers/authentications_helper_spec.rb +2 -5
  351. data/spec/helpers/campaigns_helper_spec.rb +2 -5
  352. data/spec/helpers/comments_helper_spec.rb +2 -5
  353. data/spec/helpers/contacts_helper_spec.rb +2 -5
  354. data/spec/helpers/emails_helper_spec.rb +0 -1
  355. data/spec/helpers/fields_helper_spec.rb +0 -1
  356. data/spec/helpers/groups_helper_spec.rb +0 -1
  357. data/spec/helpers/home_helper_spec.rb +2 -5
  358. data/spec/helpers/leads_helper_spec.rb +2 -5
  359. data/spec/helpers/lists_helper_spec.rb +0 -1
  360. data/spec/helpers/opportunities_helper_spec.rb +2 -5
  361. data/spec/helpers/passwords_helper_spec.rb +2 -5
  362. data/spec/helpers/tasks_helper_spec.rb +1 -5
  363. data/spec/helpers/users_helper_spec.rb +9 -11
  364. data/spec/lib/comment_extensions_spec.rb +3 -3
  365. data/spec/lib/core_ext/string_spec.rb +1 -1
  366. data/spec/lib/errors_spec.rb +10 -10
  367. data/spec/lib/fields_spec.rb +23 -33
  368. data/spec/lib/mail_processor/base_spec.rb +41 -43
  369. data/spec/lib/mail_processor/comment_replies_spec.rb +17 -17
  370. data/spec/lib/mail_processor/dropbox_spec.rb +91 -95
  371. data/spec/lib/mail_processor/sample_emails/dropbox.rb +13 -14
  372. data/spec/lib/permissions_spec.rb +44 -47
  373. data/spec/lib/secret_token_generator_spec.rb +16 -28
  374. data/spec/lib/view_factory_spec.rb +18 -24
  375. data/spec/mailers/subscription_mailer_spec.rb +14 -16
  376. data/spec/mailers/user_mailer_spec.rb +33 -34
  377. data/spec/models/entities/account_contact_spec.rb +2 -3
  378. data/spec/models/entities/account_opportunity_spec.rb +2 -3
  379. data/spec/models/entities/account_spec.rb +52 -59
  380. data/spec/models/entities/campaign_spec.rb +32 -39
  381. data/spec/models/entities/contact_opportunity_spec.rb +2 -3
  382. data/spec/models/entities/contact_spec.rb +71 -72
  383. data/spec/models/entities/lead_spec.rb +15 -22
  384. data/spec/models/entities/opportunity_spec.rb +104 -103
  385. data/spec/models/fields/custom_field_date_pair_spec.rb +38 -44
  386. data/spec/models/fields/custom_field_pair_spec.rb +28 -36
  387. data/spec/models/fields/custom_field_spec.rb +50 -56
  388. data/spec/models/fields/field_group_spec.rb +1 -2
  389. data/spec/models/fields/field_spec.rb +13 -15
  390. data/spec/models/list_spec.rb +4 -4
  391. data/spec/models/observers/entity_observer_spec.rb +18 -21
  392. data/spec/models/polymorphic/address_spec.rb +1 -3
  393. data/spec/models/polymorphic/avatar_spec.rb +6 -8
  394. data/spec/models/polymorphic/comment_spec.rb +7 -9
  395. data/spec/models/polymorphic/email_spec.rb +1 -2
  396. data/spec/models/polymorphic/task_spec.rb +130 -142
  397. data/spec/models/polymorphic/version_spec.rb +84 -91
  398. data/spec/models/setting_spec.rb +17 -19
  399. data/spec/models/users/abilities/user_ability_spec.rb +25 -20
  400. data/spec/models/users/authentication_spec.rb +0 -1
  401. data/spec/models/users/group_spec.rb +0 -1
  402. data/spec/models/users/permission_spec.rb +12 -13
  403. data/spec/models/users/preference_spec.rb +15 -15
  404. data/spec/models/users/user_spec.rb +53 -55
  405. data/spec/routing/accounts_routing_spec.rb +12 -14
  406. data/spec/routing/admin/users_routing_spec.rb +7 -9
  407. data/spec/routing/campaigns_routing_spec.rb +13 -14
  408. data/spec/routing/comments_routing_spec.rb +5 -6
  409. data/spec/routing/contacts_routing_spec.rb +12 -14
  410. data/spec/routing/emails_routing_spec.rb +7 -8
  411. data/spec/routing/leads_routing_spec.rb +19 -21
  412. data/spec/routing/opportunities_routing_spec.rb +13 -15
  413. data/spec/routing/tasks_routing_spec.rb +14 -15
  414. data/spec/routing/users_routing_spec.rb +18 -19
  415. data/spec/shared/controllers.rb +35 -35
  416. data/spec/shared/models.rb +52 -55
  417. data/spec/spec_helper.rb +21 -42
  418. data/spec/support/assert_select.rb +19 -18
  419. data/spec/support/auth_macros.rb +3 -3
  420. data/spec/support/macros.rb +5 -6
  421. data/spec/support/mail_processor_mocks.rb +11 -11
  422. data/spec/views/accounts/_edit.haml_spec.rb +9 -9
  423. data/spec/views/accounts/_new.haml_spec.rb +8 -9
  424. data/spec/views/accounts/create.js.haml_spec.rb +11 -12
  425. data/spec/views/accounts/destroy.js.haml_spec.rb +6 -7
  426. data/spec/views/accounts/edit.js.haml_spec.rb +12 -13
  427. data/spec/views/accounts/index.haml_spec.rb +8 -8
  428. data/spec/views/accounts/index.js.haml_spec.rb +7 -8
  429. data/spec/views/accounts/new.js.haml_spec.rb +7 -8
  430. data/spec/views/accounts/show.haml_spec.rb +11 -12
  431. data/spec/views/accounts/update.js.haml_spec.rb +18 -18
  432. data/spec/views/admin/field_groups/create.js.haml_spec.rb +8 -10
  433. data/spec/views/admin/field_groups/destroy.js.haml_spec.rb +7 -9
  434. data/spec/views/admin/field_groups/edit.js.haml_spec.rb +5 -7
  435. data/spec/views/admin/field_groups/new.js.haml_spec.rb +6 -8
  436. data/spec/views/admin/field_groups/update.js.haml_spec.rb +7 -9
  437. data/spec/views/admin/users/_create.haml_spec.rb +4 -4
  438. data/spec/views/admin/users/create.js.haml_spec.rb +8 -9
  439. data/spec/views/admin/users/destroy.js.haml_spec.rb +6 -6
  440. data/spec/views/admin/users/edit.js.haml_spec.rb +7 -9
  441. data/spec/views/admin/users/index.haml_spec.rb +4 -5
  442. data/spec/views/admin/users/index.js.haml_spec.rb +6 -8
  443. data/spec/views/admin/users/new.js.haml_spec.rb +4 -6
  444. data/spec/views/admin/users/reactivate.js.haml_spec.rb +4 -4
  445. data/spec/views/admin/users/show.haml_spec.rb +0 -1
  446. data/spec/views/admin/users/suspend.js.haml_spec.rb +4 -4
  447. data/spec/views/admin/users/update.js.haml_spec.rb +6 -7
  448. data/spec/views/application/auto_complete.haml_spec.rb +12 -14
  449. data/spec/views/authentications/new.haml_spec.rb +6 -7
  450. data/spec/views/campaigns/_edit.haml_spec.rb +9 -9
  451. data/spec/views/campaigns/_new.haml_spec.rb +8 -8
  452. data/spec/views/campaigns/create.js.haml_spec.rb +11 -12
  453. data/spec/views/campaigns/destroy.js.haml_spec.rb +7 -8
  454. data/spec/views/campaigns/edit.js.haml_spec.rb +12 -20
  455. data/spec/views/campaigns/index.haml_spec.rb +6 -7
  456. data/spec/views/campaigns/index.js.haml_spec.rb +9 -10
  457. data/spec/views/campaigns/new.js.haml_spec.rb +7 -8
  458. data/spec/views/campaigns/show.haml_spec.rb +12 -13
  459. data/spec/views/campaigns/update.js.haml_spec.rb +16 -16
  460. data/spec/views/comments/edit.js.haml_spec.rb +7 -7
  461. data/spec/views/contacts/_edit.haml_spec.rb +21 -21
  462. data/spec/views/contacts/_new.haml_spec.rb +12 -13
  463. data/spec/views/contacts/create.js.haml_spec.rb +12 -13
  464. data/spec/views/contacts/destroy.js.haml_spec.rb +6 -7
  465. data/spec/views/contacts/edit.js.haml_spec.rb +15 -17
  466. data/spec/views/contacts/index.haml_spec.rb +6 -7
  467. data/spec/views/contacts/index.js.html_spec.rb +7 -8
  468. data/spec/views/contacts/new.js.haml_spec.rb +8 -9
  469. data/spec/views/contacts/show.haml_spec.rb +9 -10
  470. data/spec/views/contacts/update.js.haml_spec.rb +26 -26
  471. data/spec/views/home/index.haml_spec.rb +4 -5
  472. data/spec/views/home/index.js.haml_spec.rb +6 -7
  473. data/spec/views/home/options.js.haml_spec.rb +10 -10
  474. data/spec/views/leads/_convert.haml_spec.rb +5 -6
  475. data/spec/views/leads/_edit.haml_spec.rb +13 -13
  476. data/spec/views/leads/_new.haml_spec.rb +11 -11
  477. data/spec/views/leads/_sidebar_show.haml_spec.rb +9 -9
  478. data/spec/views/leads/convert.js.haml_spec.rb +16 -17
  479. data/spec/views/leads/create.js.haml_spec.rb +16 -17
  480. data/spec/views/leads/destroy.js.haml_spec.rb +10 -11
  481. data/spec/views/leads/edit.js.haml_spec.rb +16 -17
  482. data/spec/views/leads/index.haml_spec.rb +7 -8
  483. data/spec/views/leads/index.js.haml_spec.rb +10 -11
  484. data/spec/views/leads/new.js.haml_spec.rb +8 -9
  485. data/spec/views/leads/promote.js.haml_spec.rb +30 -31
  486. data/spec/views/leads/reject.js.haml_spec.rb +10 -11
  487. data/spec/views/leads/show.haml_spec.rb +7 -8
  488. data/spec/views/leads/update.js.haml_spec.rb +28 -29
  489. data/spec/views/opportunities/_edit.haml_spec.rb +19 -19
  490. data/spec/views/opportunities/_new.haml_spec.rb +10 -10
  491. data/spec/views/opportunities/create.js.haml_spec.rb +19 -20
  492. data/spec/views/opportunities/destroy.js.haml_spec.rb +14 -15
  493. data/spec/views/opportunities/edit.js.haml_spec.rb +14 -16
  494. data/spec/views/opportunities/index.haml_spec.rb +6 -7
  495. data/spec/views/opportunities/index.js.haml_spec.rb +7 -8
  496. data/spec/views/opportunities/new.js.haml_spec.rb +8 -9
  497. data/spec/views/opportunities/show.haml_spec.rb +9 -10
  498. data/spec/views/opportunities/update.js.haml_spec.rb +35 -35
  499. data/spec/views/tasks/_edit.haml_spec.rb +9 -9
  500. data/spec/views/tasks/complete.js.haml_spec.rb +11 -12
  501. data/spec/views/tasks/create.js.haml_spec.rb +29 -31
  502. data/spec/views/tasks/destroy.js.haml_spec.rb +8 -8
  503. data/spec/views/tasks/edit.js.haml_spec.rb +12 -15
  504. data/spec/views/tasks/index.haml_spec.rb +7 -7
  505. data/spec/views/tasks/new.js.haml_spec.rb +7 -8
  506. data/spec/views/tasks/uncomplete.js.haml_spec.rb +6 -6
  507. data/spec/views/tasks/update.js.haml_spec.rb +41 -44
  508. data/spec/views/users/avatar.js.haml_spec.rb +7 -8
  509. data/spec/views/users/change_password.js.haml_spec.rb +9 -10
  510. data/spec/views/users/edit.js.haml_spec.rb +7 -8
  511. data/spec/views/users/password.js.haml_spec.rb +8 -9
  512. data/spec/views/users/update.js.haml_spec.rb +6 -7
  513. data/spec/views/users/upload_avatar.js.haml_spec.rb +9 -9
  514. data/vendor/assets/javascripts/jquery_timeago/index.js +2 -0
  515. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.es-CL.js +18 -0
  516. data/vendor/assets/javascripts/jquery_timeago/jquery.timeago.nl.js +20 -0
  517. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery-ui-timepicker-es-CL.js +20 -0
  518. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-es-CL.js +23 -0
  519. data/vendor/assets/javascripts/jquery_ui_datepicker/jquery.ui.datepicker-nl.js +21 -0
  520. data/vendor/assets/stylesheets/{jquery-ui.custom.css → jquery-ui.custom.scss} +52 -51
  521. data/vendor/gems/globby-0.1.2/LICENSE.txt +20 -0
  522. data/vendor/gems/globby-0.1.2/README.md +65 -0
  523. data/vendor/gems/globby-0.1.2/Rakefile +9 -0
  524. data/vendor/gems/globby-0.1.2/lib/globby.rb +47 -0
  525. data/vendor/gems/globby-0.1.2/lib/globby/glob.rb +90 -0
  526. data/vendor/gems/globby-0.1.2/lib/globby/globject.rb +18 -0
  527. data/vendor/gems/globby-0.1.2/lib/globby/result.rb +20 -0
  528. data/vendor/gems/globby-0.1.2/spec/gitignore_spec.rb +109 -0
  529. data/vendor/gems/globby-0.1.2/spec/globby_spec.rb +93 -0
  530. metadata +177 -55
  531. data/Gemfile.ci +0 -13
  532. data/config/initializers/sass.rb +0 -18
  533. data/lib/country_select.rb +0 -570
  534. data/lib/fat_free_crm/plugin.rb +0 -94
data/Guardfile CHANGED
@@ -16,7 +16,6 @@ guard 'rspec', zeus: true, bundler: false, all_on_start: false, all_after_pass:
16
16
 
17
17
  # Capybara features specs
18
18
  # watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
19
-
20
19
  end
21
20
 
22
21
  guard 'rails', server: 'thin', debugger: true, zeus: true do
data/README.md CHANGED
@@ -50,18 +50,16 @@ Visit our website at http://www.fatfreecrm.com/
50
50
 
51
51
  ## Rails 4 support
52
52
 
53
- Currently, the master branch and gem releases of Fat Free CRM run on Rails 3.2 However, we are in the midst of upgrading to Rails 4.2, please see the [rails4](https://github.com/fatfreecrm/fat_free_crm/tree/rails4) branch. If you're a developer, you're welcome to check that code out, search for bugs and file them in the issue tracker using the [rails4](https://github.com/fatfreecrm/fat_free_crm/labels/rails4) label.
53
+ The master branch is now on Rails 4.2. However, there is a [Rails 3.2 branch](https://github.com/fatfreecrm/fat_free_crm/tree/rails3) available if you still need to use it. Please note that subsequent gem releases will focus on Rails 4 (v0.14.0+ as yet unreleased).
54
54
 
55
55
  ## Important security note
56
56
 
57
- Please note that several severe vulnerabilities have been fixed recently. You should upgrade to versions 0.12.3 or 0.13.2 or higher. See the [**security vulnerabilities**](https://github.com/fatfreecrm/fat_free_crm/wiki/Security) page for more details.
57
+ Please note that several severe vulnerabilities have been fixed recently. You should upgrade to the most recent 0.13.x version or higher. See the [**security vulnerabilities**](https://github.com/fatfreecrm/fat_free_crm/wiki/Security) page for more details.
58
58
 
59
59
  ## System Requirements
60
60
 
61
- * Ruby 2.1 (or 2.0) recommended (it's much faster!)
62
- * Ruby 2.2 is not officially supported, but [reported to work for MySQL users](https://github.com/fatfreecrm/fat_free_crm/issues/362)
63
- * Ruby 1.9.3 is also compatible
64
- * Ruby 1.9.2 should be compatible but is not longer supported
61
+ * Ruby 2 (2.2 recommended)
62
+ * Ruby 1.9.3 is no longer compatible (final gem release tag v0.13.6)
65
63
  * Ruby v1.8.7 was supported until v0.11.4 (see https://github.com/fatfreecrm/fat_free_crm/tree/ruby1.8)
66
64
  * MySQL v4.1.1 or later (v5+ is recommended), SQLite v3.4 or later, or Postgres 8.4.8 or later.
67
65
  * ImageMagick (optional, only needed if you would like to use avatars)
@@ -93,7 +91,7 @@ This is the best way to deploy Fat Free CRM if you need to add plugins or make a
93
91
 
94
92
  ## Upgrading from previous versions of Fat Free CRM
95
93
 
96
- Please read the [Release Notes](http://guides.fatfreecrm.com/Release-Notes.html) document for more detailed information on upgrading from previous versions.
94
+ Please read the [Release Notes](https://github.com/fatfreecrm/fat_free_crm/blob/master/CHANGELOG) document for more detailed information on upgrading from previous versions.
97
95
 
98
96
 
99
97
  ## Resources
@@ -115,7 +113,7 @@ Please read the [Release Notes](http://guides.fatfreecrm.com/Release-Notes.html)
115
113
 
116
114
  ## For Developers
117
115
 
118
- Fat Free CRM is released under the MIT license and is freely available for you to use for your own purposes. We do encourage contributions to make Fat Free CRM even better. Send us a pull-request and we'll do our best to accomodate your needs.
116
+ Fat Free CRM is released under the MIT license and is freely available for you to use for your own purposes. We do encourage contributions to make Fat Free CRM even better. Send us a pull-request and we'll do our best to accommodate your needs.
119
117
 
120
118
  Specific features that are not 'Fat Free' in nature, can be added by creating Rails Engines. See the [wiki](http://github.com/fatfreecrm/fat_free_crm/wiki) for information on how to do this.
121
119
 
@@ -152,4 +150,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
152
150
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
153
151
  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
154
152
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
155
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
153
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile CHANGED
@@ -6,4 +6,4 @@ require File.expand_path('../config/application', __FILE__)
6
6
 
7
7
  FatFreeCRM::Application.load_tasks
8
8
 
9
- task :default => ['spec']
9
+ task default: ['spec']
@@ -5,6 +5,7 @@
5
5
  //------------------------------------------------------------------------------
6
6
 
7
7
  //= require jquery
8
+ //= require jquery-migrate
8
9
  //= require jquery_ujs
9
10
  //= require jquery-ui
10
11
  //= require select2
@@ -45,11 +45,10 @@
45
45
  arrow = $("#" + id + "_arrow")
46
46
  arrow = $("#arrow") unless arrow.length
47
47
  arrow.html(@EXPANDED)
48
- $("#" + id).slideDown(
49
- 250
50
- ->
51
- $("#" + id).find(":input[type=text]:first").focus()
52
- )
48
+ $("#" + id).slideDown(250)
49
+ setTimeout ->
50
+ $("#" + id).find("input[autofocus]").focus()
51
+ 0
53
52
 
54
53
 
55
54
  #----------------------------------------------------------------------------
@@ -398,12 +397,12 @@
398
397
  $("#auto_complete_query").val ""
399
398
  else
400
399
  window.location.href = @base_url + "/" + controller + "/" + ui.item.value
401
-
400
+
402
401
  focus: (event, ui) =>
403
402
  event.preventDefault()
404
403
  $("#auto_complete_query").val(ui.item.label)
405
404
  )
406
-
405
+
407
406
  $.extend $.ui.autocomplete::,
408
407
  _renderItem: (ul, item) ->
409
408
  term = new RegExp( "(" + @element.val() + ")", "gi" )
@@ -41,9 +41,15 @@
41
41
  $('#filters').prop('disabled', false) # Enable filters panel (if present)
42
42
 
43
43
  when 'advanced_search'
44
- $("#advanced_search form input:submit").click()
44
+ $('#advanced_search form input:submit').submit()
45
45
  $('#filters').prop('disabled', true) # Disable filters panel (if present)
46
46
 
47
47
  return
48
48
 
49
+ # Update URL in browser #434
50
+ $(document).on 'click', '#advanced_search form input:submit', ->
51
+ # history.pushState(stateObj, title, url)
52
+ history.pushState("","",window.location.pathname + '?' + $('form.ransack_search').serialize())
53
+ return
54
+
49
55
  ) jQuery
@@ -0,0 +1,10 @@
1
+ #about > ul {
2
+ margin-left: 15px;
3
+ }
4
+
5
+ // Quick hack to override jquery-ui.custom.css
6
+ span.ui-button-icon-primary.ui-icon.ui-icon-closethick {
7
+ top: 0%;
8
+ left: 0%;
9
+ }
10
+
@@ -8,6 +8,7 @@
8
8
 
9
9
  /*
10
10
  *= require jquery-ui.custom
11
+ *= require jquery-ui/dialog
11
12
  *= require select2
12
13
  *= require modalbox
13
14
  *= require rails
@@ -24,6 +25,7 @@
24
25
  *= require format_buttons
25
26
  *= require font-awesome
26
27
  *= require lists
28
+ *= require about
27
29
  *= require_self
28
30
 
29
31
  */
@@ -140,7 +140,7 @@ $sidebar_width: 210px;
140
140
  margin: 5px 0px 0px 0px; }
141
141
 
142
142
  .req, label.required {
143
- background: url("/assets/asterisk.gif") no-repeat scroll center right transparent;
143
+ background: image-url("asterisk.gif") no-repeat scroll center right transparent;
144
144
  color: navy;
145
145
  display: inline-block; }
146
146
 
@@ -4,7 +4,7 @@
4
4
  # See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
5
5
  #------------------------------------------------------------------------------
6
6
  class Admin::ApplicationController < ApplicationController
7
- before_filter :require_admin_user
7
+ before_action :require_admin_user
8
8
 
9
9
  layout "admin/application"
10
10
  helper "admin/field_groups"
@@ -14,10 +14,10 @@ class Admin::ApplicationController < ApplicationController
14
14
  def auto_complete
15
15
  @query = params[:auto_complete_query]
16
16
  @auto_complete = klass.text_search(@query).limit(10)
17
- render :partial => 'auto_complete'
17
+ render partial: 'auto_complete'
18
18
  end
19
19
 
20
- private
20
+ private
21
21
 
22
22
  #----------------------------------------------------------------------------
23
23
  def require_admin_user
@@ -4,14 +4,13 @@
4
4
  # See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
5
5
  #------------------------------------------------------------------------------
6
6
  class Admin::FieldGroupsController < Admin::ApplicationController
7
-
8
7
  helper 'admin/fields'
9
8
 
10
9
  # GET /admin/field_groups/new
11
10
  # GET /admin/field_groups/new.xml AJAX
12
11
  #----------------------------------------------------------------------------
13
12
  def new
14
- @field_group = FieldGroup.new(:klass_name => params[:klass_name])
13
+ @field_group = FieldGroup.new(klass_name: params[:klass_name])
15
14
 
16
15
  respond_with(@field_group)
17
16
  end
@@ -22,7 +21,7 @@ class Admin::FieldGroupsController < Admin::ApplicationController
22
21
  @field_group = FieldGroup.find(params[:id])
23
22
 
24
23
  if params[:previous].to_s =~ /(\d+)\z/
25
- @previous = FieldGroup.find_by_id($1) || $1.to_i
24
+ @previous = FieldGroup.find_by_id(Regexp.last_match[1]) || Regexp.last_match[1].to_i
26
25
  end
27
26
 
28
27
  respond_with(@field_group)
@@ -32,7 +31,7 @@ class Admin::FieldGroupsController < Admin::ApplicationController
32
31
  # POST /admin/field_groups.xml AJAX
33
32
  #----------------------------------------------------------------------------
34
33
  def create
35
- @field_group = FieldGroup.create(params[:field_group])
34
+ @field_group = FieldGroup.create(field_group_params)
36
35
 
37
36
  respond_with(@field_group)
38
37
  end
@@ -42,7 +41,7 @@ class Admin::FieldGroupsController < Admin::ApplicationController
42
41
  #----------------------------------------------------------------------------
43
42
  def update
44
43
  @field_group = FieldGroup.find(params[:id])
45
- @field_group.update_attributes(params[:field_group])
44
+ @field_group.update_attributes(field_group_params)
46
45
 
47
46
  respond_with(@field_group)
48
47
  end
@@ -64,10 +63,10 @@ class Admin::FieldGroupsController < Admin::ApplicationController
64
63
  field_group_ids = params["#{asset}_field_groups"]
65
64
 
66
65
  field_group_ids.each_with_index do |id, index|
67
- FieldGroup.update_all({:position => index+1}, {:id => id})
66
+ FieldGroup.where(id: id).update_all(position: index + 1)
68
67
  end
69
68
 
70
- render :nothing => true
69
+ render nothing: true
71
70
  end
72
71
 
73
72
  # GET /admin/field_groups/1/confirm AJAX
@@ -75,4 +74,10 @@ class Admin::FieldGroupsController < Admin::ApplicationController
75
74
  def confirm
76
75
  @field_group = FieldGroup.find(params[:id])
77
76
  end
77
+
78
+ protected
79
+
80
+ def field_group_params
81
+ params[:field_group].permit!
82
+ end
78
83
  end
@@ -4,9 +4,9 @@
4
4
  # See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
5
5
  #------------------------------------------------------------------------------
6
6
  class Admin::FieldsController < Admin::ApplicationController
7
- before_filter "set_current_tab('admin/fields')", :only => [ :index ]
7
+ before_action "set_current_tab('admin/fields')", only: [:index]
8
8
 
9
- load_resource :except => [:create, :subform]
9
+ load_resource except: [:create, :subform]
10
10
 
11
11
  # GET /fields
12
12
  # GET /fields.xml HTML
@@ -40,30 +40,29 @@ class Admin::FieldsController < Admin::ApplicationController
40
40
  # POST /fields.xml AJAX
41
41
  #----------------------------------------------------------------------------
42
42
  def create
43
- as = params[:field][:as]
43
+ as = field_params[:as]
44
44
  @field =
45
45
  if as =~ /pair/
46
46
  CustomFieldPair.create_pair(params).first
47
47
  elsif as.present?
48
48
  klass = Field.lookup_class(as).classify.constantize
49
- klass.create(params[:field])
49
+ klass.create(field_params)
50
50
  else
51
- Field.new(params[:field]).tap(&:valid?)
51
+ Field.new(field_params).tap(&:valid?)
52
52
  end
53
53
 
54
54
  respond_with(@field)
55
-
56
55
  end
57
56
 
58
57
  # PUT /fields/1
59
58
  # PUT /fields/1.xml AJAX
60
59
  #----------------------------------------------------------------------------
61
60
  def update
62
- if (params[:field][:as] =~ /pair/)
61
+ if field_params[:as] =~ /pair/
63
62
  @field = CustomFieldPair.update_pair(params).first
64
63
  else
65
64
  @field = Field.find(params[:id])
66
- @field.update_attributes(params[:field])
65
+ @field.update_attributes(field_params)
67
66
  end
68
67
 
69
68
  respond_with(@field)
@@ -86,29 +85,34 @@ class Admin::FieldsController < Admin::ApplicationController
86
85
  field_ids = params["fields_field_group_#{field_group_id}"] || []
87
86
 
88
87
  field_ids.each_with_index do |id, index|
89
- Field.update_all({:position => index+1, :field_group_id => field_group_id}, {:id => id})
88
+ Field.where(id: id).update_all(position: index + 1, field_group_id: field_group_id)
90
89
  end
91
90
 
92
- render :nothing => true
91
+ render nothing: true
93
92
  end
94
93
 
95
94
  # GET /fields/subform
96
95
  #----------------------------------------------------------------------------
97
96
  def subform
98
- field = params[:field]
97
+ field = field_params
99
98
  as = field[:as]
100
99
 
101
100
  @field = if (id = field[:id]).present?
102
- Field.find(id).tap{|f| f.as = as}
103
- else
104
- field_group_id = field[:field_group_id]
105
- klass = Field.lookup_class(as).classify.constantize
106
- klass.new(:field_group_id => field_group_id, :as => as)
101
+ Field.find(id).tap { |f| f.as = as }
102
+ else
103
+ field_group_id = field[:field_group_id]
104
+ klass = Field.lookup_class(as).classify.constantize
105
+ klass.new(field_group_id: field_group_id, as: as)
107
106
  end
108
107
 
109
108
  respond_with(@field) do |format|
110
- format.html { render :partial => 'admin/fields/subform' }
109
+ format.html { render partial: 'admin/fields/subform' }
111
110
  end
112
111
  end
113
112
 
113
+ protected
114
+
115
+ def field_params
116
+ params[:field].permit!
117
+ end
114
118
  end
@@ -4,14 +4,14 @@
4
4
  # See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
5
5
  #------------------------------------------------------------------------------
6
6
  class Admin::GroupsController < Admin::ApplicationController
7
- before_filter "set_current_tab('admin/groups')", :only => [ :index, :show ]
7
+ before_action "set_current_tab('admin/groups')", only: [:index, :show]
8
8
 
9
9
  load_resource
10
10
 
11
11
  # GET /groups
12
12
  #----------------------------------------------------------------------------
13
13
  def index
14
- @groups = @groups.unscoped.paginate(:page => params[:page])
14
+ @groups = @groups.unscoped.paginate(page: params[:page])
15
15
  end
16
16
 
17
17
  # GET /groups/1
@@ -35,7 +35,7 @@ class Admin::GroupsController < Admin::ApplicationController
35
35
  # POST /groups
36
36
  #----------------------------------------------------------------------------
37
37
  def create
38
- @group.attributes = params[:group]
38
+ @group.attributes = group_params
39
39
  @group.save
40
40
 
41
41
  respond_with(@group)
@@ -44,7 +44,7 @@ class Admin::GroupsController < Admin::ApplicationController
44
44
  # PUT /groups/1
45
45
  #----------------------------------------------------------------------------
46
46
  def update
47
- @group.update_attributes(params[:group])
47
+ @group.update_attributes(group_params)
48
48
 
49
49
  respond_with(@group)
50
50
  end
@@ -56,4 +56,10 @@ class Admin::GroupsController < Admin::ApplicationController
56
56
 
57
57
  respond_with(@group)
58
58
  end
59
+
60
+ protected
61
+
62
+ def group_params
63
+ params[:group].permit!
64
+ end
59
65
  end
@@ -4,7 +4,7 @@
4
4
  # See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
5
5
  #------------------------------------------------------------------------------
6
6
  class Admin::PluginsController < Admin::ApplicationController
7
- before_filter "set_current_tab('admin/plugins')", :only => [ :index ]
7
+ before_action "set_current_tab('admin/plugins')", only: [:index]
8
8
 
9
9
  # GET /admin/plugins
10
10
  # GET /admin/plugins.xml
@@ -15,4 +15,3 @@ class Admin::PluginsController < Admin::ApplicationController
15
15
  respond_with(@plugins)
16
16
  end
17
17
  end
18
-
@@ -4,7 +4,7 @@
4
4
  # See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
5
5
  #------------------------------------------------------------------------------
6
6
  class Admin::SettingsController < Admin::ApplicationController
7
- before_filter "set_current_tab('admin/settings')", :only => [ :index ]
7
+ before_action "set_current_tab('admin/settings')", only: [:index]
8
8
 
9
9
  # GET /admin/settings
10
10
  # GET /admin/settings.xml
@@ -12,4 +12,3 @@ class Admin::SettingsController < Admin::ApplicationController
12
12
  def index
13
13
  end
14
14
  end
15
-
@@ -4,7 +4,7 @@
4
4
  # See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
5
5
  #------------------------------------------------------------------------------
6
6
  class Admin::TagsController < Admin::ApplicationController
7
- before_filter "set_current_tab('admin/tags')", :only => [ :index, :show ]
7
+ before_action "set_current_tab('admin/tags')", only: [:index, :show]
8
8
 
9
9
  load_resource
10
10
 
@@ -27,7 +27,7 @@ class Admin::TagsController < Admin::ApplicationController
27
27
  #----------------------------------------------------------------------------
28
28
  def edit
29
29
  if params[:previous].to_s =~ /(\d+)\z/
30
- @previous = Tag.find_by_id($1) || $1.to_i
30
+ @previous = Tag.find_by_id(Regexp.last_match[1]) || Regexp.last_match[1].to_i
31
31
  end
32
32
  end
33
33
 
@@ -35,7 +35,7 @@ class Admin::TagsController < Admin::ApplicationController
35
35
  # POST /admin/tags.xml AJAX
36
36
  #----------------------------------------------------------------------------
37
37
  def create
38
- @tag.update_attributes(params[:tag])
38
+ @tag.update_attributes(tag_params)
39
39
 
40
40
  respond_with(@tag)
41
41
  end
@@ -44,7 +44,7 @@ class Admin::TagsController < Admin::ApplicationController
44
44
  # PUT /admin/tags/1.xml AJAX
45
45
  #----------------------------------------------------------------------------
46
46
  def update
47
- @tag.update_attributes(params[:tag])
47
+ @tag.update_attributes(tag_params)
48
48
 
49
49
  respond_with(@tag)
50
50
  end
@@ -62,4 +62,10 @@ class Admin::TagsController < Admin::ApplicationController
62
62
  #----------------------------------------------------------------------------
63
63
  def confirm
64
64
  end
65
+
66
+ protected
67
+
68
+ def tag_params
69
+ params[:tag].permit!
70
+ end
65
71
  end