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.

Files changed (226) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/brakeman-analysis.yml +46 -0
  3. data/.github/workflows/rubocop-analysis.yml +40 -0
  4. data/.github/workflows/ruby.yml +52 -0
  5. data/.rubocop_todo.yml +49 -43
  6. data/.travis.yml +1 -20
  7. data/CHANGELOG.md +13 -0
  8. data/Gemfile +9 -5
  9. data/Gemfile.lock +163 -119
  10. data/README.md +4 -3
  11. data/SECURITY.md +11 -0
  12. data/app/assets/javascripts/application.js.erb +3 -0
  13. data/app/assets/stylesheets/application.css.erb +1 -0
  14. data/app/assets/stylesheets/base.scss +9 -2
  15. data/app/assets/stylesheets/bootstrap-custom.scss +206 -0
  16. data/app/assets/stylesheets/common.scss +87 -67
  17. data/app/assets/stylesheets/header.scss +0 -8
  18. data/app/controllers/admin/field_groups_controller.rb +1 -1
  19. data/app/controllers/admin/fields_controller.rb +1 -1
  20. data/app/controllers/admin/groups_controller.rb +1 -1
  21. data/app/controllers/admin/tags_controller.rb +2 -2
  22. data/app/controllers/admin/users_controller.rb +2 -1
  23. data/app/controllers/application_controller.rb +10 -0
  24. data/app/controllers/comments_controller.rb +1 -1
  25. data/app/controllers/entities/accounts_controller.rb +1 -1
  26. data/app/controllers/entities/campaigns_controller.rb +1 -1
  27. data/app/controllers/home_controller.rb +3 -1
  28. data/app/controllers/lists_controller.rb +1 -1
  29. data/app/controllers/tasks_controller.rb +3 -3
  30. data/app/controllers/users_controller.rb +3 -1
  31. data/app/helpers/accounts_helper.rb +12 -0
  32. data/app/helpers/application_helper.rb +3 -5
  33. data/app/helpers/tasks_helper.rb +2 -2
  34. data/app/models/entities/account.rb +1 -1
  35. data/app/models/entities/account_contact.rb +1 -1
  36. data/app/models/entities/account_opportunity.rb +1 -1
  37. data/app/models/entities/campaign.rb +1 -1
  38. data/app/models/entities/contact.rb +1 -1
  39. data/app/models/entities/lead.rb +1 -1
  40. data/app/models/entities/opportunity.rb +1 -1
  41. data/app/models/fields/custom_field_pair.rb +2 -2
  42. data/app/models/observers/opportunity_observer.rb +1 -1
  43. data/app/models/polymorphic/address.rb +1 -1
  44. data/app/models/polymorphic/comment.rb +1 -1
  45. data/app/models/polymorphic/email.rb +1 -1
  46. data/app/models/polymorphic/task.rb +1 -1
  47. data/app/models/setting.rb +4 -2
  48. data/app/models/users/preference.rb +2 -2
  49. data/app/models/users/user.rb +2 -2
  50. data/app/views/accounts/_edit.html.haml +2 -2
  51. data/app/views/accounts/_new.html.haml +2 -2
  52. data/app/views/accounts/_sidebar_index.html.haml +2 -2
  53. data/app/views/accounts/_sidebar_show.html.haml +19 -19
  54. data/app/views/accounts/create.js.haml +1 -2
  55. data/app/views/accounts/destroy.js.haml +1 -1
  56. data/app/views/accounts/show.html.haml +1 -0
  57. data/app/views/accounts/update.js.haml +2 -3
  58. data/app/views/admin/field_groups/create.js.haml +0 -1
  59. data/app/views/admin/field_groups/destroy.js.haml +0 -1
  60. data/app/views/admin/field_groups/update.js.haml +0 -1
  61. data/app/views/admin/fields/create.js.haml +0 -1
  62. data/app/views/admin/fields/destroy.js.haml +0 -1
  63. data/app/views/admin/fields/update.js.haml +0 -1
  64. data/app/views/admin/groups/create.js.haml +0 -1
  65. data/app/views/admin/groups/destroy.js.haml +0 -1
  66. data/app/views/admin/groups/update.js.haml +0 -1
  67. data/app/views/admin/tags/create.js.haml +0 -1
  68. data/app/views/admin/tags/destroy.js.haml +0 -1
  69. data/app/views/admin/tags/update.js.haml +0 -1
  70. data/app/views/admin/users/create.js.haml +0 -1
  71. data/app/views/admin/users/destroy.js.haml +0 -1
  72. data/app/views/admin/users/update.js.haml +0 -1
  73. data/app/views/campaigns/_edit.html.haml +1 -1
  74. data/app/views/campaigns/_new.html.haml +1 -1
  75. data/app/views/campaigns/_sidebar_index.html.haml +2 -2
  76. data/app/views/campaigns/_sidebar_show.html.haml +68 -67
  77. data/app/views/campaigns/create.js.haml +1 -2
  78. data/app/views/campaigns/destroy.js.haml +1 -1
  79. data/app/views/campaigns/show.html.haml +1 -0
  80. data/app/views/campaigns/update.js.haml +3 -4
  81. data/app/views/comments/_edit.html.haml +1 -1
  82. data/app/views/comments/_new.html.haml +1 -1
  83. data/app/views/comments/update.js.haml +0 -1
  84. data/app/views/contacts/_edit.html.haml +1 -1
  85. data/app/views/contacts/_new.html.haml +1 -1
  86. data/app/views/contacts/_sidebar_show.html.haml +18 -18
  87. data/app/views/contacts/create.js.haml +0 -1
  88. data/app/views/contacts/destroy.js.haml +1 -1
  89. data/app/views/contacts/show.html.haml +1 -0
  90. data/app/views/contacts/update.js.haml +2 -3
  91. data/app/views/entities/_title_bar.html.haml +1 -1
  92. data/app/views/entities/attach.js.haml +2 -2
  93. data/app/views/entities/discard.js.haml +2 -2
  94. data/app/views/home/_opportunity.html.haml +1 -1
  95. data/app/views/home/_task.html.haml +1 -1
  96. data/app/views/home/index.xls.builder +51 -0
  97. data/app/views/layouts/_sidebar.html.haml +2 -2
  98. data/app/views/layouts/_tabbed.html.haml +14 -11
  99. data/app/views/layouts/application.html.haml +2 -2
  100. data/app/views/leads/_edit.html.haml +2 -2
  101. data/app/views/leads/_new.html.haml +2 -2
  102. data/app/views/leads/_sidebar_index.html.haml +2 -2
  103. data/app/views/leads/_sidebar_show.html.haml +30 -30
  104. data/app/views/leads/create.js.haml +2 -3
  105. data/app/views/leads/destroy.js.haml +2 -2
  106. data/app/views/leads/promote.js.haml +3 -4
  107. data/app/views/leads/reject.js.haml +3 -3
  108. data/app/views/leads/show.html.haml +1 -1
  109. data/app/views/leads/update.js.haml +4 -5
  110. data/app/views/lists/create.js.haml +0 -1
  111. data/app/views/opportunities/_edit.html.haml +1 -1
  112. data/app/views/opportunities/_index_brief.html.haml +1 -1
  113. data/app/views/opportunities/_index_long.html.haml +1 -1
  114. data/app/views/opportunities/_new.html.haml +1 -1
  115. data/app/views/opportunities/_sidebar_index.html.haml +2 -2
  116. data/app/views/opportunities/_sidebar_show.html.haml +47 -46
  117. data/app/views/opportunities/create.js.haml +3 -4
  118. data/app/views/opportunities/destroy.js.haml +3 -3
  119. data/app/views/opportunities/show.html.haml +1 -0
  120. data/app/views/opportunities/update.js.haml +5 -6
  121. data/app/views/shared/_inline_styles.html.haml +0 -26
  122. data/app/views/tasks/_assigned.html.haml +1 -1
  123. data/app/views/tasks/_completed.html.haml +1 -1
  124. data/app/views/tasks/_edit.html.haml +1 -1
  125. data/app/views/tasks/_new.html.haml +1 -1
  126. data/app/views/tasks/_pending.html.haml +1 -1
  127. data/app/views/tasks/_related.html.haml +1 -1
  128. data/app/views/tasks/_selector.html.haml +7 -8
  129. data/app/views/tasks/_sidebar_index.html.haml +2 -2
  130. data/app/views/tasks/_title.html.haml +1 -1
  131. data/app/views/tasks/complete.js.haml +1 -1
  132. data/app/views/tasks/create.js.haml +1 -2
  133. data/app/views/tasks/destroy.js.haml +1 -1
  134. data/app/views/tasks/uncomplete.js.haml +1 -2
  135. data/app/views/tasks/update.js.haml +0 -1
  136. data/app/views/users/change_password.js.haml +0 -1
  137. data/app/views/users/update.js.haml +0 -1
  138. data/app/views/users/upload_avatar.js.haml +0 -1
  139. data/app/views/versions/_version_item.html.haml +1 -1
  140. data/bin/setup +6 -6
  141. data/config/application.rb +1 -1
  142. data/config/environment.rb +1 -1
  143. data/config/initializers/content_security_policy.rb +5 -0
  144. data/config/initializers/new_framework_defaults_6_0.rb +46 -0
  145. data/config/initializers/simple_form.rb +135 -55
  146. data/config/initializers/simple_form_bootstrap.rb +433 -0
  147. data/config/locales/fat_free_crm.cs.yml +86 -47
  148. data/config/locales/fat_free_crm.ru.yml +1 -0
  149. data/config/settings.default.yml +0 -41
  150. data/db/migrate/20200806004152_add_pattern_to_fields.rb +7 -0
  151. data/db/migrate/20200806004459_add_html5_to_fields.rb +10 -0
  152. data/db/schema.rb +11 -6
  153. data/fat_free_crm.gemspec +4 -4
  154. data/lib/fat_free_crm/core_ext.rb +1 -1
  155. data/lib/fat_free_crm/gem_ext.rb +0 -1
  156. data/lib/fat_free_crm/tabs.rb +2 -2
  157. data/lib/fat_free_crm/version.rb +2 -2
  158. data/lib/gravatar_image_tag.rb +1 -1
  159. data/lib/tasks/ffcrm/preference_update.rake +19 -0
  160. data/lib/tasks/ffcrm/setup.rake +1 -1
  161. data/lib/templates/erb/scaffold/_form.html.erb +4 -2
  162. data/spec/controllers/comments_controller_spec.rb +6 -6
  163. data/spec/controllers/home_controller_spec.rb +3 -3
  164. data/spec/controllers/users_controller_spec.rb +13 -1
  165. data/spec/factories/user_factories.rb +5 -2
  166. data/spec/features/acceptance_helper.rb +1 -1
  167. data/spec/features/accounts_spec.rb +2 -2
  168. data/spec/features/admin/groups_spec.rb +1 -1
  169. data/spec/features/admin/users_spec.rb +1 -1
  170. data/spec/features/campaigns_spec.rb +2 -2
  171. data/spec/features/contacts_spec.rb +2 -5
  172. data/spec/features/leads_spec.rb +11 -7
  173. data/spec/features/opportunities_spec.rb +4 -4
  174. data/spec/features/support/browser.rb +6 -2
  175. data/spec/features/support/selector_helpers.rb +10 -1
  176. data/spec/features/tasks_spec.rb +6 -6
  177. data/spec/helpers/accounts_helper_spec.rb +57 -0
  178. data/spec/models/entities/opportunity_spec.rb +2 -2
  179. data/spec/models/fields/custom_field_pair_spec.rb +2 -2
  180. data/spec/models/observers/entity_observer_spec.rb +3 -3
  181. data/spec/models/polymorphic/task_spec.rb +11 -11
  182. data/spec/models/polymorphic/version_spec.rb +2 -2
  183. data/spec/models/users/preference_spec.rb +1 -1
  184. data/spec/views/accounts/_edit.haml_spec.rb +1 -1
  185. data/spec/views/accounts/_new.haml_spec.rb +1 -1
  186. data/spec/views/accounts/create.js.haml_spec.rb +0 -1
  187. data/spec/views/accounts/update.js.haml_spec.rb +2 -5
  188. data/spec/views/admin/field_groups/create.js.haml_spec.rb +0 -1
  189. data/spec/views/admin/field_groups/update.js.haml_spec.rb +0 -1
  190. data/spec/views/admin/users/create.js.haml_spec.rb +0 -1
  191. data/spec/views/admin/users/destroy.js.haml_spec.rb +0 -6
  192. data/spec/views/admin/users/update.js.haml_spec.rb +1 -2
  193. data/spec/views/campaigns/_edit.haml_spec.rb +1 -1
  194. data/spec/views/campaigns/_new.haml_spec.rb +1 -1
  195. data/spec/views/campaigns/create.js.haml_spec.rb +0 -1
  196. data/spec/views/campaigns/destroy.js.haml_spec.rb +0 -1
  197. data/spec/views/campaigns/update.js.haml_spec.rb +2 -6
  198. data/spec/views/contacts/_edit.haml_spec.rb +1 -1
  199. data/spec/views/contacts/_new.haml_spec.rb +1 -1
  200. data/spec/views/contacts/create.js.haml_spec.rb +0 -1
  201. data/spec/views/contacts/update.js.haml_spec.rb +3 -7
  202. data/spec/views/home/index.haml_spec.rb +2 -2
  203. data/spec/views/leads/_edit.haml_spec.rb +1 -1
  204. data/spec/views/leads/_new.haml_spec.rb +1 -1
  205. data/spec/views/leads/create.js.haml_spec.rb +0 -3
  206. data/spec/views/leads/destroy.js.haml_spec.rb +0 -2
  207. data/spec/views/leads/promote.js.haml_spec.rb +3 -11
  208. data/spec/views/leads/reject.js.haml_spec.rb +0 -3
  209. data/spec/views/leads/update.js.haml_spec.rb +3 -11
  210. data/spec/views/opportunities/_edit.haml_spec.rb +1 -1
  211. data/spec/views/opportunities/_new.haml_spec.rb +1 -1
  212. data/spec/views/opportunities/create.js.haml_spec.rb +0 -2
  213. data/spec/views/opportunities/destroy.js.haml_spec.rb +0 -3
  214. data/spec/views/opportunities/update.js.haml_spec.rb +3 -11
  215. data/spec/views/tasks/_edit.haml_spec.rb +1 -1
  216. data/spec/views/tasks/complete.js.haml_spec.rb +0 -1
  217. data/spec/views/tasks/create.js.haml_spec.rb +0 -2
  218. data/spec/views/tasks/destroy.js.haml_spec.rb +0 -1
  219. data/spec/views/tasks/uncomplete.js.haml_spec.rb +0 -1
  220. data/spec/views/tasks/update.js.haml_spec.rb +1 -4
  221. data/spec/views/users/change_password.js.haml_spec.rb +1 -2
  222. data/spec/views/users/update.js.haml_spec.rb +1 -2
  223. data/spec/views/users/upload_avatar.js.haml_spec.rb +1 -2
  224. metadata +23 -14
  225. data/config/initializers/new_framework_defaults_5_2.rb +0 -40
  226. 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.2.6)
