effective_logging 3.3.0 → 3.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ddf74b601f163ea150e25b7e529d1e8abf13664ea6d19389efb79a092e67e653
4
- data.tar.gz: 99916c1974d5f545b53df560f94969d58a58b0d20381a7623ee97b54c947218e
3
+ metadata.gz: bb0a8d92372b22e941fa595e0f50219682d53a54cdb3ec2d4d819ca43140d42e
4
+ data.tar.gz: e4363f68cbb8b53f3616a2681885920b3574e643ab5244d324137ea94e147c28
5
5
  SHA512:
6
- metadata.gz: 50589f9370ed4005cabfcaa8cc3377ec845b8800acd8f195434c3a288f123160c7e0636491b5f204d4e6b98d8f50dedc00500a5fba9bcd34be83ee6ccc46523a
7
- data.tar.gz: 900e0b21b045f223333e852ba09d66c4e798edf855dd747fe6f251138f341b5d8b03f7d2da37c83a040a9b1b1e3cca941342692a0d065d6fd38f88d5d0639a88
6
+ metadata.gz: c1fcd0044cb28eaee999297d9b08b9d491fbf7b59938a3097674303d1283816f350d9eed44efca72b8a7c53abff9d38dc299be25d07e90604854ef523846f335
7
+ data.tar.gz: e21aa1f2ceaa6c3291c385a8c50e83ac2d164fde593472554a432b2cc458e4740f1fa9f56bd72b089727cf3cee9bc93ae750a017d4edf4229cefb12deb0eba8d
@@ -2,7 +2,7 @@
2
2
 
3
3
  class EffectiveLogChangesDatatable < Effective::Datatable
4
4
  datatable do
5
- order :updated_at
5
+ order :id, :desc
6
6
 
7
7
  col :updated_at, label: 'Date'
8
8
  col :id, visible: false
@@ -14,12 +14,12 @@ class EffectiveLogChangesDatatable < Effective::Datatable
14
14
  col :associated_to_s, visible: false, label: 'Associated'
15
15
 
16
16
  col :message, sort: false do |log|
17
- (log.message || '').gsub!("\n", '<br>')
17
+ message = (log.message || '').gsub("\n", '<br>')
18
18
 
19
19
  if log.associated_id == attributes[:changes_to_id] && log.associated_type == attributes[:changes_to_type]
20
- log.message
20
+ message
21
21
  else
22
- "#{log.associated_type} #{log.associated_to_s} - #{log.message}"
22
+ "#{log.associated_type} #{log.associated_to_s} - #{message}"
23
23
  end
24
24
 
25
25
  end.search do |collection, term, column, sql_column|
@@ -1,6 +1,6 @@
1
1
  class EffectiveLogsDatatable < Effective::Datatable
2
2
  datatable do
3
- order :updated_at
3
+ order :id, :desc
4
4
 
5
5
  col :updated_at, label: 'Date'
6
6
  col :id, visible: false
@@ -15,6 +15,9 @@ class EffectiveLogsDatatable < Effective::Datatable
15
15
  col :status, search: { collection: EffectiveLogging.statuses }
16
16
  end
17
17
 
18
+ col :changes_to_type, visible: false
19
+ col :changes_to_id, visible: false
20
+
18
21
  col :associated_type, visible: false
19
22
  col :associated_id, visible: false, label: 'Associated Id'
20
23
  col :associated_to_s, label: 'Associated'
@@ -35,13 +38,21 @@ class EffectiveLogsDatatable < Effective::Datatable
35
38
  # A nil attributes[:log_id] means give me all the top level log entries
36
39
  # If we set a log_id then it's for sub logs
37
40
  collection do
38
- scope = Effective::Log.deep.where(parent_id: attributes[:log_id])
41
+ scope = Effective::Log.includes(:user).where(parent_id: attributes[:log_id])
39
42
 
43
+ # Older syntax, pass by integer
40
44
  if attributes[:for]
41
45
  user_ids = Array(attributes[:for])
42
46
  scope = scope.where('user_id IN (?) OR (associated_id IN (?) AND associated_type = ?)', user_ids, user_ids, 'User')
43
47
  end
44
48
 
49
+ # Newer syntax, pass by object
50
+ if attributes[:for_id] && attributes[:for_type]
51
+ for_scope = scope.where(associated_id: attributes[:for_id], associated_type: attributes[:for_type])
52
+ .or(scope.where(changes_to_id: attributes[:for_id], changes_to_type: attributes[:for_type]))
53
+ .or(scope.where(user_id: attributes[:for_id], user_type: attributes[:for_type]))
54
+ end
55
+
45
56
  if attributes[:associated_id] && attributes[:associated_type]
46
57
  scope = scope.where(associated_id: attributes[:associated_id], associated_type: attributes[:associated_type])
47
58
  end
@@ -64,8 +64,12 @@ module ActsAsLoggable
64
64
  EffectiveRoles.roles_for(value) if attribute == :roles_mask && defined?(EffectiveRoles) && respond_to?(:roles)
65
65
  end
66
66
 
67
+ def logs_datatable
68
+ EffectiveLogsDatatable.new(for: self) if persisted?
69
+ end
70
+
67
71
  def log_changes_datatable
68
- EffectiveLogChangesDatatable.new(changes_to_id: id, changes_to_type: self.class.name) if persisted?
72
+ EffectiveLogChangesDatatable.new(changes_to: self) if persisted?
69
73
  end
70
74
 
71
75
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveLogging
2
- VERSION = '3.3.0'.freeze
2
+ VERSION = '3.4.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_logging
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-06 00:00:00.000000000 Z
11
+ date: 2022-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails