fat_free_crm 0.21.0 → 0.22.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/fat_free_crm.js +3 -0
  3. data/app/assets/config/manifest.js +1 -3
  4. data/app/controllers/admin/field_groups_controller.rb +0 -2
  5. data/app/controllers/admin/tags_controller.rb +1 -1
  6. data/app/controllers/admin/users_controller.rb +1 -1
  7. data/app/controllers/application_controller.rb +11 -0
  8. data/app/controllers/comments_controller.rb +2 -0
  9. data/app/controllers/emails_controller.rb +2 -0
  10. data/app/controllers/entities/accounts_controller.rb +3 -1
  11. data/app/controllers/entities/campaigns_controller.rb +3 -1
  12. data/app/controllers/entities/contacts_controller.rb +3 -1
  13. data/app/controllers/entities/leads_controller.rb +4 -2
  14. data/app/controllers/entities/opportunities_controller.rb +3 -1
  15. data/app/controllers/entities_controller.rb +2 -0
  16. data/app/controllers/home_controller.rb +2 -0
  17. data/app/controllers/lists_controller.rb +2 -0
  18. data/app/controllers/tasks_controller.rb +3 -1
  19. data/app/controllers/users_controller.rb +2 -0
  20. data/app/models/fields/custom_field.rb +2 -2
  21. data/app/models/observers/entity_observer.rb +1 -1
  22. data/app/models/polymorphic/comment.rb +1 -1
  23. data/app/models/setting.rb +4 -5
  24. data/app/models/users/user.rb +1 -1
  25. data/bin/bundle +108 -2
  26. data/bin/rails +3 -3
  27. data/bin/rake +2 -2
  28. data/bin/setup +12 -15
  29. data/config/application.rb +9 -4
  30. data/config/boot.rb +3 -5
  31. data/config/cable.yml +10 -0
  32. data/config/database.yml +26 -0
  33. data/config/environment.rb +4 -3
  34. data/config/environments/development.rb +47 -14
  35. data/config/environments/production.rb +17 -15
  36. data/config/environments/test.rb +19 -9
  37. data/config/initializers/action_mailer.rb +1 -0
  38. data/config/initializers/content_security_policy.rb +21 -26
  39. data/config/initializers/custom_field_ransack_translations.rb +1 -0
  40. data/config/initializers/filter_parameter_logging.rb +6 -2
  41. data/config/initializers/inflections.rb +4 -4
  42. data/config/initializers/permissions_policy.rb +12 -0
  43. data/config/storage.yml +5 -5
  44. data/db/demo/field_groups.yml +2 -1
  45. data/db/migrate/20230526212613_convert_to_active_storage.rb +27 -11
  46. data/db/schema.rb +107 -105
  47. data/lib/fat_free_crm/callback.rb +2 -3
  48. data/lib/fat_free_crm/mail_processor/dropbox.rb +1 -1
  49. data/lib/fat_free_crm/version.rb +1 -1
  50. data/public/avatars/User/2/large_rails.png +0 -0
  51. data/public/avatars/User/2/medium_rails.png +0 -0
  52. data/public/avatars/User/2/original_rails.png +0 -0
  53. data/public/avatars/User/2/small_rails.png +0 -0
  54. data/public/avatars/User/2/thumb_rails.png +0 -0
  55. data/public/avatars/User/3/large_rails.png +0 -0
  56. data/public/avatars/User/3/medium_rails.png +0 -0
  57. data/public/avatars/User/3/original_rails.png +0 -0
  58. data/public/avatars/User/3/small_rails.png +0 -0
  59. data/public/avatars/User/3/thumb_rails.png +0 -0
  60. data/public/avatars/User/4/large_rails.png +0 -0
  61. data/public/avatars/User/4/medium_rails.png +0 -0
  62. data/public/avatars/User/4/original_rails.png +0 -0
  63. data/public/avatars/User/4/small_rails.png +0 -0
  64. data/public/avatars/User/4/thumb_rails.png +0 -0
  65. data/public/avatars/User/6/large_rails.png +0 -0
  66. data/public/avatars/User/6/medium_rails.png +0 -0
  67. data/public/avatars/User/6/original_rails.png +0 -0
  68. data/public/avatars/User/6/small_rails.png +0 -0
  69. data/public/avatars/User/6/thumb_rails.png +0 -0
  70. data/public/avatars/User/7/large_rails.png +0 -0
  71. data/public/avatars/User/7/medium_rails.png +0 -0
  72. data/public/avatars/User/7/original_rails.png +0 -0
  73. data/public/avatars/User/7/small_rails.png +0 -0
  74. data/public/avatars/User/7/thumb_rails.png +0 -0
  75. metadata +64 -16
  76. data/config/initializers/new_framework_defaults_6_0.rb +0 -46
