fat_free_crm 0.19.2 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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'