fat_free_crm 0.22.0 → 0.23.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.

Potentially problematic release.


This version of fat_free_crm might be problematic. Click here for more details.

Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/application.js.erb +1 -0
  3. data/app/assets/javascripts/crm.js.coffee +6 -3
  4. data/app/assets/javascripts/crm_select2.js.coffee +4 -1
  5. data/app/assets/javascripts/crm_tags.js.coffee +4 -4
  6. data/app/assets/javascripts/crm_textarea_autocomplete.js.coffee +6 -9
  7. data/app/assets/javascripts/crm_validations.js.coffee +12 -0
  8. data/app/assets/stylesheets/bootstrap-custom.scss +3 -3
  9. data/app/assets/stylesheets/common.scss +9 -0
  10. data/app/assets/stylesheets/rails.scss +1 -1
  11. data/app/controllers/admin/fields_controller.rb +16 -13
  12. data/app/controllers/application_controller.rb +1 -1
  13. data/app/controllers/emails_controller.rb +1 -1
  14. data/app/controllers/entities/contacts_controller.rb +1 -1
  15. data/app/controllers/entities_controller.rb +1 -1
  16. data/app/controllers/lists_controller.rb +5 -4
  17. data/app/controllers/users_controller.rb +15 -3
  18. data/app/helpers/application_helper.rb +5 -5
  19. data/app/helpers/leads_helper.rb +1 -1
  20. data/app/helpers/opportunities_helper.rb +5 -3
  21. data/app/helpers/users_helper.rb +1 -1
  22. data/app/models/entities/campaign.rb +3 -3
  23. data/app/models/fields/custom_field_pair.rb +6 -7
  24. data/app/models/fields/field.rb +1 -3
  25. data/app/models/list.rb +1 -1
  26. data/app/models/observers/lead_observer.rb +2 -1
  27. data/app/models/observers/task_observer.rb +2 -1
  28. data/app/models/polymorphic/address.rb +2 -1
  29. data/app/models/polymorphic/comment.rb +3 -4
  30. data/app/models/polymorphic/task.rb +1 -1
  31. data/app/models/users/user.rb +7 -1
  32. data/app/views/accounts/_contact_info.html.haml +1 -1
  33. data/app/views/accounts/_top_section.html.haml +3 -3
  34. data/app/views/accounts/show.js.haml +1 -1
  35. data/app/views/accounts/update.js.haml +1 -0
  36. data/app/views/admin/custom_fields/_check_boxes_field.html.haml +4 -1
  37. data/app/views/admin/custom_fields/_date_pair_field.html.haml +1 -1
  38. data/app/views/campaigns/_top_section.html.haml +2 -2
  39. data/app/views/campaigns/show.js.haml +1 -1
  40. data/app/views/campaigns/update.js.haml +1 -0
  41. data/app/views/contacts/_top_section.html.haml +5 -5
  42. data/app/views/contacts/show.js.haml +2 -3
  43. data/app/views/contacts/update.js.haml +1 -0
  44. data/app/views/devise/sessions/new.html.haml +4 -5
  45. data/app/views/fields/_group.html.haml +5 -2
  46. data/app/views/fields/_group_table.html.haml +4 -5
  47. data/app/views/fields/_group_view.html.haml +4 -1
  48. data/app/views/fields/_sidebar_show.html.haml +5 -8
  49. data/app/views/fields/group.js.erb +3 -1
  50. data/app/views/layouts/application.html.haml +2 -4
  51. data/app/views/leads/_top_section.html.haml +4 -4
  52. data/app/views/leads/show.js.haml +1 -1
  53. data/app/views/leads/update.js.haml +1 -0
  54. data/app/views/opportunities/_top_section.html.haml +2 -2
  55. data/app/views/opportunities/show.js.haml +1 -1
  56. data/app/views/opportunities/update.js.haml +1 -0
  57. data/app/views/shared/_add_comment.html.haml +1 -1
  58. data/app/views/shared/_address.html.haml +1 -1
  59. data/app/views/tasks/_top_section.html.haml +4 -4
  60. data/config/application.rb +2 -0
  61. data/config/database.yml +9 -12
  62. data/config/environments/development.rb +15 -0
  63. data/config/initializers/action_mailer.rb +1 -1
  64. data/config/initializers/application_controller_renderer.rb +1 -0
  65. data/config/initializers/backtrace_silencers.rb +1 -0
  66. data/config/initializers/content_security_policy.rb +1 -0
  67. data/config/initializers/custom_field_ransack_translations.rb +2 -2
  68. data/config/initializers/devise.rb +1 -0
  69. data/config/initializers/inflections.rb +1 -0
  70. data/config/initializers/permissions_policy.rb +1 -0
  71. data/config/routes.rb +1 -3
  72. data/config/settings.default.yml +2 -1
  73. data/db/fat_free_crm_development.sqlite3 +0 -0
  74. data/db/fat_free_crm_test.sqlite3 +0 -0
  75. data/db/migrate/20230422234321_optionally_create_action_text_tables.action_text.rb +29 -0
  76. data/db/migrate/20230526211831_create_active_storage_tables.active_storage.rb +3 -3
  77. data/db/migrate/20230526212613_convert_to_active_storage.rb +11 -14
  78. data/db/schema.rb +16 -9
  79. data/db/seeds.rb +1 -0
  80. data/lib/fat_free_crm/callback.rb +0 -1
  81. data/lib/fat_free_crm/core_ext/string.rb +1 -1
  82. data/lib/fat_free_crm/custom_fields.rb +1 -0
  83. data/lib/fat_free_crm/mail_processor/base.rb +6 -10
  84. data/lib/fat_free_crm/version.rb +1 -1
  85. metadata +7 -31
  86. data/public/avatars/User/2/large_rails.png +0 -0
  87. data/public/avatars/User/2/medium_rails.png +0 -0
  88. data/public/avatars/User/2/original_rails.png +0 -0
  89. data/public/avatars/User/2/small_rails.png +0 -0
  90. data/public/avatars/User/2/thumb_rails.png +0 -0
  91. data/public/avatars/User/3/large_rails.png +0 -0
  92. data/public/avatars/User/3/medium_rails.png +0 -0
  93. data/public/avatars/User/3/original_rails.png +0 -0
  94. data/public/avatars/User/3/small_rails.png +0 -0
  95. data/public/avatars/User/3/thumb_rails.png +0 -0
  96. data/public/avatars/User/4/large_rails.png +0 -0
  97. data/public/avatars/User/4/medium_rails.png +0 -0
  98. data/public/avatars/User/4/original_rails.png +0 -0
  99. data/public/avatars/User/4/small_rails.png +0 -0
  100. data/public/avatars/User/4/thumb_rails.png +0 -0
  101. data/public/avatars/User/6/large_rails.png +0 -0
  102. data/public/avatars/User/6/medium_rails.png +0 -0
  103. data/public/avatars/User/6/original_rails.png +0 -0
  104. data/public/avatars/User/6/small_rails.png +0 -0
  105. data/public/avatars/User/6/thumb_rails.png +0 -0
  106. data/public/avatars/User/7/large_rails.png +0 -0
  107. data/public/avatars/User/7/medium_rails.png +0 -0
  108. data/public/avatars/User/7/original_rails.png +0 -0
  109. data/public/avatars/User/7/small_rails.png +0 -0
  110. data/public/avatars/User/7/thumb_rails.png +0 -0
