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.
- checksums.yaml +4 -4
- data/app/assets/config/fat_free_crm.js +3 -0
- data/app/assets/config/manifest.js +1 -3
- data/app/controllers/admin/field_groups_controller.rb +0 -2
- data/app/controllers/admin/tags_controller.rb +1 -1
- data/app/controllers/admin/users_controller.rb +1 -1
- data/app/controllers/application_controller.rb +11 -0
- data/app/controllers/comments_controller.rb +2 -0
- data/app/controllers/emails_controller.rb +2 -0
- data/app/controllers/entities/accounts_controller.rb +3 -1
- data/app/controllers/entities/campaigns_controller.rb +3 -1
- data/app/controllers/entities/contacts_controller.rb +3 -1
- data/app/controllers/entities/leads_controller.rb +4 -2
- data/app/controllers/entities/opportunities_controller.rb +3 -1
- data/app/controllers/entities_controller.rb +2 -0
- data/app/controllers/home_controller.rb +2 -0
- data/app/controllers/lists_controller.rb +2 -0
- data/app/controllers/tasks_controller.rb +3 -1
- data/app/controllers/users_controller.rb +2 -0
- data/app/models/fields/custom_field.rb +2 -2
- data/app/models/observers/entity_observer.rb +1 -1
- data/app/models/polymorphic/comment.rb +1 -1
- data/app/models/setting.rb +4 -5
- data/app/models/users/user.rb +1 -1
- data/bin/bundle +108 -2
- data/bin/rails +3 -3
- data/bin/rake +2 -2
- data/bin/setup +12 -15
- data/config/application.rb +9 -4
- data/config/boot.rb +3 -5
- data/config/cable.yml +10 -0
- data/config/database.yml +26 -0
- data/config/environment.rb +4 -3
- data/config/environments/development.rb +47 -14
- data/config/environments/production.rb +17 -15
- data/config/environments/test.rb +19 -9
- data/config/initializers/action_mailer.rb +1 -0
- data/config/initializers/content_security_policy.rb +21 -26
- data/config/initializers/custom_field_ransack_translations.rb +1 -0
- data/config/initializers/filter_parameter_logging.rb +6 -2
- data/config/initializers/inflections.rb +4 -4
- data/config/initializers/permissions_policy.rb +12 -0
- data/config/storage.yml +5 -5
- data/db/demo/field_groups.yml +2 -1
- data/db/migrate/20230526212613_convert_to_active_storage.rb +27 -11
- data/db/schema.rb +107 -105
- data/lib/fat_free_crm/callback.rb +2 -3
- data/lib/fat_free_crm/mail_processor/dropbox.rb +1 -1
- data/lib/fat_free_crm/version.rb +1 -1
- data/public/avatars/User/2/large_rails.png +0 -0
- data/public/avatars/User/2/medium_rails.png +0 -0
- data/public/avatars/User/2/original_rails.png +0 -0
- data/public/avatars/User/2/small_rails.png +0 -0
- data/public/avatars/User/2/thumb_rails.png +0 -0
- data/public/avatars/User/3/large_rails.png +0 -0
- data/public/avatars/User/3/medium_rails.png +0 -0
- data/public/avatars/User/3/original_rails.png +0 -0
- data/public/avatars/User/3/small_rails.png +0 -0
- data/public/avatars/User/3/thumb_rails.png +0 -0
- data/public/avatars/User/4/large_rails.png +0 -0
- data/public/avatars/User/4/medium_rails.png +0 -0
- data/public/avatars/User/4/original_rails.png +0 -0
- data/public/avatars/User/4/small_rails.png +0 -0
- data/public/avatars/User/4/thumb_rails.png +0 -0
- data/public/avatars/User/6/large_rails.png +0 -0
- data/public/avatars/User/6/medium_rails.png +0 -0
- data/public/avatars/User/6/original_rails.png +0 -0
- data/public/avatars/User/6/small_rails.png +0 -0
- data/public/avatars/User/6/thumb_rails.png +0 -0
- data/public/avatars/User/7/large_rails.png +0 -0
- data/public/avatars/User/7/medium_rails.png +0 -0
- data/public/avatars/User/7/original_rails.png +0 -0
- data/public/avatars/User/7/small_rails.png +0 -0
- data/public/avatars/User/7/thumb_rails.png +0 -0
- metadata +64 -16
- 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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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,
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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",
|
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.
|
450
|
-
t.
|
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",
|
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
|
-
#
|
114
|
-
if
|
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
|
data/lib/fat_free_crm/version.rb
CHANGED
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
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|