5
- actionpack (= 5.2.6)
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
- actionmailer (5.2.6)
9
- actionpack (= 5.2.6)
10
- actionview (= 5.2.6)
11
- activejob (= 5.2.6)
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 (5.2.6)
15
- actionview (= 5.2.6)
16
- activesupport (= 5.2.6)
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.2)
21
- actionview (5.2.6)
22
- activesupport (= 5.2.6)
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.0, >= 1.0.3)
27
- activejob (5.2.6)
28
- activesupport (= 5.2.6)
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 (5.2.6)
31
- activesupport (= 5.2.6)
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 (5.2.6)
37
- activemodel (= 5.2.6)
38
- activesupport (= 5.2.6)
39
- arel (>= 9.0)
40
- activestorage (5.2.6)
41
- actionpack (= 5.2.6)
42
- activerecord (= 5.2.6)
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 (5.2.6)
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
- acts-as-taggable-on (7.0.0)
78
+ zeitwerk (~> 2.2, >= 2.2.2)
79
+ acts-as-taggable-on (8.1.0)
50
80
  activerecord (>= 5.0, < 6.2)
51
- acts_as_commentable (4.0.2)
52
- acts_as_list (1.0.3)
81
+ acts_as_list (1.0.4)
53
82
  activerecord (>= 4.2)