data/db/schema.rb CHANGED
@@ -10,27 +10,29 @@
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(version: 2023_05_26_212613) do
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"
14
16
 
15
- create_table "account_contacts", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
17
+ create_table "account_contacts", force: :cascade do |t|
16
18
  t.integer "account_id"
17
19
  t.integer "contact_id"
18
- t.datetime "deleted_at"
19
- t.datetime "created_at"
20
- t.datetime "updated_at"
20
+ t.datetime "deleted_at", precision: nil
21
+ t.datetime "created_at", precision: nil
22
+ t.datetime "updated_at", precision: nil
21
23
  t.index ["account_id", "contact_id"], name: "index_account_contacts_on_account_id_and_contact_id"
22
24
  end
23
25
 
24
- create_table "account_opportunities", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
26
+ create_table "account_opportunities", force: :cascade do |t|
25
27
  t.integer "account_id"
26
28
  t.integer "opportunity_id"
27
- t.datetime "deleted_at"
28
- t.datetime "created_at"
29
- t.datetime "updated_at"
29
+ t.datetime "deleted_at", precision: nil
30
+ t.datetime "created_at", precision: nil
31
+ t.datetime "updated_at", precision: nil
30
32
  t.index ["account_id", "opportunity_id"], name: "index_account_opportunities_on_account_id_and_opportunity_id"
31
33
  end
32
34
 
33
- create_table "accounts", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
35
+ create_table "accounts", force: :cascade do |t|
34
36
  t.integer "user_id"
35
37
  t.integer "assigned_to"
36
38
  t.string "name", limit: 64, default: "", null: false
@@ -39,9 +41,9 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
39
41
  t.string "toll_free_phone", limit: 32
40
42
  t.string "phone", limit: 32
41
43
  t.string "fax", limit: 32
42
- t.datetime "deleted_at"
43
- t.datetime "created_at"
44
- t.datetime "updated_at"
44
+ t.datetime "deleted_at", precision: nil
45
+ t.datetime "created_at", precision: nil
46
+ t.datetime "updated_at", precision: nil
45
47
  t.string "email", limit: 254
46
48
  t.string "background_info"
47
49
  t.integer "rating", default: 0, null: false
@@ -53,17 +55,17 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
53
55
  t.index ["user_id", "name", "deleted_at"], name: "index_accounts_on_user_id_and_name_and_deleted_at", unique: true
54
56
  end
55
57
 
56
- create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
58
+ create_table "active_storage_attachments", force: :cascade do |t|
57
59
  t.string "name", null: false
58
60
  t.string "record_type", null: false
59
61
  t.bigint "record_id", null: false
60
62
  t.bigint "blob_id", null: false
61
- t.datetime "created_at", null: false
63
+ t.datetime "created_at", precision: nil, null: false
62
64
  t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id"
63
65
  t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true
64
66
  end
65
67
 
66
- create_table "active_storage_blobs", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
68
+ create_table "active_storage_blobs", force: :cascade do |t|
67
69
  t.string "key", null: false
68
70
  t.string "filename", null: false
69
71
  t.string "content_type"
@@ -71,30 +73,30 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
71
73
  t.string "service_name", null: false
72
74
  t.bigint "byte_size", null: false
73
75
  t.string "checksum", null: false
74
- t.datetime "created_at", null: false
76
+ t.datetime "created_at", precision: nil, null: false
75
77
  t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true
76
78
  end
77
79
 
78
- create_table "active_storage_variant_records", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
80
+ create_table "active_storage_variant_records", force: :cascade do |t|
79
81
  t.bigint "blob_id", null: false
80
82
  t.string "variation_digest", null: false
81
83
  t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true
82
84
  end
83
85
 
84
- create_table "activities", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
86
+ create_table "activities", force: :cascade do |t|
85
87
  t.integer "user_id"
86
88
  t.string "subject_type"
87
89
  t.integer "subject_id"
88
90
  t.string "action", limit: 32, default: "created"
89
91
  t.string "info", default: ""
90
92
  t.boolean "private", default: false
91
- t.datetime "created_at"
92
- t.datetime "updated_at"
93
+ t.datetime "created_at", precision: nil
94
+ t.datetime "updated_at", precision: nil
93
95
  t.index ["created_at"], name: "index_activities_on_created_at"
94
96
  t.index ["user_id"], name: "index_activities_on_user_id"
95
97
  end
96
98
 
97
- create_table "addresses", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
99
+ create_table "addresses", force: :cascade do |t|
98
100
  t.string "street1"
99
101
  t.string "street2"
100
102
  t.string "city", limit: 64
@@ -105,24 +107,24 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
105
107
  t.string "address_type", limit: 16
106
108
  t.string "addressable_type"
107
109
  t.integer "addressable_id"
108
- t.datetime "created_at"
109
- t.datetime "updated_at"
110
- t.datetime "deleted_at"
110
+ t.datetime "created_at", precision: nil
111
+ t.datetime "updated_at", precision: nil
112
+ t.datetime "deleted_at", precision: nil
111
113
  t.index ["addressable_id", "addressable_type"], name: "index_addresses_on_addressable_id_and_addressable_type"
112
114
  end
113
115
 
114
- create_table "avatars", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
116
+ create_table "avatars", force: :cascade do |t|
115
117
  t.integer "user_id"
116
118
  t.string "entity_type"
117
119
  t.integer "entity_id"
118
120
  t.integer "image_file_size"
119
121
  t.string "image_file_name"
120
122
  t.string "image_content_type"
121
- t.datetime "created_at"
122
- t.datetime "updated_at"
123
+ t.datetime "created_at", precision: nil
124
+ t.datetime "updated_at", precision: nil
123
125
  end
124
126
 
125
- create_table "campaigns", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
127
+ create_table "campaigns", force: :cascade do |t|
126
128
  t.integer "user_id"
127
129
  t.integer "assigned_to"
128
130
  t.string "name", limit: 64, default: "", null: false
@@ -138,38 +140,38 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
138
140
  t.date "starts_on"
139
141
  t.date "ends_on"
140
142
  t.text "objectives"
141
- t.datetime "deleted_at"
142
- t.datetime "created_at"
143
- t.datetime "updated_at"
143
+ t.datetime "deleted_at", precision: nil
144
+ t.datetime "created_at", precision: nil
145
+ t.datetime "updated_at", precision: nil
144
146
  t.string "background_info"
145
147
  t.text "subscribed_users"
146
148
  t.index ["assigned_to"], name: "index_campaigns_on_assigned_to"
147
149
  t.index ["user_id", "name", "deleted_at"], name: "index_campaigns_on_user_id_and_name_and_deleted_at", unique: true
148
150
  end
149
151
 
150
- create_table "comments", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
152
+ create_table "comments", force: :cascade do |t|
151
153
  t.integer "user_id"
152
154
  t.string "commentable_type"
153
155
  t.integer "commentable_id"
154
156
  t.boolean "private"
155
157
  t.string "title", default: ""
156
158
  t.text "comment"
157
- t.datetime "created_at"
158
- t.datetime "updated_at"
159
+ t.datetime "created_at", precision: nil
160
+ t.datetime "updated_at", precision: nil
159
161
  t.string "state", limit: 16, default: "Expanded", null: false
160
162
  end
161
163
 
162
- create_table "contact_opportunities", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
164
+ create_table "contact_opportunities", force: :cascade do |t|
163
165
  t.integer "contact_id"
164
166
  t.integer "opportunity_id"
165
167
  t.string "role", limit: 32
166
- t.datetime "deleted_at"
167
- t.datetime "created_at"
168
- t.datetime "updated_at"
168
+ t.datetime "deleted_at", precision: nil
169
+ t.datetime "created_at", precision: nil
170
+ t.datetime "updated_at", precision: nil
169
171
  t.index ["contact_id", "opportunity_id"], name: "index_contact_opportunities_on_contact_id_and_opportunity_id"
170
172
  end
171
173
 
172
- create_table "contacts", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
174
+ create_table "contacts", force: :cascade do |t|
173
175
  t.integer "user_id"
174
176
  t.integer "lead_id"
175
177
  t.integer "assigned_to"
@@ -191,9 +193,9 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
191
193
  t.string "twitter", limit: 128
192
194
  t.date "born_on"
193
195
  t.boolean "do_not_call", default: false, null: false
194
- t.datetime "deleted_at"
195
- t.datetime "created_at"
196
- t.datetime "updated_at"
196
+ t.datetime "deleted_at", precision: nil
197
+ t.datetime "created_at", precision: nil
198
+ t.datetime "updated_at", precision: nil
197
199
  t.string "background_info"
198
200
  t.string "skype", limit: 128
199
201
  t.text "subscribed_users"
@@ -201,7 +203,7 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
201
203
  t.index ["user_id", "last_name", "deleted_at"], name: "id_last_name_deleted", unique: true
202
204
  end
203
205
 
204
- create_table "emails", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
206
+ create_table "emails", force: :cascade do |t|
205
207
  t.string "imap_message_id", null: false
206
208
  t.integer "user_id"
207
209
  t.string "mediator_type"
@@ -213,27 +215,27 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
213
215
  t.string "subject"
214
216
  t.text "body"
215
217
  t.text "header"
216
- t.datetime "sent_at"
217
- t.datetime "received_at"
218
- t.datetime "deleted_at"
219
- t.datetime "created_at"
220
- t.datetime "updated_at"
218
+ t.datetime "sent_at", precision: nil
219
+ t.datetime "received_at", precision: nil
220
+ t.datetime "deleted_at", precision: nil
221
+ t.datetime "created_at", precision: nil
222
+ t.datetime "updated_at", precision: nil
221
223
  t.string "state", limit: 16, default: "Expanded", null: false
222
224
  t.index ["mediator_id", "mediator_type"], name: "index_emails_on_mediator_id_and_mediator_type"
223
225
  end
224
226
 
225
- create_table "field_groups", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
227
+ create_table "field_groups", force: :cascade do |t|
226
228
  t.string "name", limit: 64
227
229
  t.string "label", limit: 128
228
230
  t.integer "position"
229
231
  t.string "hint"
230
- t.datetime "created_at"
231
- t.datetime "updated_at"
232
+ t.datetime "created_at", precision: nil
233
+ t.datetime "updated_at", precision: nil
232
234
  t.integer "tag_id"
233
235
  t.string "klass_name", limit: 32
234
236
  end
235
237
 
236
- create_table "fields", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
238
+ create_table "fields", force: :cascade do |t|
237
239
  t.string "type"
238
240
  t.integer "field_group_id"
239
241
  t.integer "position"
@@ -246,8 +248,8 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
246
248
  t.boolean "disabled"
247
249
  t.boolean "required"
248
250
  t.integer "maxlength"
249
- t.datetime "created_at"
250
- t.datetime "updated_at"
251
+ t.datetime "created_at", precision: nil
252
+ t.datetime "updated_at", precision: nil
251
253
  t.integer "pair_id"
252
254
  t.text "settings"
