fat_free_crm 0.19.2 → 0.20.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/.github/workflows/brakeman-analysis.yml +46 -0
- data/.github/workflows/rubocop-analysis.yml +40 -0
- data/.github/workflows/ruby.yml +52 -0
- data/.rubocop_todo.yml +49 -43
- data/.travis.yml +1 -20
- data/CHANGELOG.md +13 -0
- data/Gemfile +9 -5
- data/Gemfile.lock +163 -119
- data/README.md +4 -3
- data/SECURITY.md +11 -0
- data/app/assets/javascripts/application.js.erb +3 -0
- data/app/assets/stylesheets/application.css.erb +1 -0
- data/app/assets/stylesheets/base.scss +9 -2
- data/app/assets/stylesheets/bootstrap-custom.scss +206 -0
- data/app/assets/stylesheets/common.scss +87 -67
- data/app/assets/stylesheets/header.scss +0 -8
- data/app/controllers/admin/field_groups_controller.rb +1 -1
- data/app/controllers/admin/fields_controller.rb +1 -1
- data/app/controllers/admin/groups_controller.rb +1 -1
- data/app/controllers/admin/tags_controller.rb +2 -2
- data/app/controllers/admin/users_controller.rb +2 -1
- data/app/controllers/application_controller.rb +10 -0
- data/app/controllers/comments_controller.rb +1 -1
- data/app/controllers/entities/accounts_controller.rb +1 -1
- data/app/controllers/entities/campaigns_controller.rb +1 -1
- data/app/controllers/home_controller.rb +3 -1
- data/app/controllers/lists_controller.rb +1 -1
- data/app/controllers/tasks_controller.rb +3 -3
- data/app/controllers/users_controller.rb +3 -1
- data/app/helpers/accounts_helper.rb +12 -0
- data/app/helpers/application_helper.rb +3 -5
- data/app/helpers/tasks_helper.rb +2 -2
- data/app/models/entities/account.rb +1 -1
- data/app/models/entities/account_contact.rb +1 -1
- data/app/models/entities/account_opportunity.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_pair.rb +2 -2
- data/app/models/observers/opportunity_observer.rb +1 -1
- data/app/models/polymorphic/address.rb +1 -1
- data/app/models/polymorphic/comment.rb +1 -1
- data/app/models/polymorphic/email.rb +1 -1
- data/app/models/polymorphic/task.rb +1 -1
- data/app/models/setting.rb +4 -2
- data/app/models/users/preference.rb +2 -2
- data/app/models/users/user.rb +2 -2
- data/app/views/accounts/_edit.html.haml +2 -2
- data/app/views/accounts/_new.html.haml +2 -2
- data/app/views/accounts/_sidebar_index.html.haml +2 -2
- data/app/views/accounts/_sidebar_show.html.haml +19 -19
- data/app/views/accounts/create.js.haml +1 -2
- data/app/views/accounts/destroy.js.haml +1 -1
- data/app/views/accounts/show.html.haml +1 -0
- data/app/views/accounts/update.js.haml +2 -3
- data/app/views/admin/field_groups/create.js.haml +0 -1
- data/app/views/admin/field_groups/destroy.js.haml +0 -1
- data/app/views/admin/field_groups/update.js.haml +0 -1
- data/app/views/admin/fields/create.js.haml +0 -1
- data/app/views/admin/fields/destroy.js.haml +0 -1
- data/app/views/admin/fields/update.js.haml +0 -1
- data/app/views/admin/groups/create.js.haml +0 -1
- data/app/views/admin/groups/destroy.js.haml +0 -1
- data/app/views/admin/groups/update.js.haml +0 -1
- data/app/views/admin/tags/create.js.haml +0 -1
- data/app/views/admin/tags/destroy.js.haml +0 -1
- data/app/views/admin/tags/update.js.haml +0 -1
- data/app/views/admin/users/create.js.haml +0 -1
- data/app/views/admin/users/destroy.js.haml +0 -1
- data/app/views/admin/users/update.js.haml +0 -1
- data/app/views/campaigns/_edit.html.haml +1 -1
- data/app/views/campaigns/_new.html.haml +1 -1
- data/app/views/campaigns/_sidebar_index.html.haml +2 -2
- data/app/views/campaigns/_sidebar_show.html.haml +68 -67
- data/app/views/campaigns/create.js.haml +1 -2
- data/app/views/campaigns/destroy.js.haml +1 -1
- data/app/views/campaigns/show.html.haml +1 -0
- data/app/views/campaigns/update.js.haml +3 -4
- data/app/views/comments/_edit.html.haml +1 -1
- data/app/views/comments/_new.html.haml +1 -1
- data/app/views/comments/update.js.haml +0 -1
- data/app/views/contacts/_edit.html.haml +1 -1
- data/app/views/contacts/_new.html.haml +1 -1
- data/app/views/contacts/_sidebar_show.html.haml +18 -18
- data/app/views/contacts/create.js.haml +0 -1
- data/app/views/contacts/destroy.js.haml +1 -1
- data/app/views/contacts/show.html.haml +1 -0
- data/app/views/contacts/update.js.haml +2 -3
- data/app/views/entities/_title_bar.html.haml +1 -1
- data/app/views/entities/attach.js.haml +2 -2
- data/app/views/entities/discard.js.haml +2 -2
- data/app/views/home/_opportunity.html.haml +1 -1
- data/app/views/home/_task.html.haml +1 -1
- data/app/views/home/index.xls.builder +51 -0
- data/app/views/layouts/_sidebar.html.haml +2 -2
- data/app/views/layouts/_tabbed.html.haml +14 -11
- data/app/views/layouts/application.html.haml +2 -2
- data/app/views/leads/_edit.html.haml +2 -2
- data/app/views/leads/_new.html.haml +2 -2
- data/app/views/leads/_sidebar_index.html.haml +2 -2
- data/app/views/leads/_sidebar_show.html.haml +30 -30
- data/app/views/leads/create.js.haml +2 -3
- data/app/views/leads/destroy.js.haml +2 -2
- data/app/views/leads/promote.js.haml +3 -4
- data/app/views/leads/reject.js.haml +3 -3
- data/app/views/leads/show.html.haml +1 -1
- data/app/views/leads/update.js.haml +4 -5
- data/app/views/lists/create.js.haml +0 -1
- data/app/views/opportunities/_edit.html.haml +1 -1
- data/app/views/opportunities/_index_brief.html.haml +1 -1
- data/app/views/opportunities/_index_long.html.haml +1 -1
- data/app/views/opportunities/_new.html.haml +1 -1
- data/app/views/opportunities/_sidebar_index.html.haml +2 -2
- data/app/views/opportunities/_sidebar_show.html.haml +47 -46
- data/app/views/opportunities/create.js.haml +3 -4
- data/app/views/opportunities/destroy.js.haml +3 -3
- data/app/views/opportunities/show.html.haml +1 -0
- data/app/views/opportunities/update.js.haml +5 -6
- data/app/views/shared/_inline_styles.html.haml +0 -26
- data/app/views/tasks/_assigned.html.haml +1 -1
- data/app/views/tasks/_completed.html.haml +1 -1
- data/app/views/tasks/_edit.html.haml +1 -1
- data/app/views/tasks/_new.html.haml +1 -1
- data/app/views/tasks/_pending.html.haml +1 -1
- data/app/views/tasks/_related.html.haml +1 -1
- data/app/views/tasks/_selector.html.haml +7 -8
- data/app/views/tasks/_sidebar_index.html.haml +2 -2
- data/app/views/tasks/_title.html.haml +1 -1
- data/app/views/tasks/complete.js.haml +1 -1
- data/app/views/tasks/create.js.haml +1 -2
- data/app/views/tasks/destroy.js.haml +1 -1
- data/app/views/tasks/uncomplete.js.haml +1 -2
- data/app/views/tasks/update.js.haml +0 -1
- data/app/views/users/change_password.js.haml +0 -1
- data/app/views/users/update.js.haml +0 -1
- data/app/views/users/upload_avatar.js.haml +0 -1
- data/app/views/versions/_version_item.html.haml +1 -1
- data/bin/setup +6 -6
- data/config/application.rb +1 -1
- data/config/environment.rb +1 -1
- data/config/initializers/content_security_policy.rb +5 -0
- data/config/initializers/new_framework_defaults_6_0.rb +46 -0
- data/config/initializers/simple_form.rb +135 -55
- data/config/initializers/simple_form_bootstrap.rb +433 -0
- data/config/locales/fat_free_crm.cs.yml +86 -47
- data/config/locales/fat_free_crm.ru.yml +1 -0
- data/config/settings.default.yml +0 -41
- data/db/migrate/20200806004152_add_pattern_to_fields.rb +7 -0
- data/db/migrate/20200806004459_add_html5_to_fields.rb +10 -0
- data/db/schema.rb +11 -6
- data/fat_free_crm.gemspec +4 -4
- data/lib/fat_free_crm/core_ext.rb +1 -1
- data/lib/fat_free_crm/gem_ext.rb +0 -1
- data/lib/fat_free_crm/tabs.rb +2 -2
- data/lib/fat_free_crm/version.rb +2 -2
- data/lib/gravatar_image_tag.rb +1 -1
- data/lib/tasks/ffcrm/preference_update.rake +19 -0
- data/lib/tasks/ffcrm/setup.rake +1 -1
- data/lib/templates/erb/scaffold/_form.html.erb +4 -2
- data/spec/controllers/comments_controller_spec.rb +6 -6
- data/spec/controllers/home_controller_spec.rb +3 -3
- data/spec/controllers/users_controller_spec.rb +13 -1
- data/spec/factories/user_factories.rb +5 -2
- data/spec/features/acceptance_helper.rb +1 -1
- data/spec/features/accounts_spec.rb +2 -2
- data/spec/features/admin/groups_spec.rb +1 -1
- data/spec/features/admin/users_spec.rb +1 -1
- data/spec/features/campaigns_spec.rb +2 -2
- data/spec/features/contacts_spec.rb +2 -5
- data/spec/features/leads_spec.rb +11 -7
- data/spec/features/opportunities_spec.rb +4 -4
- data/spec/features/support/browser.rb +6 -2
- data/spec/features/support/selector_helpers.rb +10 -1
- data/spec/features/tasks_spec.rb +6 -6
- data/spec/helpers/accounts_helper_spec.rb +57 -0
- data/spec/models/entities/opportunity_spec.rb +2 -2
- data/spec/models/fields/custom_field_pair_spec.rb +2 -2
- data/spec/models/observers/entity_observer_spec.rb +3 -3
- data/spec/models/polymorphic/task_spec.rb +11 -11
- data/spec/models/polymorphic/version_spec.rb +2 -2
- data/spec/models/users/preference_spec.rb +1 -1
- data/spec/views/accounts/_edit.haml_spec.rb +1 -1
- data/spec/views/accounts/_new.haml_spec.rb +1 -1
- data/spec/views/accounts/create.js.haml_spec.rb +0 -1
- data/spec/views/accounts/update.js.haml_spec.rb +2 -5
- data/spec/views/admin/field_groups/create.js.haml_spec.rb +0 -1
- data/spec/views/admin/field_groups/update.js.haml_spec.rb +0 -1
- data/spec/views/admin/users/create.js.haml_spec.rb +0 -1
- data/spec/views/admin/users/destroy.js.haml_spec.rb +0 -6
- data/spec/views/admin/users/update.js.haml_spec.rb +1 -2
- data/spec/views/campaigns/_edit.haml_spec.rb +1 -1
- data/spec/views/campaigns/_new.haml_spec.rb +1 -1
- data/spec/views/campaigns/create.js.haml_spec.rb +0 -1
- data/spec/views/campaigns/destroy.js.haml_spec.rb +0 -1
- data/spec/views/campaigns/update.js.haml_spec.rb +2 -6
- data/spec/views/contacts/_edit.haml_spec.rb +1 -1
- data/spec/views/contacts/_new.haml_spec.rb +1 -1
- data/spec/views/contacts/create.js.haml_spec.rb +0 -1
- data/spec/views/contacts/update.js.haml_spec.rb +3 -7
- data/spec/views/home/index.haml_spec.rb +2 -2
- data/spec/views/leads/_edit.haml_spec.rb +1 -1
- data/spec/views/leads/_new.haml_spec.rb +1 -1
- data/spec/views/leads/create.js.haml_spec.rb +0 -3
- data/spec/views/leads/destroy.js.haml_spec.rb +0 -2
- data/spec/views/leads/promote.js.haml_spec.rb +3 -11
- data/spec/views/leads/reject.js.haml_spec.rb +0 -3
- data/spec/views/leads/update.js.haml_spec.rb +3 -11
- data/spec/views/opportunities/_edit.haml_spec.rb +1 -1
- data/spec/views/opportunities/_new.haml_spec.rb +1 -1
- data/spec/views/opportunities/create.js.haml_spec.rb +0 -2
- data/spec/views/opportunities/destroy.js.haml_spec.rb +0 -3
- data/spec/views/opportunities/update.js.haml_spec.rb +3 -11
- data/spec/views/tasks/_edit.haml_spec.rb +1 -1
- data/spec/views/tasks/complete.js.haml_spec.rb +0 -1
- data/spec/views/tasks/create.js.haml_spec.rb +0 -2
- data/spec/views/tasks/destroy.js.haml_spec.rb +0 -1
- data/spec/views/tasks/uncomplete.js.haml_spec.rb +0 -1
- data/spec/views/tasks/update.js.haml_spec.rb +1 -4
- data/spec/views/users/change_password.js.haml_spec.rb +1 -2
- data/spec/views/users/update.js.haml_spec.rb +1 -2
- data/spec/views/users/upload_avatar.js.haml_spec.rb +1 -2
- metadata +23 -14
- data/config/initializers/new_framework_defaults_5_2.rb +0 -40
- data/lib/fat_free_crm/gem_ext/simple_form/action_view_extensions/form_helper.rb +0 -24
data/Gemfile.lock
CHANGED
@@ -1,66 +1,100 @@
|
|
1
|
+
GIT
|
2
|
+
remote: https://github.com/CloCkWeRX/responds_to_parent.git
|
3
|
+
revision: fc42ea13be78b065a7975564b1828d6feaef8660
|
4
|
+
branch: patch-1
|
5
|
+
specs:
|
6
|
+
responds_to_parent (2.0.0)
|
7
|
+
actionpack (>= 3.2.22, < 6.1)
|
8
|
+
|
9
|
+
GIT
|
10
|
+
remote: https://github.com/fatfreecrm/acts_as_commentable.git
|
11
|
+
revision: eb811316ffbfc66612060822a505d64676564f57
|
12
|
+
branch: rails-6
|
13
|
+
specs:
|
14
|
+
acts_as_commentable (6.0.0)
|
15
|
+
activerecord (~> 6.0.0)
|
16
|
+
|
1
17
|
GEM
|
2
18
|
remote: https://rubygems.org/
|
3
19
|
specs:
|
4
|
-
actioncable (
|
5
|
-
actionpack (=
|
20
|
+
actioncable (6.0.4.1)
|
21
|
+
actionpack (= 6.0.4.1)
|
6
22
|
nio4r (~> 2.0)
|
7
23
|
websocket-driver (>= 0.6.1)
|
8
|
-
|
9
|
-
actionpack (=
|
10
|
-
|
11
|
-
|
24
|
+
actionmailbox (6.0.4.1)
|
25
|
+
actionpack (= 6.0.4.1)
|
26
|
+
activejob (= 6.0.4.1)
|
27
|
+
activerecord (= 6.0.4.1)
|
28
|
+
activestorage (= 6.0.4.1)
|
29
|
+
activesupport (= 6.0.4.1)
|
30
|
+
mail (>= 2.7.1)
|
31
|
+
actionmailer (6.0.4.1)
|
32
|
+
actionpack (= 6.0.4.1)
|
33
|
+
actionview (= 6.0.4.1)
|
34
|
+
activejob (= 6.0.4.1)
|
12
35
|
mail (~> 2.5, >= 2.5.4)
|
13
36
|
rails-dom-testing (~> 2.0)
|
14
|
-
actionpack (
|
15
|
-
actionview (=
|
16
|
-
activesupport (=
|
37
|
+
actionpack (6.0.4.1)
|
38
|
+
actionview (= 6.0.4.1)
|
39
|
+
activesupport (= 6.0.4.1)
|
17
40
|
rack (~> 2.0, >= 2.0.8)
|
18
41
|
rack-test (>= 0.6.3)
|
19
42
|
rails-dom-testing (~> 2.0)
|
20
|
-
rails-html-sanitizer (~> 1.0, >= 1.0
|
21
|
-
|
22
|
-
|
43
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
44
|
+
actiontext (6.0.4.1)
|
45
|
+
actionpack (= 6.0.4.1)
|
46
|
+
activerecord (= 6.0.4.1)
|
47
|
+
activestorage (= 6.0.4.1)
|
48
|
+
activesupport (= 6.0.4.1)
|
49
|
+
nokogiri (>= 1.8.5)
|
50
|
+
actionview (6.0.4.1)
|
51
|
+
activesupport (= 6.0.4.1)
|
23
52
|
builder (~> 3.1)
|
24
53
|
erubi (~> 1.4)
|
25
54
|
rails-dom-testing (~> 2.0)
|
26
|
-
rails-html-sanitizer (~> 1.
|
27
|
-
activejob (
|
28
|
-
activesupport (=
|
55
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
56
|
+
activejob (6.0.4.1)
|
57
|
+
activesupport (= 6.0.4.1)
|
29
58
|
globalid (>= 0.3.6)
|
30
|
-
activemodel (
|
31
|
-
activesupport (=
|
59
|
+
activemodel (6.0.4.1)
|
60
|
+
activesupport (= 6.0.4.1)
|
32
61
|
activemodel-serializers-xml (1.0.2)
|
33
62
|
activemodel (> 5.x)
|
34
63
|
activesupport (> 5.x)
|
35
64
|
builder (~> 3.1)
|
36
|
-
activerecord (
|
37
|
-
activemodel (=
|
38
|
-
activesupport (=
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
activerecord (=
|
65
|
+
activerecord (6.0.4.1)
|
66
|
+
activemodel (= 6.0.4.1)
|
67
|
+
activesupport (= 6.0.4.1)
|
68
|
+
activestorage (6.0.4.1)
|
69
|
+
actionpack (= 6.0.4.1)
|
70
|
+
activejob (= 6.0.4.1)
|
71
|
+
activerecord (= 6.0.4.1)
|
43
72
|
marcel (~> 1.0.0)
|
44
|
-
activesupport (
|
73
|
+
activesupport (6.0.4.1)
|
45
74
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
46
75
|
i18n (>= 0.7, < 2)
|
47
76
|
minitest (~> 5.1)
|
48
77
|
tzinfo (~> 1.1)
|
49
|
-
|
78
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
79
|
+
acts-as-taggable-on (8.1.0)
|
50
80
|
activerecord (>= 5.0, < 6.2)
|
51
|
-
|
52
|
-
acts_as_list (1.0.3)
|
81
|
+
acts_as_list (1.0.4)
|
53
82
|
activerecord (>= 4.2)
|
54
|
-
addressable (2.
|
83
|
+
addressable (2.8.0)
|
55
84
|
public_suffix (>= 2.0.2, < 5.0)
|
56
85
|
airbrussh (1.4.0)
|
57
86
|
sshkit (>= 1.6.1, != 1.7.0)
|
58
|
-
arel (9.0.0)
|
59
87
|
ast (2.4.2)
|
88
|
+
autoprefixer-rails (10.3.3.0)
|
89
|
+
execjs (~> 2)
|
60
90
|
bcrypt (3.1.16)
|
61
|
-
bootsnap (1.
|
91
|
+
bootsnap (1.9.1)
|
62
92
|
msgpack (~> 1.0)
|
63
|
-
|
93
|
+
bootstrap (5.0.0)
|
94
|
+
autoprefixer-rails (>= 9.1.0)
|
95
|
+
popper_js (>= 2.9.2, < 3)
|
96
|
+
sassc-rails (>= 2.0.0)
|
97
|
+
brakeman (5.1.1)
|
64
98
|
builder (3.2.4)
|
65
99
|
byebug (11.1.3)
|
66
100
|
cancancan (3.0.2)
|
@@ -96,24 +130,23 @@ GEM
|
|
96
130
|
coffee-script-source
|
97
131
|
execjs
|
98
132
|
coffee-script-source (1.12.2)
|
99
|
-
concurrent-ruby (1.1.
|
100
|
-
countries (
|
101
|
-
i18n_data (~> 0.
|
133
|
+
concurrent-ruby (1.1.9)
|
134
|
+
countries (4.0.1)
|
135
|
+
i18n_data (~> 0.13.0)
|
102
136
|
sixarm_ruby_unaccent (~> 1.1)
|
103
|
-
|
104
|
-
|
105
|
-
countries (~> 3.0)
|
137
|
+
country_select (6.0.0)
|
138
|
+
countries (~> 4.0)
|
106
139
|
sort_alphabetical (~> 1.1)
|
107
140
|
crass (1.0.6)
|
108
|
-
css_parser (1.
|
141
|
+
css_parser (1.10.0)
|
109
142
|
addressable
|
110
143
|
database_cleaner (2.0.1)
|
111
144
|
database_cleaner-active_record (~> 2.0.0)
|
112
|
-
database_cleaner-active_record (2.0.
|
145
|
+
database_cleaner-active_record (2.0.1)
|
113
146
|
activerecord (>= 5.a)
|
114
147
|
database_cleaner-core (~> 2.0.0)
|
115
148
|
database_cleaner-core (2.0.1)
|
116
|
-
devise (4.
|
149
|
+
devise (4.8.0)
|
117
150
|
bcrypt (~> 3.0)
|
118
151
|
orm_adapter (~> 0.1)
|
119
152
|
railties (>= 4.1.0)
|
@@ -121,32 +154,32 @@ GEM
|
|
121
154
|
warden (~> 1.2.3)
|
122
155
|
devise-encryptable (0.2.0)
|
123
156
|
devise (>= 2.1.0)
|
124
|
-
devise-i18n (1.
|
125
|
-
devise (>= 4.
|
157
|
+
devise-i18n (1.10.0)
|
158
|
+
devise (>= 4.8.0)
|
126
159
|
diff-lcs (1.4.4)
|
127
160
|
dynamic_form (1.1.4)
|
128
161
|
email_reply_parser_ffcrm (0.5.0)
|
129
162
|
erubi (1.10.0)
|
130
|
-
execjs (2.
|
163
|
+
execjs (2.8.1)
|
131
164
|
factory_bot (5.2.0)
|
132
165
|
activesupport (>= 4.2.0)
|
133
166
|
factory_bot_rails (5.2.0)
|
134
167
|
factory_bot (~> 5.2.0)
|
135
168
|
railties (>= 4.2.0)
|
136
|
-
ffaker (2.
|
137
|
-
ffi (1.15.
|
169
|
+
ffaker (2.19.0)
|
170
|
+
ffi (1.15.4)
|
138
171
|
font-awesome-rails (4.7.0.7)
|
139
172
|
railties (>= 3.2, < 7)
|
140
|
-
formatador (0.
|
141
|
-
globalid (0.
|
142
|
-
activesupport (>=
|
143
|
-
guard (2.
|
173
|
+
formatador (0.3.0)
|
174
|
+
globalid (0.5.2)
|
175
|
+
activesupport (>= 5.0)
|
176
|
+
guard (2.18.0)
|
144
177
|
formatador (>= 0.2.4)
|
145
178
|
listen (>= 2.7, < 4.0)
|
146
179
|
lumberjack (>= 1.0.12, < 2.0)
|
147
180
|
nenv (~> 0.1)
|
148
181
|
notiffany (~> 0.0)
|
149
|
-
pry (>= 0.
|
182
|
+
pry (>= 0.13.0)
|
150
183
|
shellany (~> 0.0)
|
151
184
|
thor (>= 0.18.1)
|
152
185
|
guard-compat (1.2.1)
|
@@ -157,14 +190,14 @@ GEM
|
|
157
190
|
guard (~> 2.1)
|
158
191
|
guard-compat (~> 1.1)
|
159
192
|
rspec (>= 2.99.0, < 4.0)
|
160
|
-
haml (5.2.
|
193
|
+
haml (5.2.2)
|
161
194
|
temple (>= 0.8.0)
|
162
195
|
tilt
|
163
196
|
headless (2.3.1)
|
164
197
|
htmlentities (4.3.4)
|
165
198
|
i18n (1.8.10)
|
166
199
|
concurrent-ruby (~> 1.0)
|
167
|
-
i18n_data (0.
|
200
|
+
i18n_data (0.13.0)
|
168
201
|
jaro_winkler (1.5.4)
|
169
202
|
jquery-migrate-rails (1.2.1)
|
170
203
|
jquery-rails (4.4.0)
|
@@ -173,42 +206,44 @@ GEM
|
|
173
206
|
thor (>= 0.14, < 2.0)
|
174
207
|
jquery-ui-rails (6.0.1)
|
175
208
|
railties (>= 3.2.16)
|
176
|
-
libv8 (
|
177
|
-
listen (3.
|
209
|
+
libv8-node (15.14.0.1)
|
210
|
+
listen (3.7.0)
|
178
211
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
179
212
|
rb-inotify (~> 0.9, >= 0.9.10)
|
180
|
-
loofah (2.
|
213
|
+
loofah (2.12.0)
|
181
214
|
crass (~> 1.0.2)
|
182
215
|
nokogiri (>= 1.5.9)
|
183
216
|
lumberjack (1.2.8)
|
184
217
|
mail (2.7.1)
|
185
218
|
mini_mime (>= 0.1.1)
|
186
|
-
marcel (1.0.
|
219
|
+
marcel (1.0.2)
|
187
220
|
method_source (1.0.0)
|
188
221
|
mime-types (3.3.1)
|
189
222
|
mime-types-data (~> 3.2015)
|
190
|
-
mime-types-data (3.2021.
|
223
|
+
mime-types-data (3.2021.0901)
|
191
224
|
mimemagic (0.3.10)
|
192
225
|
nokogiri (~> 1)
|
193
226
|
rake
|
194
|
-
mini_mime (1.1.
|
195
|
-
mini_portile2 (2.
|
227
|
+
mini_mime (1.1.1)
|
228
|
+
mini_portile2 (2.6.1)
|
229
|
+
mini_racer (0.4.0)
|
230
|
+
libv8-node (~> 15.14.0.0)
|
196
231
|
minitest (5.14.4)
|
197
232
|
msgpack (1.4.2)
|
198
233
|
nenv (0.3.0)
|
199
234
|
net-scp (3.0.0)
|
200
235
|
net-ssh (>= 2.6.5, < 7.0.0)
|
201
236
|
net-ssh (6.1.0)
|
202
|
-
nio4r (2.5.
|
203
|
-
nokogiri (1.
|
204
|
-
mini_portile2 (~> 2.
|
237
|
+
nio4r (2.5.8)
|
238
|
+
nokogiri (1.12.5)
|
239
|
+
mini_portile2 (~> 2.6.1)
|
205
240
|
racc (~> 1.4)
|
206
241
|
notiffany (0.1.3)
|
207
242
|
nenv (~> 0.1)
|
208
243
|
shellany (~> 0.0)
|
209
244
|
orm_adapter (0.5.0)
|
210
|
-
paper_trail (
|
211
|
-
activerecord (>=
|
245
|
+
paper_trail (12.0.0)
|
246
|
+
activerecord (>= 5.2)
|
212
247
|
request_store (~> 1.1)
|
213
248
|
paperclip (6.1.0)
|
214
249
|
activemodel (>= 4.2.0)
|
@@ -216,38 +251,41 @@ GEM
|
|
216
251
|
mime-types
|
217
252
|
mimemagic (~> 0.3.0)
|
218
253
|
terrapin (~> 0.6.0)
|
219
|
-
parallel (1.
|
220
|
-
parser (3.0.
|
254
|
+
parallel (1.21.0)
|
255
|
+
parser (3.0.2.0)
|
221
256
|
ast (~> 2.4.1)
|
222
257
|
pg (1.2.3)
|
223
|
-
|
258
|
+
popper_js (2.9.3)
|
259
|
+
premailer (1.15.0)
|
224
260
|
addressable
|
225
261
|
css_parser (>= 1.6.0)
|
226
262
|
htmlentities (>= 4.0.0)
|
227
|
-
pry (0.14.
|
263
|
+
pry (0.14.1)
|
228
264
|
coderay (~> 1.1)
|
229
265
|
method_source (~> 1.0)
|
230
266
|
pry-rails (0.3.9)
|
231
267
|
pry (>= 0.10.4)
|
232
268
|
public_suffix (4.0.6)
|
233
|
-
puma (5.
|
269
|
+
puma (5.5.0)
|
234
270
|
nio4r (~> 2.0)
|
235
271
|
racc (1.5.2)
|
236
272
|
rack (2.2.3)
|
237
273
|
rack-test (1.1.0)
|
238
274
|
rack (>= 1.0, < 3)
|
239
|
-
rails (
|
240
|
-
actioncable (=
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
275
|
+
rails (6.0.4.1)
|
276
|
+
actioncable (= 6.0.4.1)
|
277
|
+
actionmailbox (= 6.0.4.1)
|
278
|
+
actionmailer (= 6.0.4.1)
|
279
|
+
actionpack (= 6.0.4.1)
|
280
|
+
actiontext (= 6.0.4.1)
|
281
|
+
actionview (= 6.0.4.1)
|
282
|
+
activejob (= 6.0.4.1)
|
283
|
+
activemodel (= 6.0.4.1)
|
284
|
+
activerecord (= 6.0.4.1)
|
285
|
+
activestorage (= 6.0.4.1)
|
286
|
+
activesupport (= 6.0.4.1)
|
249
287
|
bundler (>= 1.3.0)
|
250
|
-
railties (=
|
288
|
+
railties (= 6.0.4.1)
|
251
289
|
sprockets-rails (>= 2.0.0)
|
252
290
|
rails-controller-testing (1.0.5)
|
253
291
|
actionpack (>= 5.0.1.rc1)
|
@@ -256,11 +294,11 @@ GEM
|
|
256
294
|
rails-dom-testing (2.0.3)
|
257
295
|
activesupport (>= 4.2.0)
|
258
296
|
nokogiri (>= 1.6)
|
259
|
-
rails-html-sanitizer (1.
|
297
|
+
rails-html-sanitizer (1.4.2)
|
260
298
|
loofah (~> 2.3)
|
261
|
-
rails-i18n (
|
299
|
+
rails-i18n (6.0.0)
|
262
300
|
i18n (>= 0.7, < 2)
|
263
|
-
railties (>=
|
301
|
+
railties (>= 6.0.0, < 7)
|
264
302
|
rails-observers (0.1.5)
|
265
303
|
activemodel (>= 4.0)
|
266
304
|
rails3-jquery-autocomplete (1.0.15)
|
@@ -272,15 +310,15 @@ GEM
|
|
272
310
|
rails (> 3.1)
|
273
311
|
rails_serve_static_assets (0.0.5)
|
274
312
|
rails_stdout_logging (0.0.5)
|
275
|
-
railties (
|
276
|
-
actionpack (=
|
277
|
-
activesupport (=
|
313
|
+
railties (6.0.4.1)
|
314
|
+
actionpack (= 6.0.4.1)
|
315
|
+
activesupport (= 6.0.4.1)
|
278
316
|
method_source
|
279
317
|
rake (>= 0.8.7)
|
280
|
-
thor (>= 0.
|
318
|
+
thor (>= 0.20.3, < 2.0)
|
281
319
|
rainbow (3.0.0)
|
282
|
-
rake (13.0.
|
283
|
-
ransack (2.4.
|
320
|
+
rake (13.0.6)
|
321
|
+
ransack (2.4.2)
|
284
322
|
activerecord (>= 5.2.4)
|
285
323
|
activesupport (>= 5.2.4)
|
286
324
|
i18n
|
@@ -291,18 +329,16 @@ GEM
|
|
291
329
|
ransack_chronic (>= 1.1.0)
|
292
330
|
rb-fchange (0.0.6)
|
293
331
|
ffi
|
294
|
-
rb-fsevent (0.
|
332
|
+
rb-fsevent (0.11.0)
|
295
333
|
rb-inotify (0.10.1)
|
296
334
|
ffi (~> 1.0)
|
297
|
-
ref (2.0.0)
|
298
335
|
regexp_parser (2.1.1)
|
299
336
|
request_store (1.5.0)
|
300
337
|
rack (>= 1.4)
|
301
|
-
responders (
|
302
|
-
actionpack (>=
|
303
|
-
railties (>=
|
304
|
-
|
305
|
-
actionpack (>= 3.2.22, < 6.0)
|
338
|
+
responders (3.0.1)
|
339
|
+
actionpack (>= 5.0)
|
340
|
+
railties (>= 5.0)
|
341
|
+
rexml (3.2.5)
|
306
342
|
rspec (3.10.0)
|
307
343
|
rspec-core (~> 3.10.0)
|
308
344
|
rspec-expectations (~> 3.10.0)
|
@@ -319,7 +355,7 @@ GEM
|
|
319
355
|
rspec-mocks (3.10.2)
|
320
356
|
diff-lcs (>= 1.2.0, < 2.0)
|
321
357
|
rspec-support (~> 3.10.0)
|
322
|
-
rspec-rails (5.0.
|
358
|
+
rspec-rails (5.0.2)
|
323
359
|
actionpack (>= 5.2)
|
324
360
|
activesupport (>= 5.2)
|
325
361
|
railties (>= 5.2)
|
@@ -328,15 +364,16 @@ GEM
|
|
328
364
|
rspec-mocks (~> 3.10)
|
329
365
|
rspec-support (~> 3.10)
|
330
366
|
rspec-support (3.10.2)
|
331
|
-
rubocop (0.
|
367
|
+
rubocop (0.82.0)
|
332
368
|
jaro_winkler (~> 1.5.1)
|
333
369
|
parallel (~> 1.10)
|
334
|
-
parser (>= 2.
|
370
|
+
parser (>= 2.7.0.1)
|
335
371
|
rainbow (>= 2.2.2, < 4.0)
|
372
|
+
rexml
|
336
373
|
ruby-progressbar (~> 1.7)
|
337
|
-
unicode-display_width (>= 1.4.0, <
|
374
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
338
375
|
ruby-progressbar (1.11.0)
|
339
|
-
rubyzip (2.3.
|
376
|
+
rubyzip (2.3.2)
|
340
377
|
sass (3.7.4)
|
341
378
|
sass-listen (~> 4.0.0)
|
342
379
|
sass-listen (4.0.0)
|
@@ -348,6 +385,14 @@ GEM
|
|
348
385
|
sprockets (>= 2.8, < 4.0)
|
349
386
|
sprockets-rails (>= 2.0, < 4.0)
|
350
387
|
tilt (>= 1.1, < 3)
|
388
|
+
sassc (2.4.0)
|
389
|
+
ffi (~> 1.9)
|
390
|
+
sassc-rails (2.1.2)
|
391
|
+
railties (>= 4.0.0)
|
392
|
+
sassc (>= 2.0)
|
393
|
+
sprockets (> 3.0)
|
394
|
+
sprockets-rails
|
395
|
+
tilt
|
351
396
|
select2-rails (4.0.13)
|
352
397
|
selenium-webdriver (3.142.7)
|
353
398
|
childprocess (>= 0.5, < 4.0)
|
@@ -366,16 +411,13 @@ GEM
|
|
366
411
|
actionpack (>= 4.0)
|
367
412
|
activesupport (>= 4.0)
|
368
413
|
sprockets (>= 3.0.0)
|
369
|
-
sqlite3 (1.
|
414
|
+
sqlite3 (1.4.2)
|
370
415
|
sshkit (1.21.2)
|
371
416
|
net-scp (>= 1.1.2)
|
372
417
|
net-ssh (>= 2.8.0)
|
373
418
|
temple (0.8.2)
|
374
419
|
terrapin (0.6.0)
|
375
420
|
climate_control (>= 0.0.3, < 1.0)
|
376
|
-
therubyracer (0.12.3)
|
377
|
-
libv8 (~> 3.16.14.15)
|
378
|
-
ref
|
379
421
|
thor (1.1.0)
|
380
422
|
thread_safe (0.3.6)
|
381
423
|
tilt (2.0.10)
|
@@ -384,20 +426,21 @@ GEM
|
|
384
426
|
thread_safe (~> 0.1)
|
385
427
|
uglifier (4.2.0)
|
386
428
|
execjs (>= 0.3.0, < 3)
|
387
|
-
unicode-display_width (1.
|
429
|
+
unicode-display_width (1.8.0)
|
388
430
|
unicode_utils (1.4.0)
|
389
431
|
warden (1.2.9)
|
390
432
|
rack (>= 2.0.9)
|
391
|
-
webdrivers (4.6.
|
433
|
+
webdrivers (4.6.1)
|
392
434
|
nokogiri (~> 1.6)
|
393
435
|
rubyzip (>= 1.3.0)
|
394
436
|
selenium-webdriver (>= 3.0, < 4.0)
|
395
|
-
websocket-driver (0.7.
|
437
|
+
websocket-driver (0.7.5)
|
396
438
|
websocket-extensions (>= 0.1.0)
|
397
439
|
websocket-extensions (0.1.5)
|
398
|
-
will_paginate (3.3.
|
440
|
+
will_paginate (3.3.1)
|
399
441
|
xpath (3.2.0)
|
400
442
|
nokogiri (~> 1.8)
|
443
|
+
zeitwerk (2.4.2)
|
401
444
|
zeus (0.15.14)
|
402
445
|
method_source (>= 0.6.7)
|
403
446
|
|
@@ -405,12 +448,13 @@ PLATFORMS
|
|
405
448
|
ruby
|
406
449
|
|
407
450
|
DEPENDENCIES
|
408
|
-
activejob
|
451
|
+
activejob
|
409
452
|
activemodel-serializers-xml
|
410
453
|
acts-as-taggable-on (>= 3.4.3)
|
411
|
-
acts_as_commentable
|
454
|
+
acts_as_commentable!
|
412
455
|
acts_as_list
|
413
456
|
bootsnap
|
457
|
+
bootstrap (= 5.0.0)
|
414
458
|
brakeman
|
415
459
|
byebug
|
416
460
|
cancancan (~> 3.0.0)
|
@@ -440,14 +484,15 @@ DEPENDENCIES
|
|
440
484
|
jquery-migrate-rails
|
441
485
|
jquery-rails
|
442
486
|
jquery-ui-rails
|
487
|
+
mini_racer
|
443
488
|
nokogiri (>= 1.8.1)
|
444
|
-
paper_trail (~>
|
489
|
+
paper_trail (~> 12.0.0)
|
445
490
|
paperclip
|
446
491
|
pg
|
447
492
|
premailer
|
448
493
|
pry-rails
|
449
494
|
puma
|
450
|
-
rails (~>
|
495
|
+
rails (~> 6.0.0)
|
451
496
|
rails-controller-testing
|
452
497
|
rails-i18n
|
453
498
|
rails-observers
|
@@ -460,19 +505,18 @@ DEPENDENCIES
|
|
460
505
|
rb-fchange
|
461
506
|
rb-fsevent
|
462
507
|
rb-inotify
|
463
|
-
responders (~>
|
464
|
-
responds_to_parent
|
508
|
+
responders (~> 3.0)
|
509
|
+
responds_to_parent!
|
465
510
|
rspec-activemodel-mocks
|
466
511
|
rspec-rails
|
467
|
-
rubocop (~> 0.
|
512
|
+
rubocop (~> 0.82.0)
|
468
513
|
sass
|
469
514
|
sass-rails (~> 5.0.3)
|
470
515
|
select2-rails
|
471
516
|
selenium-webdriver
|
472
517
|
simple_form
|
473
518
|
sprockets-rails (>= 3.0.0)
|
474
|
-
sqlite3 (~> 1.
|
475
|
-
therubyracer
|
519
|
+
sqlite3 (~> 1.4.0)
|
476
520
|
thor
|
477
521
|
timecop
|
478
522
|
tzinfo-data
|
data/README.md
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
# Fat Free CRM [![TravisCI][travis-img-url]][travis-ci-url] [![Code Climate][codeclimate-img-url]][codeclimate-url]
|
1
|
+
# Fat Free CRM [![TravisCI][travis-img-url]][travis-ci-url] [![Code Climate][codeclimate-img-url]][codeclimate-url] [![Discord][discord-img-url]][discord-url]
|
2
2
|
|
3
3
|
[travis-img-url]: https://secure.travis-ci.org/fatfreecrm/fat_free_crm.svg?branch=master
|
4
4
|
[travis-ci-url]: https://travis-ci.org/fatfreecrm/fat_free_crm
|
5
5
|
[codeclimate-img-url]: https://codeclimate.com/github/fatfreecrm/fat_free_crm.svg
|
6
6
|
[codeclimate-url]: https://codeclimate.com/github/fatfreecrm/fat_free_crm
|
7
|
-
|
7
|
+
[discord-img-url]: https://img.shields.io/badge/chat-on%20discord-7289da.svg?sanitize=true
|
8
|
+
[discord-url]: https://discord.gg/JVrzD8RYyk
|
8
9
|
### An open source, Ruby on Rails [customer relationship management][crm-wiki] platform (CRM).
|
9
10
|
|
10
11
|
[crm-wiki]: http://en.wikipedia.org/wiki/Customer_relationship_management
|
@@ -53,7 +54,7 @@ Visit our website at http://www.fatfreecrm.com/
|
|
53
54
|
|
54
55
|
## System Requirements
|
55
56
|
|
56
|
-
* Ruby 2.
|
57
|
+
* Ruby 2.6+ recommended
|
57
58
|
* MySQL v4.1.1 or later (v5+ is recommended), SQLite v3.4 or later, or Postgres 8.4.8 or later.
|
58
59
|
* ImageMagick (optional, only needed if you would like to use avatars)
|
59
60
|
|
data/SECURITY.md
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# Security Policy
|
2
|
+
|
3
|
+
## Reporting a Vulnerability
|
4
|
+
|
5
|
+
Please report issues to [security@fatfreecrm.com](mailto:security@fatfreecrm.com). We will work with you to understand the issue and how it can be fixed.
|
6
|
+
|
7
|
+
Please do not disclose the issue publicly until it has been resolved and released. We will give you credit for discovering the issue, once it has been patched and announced, but until then we ask that you consider the security implications of the issue you have found and the impact on others using an un-patched system.
|
8
|
+
|
9
|
+
## Security Advisories
|
10
|
+
|
11
|
+
When security advisories are released by the Fat Free CRM team, they will be announced on the [Fat Free CRM users](https://groups.google.com/forum/#!forum/fat-free-crm-users) google group. If you wish to receive security announcements, you should subscribe to that group.
|
@@ -4,6 +4,9 @@
|
|
4
4
|
// See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
5
|
//------------------------------------------------------------------------------
|
6
6
|
|
7
|
+
//= require popper
|
8
|
+
//= require bootstrap-sprockets
|
9
|
+
|
7
10
|
//= require jquery
|
8
11
|
//= require jquery-migrate
|
9
12
|
//= require jquery_ujs
|
@@ -26,7 +26,7 @@ html, body {
|
|
26
26
|
body, ol, ul, li, dt, tt, label, input, select, textarea {
|
27
27
|
font: {
|
28
28
|
size: 12px;
|
29
|
-
family: "
|
29
|
+
family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol" }; }
|
30
30
|
|
31
31
|
body, h1, h2, h3, h4, h5, h6, ol, ul, li {
|
32
32
|
margin: 0px;
|
@@ -43,7 +43,8 @@ ul li {
|
|
43
43
|
a {
|
44
44
|
text-decoration: none;
|
45
45
|
&:link, &:visited {
|
46
|
-
color: $color_link;
|
46
|
+
color: $color_link;
|
47
|
+
}
|
47
48
|
&:hover {
|
48
49
|
background: $color_link_hover_background;
|
49
50
|
color: $color_link_hover; }
|
@@ -53,6 +54,12 @@ a {
|
|
53
54
|
color: $color_link_image;
|
54
55
|
text-decoration: none; } }
|
55
56
|
|
57
|
+
// Bootstrap exceptions
|
58
|
+
a.btn, a.btn-sm {
|
59
|
+
color: white;
|
60
|
+
}
|
61
|
+
|
62
|
+
|
56
63
|
#options {
|
57
64
|
a {
|
58
65
|
border-bottom: 1px dotted darkcyan;
|