data/db/schema.rb CHANGED
@@ -11,9 +11,6 @@
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
13
  ActiveRecord::Schema[7.0].define(version: 2023_05_26_212613) do
14
- # These are extensions that must be enabled in order to support this database
15
- enable_extension "plpgsql"
16
-
17
14
  create_table "account_contacts", force: :cascade do |t|
18
15
  t.integer "account_id"
19
16
  t.integer "contact_id"
@@ -55,6 +52,16 @@ ActiveRecord::Schema[7.0].define(version: 2023_05_26_212613) do
55
52
  t.index ["user_id", "name", "deleted_at"], name: "index_accounts_on_user_id_and_name_and_deleted_at", unique: true
56
53
  end
57
54
 
55
+ create_table "action_text_rich_texts", force: :cascade do |t|
56
+ t.string "name", null: false
57
+ t.text "body"
58
+ t.string "record_type", null: false
59
+ t.bigint "record_id", null: false
60
+ t.datetime "created_at", null: false
61
+ t.datetime "updated_at", null: false
62
+ t.index ["record_type", "record_id", "name"], name: "index_action_text_rich_texts_uniqueness", unique: true
63
+ end
64
+
58
65
  create_table "active_storage_attachments", force: :cascade do |t|
59
66
  t.string "name", null: false
60
67
  t.string "record_type", null: false
@@ -247,12 +254,12 @@ ActiveRecord::Schema[7.0].define(version: 2023_05_26_212613) do
247
254
  t.text "collection"
248
255
  t.boolean "disabled"
249
256
  t.boolean "required"
250
- t.integer "maxlength"
257
+ t.integer "maxlength", limit: 4
251
258
  t.datetime "created_at", precision: nil
252
259
  t.datetime "updated_at", precision: nil
253
260
  t.integer "pair_id"
254
261
  t.text "settings"
255
- t.integer "minlength", default: 0
262
+ t.integer "minlength", limit: 4, default: 0
256
263
  t.string "pattern"