253
255
  t.integer "minlength", default: 0
@@ -260,13 +262,13 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
260
262
  t.index ["name"], name: "index_fields_on_name"
261
263
  end
262
264
 
263
- create_table "groups", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
265
+ create_table "groups", force: :cascade do |t|
264
266
  t.string "name"
265
- t.datetime "created_at"
266
- t.datetime "updated_at"
267
+ t.datetime "created_at", precision: nil
268
+ t.datetime "updated_at", precision: nil
267
269
  end
268
270
 
269
- create_table "groups_users", id: false, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
271
+ create_table "groups_users", id: false, force: :cascade do |t|
270
272
  t.integer "group_id"
271
273
  t.integer "user_id"
272
274
  t.index ["group_id", "user_id"], name: "index_groups_users_on_group_id_and_user_id"
@@ -274,7 +276,7 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
274
276
  t.index ["user_id"], name: "index_groups_users_on_user_id"
275
277
  end
276
278
 
277
- create_table "leads", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
279
+ create_table "leads", force: :cascade do |t|
278
280
  t.integer "user_id"
279
281
  t.integer "campaign_id"
280
282
  t.integer "assigned_to"
@@ -296,9 +298,9 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
296
298
  t.string "twitter", limit: 128
297
299
  t.integer "rating", default: 0, null: false
298
300
  t.boolean "do_not_call", default: false, null: false
299
- t.datetime "deleted_at"
300
- t.datetime "created_at"
301
- t.datetime "updated_at"
301
+ t.datetime "deleted_at", precision: nil
302
+ t.datetime "created_at", precision: nil
303
+ t.datetime "updated_at", precision: nil
302
304
  t.string "background_info"
303
305
  t.string "skype", limit: 128
304
306
  t.text "subscribed_users"
@@ -306,16 +308,16 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
306
308
  t.index ["user_id", "last_name", "deleted_at"], name: "index_leads_on_user_id_and_last_name_and_deleted_at", unique: true
307
309
  end
308
310
 
309
- create_table "lists", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
311
+ create_table "lists", force: :cascade do |t|
310
312
  t.string "name"
311
313
  t.text "url"
312
- t.datetime "created_at"
313
- t.datetime "updated_at"
314
+ t.datetime "created_at", precision: nil
315
+ t.datetime "updated_at", precision: nil
314
316
  t.integer "user_id"
315
317
  t.index ["user_id"], name: "index_lists_on_user_id"
316
318
  end
317
319
 
318
- create_table "opportunities", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
320
+ create_table "opportunities", force: :cascade do |t|
319
321
  t.integer "user_id"
320
322
  t.integer "campaign_id"
321
323
  t.integer "assigned_to"
@@ -327,72 +329,72 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
327
329
  t.decimal "amount", precision: 12, scale: 2
328
330
  t.decimal "discount", precision: 12, scale: 2
329
331
  t.date "closes_on"
330
- t.datetime "deleted_at"
331
- t.datetime "created_at"
332
- t.datetime "updated_at"
332
+ t.datetime "deleted_at", precision: nil
333
+ t.datetime "created_at", precision: nil
334
+ t.datetime "updated_at", precision: nil
333
335
  t.string "background_info"
334
336
  t.text "subscribed_users"
335
337
  t.index ["assigned_to"], name: "index_opportunities_on_assigned_to"
336
338
  t.index ["user_id", "name", "deleted_at"], name: "id_name_deleted", unique: true
337
339
  end
338
340
 
339
- create_table "permissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
341
+ create_table "permissions", force: :cascade do |t|
340
342
  t.integer "user_id"
341
343
  t.string "asset_type"
342
344
  t.integer "asset_id"
343
- t.datetime "created_at"
344
- t.datetime "updated_at"
345
+ t.datetime "created_at", precision: nil
346
+ t.datetime "updated_at", precision: nil
345
347
  t.integer "group_id"
346
348
  t.index ["asset_id", "asset_type"], name: "index_permissions_on_asset_id_and_asset_type"
