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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8fa077bec8c4e6334e58d1b936d716dd2d81692fe79efc9028b7cafec8ead036
4
- data.tar.gz: 3052cb09940c88d9a7ab44f70cb56c9a582e08589ea2052feaf5d6fab0a5f949
3
+ metadata.gz: a4b6418c618ec04984f8f8261e3121e915b57ce2b55c5787d3393a8acb47adb9
4
+ data.tar.gz: 362ffdc71d5d01450d0475758f794972ec77dc79755f92196f4f72917e789798
5
5
  SHA512:
6
- metadata.gz: 8e0ff6fbe7b7e01aa769b85d597aeda05a4dc7b687fb3ce0c80af75e00a519df70d6f60005858b9e2d626b5c62d3130e46d7494db49190a53c2426ea91a6ee67
7
- data.tar.gz: dca8bbad437f05b2053ce140beacab67d8d873936bd3510d5ce51434517cb4f8851cbef683bcf1d48e4df7563aa39456d28d468d05d32ce21223b0e8c63914a9
6
+ metadata.gz: 3a467bdd68e941d5c426a69fd07260ec11631163a8306c2d1b524fdd2c0e0f7f2d48ee78e2ad89e773010e2b0b17f386f90fe67f9388330bb07e53aba02344d0
7
+ data.tar.gz: 21943a700b302f3eb2f6544ebcba0ae6e70e50ecec337f94531f08ae16522c6d6d3cd49bf315f83963b597997ed7de38c11c17ace76495e346fed0b6a3f3f8a4
@@ -0,0 +1,46 @@
1
+ # This workflow integrates Brakeman with GitHub's Code Scanning feature
2
+ # Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications
3
+
4
+ name: Brakeman Scan
5
+
6
+ on:
7
+ push:
8
+ branches: [ master ]
9
+ pull_request:
10
+ # The branches below must be a subset of the branches above
11
+ branches: [ master ]
12
+ schedule:
13
+ - cron: '20 13 * * 6'
14
+
15
+ jobs:
16
+ brakeman-scan:
17
+ name: Brakeman Scan
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ # Checkout the repository to the GitHub Actions runner
21
+ - name: Checkout
22
+ uses: actions/checkout@v2
23
+
24
+ # Customize the ruby version depending on your needs
25
+ - name: Setup Ruby
26
+ uses: actions/setup-ruby@v1
27
+ with:
28
+ ruby-version: '2.7'
29
+
30
+ - name: Setup Brakeman
31
+ env:
32
+ BRAKEMAN_VERSION: '4.10' # SARIF support is provided in Brakeman version 4.10+
33
+ run: |
34
+ gem install brakeman --version $BRAKEMAN_VERSION
35
+
36
+ # Execute Brakeman CLI and generate a SARIF output with the security issues identified during the analysis
37
+ - name: Scan
38
+ continue-on-error: true
39
+ run: |
40
+ brakeman -f sarif -o output.sarif.json .
41
+
42
+ # Upload the SARIF file generated in the previous step
43
+ - name: Upload SARIF
44
+ uses: github/codeql-action/upload-sarif@v1
45
+ with:
46
+ sarif_file: output.sarif.json
@@ -0,0 +1,40 @@
1
+ # pulled from repo
2
+ name: "Rubocop"
3
+
4
+ on: push
5
+
6
+ jobs:
7
+ rubocop:
8
+ runs-on: ubuntu-latest
9
+ strategy:
10
+ fail-fast: false
11
+
12
+ steps:
13
+ - name: Checkout repository
14
+ uses: actions/checkout@v2
15
+
16
+ # If running on a self-hosted runner, check it meets the requirements
17
+ # listed at https://github.com/ruby/setup-ruby#using-self-hosted-runners
18
+ - name: Set up Ruby
19
+ uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: 2.6
22
+
23
+ # This step is not necessary if you add the gem to your Gemfile
24
+ - name: Install Code Scanning integration
25
+ run: bundle add code-scanning-rubocop --version 0.3.0 --skip-install
26
+
27
+ - name: Install dependencies
28
+ run: bundle install
29
+
30
+ - name: Rubocop run
31
+ run: |
32
+ bash -c "
33
+ bundle exec rubocop --require code_scanning --format CodeScanning::SarifFormatter -o rubocop.sarif
34
+ [[ $? -ne 2 ]]
35
+ "
36
+
37
+ - name: Upload Sarif output
38
+ uses: github/codeql-action/upload-sarif@v1
39
+ with:
40
+ sarif_file: rubocop.sarif
@@ -0,0 +1,52 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Rspec
9
+
10
+ on:
11
+ push:
12
+ branches: [ master ]
13
+ pull_request:
14
+ branches: [ master ]
15
+
16
+ jobs:
17
+ test:
18
+
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ ruby-version: ['2.7'] # , '2.7', '3.0'
23
+
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - name: Set up Ruby
27
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
+ # uses: ruby/setup-ruby@v1
30
+ uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
31
+ with:
32
+ ruby-version: ${{ matrix.ruby-version }}
33
+ # bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
+
35
+ - name: Install dependencies
36
+ run: bundle install
37
+ - name: Prepare DB
38
+ run: DB=sqlite RAILS_ENV=test bundle exec rake spec:preparedb
39
+ - name: Run model tests
40
+ run: DB=sqlite bundle exec rake spec:models
41
+ - name: Run controller tests
42
+ run: bundle exec rake spec:controllers
43
+ - name: Run view tests
44
+ run: bundle exec rake spec:views
45
+ - name: Run helper tests
46
+ run: bundle exec rake spec:helpers
47
+ - name: Run route tests
48
+ run: bundle exec rake spec:routing
49
+ - name: Run mailer tests
50
+ run: bundle exec rake spec:mailers
51
+ - name: Run lib tests
52
+ run: bundle exec rake spec:lib
data/.rubocop_todo.yml CHANGED
@@ -1,32 +1,32 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2019-11-08 13:13:48 +1030 using RuboCop version 0.76.0.
3
+ # on 2021-05-09 11:26:41 +0930 using RuboCop version 0.82.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 2
9
+ # Offense count: 3
10
10
  # Configuration parameters: Include.