257
264
  t.string "autofocus"
258
265
  t.string "autocomplete"
@@ -417,7 +424,7 @@ ActiveRecord::Schema[7.0].define(version: 2023_05_26_212613) do
417
424
 
418
425
  create_table "users", force: :cascade do |t|
419
426
  t.string "username", limit: 32, default: "", null: false
420
- t.string "email", limit: 254, default: "", null: false
427
+ t.string "email", limit: 254
421
428
  t.string "first_name", limit: 32
422
429
  t.string "last_name", limit: 32
423
430
  t.string "title", limit: 64
@@ -448,8 +455,8 @@ ActiveRecord::Schema[7.0].define(version: 2023_05_26_212613) do
448
455
  t.datetime "remember_created_at", precision: nil
449
456
  t.string "authentication_token"
450
457
  t.string "confirmation_token", limit: 255
451
- t.datetime "confirmed_at", precision: nil
452
- t.datetime "confirmation_sent_at", precision: nil
458
+ t.datetime "confirmed_at"
459
+ t.datetime "confirmation_sent_at"
453
460
  t.index ["authentication_token"], name: "index_users_on_authentication_token", unique: true
454
461
  t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
455
462
  t.index ["email"], name: "index_users_on_email"
@@ -461,7 +468,7 @@ ActiveRecord::Schema[7.0].define(version: 2023_05_26_212613) do
461
468
  create_table "versions", force: :cascade do |t|
462
469
  t.string "item_type", null: false
463
470
  t.integer "item_id", null: false
464
- t.string "event", limit: 512, null: false
471
+ t.string "event", limit: 512
465
472
  t.string "whodunnit"
466
473
  t.text "object"
467
474
  t.datetime "created_at", precision: nil
data/db/seeds.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # This file should contain all the record creation needed to seed the database with its default values.
3
4
  # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
4
5
  #
@@ -108,7 +108,6 @@ module FatFreeCRM
108
108
  #--------------------------------------------------------------------------
109
109
  module Helper
110
110
  def hook(method, caller, context = {}, &block)
111
-
112
111
  # In a view template context, hooks are able to replace, append or prepend content.
113
112
  if caller.is_a?(ActionView::Base)
114
113
  hooks = FatFreeCRM::Callback.view_hook(method, caller, context)
@@ -36,7 +36,7 @@ class String
36
36
  # A query with 4 words will generate 6 permutations
37
37
  def name_permutations
38
38
  parts = split(" ")
39
- Array.new((parts.size - 1)) do |i|
39
+ Array.new(parts.size - 1) do |i|
40
40
  # ["A", "B", "C", "D"] => [["A B C", "D"], ["A B", "C D"], ["A", "B C D"]]
41
41
  [parts[(0..i)].join(" "), parts[(i + 1)..-1].join(" ")]
42
42
  end.each_with_object([]) do |perm, arr|
@@ -8,6 +8,7 @@
8
8
 
9
9
  #
10
10
  # Register CustomFields when Field class is loaded
11
+
11
12
  ActiveSupport.on_load(:fat_free_crm_field) do # self == Field
12
13
  register(as: 'date_pair', klass: 'CustomFieldDatePair', type: 'date')
13
14
  register(as: 'datetime_pair', klass: 'CustomFieldDatetimePair', type: 'timestamp')
@@ -104,10 +104,8 @@ module FatFreeCRM
104
104
  discard(uid)
105
105
  end
106
106
  rescue Exception => e
107
- if %w[test development].include?(Rails.env)
108
- warn e
109
- warn e.backtrace
110
- end
107
+ warn e
108
+ warn e.backtrace
111
109
  log "error processing email: #{e.inspect}", email
112
110
  discard(uid)
113
111
  end
@@ -181,12 +179,10 @@ module FatFreeCRM
181
179
  # Centralized logging.
182
180
  #--------------------------------------------------------------------------------------
183
181
  def log(message, email = nil)
184
- unless %w[test cucumber].include?(Rails.env)
185
- klass = self.class.to_s.split("::").last
186
- klass << " [Dry Run]" if @dry_run
187
- puts "[#{Time.now.rfc822}] #{klass}: #{message}"
188
- puts "[#{Time.now.rfc822}] #{klass}: From: #{email.from}, Subject: #{email.subject} (#{email.message_id})" if email
189
- end
182
+ klass = self.class.to_s.split("::").last
183
+ klass << " [Dry Run]" if @dry_run
184
+ Rails.logger.info("[#{Time.now.rfc822}] #{klass}: #{message}")
185
+ Rails.logger.info("[#{Time.now.rfc822}] #{klass}: From: #{email.from}, Subject: #{email.subject} (#{email.message_id})") if email
190
186
  end
191
187
 