347
349
  t.index ["group_id"], name: "index_permissions_on_group_id"
348
350
  t.index ["user_id"], name: "index_permissions_on_user_id"
349
351
  end
350
352
 
351
- create_table "preferences", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
353
+ create_table "preferences", force: :cascade do |t|
352
354
  t.integer "user_id"
353
355
  t.string "name", limit: 32, default: "", null: false
354
356
  t.text "value"
355
- t.datetime "created_at"
356
- t.datetime "updated_at"
357
+ t.datetime "created_at", precision: nil
358
+ t.datetime "updated_at", precision: nil
357
359
  t.index ["user_id", "name"], name: "index_preferences_on_user_id_and_name"
358
360
  end
359
361
 
360
- create_table "sessions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
362
+ create_table "sessions", force: :cascade do |t|
361
363
  t.string "session_id", null: false
362
364
  t.text "data"
363
- t.datetime "created_at"
364
- t.datetime "updated_at"
365
+ t.datetime "created_at", precision: nil
366
+ t.datetime "updated_at", precision: nil
365
367
  t.index ["session_id"], name: "index_sessions_on_session_id"
366
368
  t.index ["updated_at"], name: "index_sessions_on_updated_at"
367
369
  end
368
370
 
369
- create_table "settings", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
371
+ create_table "settings", force: :cascade do |t|
370
372
  t.string "name", limit: 32, default: "", null: false
371
373
  t.text "value"
372
- t.datetime "created_at"
373
- t.datetime "updated_at"
374
+ t.datetime "created_at", precision: nil
375
+ t.datetime "updated_at", precision: nil
374
376
  t.index ["name"], name: "index_settings_on_name"
375
377
  end
376
378
 
377
- create_table "taggings", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
379
+ create_table "taggings", force: :cascade do |t|
378
380
  t.integer "tag_id"
379
381
  t.integer "taggable_id"
380
382
  t.integer "tagger_id"
381
383
  t.string "tagger_type"
382
384
  t.string "taggable_type", limit: 50
383
385
  t.string "context", limit: 50
384
- t.datetime "created_at"
386
+ t.datetime "created_at", precision: nil
385
387
  t.index ["tag_id", "taggable_id", "taggable_type", "context"], name: "taggings_idx", unique: true
386
388
  t.index ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
387
389
  end
388
390
 
389
- create_table "tags", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
391
+ create_table "tags", force: :cascade do |t|
390
392
  t.string "name"
391
393
  t.integer "taggings_count", default: 0
392
394
  t.index ["name"], name: "index_tags_on_name", unique: true
393
395
  end
394
396
 
395
- create_table "tasks", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
397
+ create_table "tasks", force: :cascade do |t|
396
398
  t.integer "user_id"
397
399
  t.integer "assigned_to"
398
400
  t.integer "completed_by"
@@ -402,18 +404,18 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
402
404
  t.string "priority", limit: 32
403
405
  t.string "category", limit: 32
404
406
  t.string "bucket", limit: 32
405
- t.datetime "due_at"
406
- t.datetime "completed_at"
407
- t.datetime "deleted_at"
408
- t.datetime "created_at"
409
- t.datetime "updated_at"
407
+ t.datetime "due_at", precision: nil
408
+ t.datetime "completed_at", precision: nil
409
+ t.datetime "deleted_at", precision: nil
410
+ t.datetime "created_at", precision: nil
411
+ t.datetime "updated_at", precision: nil
410
412
  t.string "background_info"
411
413
  t.text "subscribed_users"
412
414
  t.index ["assigned_to"], name: "index_tasks_on_assigned_to"
413
415
  t.index ["user_id", "name", "deleted_at"], name: "index_tasks_on_user_id_and_name_and_deleted_at", unique: true
414
416
  end
415
417
 
416
- create_table "users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
418
+ create_table "users", force: :cascade do |t|
417
419
  t.string "username", limit: 32, default: "", null: false
418
420
  t.string "email", limit: 254, default: "", null: false