11
11
  # Include: **/*.gemfile, **/Gemfile, **/gems.rb
12
12
  Bundler/DuplicatedGem:
13
13
  Exclude:
14
14
  - 'Gemfile'
15
15
 
16
- # Offense count: 88
16
+ # Offense count: 21
17
+ # Cop supports --auto-correct.
18
+ # Configuration parameters: EnforcedStyleAlignWith, AutoCorrect, Severity.
19
+ # SupportedStylesAlignWith: keyword, variable, start_of_line
20
+ Layout/EndAlignment:
21
+ Enabled: false
22
+
23
+ # Offense count: 95
17
24
  # Cop supports --auto-correct.
18
25
  # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
19
26
  # SupportedHashRocketStyles: key, separator, table
20
27
  # SupportedColonStyles: key, separator, table
21
28
  # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
22
- Layout/AlignHash:
23
- Enabled: false
24
-
25
- # Offense count: 22
26
- # Cop supports --auto-correct.
27
- # Configuration parameters: EnforcedStyleAlignWith, AutoCorrect, Severity.
28
- # SupportedStylesAlignWith: keyword, variable, start_of_line
29
- Layout/EndAlignment:
29
+ Layout/HashAlignment:
30
30
  Enabled: false
31
31
 
32
32
  # Offense count: 7
@@ -44,6 +44,7 @@ Lint/AssignmentInCondition:
44
44
  Enabled: false
45
45
 
46
46
  # Offense count: 2
47
+ # Cop supports --auto-correct.
47
48
  Lint/BooleanSymbol:
48
49
  Exclude:
49
50
  - 'config/initializers/ransack.rb'
@@ -53,13 +54,6 @@ Lint/DuplicateMethods:
53
54
  Exclude:
54
55
  - 'lib/gravatar_image_tag.rb'
55
56
 
