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.
- 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
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a4b6418c618ec04984f8f8261e3121e915b57ce2b55c5787d3393a8acb47adb9
|
|
4
|
+
data.tar.gz: 362ffdc71d5d01450d0475758f794972ec77dc79755f92196f4f72917e789798
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
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:
|
|
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:
|
|
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/
|
|
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:
|
|
92
|
+
# Offense count: 134
|
|
93
|
+
# Configuration parameters: IgnoredMethods.
|
|
92
94
|
Metrics/AbcSize:
|
|
93
95
|
Max: 57
|
|
94
96
|
|
|
95
|
-
# Offense count:
|
|
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:
|
|
113
|
+
# Offense count: 29
|
|
114
|
+
# Configuration parameters: IgnoredMethods.
|
|
106
115
|
Metrics/CyclomaticComplexity:
|
|
107
116
|
Max: 14
|
|
108
117
|
|
|
109
|
-
# Offense count:
|
|
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:
|
|
126
|
+
Max: 371
|
|
118
127
|
|
|
119
|
-
# Offense count:
|
|
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,
|
|
159
|
+
# Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
|
|
141
160
|
# NamePrefix: is_, has_, have_
|
|
142
|
-
#
|
|
143
|
-
#
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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'
|
|
104
|
+
gem 'activejob'
|
|
102
105
|
gem 'ransack_ui'
|
|
106
|
+
gem 'bootstrap', '5.0.0'
|