419
421
  t.string "first_name", limit: 32
@@ -429,25 +431,25 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
429
431
  t.string "skype", limit: 32
430
432
  t.string "encrypted_password", default: "", null: false
431
433
  t.string "password_salt", default: "", null: false
432
- t.datetime "last_sign_in_at"
433
- t.datetime "current_sign_in_at"
434
+ t.datetime "last_sign_in_at", precision: nil
435
+ t.datetime "current_sign_in_at", precision: nil
434
436
  t.string "last_sign_in_ip"
435
437
  t.string "current_sign_in_ip"
436
438
  t.integer "sign_in_count", default: 0, null: false
437
- t.datetime "deleted_at"
438
- t.datetime "created_at"
439
- t.datetime "updated_at"
439
+ t.datetime "deleted_at", precision: nil
440
+ t.datetime "created_at", precision: nil
441
+ t.datetime "updated_at", precision: nil
440
442
  t.boolean "admin", default: false, null: false
441
- t.datetime "suspended_at"
443
+ t.datetime "suspended_at", precision: nil
442
444
  t.string "unconfirmed_email", limit: 254
443
445
  t.string "reset_password_token"
444
- t.datetime "reset_password_sent_at"
446
+ t.datetime "reset_password_sent_at", precision: nil
445
447
  t.string "remember_token"
446
- t.datetime "remember_created_at"
448
+ t.datetime "remember_created_at", precision: nil
447
449
  t.string "authentication_token"
448
- t.string "confirmation_token"
449
- t.timestamp "confirmed_at"
450
- t.timestamp "confirmation_sent_at"
450
+ t.string "confirmation_token", limit: 255
451
+ t.datetime "confirmed_at", precision: nil
452
+ t.datetime "confirmation_sent_at", precision: nil
451
453
  t.index ["authentication_token"], name: "index_users_on_authentication_token", unique: true
452
454
  t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
453
455
  t.index ["email"], name: "index_users_on_email"
@@ -456,13 +458,13 @@ ActiveRecord::Schema.define(version: 2023_05_26_212613) do
456
458
  t.index ["username", "deleted_at"], name: "index_users_on_username_and_deleted_at", unique: true
457
459
  end
458
460
 
459
- create_table "versions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
461
+ create_table "versions", force: :cascade do |t|
460
462
  t.string "item_type", null: false
461
463
  t.integer "item_id", null: false
462
464
  t.string "event", limit: 512, null: false
463
465
  t.string "whodunnit"
464
466
  t.text "object"
465
- t.datetime "created_at"
467
+ t.datetime "created_at", precision: nil
466
468
  t.text "object_changes"
467
469
  t.integer "related_id"
468
470
  t.string "related_type"
@@ -108,10 +108,9 @@ module FatFreeCRM
108
108
  #--------------------------------------------------------------------------
109
109
  module Helper
110
110
  def hook(method, caller, context = {}, &block)
111
- is_view_hook = caller.is_haml?
112
111
 
113
- # If a block was given, hooks are able to replace, append or prepend view content.
114
- if is_view_hook
112
+ # In a view template context, hooks are able to replace, append or prepend content.
113
+ if caller.is_a?(ActionView::Base)
115
114
  hooks = FatFreeCRM::Callback.view_hook(method, caller, context)
116
115
  # Add content to the view in the following order:
117
116
  # -- before
@@ -258,7 +258,7 @@ module FatFreeCRM
258
258
  def notify(email, mediator_links)
259
259
  DropboxMailer.create_dropbox_notification(
260
260
  @sender, @settings[:address], email, mediator_links
261
- ).deliver_now
261
+ ).deliver_later
262
262
  end
263
263
  end
264
264
  end
@@ -8,7 +8,7 @@
8
8
  module FatFreeCRM
9
9
  module VERSION # :nodoc:
10
10
  MAJOR = 0
11
- MINOR = 21
11
+ MINOR = 22
12
12
  TINY = 0
13
13
  PRE = nil
14
14