54
- addressable (2.7.0)
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.7.3)
91
+ bootsnap (1.9.1)
62
92
  msgpack (~> 1.0)
63
- brakeman (5.0.0)
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.8)
100
- countries (3.1.0)
101
- i18n_data (~> 0.11.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
- unicode_utils (~> 1.4)
104
- country_select (5.0.1)
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.9.0)
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.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.7.3)
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.9.3)
125
- devise (>= 4.7.1)
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.7.0)
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.18.0)
137
- ffi (1.15.0)
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.2.5)
141
- globalid (0.4.2)
142
- activesupport (>= 4.2.0)
143
- guard (2.16.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.9.12)
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.1)
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.11.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 (3.16.14.19)
177
- listen (3.5.1)
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.9.1)
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.1)
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.0225)
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.0)
195
- mini_portile2 (2.5.1)
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.7)
203
- nokogiri (1.11.3)
204
- mini_portile2 (~> 2.5.0)
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 (10.0.1)
211
- activerecord (>= 4.2, < 5.3)
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.20.1)
220
- parser (3.0.1.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
- premailer (1.14.2)
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.0)
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.2.2)
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 (5.2.6)
240
- actioncable (= 5.2.6)
241
- actionmailer (= 5.2.6)
242
- actionpack (= 5.2.6)
243
- actionview (= 5.2.6)
244
- activejob (= 5.2.6)
245
- activemodel (= 5.2.6)
246
- activerecord (= 5.2.6)
247
- activestorage (= 5.2.6)
248
- activesupport (= 5.2.6)
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 (= 5.2.6)
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.3.0)
297
+ rails-html-sanitizer (1.4.2)
260
298
  loofah (~> 2.3)