192
188
  # Returns the plain-text version of an email, or strips html tags
@@ -8,7 +8,7 @@
8
8
  module FatFreeCRM
9
9
  module VERSION # :nodoc:
10
10
  MAJOR = 0
11
- MINOR = 22
11
+ MINOR = 23
12
12
  TINY = 0
13
13
  PRE = nil
14
14
 
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fat_free_crm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Dvorkin
8
8
  - Stephen Kenworthy
9
9
  - Daniel O'Connor
10
- autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2024-01-09 00:00:00.000000000 Z
12
+ date: 1980-01-02 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rails
@@ -553,6 +552,7 @@ files:
553
552
  - app/assets/javascripts/crm_sortable.js.coffee
554
553
  - app/assets/javascripts/crm_tags.js.coffee
555
554
  - app/assets/javascripts/crm_textarea_autocomplete.js.coffee
555
+ - app/assets/javascripts/crm_validations.js.coffee
556
556
  - app/assets/javascripts/datepicker.js.coffee
557
557
  - app/assets/javascripts/format_buttons.js.coffee
558
558
  - app/assets/javascripts/lists.js.coffee
@@ -1089,6 +1089,8 @@ files:
1089
1089
  - db/demo/settings.yml
1090
1090
  - db/demo/tasks.yml
1091
1091
  - db/demo/users.yml
1092
+ - db/fat_free_crm_development.sqlite3
1093
+ - db/fat_free_crm_test.sqlite3
1092
1094
  - db/migrate/20100928030598_create_sessions.rb
1093
1095
  - db/migrate/20100928030599_create_users.rb
1094
1096
  - db/migrate/20100928030600_create_openid_tables.rb
@@ -1161,6 +1163,7 @@ files:
1161
1163
  - db/migrate/20180107082701_authlogic_to_devise.rb
1162
1164
  - db/migrate/20200806004152_add_pattern_to_fields.rb
1163
1165
  - db/migrate/20200806004459_add_html5_to_fields.rb
1166
+ - db/migrate/20230422234321_optionally_create_action_text_tables.action_text.rb
1164
1167
  - db/migrate/20230526211831_create_active_storage_tables.active_storage.rb
1165
1168
  - db/migrate/20230526212613_convert_to_active_storage.rb
1166
1169
  - db/schema.rb
@@ -1217,31 +1220,6 @@ files:
1217
1220
  - public/404.html
1218
1221
  - public/422.html
1219
1222
  - public/500.html
1220
- - public/avatars/User/2/large_rails.png
1221
- - public/avatars/User/2/medium_rails.png
1222
- - public/avatars/User/2/original_rails.png
1223
- - public/avatars/User/2/small_rails.png
1224
- - public/avatars/User/2/thumb_rails.png
1225
- - public/avatars/User/3/large_rails.png
1226
- - public/avatars/User/3/medium_rails.png
1227
- - public/avatars/User/3/original_rails.png
1228
- - public/avatars/User/3/small_rails.png
1229
- - public/avatars/User/3/thumb_rails.png
1230
- - public/avatars/User/4/large_rails.png
1231
- - public/avatars/User/4/medium_rails.png
1232
- - public/avatars/User/4/original_rails.png
1233
- - public/avatars/User/4/small_rails.png
1234
- - public/avatars/User/4/thumb_rails.png
1235
- - public/avatars/User/6/large_rails.png
1236
- - public/avatars/User/6/medium_rails.png
1237
- - public/avatars/User/6/original_rails.png
1238
- - public/avatars/User/6/small_rails.png
1239
- - public/avatars/User/6/thumb_rails.png
1240
- - public/avatars/User/7/large_rails.png
1241
- - public/avatars/User/7/medium_rails.png
1242
- - public/avatars/User/7/original_rails.png
1243
- - public/avatars/User/7/small_rails.png
1244
- - public/avatars/User/7/thumb_rails.png
1245
1223
  - public/favicon.ico
1246
1224
  - public/robots.txt
1247
1225
  - vendor/assets/images/calendar_date_select/calendar.gif
@@ -1338,7 +1316,6 @@ homepage: http://fatfreecrm.com
1338
1316
  licenses:
1339
1317
  - MIT
1340
1318
  metadata: {}
1341
- post_install_message:
1342
1319
  rdoc_options: []
1343
1320
  require_paths:
1344
1321
  - lib
@@ -1353,8 +1330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1353
1330
  - !ruby/object:Gem::Version
1354
1331
  version: '0'
1355
1332
  requirements: []
1356
- rubygems_version: 3.4.10
1357
- signing_key:
1333
+ rubygems_version: 3.6.9
1358
1334
  specification_version: 4
1359
1335
  summary: Fat Free CRM
1360
1336
  test_files: []
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file