56
- # Offense count: 2
57
- # Configuration parameters: AllowComments.
58
- Lint/HandleExceptions:
59
- Exclude:
60
- - 'config/environments/test.rb'
61
- - 'lib/fat_free_crm/gem_dependencies.rb'
62
-
63
57
  # Offense count: 4
64
58
  Lint/ImplicitStringConcatenation:
65
59
  Exclude:
@@ -78,6 +72,13 @@ Lint/ReturnInVoidContext:
78
72
  - 'app/models/setting.rb'
79
73
  - 'app/models/users/preference.rb'
80
74
 
75
+ # Offense count: 2
76
+ # Configuration parameters: AllowComments.
77
+ Lint/SuppressedException:
78
+ Exclude:
79
+ - 'config/environments/test.rb'
80
+ - 'lib/fat_free_crm/gem_dependencies.rb'
81
+
81
82
  # Offense count: 1
82
83
  Lint/UriEscapeUnescape:
83
84
  Exclude:
@@ -88,11 +89,18 @@ Lint/UselessAssignment:
88
89
  Exclude:
89
90
  - 'app/views/home/index.atom.builder'
90
91
 
91
- # Offense count: 133
92
+ # Offense count: 134
93
+ # Configuration parameters: IgnoredMethods.
92
94
  Metrics/AbcSize:
93
95
  Max: 57
94
96
 
95
- # Offense count: 4
97
+ # Offense count: 1
98
+ # Configuration parameters: CountComments, ExcludedMethods.
99
+ # ExcludedMethods: refine
100
+ Metrics/BlockLength:
101
+ Max: 298
102
+
103
+ # Offense count: 3
96
104
  # Configuration parameters: CountBlocks.
97
105
  Metrics/BlockNesting:
98
106
  Max: 4
@@ -102,11 +110,12 @@ Metrics/BlockNesting:
102
110
  Metrics/ClassLength:
103
111
  Max: 184
104
112
 
105
- # Offense count: 30
113
+ # Offense count: 29
114
+ # Configuration parameters: IgnoredMethods.
106
115
  Metrics/CyclomaticComplexity:
107
116
  Max: 14
108
117
 
109
- # Offense count: 100
118
+ # Offense count: 99
110
119
  # Configuration parameters: CountComments, ExcludedMethods.
111
120
  Metrics/MethodLength:
112
121
  Max: 36
@@ -114,9 +123,10 @@ Metrics/MethodLength:
114
123
  # Offense count: 2
115
124
  # Configuration parameters: CountComments.
116
125
  Metrics/ModuleLength:
117
- Max: 373
126
+ Max: 371
118
127
 
119
- # Offense count: 26
128
+ # Offense count: 25
129
+ # Configuration parameters: IgnoredMethods.
120
130
  Metrics/PerceivedComplexity:
121
131
  Max: 15
122
132
 
@@ -136,11 +146,20 @@ Naming/AccessorMethodName:
136
146
  - 'spec/controllers/entities/opportunities_controller_spec.rb'
137
147
  - 'spec/support/macros.rb'
138
148
 
149
+ # Offense count: 3
150
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
151
+ # AllowedNames: io, id, to, by, on, in, at, ip, db, os, pp
152
+ Naming/MethodParameterName:
153
+ Exclude:
154
+ - 'app/models/fields/field.rb'
155
+ - 'app/models/polymorphic/comment.rb'
156
+ - 'lib/missing_translation_detector.rb'
157
+
139
158
  # Offense count: 4
140
- # Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist, MethodDefinitionMacros.
159
+ # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
141
160
  # NamePrefix: is_, has_, have_
142
- # NamePrefixBlacklist: is_, has_, have_
143
- # NameWhitelist: is_a?
161
+ # ForbiddenPrefixes: is_, has_, have_
162
+ # AllowedMethods: is_a?
144
163
  # MethodDefinitionMacros: define_method, define_singleton_method
145
164
  Naming/PredicateName:
146
165
  Exclude:
@@ -157,15 +176,6 @@ Naming/RescuedExceptionsVariableName:
157
176
  Exclude:
158
177
  - 'spec/support/assert_select.rb'
159
178
 
