fat_free_crm 0.20.1 → 0.22.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +170 -0
- data/README.md +3 -6
- data/app/assets/config/fat_free_crm.js +3 -0
- data/app/assets/config/manifest.js +1 -0
- data/app/controllers/admin/field_groups_controller.rb +0 -2
- data/app/controllers/admin/tags_controller.rb +1 -1
- data/app/controllers/admin/users_controller.rb +1 -1
- data/app/controllers/application_controller.rb +11 -0
- data/app/controllers/comments_controller.rb +2 -0
- data/app/controllers/emails_controller.rb +2 -0
- data/app/controllers/entities/accounts_controller.rb +3 -1
- data/app/controllers/entities/campaigns_controller.rb +3 -1
- data/app/controllers/entities/contacts_controller.rb +3 -1
- data/app/controllers/entities/leads_controller.rb +4 -2
- data/app/controllers/entities/opportunities_controller.rb +3 -1
- data/app/controllers/entities_controller.rb +2 -0
- data/app/controllers/home_controller.rb +2 -0
- data/app/controllers/lists_controller.rb +2 -0
- data/app/controllers/tasks_controller.rb +3 -1
- data/app/controllers/users_controller.rb +2 -0
- data/app/helpers/accounts_helper.rb +2 -0
- data/app/helpers/application_helper.rb +22 -3
- data/app/helpers/tasks_helper.rb +1 -2
- data/app/models/entities/account.rb +1 -1
- data/app/models/entities/campaign.rb +1 -1
- data/app/models/entities/contact.rb +1 -1
- data/app/models/entities/lead.rb +1 -1
- data/app/models/entities/opportunity.rb +1 -1
- data/app/models/fields/custom_field.rb +2 -2
- data/app/models/observers/entity_observer.rb +1 -1
- data/app/models/polymorphic/avatar.rb +1 -30
- data/app/models/polymorphic/comment.rb +1 -1
- data/app/models/polymorphic/task.rb +1 -0
- data/app/models/setting.rb +4 -5
- data/app/models/users/user.rb +1 -1
- data/app/views/home/index.xls.builder +1 -0
- data/app/views/shared/_address.html.haml +1 -1
- data/bin/bundle +108 -2
- data/bin/rails +3 -3
- data/bin/rake +2 -2
- data/bin/setup +12 -15
- data/config/application.rb +22 -4
- data/config/boot.rb +3 -5
- data/config/cable.yml +10 -0
- data/config/database.yml +26 -0
- data/config/environment.rb +4 -3
- data/config/environments/development.rb +47 -11
- data/config/environments/production.rb +17 -15
- data/config/environments/test.rb +19 -9
- data/config/initializers/action_mailer.rb +1 -0
- data/config/initializers/content_security_policy.rb +21 -26
- data/config/initializers/custom_field_ransack_translations.rb +1 -0
- data/config/initializers/filter_parameter_logging.rb +6 -2
- data/config/initializers/inflections.rb +4 -4
- data/config/initializers/permissions_policy.rb +12 -0
- data/config/puma.rb +2 -2
- data/config/storage.yml +34 -0
- data/db/demo/field_groups.yml +2 -1
- data/db/migrate/20100928030617_drop_openid_tables.rb +2 -1
- data/db/migrate/20230526211831_create_active_storage_tables.active_storage.rb +51 -0
- data/db/migrate/20230526212613_convert_to_active_storage.rb +107 -0
- data/db/schema.rb +108 -76
- data/db/seeds/fields.rb +7 -21
- data/lib/development_tasks/license.rake +10 -10
- data/lib/fat_free_crm/callback.rb +2 -3
- data/lib/fat_free_crm/errors.rb +2 -10
- data/lib/fat_free_crm/exceptions.rb +1 -0
- data/lib/fat_free_crm/fields.rb +4 -5
- data/lib/fat_free_crm/gem_dependencies.rb +0 -1
- data/lib/fat_free_crm/i18n.rb +1 -1
- data/lib/fat_free_crm/mail_processor/dropbox.rb +1 -1
- data/lib/fat_free_crm/version.rb +3 -3
- data/public/avatars/User/2/large_rails.png +0 -0
- data/public/avatars/User/2/medium_rails.png +0 -0
- data/public/avatars/User/2/small_rails.png +0 -0
- data/public/avatars/User/2/thumb_rails.png +0 -0
- data/public/avatars/User/3/large_rails.png +0 -0
- data/public/avatars/User/3/medium_rails.png +0 -0
- data/public/avatars/User/3/original_rails.png +0 -0
- data/public/avatars/User/3/small_rails.png +0 -0
- data/public/avatars/User/3/thumb_rails.png +0 -0
- data/public/avatars/User/4/large_rails.png +0 -0
- data/public/avatars/User/4/medium_rails.png +0 -0
- data/public/avatars/User/4/original_rails.png +0 -0
- data/public/avatars/User/4/small_rails.png +0 -0
- data/public/avatars/User/4/thumb_rails.png +0 -0
- data/public/avatars/User/6/large_rails.png +0 -0
- data/public/avatars/User/6/medium_rails.png +0 -0
- data/public/avatars/User/6/original_rails.png +0 -0
- data/public/avatars/User/6/small_rails.png +0 -0
- data/public/avatars/User/6/thumb_rails.png +0 -0
- data/public/avatars/User/7/large_rails.png +0 -0
- data/public/avatars/User/7/medium_rails.png +0 -0
- data/public/avatars/User/7/original_rails.png +0 -0
- data/public/avatars/User/7/small_rails.png +0 -0
- data/public/avatars/User/7/thumb_rails.png +0 -0
- metadata +73 -288
- data/.docker/nginx/sites-enabled/ffcrm.conf +0 -8
- data/.github/workflows/brakeman-analysis.yml +0 -46
- data/.github/workflows/rubocop-analysis.yml +0 -40
- data/.github/workflows/ruby.yml +0 -52
- data/.gitignore +0 -39
- data/.rubocop.yml +0 -73
- data/.rubocop_todo.yml +0 -286
- data/.teatro.yml +0 -3
- data/.travis.yml +0 -60
- data/CONTRIBUTORS.md +0 -135
- data/Capfile +0 -27
- data/Dockerfile +0 -51
- data/Gemfile +0 -106
- data/Gemfile.lock +0 -529
- data/Guardfile +0 -26
- data/Procfile +0 -1
- data/SECURITY.md +0 -11
- data/Vagrantfile +0 -92
- data/config/initializers/new_framework_defaults_6_0.rb +0 -46
- data/custom_plan.rb +0 -11
- data/docker-compose.yml +0 -27
- data/fat_free_crm.gemspec +0 -62
- data/lib/tasks/.gitkeep +0 -0
- data/lib/tasks/.gitkeep~master +0 -0
- data/script/rails +0 -8
- data/spec/controllers/admin/groups_controller_spec.rb +0 -11
- data/spec/controllers/admin/users_controller_spec.rb +0 -251
- data/spec/controllers/applications_controller_spec.rb +0 -43
- data/spec/controllers/comments_controller_spec.rb +0 -195
- data/spec/controllers/emails_controller_spec.rb +0 -37
- data/spec/controllers/entities/accounts_controller_spec.rb +0 -607
- data/spec/controllers/entities/campaigns_controller_spec.rb +0 -645
- data/spec/controllers/entities/contacts_controller_spec.rb +0 -705
- data/spec/controllers/entities/leads_controller_spec.rb +0 -1009
- data/spec/controllers/entities/opportunities_controller_spec.rb +0 -904
- data/spec/controllers/entities_controller_spec.rb +0 -47
- data/spec/controllers/home_controller_spec.rb +0 -235
- data/spec/controllers/lists_controller_spec.rb +0 -11
- data/spec/controllers/tasks_controller_spec.rb +0 -517
- data/spec/controllers/users_controller_spec.rb +0 -375
- data/spec/factories/account_factories.rb +0 -40
- data/spec/factories/campaign_factories.rb +0 -30
- data/spec/factories/contact_factories.rb +0 -45
- data/spec/factories/field_factories.rb +0 -40
- data/spec/factories/lead_factories.rb +0 -36
- data/spec/factories/list_factories.rb +0 -13
- data/spec/factories/opportunity_factories.rb +0 -39
- data/spec/factories/sequences.rb +0 -32
- data/spec/factories/setting_factories.rb +0 -15
- data/spec/factories/shared_factories.rb +0 -70
- data/spec/factories/subscription_factories.rb +0 -13
- data/spec/factories/tag_factories.rb +0 -12
- data/spec/factories/task_factories.rb +0 -29
- data/spec/factories/user_factories.rb +0 -66
- data/spec/features/acceptance_helper.rb +0 -11
- data/spec/features/accounts_spec.rb +0 -126
- data/spec/features/admin/groups_spec.rb +0 -31
- data/spec/features/admin/users_spec.rb +0 -40
- data/spec/features/campaigns_spec.rb +0 -104
- data/spec/features/contacts_spec.rb +0 -134
- data/spec/features/dashboard_spec.rb +0 -67
- data/spec/features/devise/sign_in_spec.rb +0 -58
- data/spec/features/devise/sign_up_spec.rb +0 -36
- data/spec/features/leads_spec.rb +0 -138
- data/spec/features/opportunities_overview_spec.rb +0 -88
- data/spec/features/opportunities_spec.rb +0 -132
- data/spec/features/support/autocomlete_helper.rb +0 -17
- data/spec/features/support/browser.rb +0 -28
- data/spec/features/support/headless.rb +0 -19
- data/spec/features/support/paths.rb +0 -48
- data/spec/features/support/selector_helpers.rb +0 -36
- data/spec/features/tasks_spec.rb +0 -94
- data/spec/helpers/accounts_helper_spec.rb +0 -73
- data/spec/helpers/admin/field_groups_helper_spec.rb +0 -20
- data/spec/helpers/admin/plugins_helper_spec.rb +0 -11
- data/spec/helpers/admin/settings_helper_spec.rb +0 -11
- data/spec/helpers/admin/users_helper_spec.rb +0 -11
- data/spec/helpers/application_helper_spec.rb +0 -86
- data/spec/helpers/authentications_helper_spec.rb +0 -16
- data/spec/helpers/campaigns_helper_spec.rb +0 -16
- data/spec/helpers/comments_helper_spec.rb +0 -16
- data/spec/helpers/contacts_helper_spec.rb +0 -16
- data/spec/helpers/emails_helper_spec.rb +0 -11
- data/spec/helpers/fields_helper_spec.rb +0 -12
- data/spec/helpers/groups_helper_spec.rb +0 -21
- data/spec/helpers/home_helper_spec.rb +0 -16
- data/spec/helpers/leads_helper_spec.rb +0 -16
- data/spec/helpers/lists_helper_spec.rb +0 -21
- data/spec/helpers/opportunities_helper_spec.rb +0 -16
- data/spec/helpers/passwords_helper_spec.rb +0 -16
- data/spec/helpers/tasks_helper_spec.rb +0 -20
- data/spec/helpers/users_helper_spec.rb +0 -39
- data/spec/lib/comment_extensions_spec.rb +0 -42
- data/spec/lib/core_ext/string_spec.rb +0 -23
- data/spec/lib/errors_spec.rb +0 -32
- data/spec/lib/fields_spec.rb +0 -101
- data/spec/lib/mail_processor/base_spec.rb +0 -169
- data/spec/lib/mail_processor/comment_replies_spec.rb +0 -70
- data/spec/lib/mail_processor/dropbox_spec.rb +0 -306
- data/spec/lib/mail_processor/sample_emails/dropbox.rb +0 -173
- data/spec/lib/permissions_spec.rb +0 -155
- data/spec/lib/secret_token_generator_spec.rb +0 -69
- data/spec/lib/view_factory_spec.rb +0 -69
- data/spec/mailers/devise_mailer_spec.rb +0 -35
- data/spec/mailers/subscription_mailer_spec.rb +0 -48
- data/spec/mailers/user_mailer_spec.rb +0 -115
- data/spec/models/entities/account_contact_spec.rb +0 -34
- data/spec/models/entities/account_opportunity_spec.rb +0 -34
- data/spec/models/entities/account_spec.rb +0 -206
- data/spec/models/entities/campaign_spec.rb +0 -131
- data/spec/models/entities/contact_opportunity_spec.rb +0 -34
- data/spec/models/entities/contact_spec.rb +0 -314
- data/spec/models/entities/lead_spec.rb +0 -102
- data/spec/models/entities/opportunity_spec.rb +0 -299
- data/spec/models/fields/custom_field_date_pair_spec.rb +0 -92
- data/spec/models/fields/custom_field_pair_spec.rb +0 -76
- data/spec/models/fields/custom_field_spec.rb +0 -129
- data/spec/models/fields/field_group_spec.rb +0 -29
- data/spec/models/fields/field_spec.rb +0 -69
- data/spec/models/list_spec.rb +0 -19
- data/spec/models/observers/entity_observer_spec.rb +0 -74
- data/spec/models/polymorphic/address_spec.rb +0 -34
- data/spec/models/polymorphic/avatar_spec.rb +0 -46
- data/spec/models/polymorphic/comment_spec.rb +0 -45
- data/spec/models/polymorphic/email_spec.rb +0 -53
- data/spec/models/polymorphic/task_spec.rb +0 -395
- data/spec/models/polymorphic/version_spec.rb +0 -241
- data/spec/models/setting_spec.rb +0 -77
- data/spec/models/users/abilities/user_ability_spec.rb +0 -70
- data/spec/models/users/group_spec.rb +0 -11
- data/spec/models/users/permission_spec.rb +0 -58
- data/spec/models/users/preference_spec.rb +0 -71
- data/spec/models/users/user_spec.rb +0 -238
- data/spec/routing/accounts_routing_spec.rb +0 -60
- data/spec/routing/admin/users_routing_spec.rb +0 -40
- data/spec/routing/campaigns_routing_spec.rb +0 -64
- data/spec/routing/comments_routing_spec.rb +0 -32
- data/spec/routing/contacts_routing_spec.rb +0 -60
- data/spec/routing/emails_routing_spec.rb +0 -40
- data/spec/routing/leads_routing_spec.rb +0 -88
- data/spec/routing/opportunities_routing_spec.rb +0 -64
- data/spec/routing/tasks_routing_spec.rb +0 -68
- data/spec/routing/users_routing_spec.rb +0 -106
- data/spec/shared/controllers.rb +0 -99
- data/spec/shared/models.rb +0 -141
- data/spec/spec_helper.rb +0 -117
- data/spec/support/assert_select.rb +0 -167
- data/spec/support/devise_helpers.rb +0 -28
- data/spec/support/feature_helpers.rb +0 -32
- data/spec/support/macros.rb +0 -49
- data/spec/support/mail_processor_mocks.rb +0 -37
- data/spec/support/uploaded_file.rb +0 -10
- data/spec/views/accounts/_edit.haml_spec.rb +0 -43
- data/spec/views/accounts/_new.haml_spec.rb +0 -42
- data/spec/views/accounts/create.js.haml_spec.rb +0 -52
- data/spec/views/accounts/destroy.js.haml_spec.rb +0 -34
- data/spec/views/accounts/edit.js.haml_spec.rb +0 -66
- data/spec/views/accounts/index.haml_spec.rb +0 -43
- data/spec/views/accounts/index.js.haml_spec.rb +0 -34
- data/spec/views/accounts/new.js.haml_spec.rb +0 -44
- data/spec/views/accounts/show.haml_spec.rb +0 -38
- data/spec/views/accounts/update.js.haml_spec.rb +0 -93
- data/spec/views/admin/field_groups/create.js.haml_spec.rb +0 -30
- data/spec/views/admin/field_groups/destroy.js.haml_spec.rb +0 -31
- data/spec/views/admin/field_groups/edit.js.haml_spec.rb +0 -24
- data/spec/views/admin/field_groups/new.js.haml_spec.rb +0 -25
- data/spec/views/admin/field_groups/update.js.haml_spec.rb +0 -29
- data/spec/views/admin/users/_create.haml_spec.rb +0 -23
- data/spec/views/admin/users/create.js.haml_spec.rb +0 -41
- data/spec/views/admin/users/destroy.js.haml_spec.rb +0 -47
- data/spec/views/admin/users/edit.js.haml_spec.rb +0 -44
- data/spec/views/admin/users/index.haml_spec.rb +0 -22
- data/spec/views/admin/users/index.js.haml_spec.rb +0 -26
- data/spec/views/admin/users/new.js.haml_spec.rb +0 -34
- data/spec/views/admin/users/reactivate.js.haml_spec.rb +0 -22
- data/spec/views/admin/users/show.haml_spec.rb +0 -18
- data/spec/views/admin/users/suspend.js.haml_spec.rb +0 -22
- data/spec/views/admin/users/update.js.haml_spec.rb +0 -37
- data/spec/views/application/auto_complete.haml_spec.rb +0 -48
- data/spec/views/campaigns/_edit.haml_spec.rb +0 -44
- data/spec/views/campaigns/_new.haml_spec.rb +0 -41
- data/spec/views/campaigns/create.js.haml_spec.rb +0 -49
- data/spec/views/campaigns/destroy.js.haml_spec.rb +0 -31
- data/spec/views/campaigns/edit.js.haml_spec.rb +0 -66
- data/spec/views/campaigns/index.haml_spec.rb +0 -37
- data/spec/views/campaigns/index.js.haml_spec.rb +0 -34
- data/spec/views/campaigns/new.js.haml_spec.rb +0 -50
- data/spec/views/campaigns/show.haml_spec.rb +0 -38
- data/spec/views/campaigns/update.js.haml_spec.rb +0 -78
- data/spec/views/comments/edit.js.haml_spec.rb +0 -30
- data/spec/views/contacts/_edit.haml_spec.rb +0 -73
- data/spec/views/contacts/_new.haml_spec.rb +0 -52
- data/spec/views/contacts/create.js.haml_spec.rb +0 -65
- data/spec/views/contacts/destroy.js.haml_spec.rb +0 -45
- data/spec/views/contacts/edit.js.haml_spec.rb +0 -74
- data/spec/views/contacts/index.haml_spec.rb +0 -37
- data/spec/views/contacts/index.js.html_spec.rb +0 -34
- data/spec/views/contacts/new.js.haml_spec.rb +0 -47
- data/spec/views/contacts/show.haml_spec.rb +0 -35
- data/spec/views/contacts/update.js.haml_spec.rb +0 -128
- data/spec/views/home/index.haml_spec.rb +0 -36
- data/spec/views/home/index.js.haml_spec.rb +0 -33
- data/spec/views/home/options.js.haml_spec.rb +0 -53
- data/spec/views/leads/_convert.haml_spec.rb +0 -30
- data/spec/views/leads/_edit.haml_spec.rb +0 -47
- data/spec/views/leads/_new.haml_spec.rb +0 -45
- data/spec/views/leads/_sidebar_show.haml_spec.rb +0 -31
- data/spec/views/leads/convert.js.haml_spec.rb +0 -79
- data/spec/views/leads/create.js.haml_spec.rb +0 -67
- data/spec/views/leads/destroy.js.haml_spec.rb +0 -47
- data/spec/views/leads/edit.js.haml_spec.rb +0 -76
- data/spec/views/leads/index.haml_spec.rb +0 -37
- data/spec/views/leads/index.js.haml_spec.rb +0 -34
- data/spec/views/leads/new.js.haml_spec.rb +0 -47
- data/spec/views/leads/promote.js.haml_spec.rb +0 -135
- data/spec/views/leads/reject.js.haml_spec.rb +0 -45
- data/spec/views/leads/show.haml_spec.rb +0 -32
- data/spec/views/leads/update.js.haml_spec.rb +0 -118
- data/spec/views/opportunities/_edit.haml_spec.rb +0 -70
- data/spec/views/opportunities/_new.haml_spec.rb +0 -51
- data/spec/views/opportunities/create.js.haml_spec.rb +0 -86
- data/spec/views/opportunities/destroy.js.haml_spec.rb +0 -64
- data/spec/views/opportunities/edit.js.haml_spec.rb +0 -75
- data/spec/views/opportunities/index.haml_spec.rb +0 -38
- data/spec/views/opportunities/index.js.haml_spec.rb +0 -35
- data/spec/views/opportunities/new.js.haml_spec.rb +0 -54
- data/spec/views/opportunities/show.haml_spec.rb +0 -35
- data/spec/views/opportunities/update.js.haml_spec.rb +0 -143
- data/spec/views/tasks/_edit.haml_spec.rb +0 -50
- data/spec/views/tasks/complete.js.haml_spec.rb +0 -67
- data/spec/views/tasks/create.js.haml_spec.rb +0 -119
- data/spec/views/tasks/destroy.js.haml_spec.rb +0 -57
- data/spec/views/tasks/edit.js.haml_spec.rb +0 -76
- data/spec/views/tasks/index.haml_spec.rb +0 -46
- data/spec/views/tasks/new.js.haml_spec.rb +0 -49
- data/spec/views/tasks/uncomplete.js.haml_spec.rb +0 -45
- data/spec/views/tasks/update.js.haml_spec.rb +0 -140
- data/spec/views/users/avatar.js.haml_spec.rb +0 -35
- data/spec/views/users/change_password.js.haml_spec.rb +0 -51
- data/spec/views/users/edit.js.haml_spec.rb +0 -35
- data/spec/views/users/password.js.haml_spec.rb +0 -36
- data/spec/views/users/update.js.haml_spec.rb +0 -46
- data/spec/views/users/upload_avatar.js.haml_spec.rb +0 -45
- data/vendor/gems/globby-0.1.2/LICENSE.txt +0 -20
- data/vendor/gems/globby-0.1.2/README.md +0 -65
- data/vendor/gems/globby-0.1.2/Rakefile +0 -9
- data/vendor/gems/globby-0.1.2/lib/globby/glob.rb +0 -90
- data/vendor/gems/globby-0.1.2/lib/globby/globject.rb +0 -18
- data/vendor/gems/globby-0.1.2/lib/globby/result.rb +0 -20
- data/vendor/gems/globby-0.1.2/lib/globby.rb +0 -47
- data/vendor/gems/globby-0.1.2/spec/gitignore_spec.rb +0 -109
- data/vendor/gems/globby-0.1.2/spec/globby_spec.rb +0 -93
- data/zeus.json +0 -22
- /data/{spec/fixtures/rails.png → public/avatars/User/2/original_rails.png} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 325977901a3011b43c20379a5e03317660a3cd2b702e36ceb7aa255ec0f6ff17
|
4
|
+
data.tar.gz: 6badcc5bfcc41d304fe646a7ea07d1c4fce631b3a60efd08285752fe645e3572
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58f6a285322ca7ae834bbf2eeeaf0073a2c501f9dd71117b890c9d7a1403dd3b2e5f725e97d2b3814836f854595eb77f322e09a27a94202fb65ca7b28078cd47
|
7
|
+
data.tar.gz: 004b7dadb4c2c77e4863010b59a87dc89500142bc52fe0d90f81e71532d964b287f1bd97365bdd9460898249c0278e0ca389eba9edba1260c3410d0131302d0b
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,168 @@ It does not matter how slowly you go as long as you do not stop.
|
|
4
4
|
First they ignore you, then they laugh at you, then they fight you,
|
5
5
|
then you win. –- Mahatma Gandhi
|
6
6
|
|
7
|
+
Thu Aug 10, 2023 (0.21.0)
|
8
|
+
======
|
9
|
+
|
10
|
+
#1114 Migrate from Paperclip to Active Storage.
|
11
|
+
Upgrade to Ruby 3.1
|
12
|
+
|
13
|
+
## What's Changed
|
14
|
+
* Bump nokogiri by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/956
|
15
|
+
* Bump rails by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/957
|
16
|
+
* Bump puma by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/959
|
17
|
+
* Rubocop by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/960
|
18
|
+
* Rails 6.1 by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/954
|
19
|
+
* Bump by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/963
|
20
|
+
* Bump by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/964
|
21
|
+
* Remove globby by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/965
|
22
|
+
* Update Dockerfile Ruby Version by @doconnor-clintel in https://github.com/fatfreecrm/fat_free_crm/pull/962
|
23
|
+
* Bump rb-fsevent from 0.11.0 to 0.11.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/976
|
24
|
+
* Bump font-awesome-rails from 4.7.0.7 to 4.7.0.8 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/974
|
25
|
+
* Bump webdrivers from 4.6.1 to 4.7.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/973
|
26
|
+
* Bump capistrano from 3.16.0 to 3.17.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/969
|
27
|
+
* Bump devise-i18n from 1.10.0 to 1.10.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/968
|
28
|
+
* Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/966
|
29
|
+
* Bump ffaker from 2.19.0 to 2.21.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/970
|
30
|
+
* Bump acts-as-taggable-on from 8.1.0 to 9.0.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/972
|
31
|
+
* Bump rainbow from 3.0.0 to 3.1.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/967
|
32
|
+
* Bump brakeman from 5.1.1 to 5.2.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/979
|
33
|
+
* Bump ransack from 2.4.2 to 2.6.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/977
|
34
|
+
* Bump capybara from 3.35.3 to 3.36.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/980
|
35
|
+
* Bump rails-i18n from 6.0.0 to 7.0.3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/978
|
36
|
+
* Bump rspec-rails from 5.0.2 to 5.1.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/981
|
37
|
+
* Bump capistrano-rails from 1.6.1 to 1.6.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/983
|
38
|
+
* Bump github/codeql-action from 1 to 2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/986
|
39
|
+
* Bump rubocop from 1.22.1 to 1.28.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/989
|
40
|
+
* Bump timecop from 0.9.4 to 0.9.5 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/984
|
41
|
+
* Bump bootsnap from 1.9.1 to 1.11.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/988
|
42
|
+
* Bump devise from 4.8.0 to 4.8.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/987
|
43
|
+
* Bump selenium-webdriver from 3.142.7 to 4.1.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/982
|
44
|
+
* Bump rails by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/992
|
45
|
+
* Bump bootsnap from 1.11.1 to 1.12.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/995
|
46
|
+
* Bump capistrano-bundler from 2.0.1 to 2.1.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/994
|
47
|
+
* Bump rack from 2.2.3 to 2.2.3.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/996
|
48
|
+
* Bump sqlite3 from 1.4.2 to 1.4.4 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/998
|
49
|
+
* Bump cancancan from 3.3.0 to 3.4.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1000
|
50
|
+
* Bump rails-html-sanitizer from 1.4.2 to 1.4.3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1001
|
51
|
+
* Bump capistrano from 3.17.0 to 3.17.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1004
|
52
|
+
* Bump rb-fsevent from 0.11.1 to 0.11.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1006
|
53
|
+
* Bump puma from 5.6.4 to 5.6.5 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1005
|
54
|
+
* Bump mini_racer by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/1014
|
55
|
+
* Swap to sassc-rails by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/1013
|
56
|
+
* Bump country_select from 6.0.0 to 7.0.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/985
|
57
|
+
* Improve actions by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/1015
|
58
|
+
* Fixed issue with ActiveStorage missing storage.yml in production mode. by @steveyken in https://github.com/fatfreecrm/fat_free_crm/pull/1019
|
59
|
+
* Bump nokogiri from 1.13.8 to 1.13.10 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1020
|
60
|
+
* Bump brakeman from 5.2.2 to 5.4.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1022
|
61
|
+
* Bump bootsnap from 1.12.0 to 1.15.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1029
|
62
|
+
* Bump webdrivers from 4.7.0 to 5.2.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1021
|
63
|
+
* Bump rails-i18n from 7.0.3 to 7.0.6 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1028
|
64
|
+
* Bump rubocop from 1.28.2 to 1.40.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1025
|
65
|
+
* Bump timecop from 0.9.5 to 0.9.6 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1034
|
66
|
+
* Bump capybara from 3.36.0 to 3.38.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1033
|
67
|
+
* Bump premailer from 1.15.0 to 1.18.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1023
|
68
|
+
* Bump rspec-rails from 5.1.2 to 6.0.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1026
|
69
|
+
* Bump selenium-webdriver from 4.1.0 to 4.7.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1032
|
70
|
+
* Bump pg from 1.2.3 to 1.4.5 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1031
|
71
|
+
* Bump rails-html-sanitizer from 1.4.3 to 1.4.4 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1036
|
72
|
+
* Bump loofah from 2.19.0 to 2.19.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1035
|
73
|
+
* Bump rubocop from 1.40.0 to 1.41.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1038
|
74
|
+
* Bump puma from 5.6.5 to 6.0.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1037
|
75
|
+
* Bump rubocop from 1.41.0 to 1.42.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1042
|
76
|
+
* Bump puma from 6.0.1 to 6.0.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1041
|
77
|
+
* Bump country_select from 8.0.0 to 8.0.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1043
|
78
|
+
* Bump rack from 2.2.4 to 2.2.6.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1046
|
79
|
+
* Bump rubocop from 1.42.0 to 1.43.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1044
|
80
|
+
* Bump globalid from 1.0.0 to 1.0.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1047
|
81
|
+
* Bump nokogiri from 1.13.10 to 1.14.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1045
|
82
|
+
* Bump selenium-webdriver from 4.7.1 to 4.8.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1049
|
83
|
+
* Bump rubocop from 1.43.0 to 1.44.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1050
|
84
|
+
* Bump premailer from 1.18.0 to 1.19.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1051
|
85
|
+
* Bump rubocop from 1.44.0 to 1.44.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1053
|
86
|
+
* Bump bootsnap from 1.15.0 to 1.16.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1052
|
87
|
+
* Bump simple_form from 5.1.0 to 5.2.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1055
|
88
|
+
* Bump nokogiri from 1.14.0 to 1.14.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1056
|
89
|
+
* Bump acts_as_list from 1.0.4 to 1.1.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1057
|
90
|
+
* Bump responders from 3.0.1 to 3.1.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1058
|
91
|
+
* Bump rubocop from 1.44.1 to 1.45.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1060
|
92
|
+
* Bump puma from 6.0.2 to 6.1.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1061
|
93
|
+
* Bump nokogiri from 1.14.1 to 1.14.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1062
|
94
|
+
* Bump devise-i18n from 1.10.2 to 1.10.3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1063
|
95
|
+
* Bump devise from 4.8.1 to 4.9.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1066
|
96
|
+
* Bump brakeman from 5.4.0 to 5.4.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1069
|
97
|
+
* Bump capistrano from 3.17.1 to 3.17.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1068
|
98
|
+
* Bump devise-i18n from 1.10.3 to 1.11.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1067
|
99
|
+
* Bump pg from 1.4.5 to 1.4.6 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1071
|
100
|
+
* Bump rubocop from 1.45.1 to 1.47.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1073
|
101
|
+
* Bump puma from 6.1.0 to 6.1.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1072
|
102
|
+
* Bump rack from 2.2.6.2 to 2.2.6.3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1076
|
103
|
+
* Bump cancancan from 3.4.0 to 3.5.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1074
|
104
|
+
* Bump rubocop from 1.47.0 to 1.48.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1075
|
105
|
+
* Bump premailer from 1.19.0 to 1.20.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1077
|
106
|
+
* Bump selenium-webdriver from 4.8.0 to 4.8.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1065
|
107
|
+
* Bump database_cleaner from 2.0.1 to 2.0.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1078
|
108
|
+
* Bump rubocop from 1.48.0 to 1.48.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1079
|
109
|
+
* Bump rack from 2.2.6.3 to 2.2.6.4 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1080
|
110
|
+
* Bump premailer from 1.20.0 to 1.21.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1081
|
111
|
+
* Bump selenium-webdriver from 4.8.1 to 4.8.3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1082
|
112
|
+
* Bump puma from 6.1.1 to 6.2.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1086
|
113
|
+
* Bump devise from 4.9.0 to 4.9.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1090
|
114
|
+
* Bump capybara from 3.38.0 to 3.39.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1087
|
115
|
+
* Bump rubocop from 1.48.1 to 1.49.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1089
|
116
|
+
* Bump selenium-webdriver from 4.8.3 to 4.8.6 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1085
|
117
|
+
* Bump rubocop from 1.49.0 to 1.50.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1092
|
118
|
+
* Bump selenium-webdriver from 4.8.6 to 4.9.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1097
|
119
|
+
* Bump puma from 6.2.1 to 6.2.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1096
|
120
|
+
* Bump nokogiri from 1.14.2 to 1.14.3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1093
|
121
|
+
* Bump rubocop from 1.50.0 to 1.50.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1095
|
122
|
+
* Bump pg from 1.4.6 to 1.5.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1099
|
123
|
+
* Bump pg from 1.5.2 to 1.5.3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1100
|
124
|
+
* Bump rspec-rails from 6.0.1 to 6.0.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1101
|
125
|
+
* Bump thor from 1.2.1 to 1.2.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1104
|
126
|
+
* Bump nokogiri from 1.14.3 to 1.14.4 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1103
|
127
|
+
* Bump rubocop from 1.50.2 to 1.51.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1107
|
128
|
+
* Bump rails-i18n from 7.0.6 to 7.0.7 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1106
|
129
|
+
* Bump capybara from 3.39.0 to 3.39.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1105
|
130
|
+
* Bump nokogiri from 1.14.4 to 1.15.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1108
|
131
|
+
* Bump nokogiri from 1.15.0 to 1.15.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1110
|
132
|
+
* Bump capistrano from 3.17.2 to 3.17.3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1111
|
133
|
+
* Bump nokogiri from 1.15.1 to 1.15.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1112
|
134
|
+
* Bump mini_racer from 0.6.3 to 0.6.4 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1113
|
135
|
+
* Migrate from Paperclip (EOL) to Active Storage by @johnbumgardner in https://github.com/fatfreecrm/fat_free_crm/pull/1114
|
136
|
+
* Bump puma from 6.2.2 to 6.3.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1117
|
137
|
+
* Bump will_paginate from 3.3.1 to 4.0.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1116
|
138
|
+
* Bump rspec-rails from 6.0.2 to 6.0.3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1118
|
139
|
+
* Bump rubocop from 1.51.0 to 1.52.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1119
|
140
|
+
* Bump capybara from 3.39.1 to 3.39.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1124
|
141
|
+
* Fixes #1120 error raised when running rake db:create db:migrate the first time by @steveyken in https://github.com/fatfreecrm/fat_free_crm/pull/1121
|
142
|
+
* Bump rubocop from 1.52.0 to 1.52.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1125
|
143
|
+
* Bump jquery-rails from 4.5.1 to 4.6.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1127
|
144
|
+
* Bump rubocop from 1.52.1 to 1.53.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1128
|
145
|
+
* Bump nokogiri from 1.15.2 to 1.15.3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1132
|
146
|
+
* Bump capistrano-rails from 1.6.2 to 1.6.3 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1131
|
147
|
+
* Bump rubocop from 1.53.1 to 1.54.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1130
|
148
|
+
* Bump rails by @CloCkWeRX in https://github.com/fatfreecrm/fat_free_crm/pull/1059
|
149
|
+
* Bump rubocop from 1.54.1 to 1.54.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1133
|
150
|
+
* Bump rubocop from 1.54.2 to 1.55.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1136
|
151
|
+
* Bump country_select from 8.0.1 to 8.0.2 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1142
|
152
|
+
* Bump webdrivers from 5.2.0 to 5.3.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1141
|
153
|
+
* Bump rubocop from 1.55.0 to 1.55.1 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1140
|
154
|
+
* Support for hash arguments in i18n. Fixes #1102 by @ferrisoxide in https://github.com/fatfreecrm/fat_free_crm/pull/1144
|
155
|
+
* Bump rubocop from 1.55.1 to 1.56.0 by @dependabot in https://github.com/fatfreecrm/fat_free_crm/pull/1145
|
156
|
+
* App and specs working under Ruby 3.1.4 #1138 by @ferrisoxide in https://github.com/fatfreecrm/fat_free_crm/pull/1139
|
157
|
+
|
158
|
+
## New Contributors
|
159
|
+
* @doconnor-clintel made their first contribution in https://github.com/fatfreecrm/fat_free_crm/pull/962
|
160
|
+
* @dependabot made their first contribution in https://github.com/fatfreecrm/fat_free_crm/pull/976
|
161
|
+
* @ferrisoxide made their first contribution in https://github.com/fatfreecrm/fat_free_crm/pull/1144
|
162
|
+
|
163
|
+
**Full Changelog**: https://github.com/fatfreecrm/fat_free_crm/compare/v0.20.0...v0.21.0
|
164
|
+
|
165
|
+
Fri Oct 07, 2022 (0.20.1)
|
166
|
+
======
|
167
|
+
CVE-2022-39281
|
168
|
+
|
7
169
|
Mon Oct 04, 2021 (0.20.0)
|
8
170
|
======
|
9
171
|
#905 Swap from Marshal.load. Be sure to run `bundle exec rake ffcrm:preference_update` to migrate your users from old to new format
|
@@ -16,6 +178,14 @@ Drop ruby 2.5 support
|
|
16
178
|
|
17
179
|
Upgrade to rails 6, papertail 12, devise 4.8
|
18
180
|
|
181
|
+
A variety of minor bug fixes and security updates
|
182
|
+
|
183
|
+
#946
|
184
|
+
#947
|
185
|
+
#950
|
186
|
+
#951
|
187
|
+
#952
|
188
|
+
|
19
189
|
Wed May 09, 2021 (0.19.2)
|
20
190
|
======
|
21
191
|
CVE-2021-22885
|
data/README.md
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
# Fat Free CRM
|
1
|
+
# Fat Free CRM [![Code Climate][codeclimate-img-url]][codeclimate-url] [![Discord][discord-img-url]][discord-url]
|
2
2
|
|
3
|
-
[travis-img-url]: https://secure.travis-ci.org/fatfreecrm/fat_free_crm.svg?branch=master
|
4
|
-
[travis-ci-url]: https://travis-ci.org/fatfreecrm/fat_free_crm
|
5
3
|
[codeclimate-img-url]: https://codeclimate.com/github/fatfreecrm/fat_free_crm.svg
|
6
4
|
[codeclimate-url]: https://codeclimate.com/github/fatfreecrm/fat_free_crm
|
7
5
|
[discord-img-url]: https://img.shields.io/badge/chat-on%20discord-7289da.svg?sanitize=true
|
@@ -54,7 +52,7 @@ Visit our website at http://www.fatfreecrm.com/
|
|
54
52
|
|
55
53
|
## System Requirements
|
56
54
|
|
57
|
-
* Ruby
|
55
|
+
* Ruby 3.1+ recommended
|
58
56
|
* MySQL v4.1.1 or later (v5+ is recommended), SQLite v3.4 or later, or Postgres 8.4.8 or later.
|
59
57
|
* ImageMagick (optional, only needed if you would like to use avatars)
|
60
58
|
|
@@ -94,7 +92,6 @@ Please read the [Changelog](https://github.com/fatfreecrm/fat_free_crm/blob/mast
|
|
94
92
|
|-----------------------------------:|:--------------------------|
|
95
93
|
| **Home Page**: | http://www.fatfreecrm.com |
|
96
94
|
| **Guides**: | http://guides.fatfreecrm.com |
|
97
|
-
| **Online Demo**: | http://demo.fatfreecrm.com |
|
98
95
|
| **Github Project Page**: | http://github.com/fatfreecrm/fat_free_crm |
|
99
96
|
| **Feature Requests and Bugs**: | http://support.fatfreecrm.com/ |
|
100
97
|
| **RDoc API**: | http://api.fatfreecrm.com |
|
@@ -111,7 +108,7 @@ Fat Free CRM is released under the MIT license and is freely available for you t
|
|
111
108
|
|
112
109
|
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.
|
113
110
|
|
114
|
-
Tests can easily be run by typing 'rake' but please note that they do take a while to run!
|
111
|
+
Tests can easily be run by typing 'rake' but please note that they do take a while to run!
|
115
112
|
|
116
113
|
|
117
114
|
## Main contributors
|
@@ -0,0 +1 @@
|
|
1
|
+
//= link fat_free_crm
|
@@ -22,8 +22,6 @@ class Admin::FieldGroupsController < Admin::ApplicationController
|
|
22
22
|
def edit
|
23
23
|
@field_group = FieldGroup.find(params[:id])
|
24
24
|
|
25
|
-
@previous = FieldGroup.find_by_id(Regexp.last_match[1]) || Regexp.last_match[1].to_i if params[:previous].to_s =~ /(\d+)\z/
|
26
|
-
|
27
25
|
respond_with(@field_group)
|
28
26
|
end
|
29
27
|
|
@@ -28,7 +28,7 @@ class Admin::TagsController < Admin::ApplicationController
|
|
28
28
|
# GET /admin/tags/1/edit AJAX
|
29
29
|
#----------------------------------------------------------------------------
|
30
30
|
def edit
|
31
|
-
@previous = Tag.find_by_id(
|
31
|
+
@previous = Tag.find_by_id(detect_previous_id) || detect_previous_id if detect_previous_id
|
32
32
|
end
|
33
33
|
|
34
34
|
# POST /admin/tags
|
@@ -35,7 +35,7 @@ class Admin::UsersController < Admin::ApplicationController
|
|
35
35
|
# GET /admin/users/1/edit AJAX
|
36
36
|
#----------------------------------------------------------------------------
|
37
37
|
def edit
|
38
|
-
@previous = User.find_by_id(
|
38
|
+
@previous = User.find_by_id(detect_previous_id) || detect_previous_id if detect_previous_id
|
39
39
|
|
40
40
|
respond_with(@user)
|
41
41
|
end
|
@@ -268,4 +268,15 @@ class ApplicationController < ActionController::Base
|
|
268
268
|
raise "Unknown resource"
|
269
269
|
end
|
270
270
|
end
|
271
|
+
|
272
|
+
# In a number of places, we pass ?previous=(id) or ?previous=crm.find_form...
|
273
|
+
# This method centralises all of the places we can pass in a previous param
|
274
|
+
# and extracts an int ID, or nil
|
275
|
+
def detect_previous_id
|
276
|
+
return unless params[:previous]
|
277
|
+
return if params[:previous].start_with?("crm")
|
278
|
+
|
279
|
+
params[:previous].to_i
|
280
|
+
end
|
281
|
+
ActiveSupport.run_load_hooks(:fat_free_crm_application_controller, self)
|
271
282
|
end
|
@@ -45,7 +45,7 @@ class AccountsController < EntitiesController
|
|
45
45
|
# GET /accounts/1/edit AJAX
|
46
46
|
#----------------------------------------------------------------------------
|
47
47
|
def edit
|
48
|
-
@previous = Account.my(current_user).find_by_id(
|
48
|
+
@previous = Account.my(current_user).find_by_id(detect_previous_id) || detect_previous_id if detect_previous_id
|
49
49
|
|
50
50
|
respond_with(@account)
|
51
51
|
end
|
@@ -160,4 +160,6 @@ class AccountsController < EntitiesController
|
|
160
160
|
@account_category_total[:all] = Account.my(current_user).count
|
161
161
|
@account_category_total[:other] = @account_category_total[:all] - categorized
|
162
162
|
end
|
163
|
+
|
164
|
+
ActiveSupport.run_load_hooks(:fat_free_crm_accounts_controller, self)
|
163
165
|
end
|
@@ -84,7 +84,7 @@ class CampaignsController < EntitiesController
|
|
84
84
|
# GET /campaigns/1/edit AJAX
|
85
85
|
#----------------------------------------------------------------------------
|
86
86
|
def edit
|
87
|
-
@previous = Campaign.my(current_user).find_by_id(
|
87
|
+
@previous = Campaign.my(current_user).find_by_id(detect_previous_id) || detect_previous_id if detect_previous_id
|
88
88
|
|
89
89
|
respond_with(@campaign)
|
90
90
|
end
|
@@ -204,4 +204,6 @@ class CampaignsController < EntitiesController
|
|
204
204
|
end
|
205
205
|
@campaign_status_total[:other] += @campaign_status_total[:all]
|
206
206
|
end
|
207
|
+
|
208
|
+
ActiveSupport.run_load_hooks(:fat_free_crm_campaigns_controller, self)
|
207
209
|
end
|
@@ -51,7 +51,7 @@ class ContactsController < EntitiesController
|
|
51
51
|
#----------------------------------------------------------------------------
|
52
52
|
def edit
|
53
53
|
@account = @contact.account || Account.new(user: current_user)
|
54
|
-
@previous = Contact.my(current_user).find_by_id(
|
54
|
+
@previous = Contact.my(current_user).find_by_id(detect_previous_id) || detect_previous_id if detect_previous_id
|
55
55
|
|
56
56
|
respond_with(@contact)
|
57
57
|
end
|
@@ -164,4 +164,6 @@ class ContactsController < EntitiesController
|
|
164
164
|
redirect_to contacts_path
|
165
165
|
end
|
166
166
|
end
|
167
|
+
|
168
|
+
ActiveSupport.run_load_hooks(:fat_free_crm_contacts_controller, self)
|
167
169
|
end
|
@@ -52,7 +52,7 @@ class LeadsController < EntitiesController
|
|
52
52
|
def edit
|
53
53
|
get_campaigns
|
54
54
|
|
55
|
-
@previous = Lead.my(current_user).find_by_id(
|
55
|
+
@previous = Lead.my(current_user).find_by_id(detect_previous_id) || detect_previous_id if detect_previous_id
|
56
56
|
|
57
57
|
respond_with(@lead)
|
58
58
|
end
|
@@ -108,7 +108,7 @@ class LeadsController < EntitiesController
|
|
108
108
|
@accounts = Account.my(current_user).order('name')
|
109
109
|
@opportunity = Opportunity.new(user: current_user, access: "Lead", stage: "prospecting", campaign: @lead.campaign, source: @lead.source)
|
110
110
|
|
111
|
-
@previous = Lead.my(current_user).find_by_id(
|
111
|
+
@previous = Lead.my(current_user).find_by_id(detect_previous_id) || detect_previous_id if detect_previous_id
|
112
112
|
|
113
113
|
respond_with(@lead)
|
114
114
|
end
|
@@ -268,4 +268,6 @@ class LeadsController < EntitiesController
|
|
268
268
|
get_data_for_sidebar(:campaign)
|
269
269
|
end
|
270
270
|
end
|
271
|
+
|
272
|
+
ActiveSupport.run_load_hooks(:fat_free_crm_leads_controller, self)
|
271
273
|
end
|
@@ -57,7 +57,7 @@ class OpportunitiesController < EntitiesController
|
|
57
57
|
@account = @opportunity.account || Account.new(user: current_user)
|
58
58
|
@accounts = Account.my(current_user).order('name')
|
59
59
|
|
60
|
-
@previous = Opportunity.my(current_user).find_by_id(
|
60
|
+
@previous = Opportunity.my(current_user).find_by_id(detect_previous_id) || detect_previous_id if detect_previous_id
|
61
61
|
|
62
62
|
respond_with(@opportunity)
|
63
63
|
end
|
@@ -227,4 +227,6 @@ class OpportunitiesController < EntitiesController
|
|
227
227
|
current_user.pref[:opportunities_sort_by] = Opportunity.sort_by_map[params[:sort_by]] if params[:sort_by]
|
228
228
|
session[:opportunities_filter] = params[:stage] if params[:stage]
|
229
229
|
end
|
230
|
+
|
231
|
+
ActiveSupport.run_load_hooks(:fat_free_crm_opportunities_controller, self)
|
230
232
|
end
|
@@ -165,4 +165,6 @@ class HomeController < ApplicationController
|
|
165
165
|
%w[zero one two].index(words.first).send(words.last) if %w[one two].include?(words.first) && %w[hour day days week weeks month].include?(words.last)
|
166
166
|
end
|
167
167
|
end
|
168
|
+
|
169
|
+
ActiveSupport.run_load_hooks(:fat_free_crm_home_controller, self)
|
168
170
|
end
|
@@ -58,7 +58,7 @@ class TasksController < ApplicationController
|
|
58
58
|
@category = Setting.unroll(:task_category)
|
59
59
|
@asset = @task.asset if @task.asset_id?
|
60
60
|
|
61
|
-
@previous = Task.tracked_by(current_user).find_by_id(
|
61
|
+
@previous = Task.tracked_by(current_user).find_by_id(detect_previous_id) || detect_previous_id if detect_previous_id
|
62
62
|
|
63
63
|
respond_with(@task)
|
64
64
|
end
|
@@ -224,4 +224,6 @@ class TasksController < ApplicationController
|
|
224
224
|
views = Task::ALLOWED_VIEWS
|
225
225
|
views.include?(view) ? view : views.first
|
226
226
|
end
|
227
|
+
|
228
|
+
ActiveSupport.run_load_hooks(:fat_free_crm_tasks_controller, self)
|
227
229
|
end
|
@@ -109,11 +109,13 @@ module AccountsHelper
|
|
109
109
|
# - a helper that abstracts the logic to the backend
|
110
110
|
def display_value(value)
|
111
111
|
return "N/A" if value.zero?
|
112
|
+
|
112
113
|
number_to_currency(value, precision: 0)
|
113
114
|
end
|
114
115
|
|
115
116
|
def display_assigned(account)
|
116
117
|
return truncate(account.assignee.full_name, length: 16) if account.assigned_to
|
118
|
+
|
117
119
|
nil
|
118
120
|
end
|
119
121
|
end
|
@@ -300,18 +300,37 @@ module ApplicationHelper
|
|
300
300
|
raw "$.get('#{timezone_path}', {offset: (new Date()).getTimezoneOffset()});" unless session[:timezone_offset]
|
301
301
|
end
|
302
302
|
|
303
|
+
STYLES = { large: "75x75#", medium: "50x50#", small: "25x25#", thumb: "16x16#" }.freeze
|
304
|
+
|
305
|
+
# Convert STYLE symbols to 'w x h' format for Gravatar and Rails
|
306
|
+
# e.g. size_from_style(:size => :large) -> '75x75'
|
307
|
+
# Allow options to contain :width and :height override keys
|
308
|
+
#----------------------------------------------------------------------------
|
309
|
+
def size_from_style!(options)
|
310
|
+
if options[:width] && options[:height]
|
311
|
+
options[:size] = %i[width height].map { |d| options[d] }.join("x")
|
312
|
+
options.delete(:width)
|
313
|
+
options.delete(:height)
|
314
|
+
elsif STYLES.keys.include?(options[:size])
|
315
|
+
options[:size] = STYLES[options[:size]].sub(/\#\z/, '')
|
316
|
+
end
|
317
|
+
options
|
318
|
+
end
|
319
|
+
|
303
320
|
# Entities can have associated avatars or gravatars. Only calls Gravatar
|
304
321
|
# in production env. Gravatar won't serve default images if they are not
|
305
322
|
# publically available: https://en.gravatar.com/site/implement/images
|
306
323
|
#----------------------------------------------------------------------------
|
307
324
|
def avatar_for(model, args = {})
|
308
325
|
args = { class: 'gravatar', size: :large }.merge(args)
|
326
|
+
args = size_from_style!(args)
|
309
327
|
if model.respond_to?(:avatar) && model.avatar.present?
|
310
|
-
|
328
|
+
size = args[:size].split('x').map(&:to_i) # convert '75x75' into [75, 75]
|
329
|
+
|
330
|
+
image_tag model.avatar.image.variant(resize_to_limit: size)
|
311
331
|
else
|
312
|
-
args = Avatar.size_from_style!(args) # convert size format :large => '75x75'
|
313
332
|
gravatar_image_tag(model.email, args)
|
314
|
-
|
333
|
+
end
|
315
334
|
end
|
316
335
|
|
317
336
|
# Returns default permissions intro.
|
data/app/helpers/tasks_helper.rb
CHANGED
@@ -96,8 +96,7 @@ module TasksHelper
|
|
96
96
|
def replace_content(task, bucket = nil)
|
97
97
|
partial = task.assigned_to && task.assigned_to != current_user.id ? "assigned" : "pending"
|
98
98
|
html = render(partial: "tasks/#{partial}", collection: [task], locals: { bucket: bucket })
|
99
|
-
|
100
|
-
text
|
99
|
+
"$('##{dom_id(task)}').html('#{j html}');\n".html_safe
|
101
100
|
end
|
102
101
|
|
103
102
|
#----------------------------------------------------------------------------
|
@@ -41,7 +41,7 @@ class Account < ActiveRecord::Base
|
|
41
41
|
has_many :addresses, dependent: :destroy, as: :addressable, class_name: "Address" # advanced search uses this
|
42
42
|
has_many :emails, as: :mediator
|
43
43
|
|
44
|
-
serialize :subscribed_users,
|
44
|
+
serialize :subscribed_users, Array
|
45
45
|
|
46
46
|
accepts_nested_attributes_for :billing_address, allow_destroy: true, reject_if: proc { |attributes| Address.reject_address(attributes) }
|
47
47
|
accepts_nested_attributes_for :shipping_address, allow_destroy: true, reject_if: proc { |attributes| Address.reject_address(attributes) }
|
@@ -39,7 +39,7 @@ class Campaign < ActiveRecord::Base
|
|
39
39
|
has_many :opportunities, -> { order "id DESC" }, dependent: :destroy
|
40
40
|
has_many :emails, as: :mediator
|
41
41
|
|
42
|
-
serialize :subscribed_users,
|
42
|
+
serialize :subscribed_users, Array
|
43
43
|
|
44
44
|
scope :state, lambda { |filters|
|
45
45
|
where('status IN (?)' + (filters.delete('other') ? ' OR status IS NULL' : ''), filters)
|
@@ -57,7 +57,7 @@ class Contact < ActiveRecord::Base
|
|
57
57
|
has_ransackable_associations %w[account opportunities tags activities emails addresses comments tasks]
|
58
58
|
ransack_can_autocomplete
|
59
59
|
|
60
|
-
serialize :subscribed_users,
|
60
|
+
serialize :subscribed_users, Array
|
61
61
|
|
62
62
|
accepts_nested_attributes_for :business_address, allow_destroy: true, reject_if: proc { |attributes| Address.reject_address(attributes) }
|
63
63
|
|
data/app/models/entities/lead.rb
CHANGED
@@ -48,7 +48,7 @@ class Lead < ActiveRecord::Base
|
|
48
48
|
has_many :addresses, dependent: :destroy, as: :addressable, class_name: "Address" # advanced search uses this
|
49
49
|
has_many :emails, as: :mediator
|
50
50
|
|
51
|
-
serialize :subscribed_users,
|
51
|
+
serialize :subscribed_users, Array
|
52
52
|
|
53
53
|
accepts_nested_attributes_for :business_address, allow_destroy: true, reject_if: proc { |attributes| Address.reject_address(attributes) }
|
54
54
|
|
@@ -38,7 +38,7 @@ class Opportunity < ActiveRecord::Base
|
|
38
38
|
has_many :tasks, as: :asset, dependent: :destroy # , :order => 'created_at DESC'
|
39
39
|
has_many :emails, as: :mediator
|
40
40
|
|
41
|
-
serialize :subscribed_users,
|
41
|
+
serialize :subscribed_users, Array
|
42
42
|
|
43
43
|
scope :state, lambda { |filters|
|
44
44
|
where('stage IN (?)' + (filters.delete('other') ? ' OR stage IS NULL' : ''), filters)
|
@@ -124,7 +124,7 @@ class CustomField < Field
|
|
124
124
|
#------------------------------------------------------------------------------
|
125
125
|
def add_column
|
126
126
|
self.name = generate_column_name if name.blank?
|
127
|
-
klass.connection.add_column(table_name, name, column_type, column_options)
|
127
|
+
klass.connection.add_column(table_name, name, column_type, **column_options)
|
128
128
|
klass.reset_column_information
|
129
129
|
klass.serialize_custom_fields!
|
130
130
|
end
|
@@ -142,7 +142,7 @@ class CustomField < Field
|
|
142
142
|
#------------------------------------------------------------------------------
|
143
143
|
def update_column
|
144
144
|
if errors.empty? && db_transition_safety(as_was) == :safe
|
145
|
-
klass.connection.change_column(table_name, name, column_type, column_options)
|
145
|
+
klass.connection.change_column(table_name, name, column_type, **column_options)
|
146
146
|
klass.reset_column_information
|
147
147
|
klass.serialize_custom_fields!
|
148
148
|
end
|
@@ -19,7 +19,7 @@ class EntityObserver < ActiveRecord::Observer
|
|
19
19
|
private
|
20
20
|
|
21
21
|
def send_notification_to_assignee(item)
|
22
|
-
UserMailer.assigned_entity_notification(item, current_user).
|
22
|
+
UserMailer.assigned_entity_notification(item, current_user).deliver_later if item.assignee.present? && current_user.present? && can_send_email?
|
23
23
|
end
|
24
24
|
|
25
25
|
# Need to have a host set before email can be sent
|