261
- rails-i18n (5.1.3)
299
+ rails-i18n (6.0.0)
262
300
  i18n (>= 0.7, < 2)
263
- railties (>= 5.0, < 6)
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 (5.2.6)
276
- actionpack (= 5.2.6)
277
- activesupport (= 5.2.6)
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.19.0, < 2.0)
318
+ thor (>= 0.20.3, < 2.0)
281
319
  rainbow (3.0.0)
282
- rake (13.0.3)
283
- ransack (2.4.1)
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.10.4)
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 (2.4.1)
302
- actionpack (>= 4.2.0, < 6.0)
303
- railties (>= 4.2.0, < 6.0)
304
- responds_to_parent (2.0.0)
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.1)
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.76.0)
367
+ rubocop (0.82.0)
332
368
  jaro_winkler (~> 1.5.1)
333
369
  parallel (~> 1.10)
334
- parser (>= 2.6)
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, < 1.7)
374
+ unicode-display_width (>= 1.4.0, < 2.0)
338
375
  ruby-progressbar (1.11.0)
339
- rubyzip (2.3.0)
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.3.13)
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.6.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.0)
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.3)
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.0)
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 (~> 5.2.0)
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 (~> 10.0.0)
489
+ paper_trail (~> 12.0.0)
445
490
  paperclip
446
491
  pg
447
492
  premailer
448
493
  pry-rails
449
494
  puma
450
- rails (~> 5.2.0)
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 (~> 2.0)
464
- responds_to_parent
508
+ responders (~> 3.0)
509
+ responds_to_parent!
465
510
  rspec-activemodel-mocks
466
511
  rspec-rails
467
- rubocop (~> 0.76.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.3.13)
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.4+ recommended
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
@@ -7,6 +7,7 @@
7
7
  */
8
8
 
9
9
  /*
10
+ *= require bootstrap-custom
10
11
  *= require jquery-ui.custom
11
12
  *= require jquery-ui/dialog
12
13
  *= require select2
@@ -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: "Lucida Grande", Geneva, Arial, Helvetica, sans-serif; }; }
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;