160
- # Offense count: 3
161
- # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
162
- # AllowedNames: io, id, to, by, on, in, at, ip, db, os
163
- Naming/UncommunicativeMethodParamName:
164
- Exclude:
165
- - 'app/models/fields/field.rb'
166
- - 'app/models/polymorphic/comment.rb'
167
- - 'lib/missing_translation_detector.rb'
168
-
169
179
  # Offense count: 12
170
180
  # Configuration parameters: EnforcedStyle.
171
181
  # SupportedStyles: snake_case, normalcase, non_integer
@@ -174,11 +184,7 @@ Naming/VariableNumber:
174
184
  - 'spec/controllers/home_controller_spec.rb'
175
185
 
176
186
  # Offense count: 1
177
- Security/MarshalLoad:
178
- Exclude:
179
- - 'app/models/users/preference.rb'
180
-
181
- # Offense count: 1
187
+ # Configuration parameters: AllowOnConstant.
182
188
  Style/CaseEquality:
183
189
  Exclude:
184
190
  - 'app/models/fields/field.rb'
@@ -226,7 +232,7 @@ Style/FormatStringToken:
226
232
  # Offense count: 1
227
233
  # Cop supports --auto-correct.
228
234
  # Configuration parameters: EnforcedStyle.
229
- # SupportedStyles: always, never
235
+ # SupportedStyles: always, always_true, never
230
236
  Style/FrozenStringLiteralComment:
231
237
  Exclude:
232
238
  - 'db/schema.rb'
@@ -238,7 +244,7 @@ Style/GlobalVars:
238
244
  - 'db/migrate/20100928030598_create_sessions.rb'
239
245
  - 'db/migrate/20120510025219_add_not_null_constraints_for_timestamp_columns.rb'
240
246
 
241
- # Offense count: 28
247
+ # Offense count: 33
242
248
  # Configuration parameters: MinBodyLength.
243
249
  Style/GuardClause:
244
250
  Enabled: false
data/.travis.yml CHANGED
@@ -1,7 +1,6 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.5.7
5
4
  - 2.6.5
6
5
  - 2.7.1
7
6
 
@@ -11,38 +10,20 @@ env:
11
10
  global:
12
11
  - BROWSER=chrome
13
12
  matrix:
14
- - DB=postgres TEST_SUITE=rubocop
15
13
  - DB=postgres TEST_SUITE="rake spec:features"
16
14
  - DB=postgres TEST_SUITE="rake spec:models"
17
- - DB=postgres TEST_SUITE="rake spec:controllers spec:lib spec:routing spec:mailers"
18
- - DB=postgres TEST_SUITE="rake spec:views spec:helpers"
19
15
  - DB=mysql TEST_SUITE="rake spec:models"
20
- - DB=sqlite TEST_SUITE="rake spec:models"
21
16
 
22
17
  matrix:
23
18
  fast_finish: true
24
- exclude:
25
- - rvm: 2.5.7
26
- env: DB=postgres TEST_SUITE=rubocop
27
- - rvm: 2.6.5
28
- env: DB=postgres TEST_SUITE=rubocop
29
19
  allow_failures:
30
- - rvm: 2.5.7
31
- env: DB=postgres TEST_SUITE="rake spec:features"
32
20
  - rvm: 2.6.5
33
21
  env: DB=postgres TEST_SUITE="rake spec:features"
34
22
  - rvm: 2.7.1
35
23
  env: DB=postgres TEST_SUITE="rake spec:features"
36
- - rvm: 2.5.7
37
- env: DB=mysql TEST_SUITE="rake spec:models"
38
- - rvm: 2.5.7
39
- env: DB=sqlite TEST_SUITE="rake spec:models"
40
- - rvm: 2.6.5
41
- env: DB=sqlite TEST_SUITE="rake spec:models"
42
24
  - rvm: 2.7.1
43
25
  env: DB=mysql TEST_SUITE="rake spec:models"
44
- - rvm: 2.7.1
45
- env: DB=sqlite TEST_SUITE="rake spec:models"
26
+
46
27
 
47
28
  addons:
48
29
  chrome: stable
data/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@ 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
+ Mon Oct 04, 2021 (0.20.0)
8
+ ======
9
+ #905 Swap from Marshal.load. Be sure to run `bundle exec rake ffcrm:preference_update` to migrate your users from old to new format
10
+
11
+ settings.yml - Background, foreground colors for tasks, accounts, opportunities, and more - these are now defined in CSS by default
12
+
13
+ Refactoring to Bootstrap for forms, buttons, layouts.
14
+
15
+ Drop ruby 2.5 support
16
+
17
+ Upgrade to rails 6, papertail 12, devise 4.8
18
+
7
19
  Wed May 09, 2021 (0.19.2)
8
20
  ======
9
21
  CVE-2021-22885
@@ -54,6 +66,7 @@ Ruby 2.4 has reached end of life and is no longer activity tested against.
54
66
  * #851 upgrade paper_trail
55
67
  * Security fixes CVE-2019-16109, CVE-2019-16676, CVE-2019-5477, CVE-2019-16892
56
68
  * Dependency updates
69
+ * Simple Form upgrades to use HTML5 and browser validations by default
57
70
 
58
71
 
59
72
  Sat Apr 21, 2018 (0.18.0)
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ source 'https://rubygems.org'
7
7
 
8
8
  case ENV['CI'] && ENV['DB']
9
9
  when 'sqlite'
10
- gem 'sqlite3', '~> 1.3.13'
10
+ gem 'sqlite3', '~> 1.4.0'
11
11
  when 'mysql'
12
12
  gem 'mysql2'
13
13
  when 'postgres'
@@ -66,7 +66,7 @@ group :development, :test do
66
66
  gem 'byebug'
67
67
  gem 'pry-rails' unless ENV["CI"]
68
68
  gem 'factory_bot_rails', '~> 5.0' # Was Pinned due to minor failing view tests to 4.0
69
- gem 'rubocop', '~> 0.76.0' # Pinned because upgrades require regenerating rubocop_todo.yml
69
+ gem 'rubocop', '~> 0.82.0'
70
70
  gem 'rainbow'
71
71
  gem 'puma' # used by capybara 3
72
72
  end
@@ -78,7 +78,7 @@ group :test do
78
78
  gem 'database_cleaner'
79
79
  gem 'zeus', platform: :ruby unless ENV["CI"]
80
80
  gem 'timecop'
81
- gem 'sqlite3', '~> 1.3.13'
81
+ gem 'sqlite3', '~> 1.4.0'
82
82
  end
83
83
 
84
84
  group :heroku do
@@ -86,11 +86,14 @@ group :heroku do
86
86
  gem 'puma'
87
87
  end
88
88
 
89
+ gem 'responds_to_parent', git: 'https://github.com/CloCkWeRX/responds_to_parent.git', branch: 'patch-1' # Temporarily pointed at git until https://github.com/zendesk/responds_to_parent/pull/6 is released
90
+ gem 'acts_as_commentable', git: 'https://github.com/fatfreecrm/acts_as_commentable.git', branch: 'rails-6' # Our fork
89
91
  gem 'sass-rails', '~> 5.0.3' # sass-rails 6 requires GCC 4.5+
90
92
  gem 'coffee-rails'
91
93
  gem 'uglifier'
92
94
  gem 'execjs'
93
- gem 'therubyracer', platform: :ruby unless ENV["CI"]
95
+ # gem 'therubyracer', platform: :ruby unless ENV["CI"]
96
+ gem 'mini_racer'
94
97
  gem 'nokogiri', '>= 1.8.1'
95
98
  gem 'activemodel-serializers-xml'
96
99
  gem 'bootsnap', require: false
@@ -98,5 +101,6 @@ gem 'devise', '~>4.6'
98
101
  gem 'devise-i18n'
99
102
  gem "devise-encryptable"
100
103
  gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
101
- gem 'activejob', '~> 5.2.0'
104
+ gem 'activejob'
102
105
  gem 'ransack_ui'
106
+ gem 'bootstrap', '5.0.0'