loggable_activity 0.1.52 → 0.1.53

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -1
  3. data/GETTING-STARTED.md +102 -41
  4. data/README.md +3 -0
  5. data/docs/LoggableActivity/Activity.html +44 -16
  6. data/docs/LoggableActivity/Encryption.html +31 -24
  7. data/docs/LoggableActivity/EncryptionKey.html +10 -7
  8. data/docs/LoggableActivity/Hooks.html +19 -19
  9. data/docs/LoggableActivity/Payload.html +7 -7
  10. data/docs/LoggableActivity/PayloadsBuilder.html +75 -22
  11. data/docs/LoggableActivity/UpdatePayloadsBuilder.html +66 -67
  12. data/docs/created.rid +10 -10
  13. data/docs/js/search_index.js +1 -1
  14. data/docs/js/search_index.js.gz +0 -0
  15. data/docs/table_of_contents.html +25 -0
  16. data/lib/generators/.DS_Store +0 -0
  17. data/lib/generators/loggable_activity/.DS_Store +0 -0
  18. data/lib/generators/loggable_activity/install_generator.rb +11 -6
  19. data/lib/generators/loggable_activity/install_templates_generator.rb +42 -0
  20. data/lib/generators/loggable_activity/templates/config/locales/loggable_activity.en.yml +36 -0
  21. data/lib/generators/loggable_activity/templates/helpers/loggable_activity_helper.rb +49 -0
  22. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.erb +23 -0
  23. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.slim +18 -0
  24. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.erb +18 -0
  25. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.slim +17 -0
  26. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.erb +18 -0
  27. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.slim +17 -0
  28. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.erb +18 -0
  29. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.slim +12 -0
  30. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.erb +12 -0
  31. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.slim +11 -0
  32. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.erb +8 -0
  33. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.slim +6 -0
  34. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.erb +17 -0
  35. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.slim +14 -0
  36. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.erb +23 -0
  37. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.slim +21 -0
  38. data/lib/loggable_activity/payloads_builder.rb +3 -19
  39. data/lib/loggable_activity/update_payloads_builder.rb +18 -60
  40. data/lib/loggable_activity/version.rb +1 -1
  41. metadata +34 -15
  42. /data/lib/generators/loggable_activity/templates/{loggable_activity.yml → config/loggable_activity.yml} +0 -0
@@ -68,6 +68,8 @@
68
68
  <ul class="link-list" role="directory">
69
69
  <li ><a href="#method-i-build_primary_update_payload">#build_primary_update_payload</a>
70
70
  <li ><a href="#method-i-build_relation_update_for_belongs_to">#build_relation_update_for_belongs_to</a>
71
+ <li ><a href="#method-i-build_relation_update_for_has_many">#build_relation_update_for_has_many</a>
72
+ <li ><a href="#method-i-build_relation_update_for_has_one">#build_relation_update_for_has_one</a>
71
73
  <li ><a href="#method-i-build_relation_update_payload">#build_relation_update_payload</a>
72
74
  <li ><a href="#method-i-build_update_payloads">#build_update_payloads</a>
73
75
  <li ><a href="#method-i-build_update_relation_payloads">#build_update_relation_payloads</a>
@@ -114,67 +116,8 @@
114
116
  <div class="method-description">
115
117
  <p>Builds payloads for an activity update event.</p>
116
118
 
117
- <pre>Example:
118
- build_update_payloads
119
-
120
- Returns:
121
- [
122
- [0] #&lt;LoggableActivity::Payload:0x00000001047d31d8&gt; {
123
- :id =&gt; nil,
124
- :record_type =&gt; &quot;Demo::Club&quot;,
125
- :record_id =&gt; 7,
126
- :encrypted_attrs =&gt; {
127
- &quot;changes&quot; =&gt; [
128
- [0] {
129
- &quot;name&quot; =&gt; {
130
- &quot;from&quot; =&gt; &quot;+aQznZK64KLQ8wsyZlSOGQbqm+J8gDX93rNFeF+wY68=\n&quot;,
131
- &quot;to&quot; =&gt; &quot;OdS834ZDS06+AYxmz4cUjhtgk7Jc8NoOVAAqR81Is7w=\n&quot;
132
- }
133
- }
134
- ]
135
- },
136
- :payload_type =&gt; &quot;update_payload&quot;,
137
- :data_owner =&gt; false,
138
- :activity_id =&gt; nil,
139
- :created_at =&gt; nil,
140
- :updated_at =&gt; nil
141
- },
142
- [1] #&lt;LoggableActivity::Payload:0x0000000107847f80&gt; {
143
- :id =&gt; nil,
144
- :record_type =&gt; &quot;Demo::Address&quot;,
145
- :record_id =&gt; 7,
146
- :encrypted_attrs =&gt; {
147
- &quot;street&quot; =&gt; &quot;W7cmT22Bb5TKVmtxTYJt1w==\n&quot;,
148
- &quot;city&quot; =&gt; &quot;AAwdTI7Xo86cMbFBAMsMIw==\n&quot;,
149
- &quot;country&quot; =&gt; &quot;7gu5wdu6O9tD7Q7+EDOqAg==\n&quot;,
150
- &quot;postal_code&quot; =&gt; &quot;ljjfT6MXGNK33/PUyi6Nmw==\n&quot;
151
- },
152
- :payload_type =&gt; &quot;previous_association&quot;,
153
- :data_owner =&gt; false,
154
- :activity_id =&gt; nil,
155
- :created_at =&gt; nil,
156
- :updated_at =&gt; nil
157
- },
158
- [2] #&lt;LoggableActivity::Payload:0x0000000107802a98&gt; {
159
- :id =&gt; nil,
160
- :record_type =&gt; &quot;Demo::Address&quot;,
161
- :record_id =&gt; 8,
162
- :encrypted_attrs =&gt; {
163
- &quot;street&quot; =&gt; &quot;CuULVgIEgrOcWBxegKEvSg==\n&quot;,
164
- &quot;city&quot; =&gt; &quot;QbvodOYMvNFpkvsCprqGqg==\n&quot;,
165
- &quot;country&quot; =&gt; &quot;/N03d1OL3TY+aaiPUQ5N1A==\n&quot;,
166
- &quot;postal_code&quot; =&gt; &quot;ZZu3S5tnaTeq+wBu0dPKBw==\n&quot;
167
- },
168
- :payload_type =&gt; &quot;current_association&quot;,
169
- :data_owner =&gt; false,
170
- :activity_id =&gt; nil,
171
- :created_at =&gt; nil,
172
- :updated_at =&gt; nil
173
- }
174
- ]</pre>
175
-
176
119
  <div class="method-source-code" id="build_update_payloads-source">
177
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 67</span>
120
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 7</span>
178
121
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_update_payloads</span>
179
122
  <span class="ruby-ivar">@update_payloads</span> = []
180
123
 
@@ -212,7 +155,7 @@
212
155
 
213
156
 
214
157
  <div class="method-source-code" id="build_primary_update_payload-source">
215
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 88</span>
158
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 28</span>
216
159
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_primary_update_payload</span>(<span class="ruby-identifier">previous_values</span>, <span class="ruby-identifier">current_values</span>)
217
160
  <span class="ruby-keyword">return</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">previous_values</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">current_values</span>
218
161
 
@@ -242,7 +185,7 @@
242
185
 
243
186
 
244
187
  <div class="method-source-code" id="build_relation_update_for_belongs_to-source">
245
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 120</span>
188
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 78</span>
246
189
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_for_belongs_to</span>(<span class="ruby-identifier">relation_config</span>)
247
190
  <span class="ruby-identifier">relation_id</span> = <span class="ruby-node">&quot;#{relation_config[&#39;belongs_to&#39;]}_id&quot;</span>
248
191
  <span class="ruby-identifier">model_class_name</span> = <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;model&#39;</span>]
@@ -270,6 +213,58 @@
270
213
  </div>
271
214
 
272
215
 
216
+ </div>
217
+
218
+ <div id="method-i-build_relation_update_for_has_many" class="method-detail ">
219
+ <div class="method-header">
220
+ <div class="method-heading">
221
+ <span class="method-name">build_relation_update_for_has_many</span><span
222
+ class="method-args">(relation_config)</span>
223
+ <span class="method-click-advice">click to toggle source</span>
224
+ </div>
225
+ </div>
226
+
227
+ <div class="method-description">
228
+
229
+
230
+ <div class="method-source-code" id="build_relation_update_for_has_many-source">
231
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 64</span>
232
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_for_has_many</span>(<span class="ruby-identifier">relation_config</span>)
233
+ <span class="ruby-comment"># Note: This method is not implemented yet.</span>
234
+ <span class="ruby-comment"># It requires that there is a form where it is possible to change</span>
235
+ <span class="ruby-comment"># the related records. This is not implemented yet. in the Demo app</span>
236
+ <span class="ruby-comment"># puts relation_config[&#39;has_many&#39;]</span>
237
+ <span class="ruby-keyword">end</span></pre>
238
+ </div>
239
+ </div>
240
+
241
+
242
+ </div>
243
+
244
+ <div id="method-i-build_relation_update_for_has_one" class="method-detail ">
245
+ <div class="method-header">
246
+ <div class="method-heading">
247
+ <span class="method-name">build_relation_update_for_has_one</span><span
248
+ class="method-args">(relation_config)</span>
249
+ <span class="method-click-advice">click to toggle source</span>
250
+ </div>
251
+ </div>
252
+
253
+ <div class="method-description">
254
+
255
+
256
+ <div class="method-source-code" id="build_relation_update_for_has_one-source">
257
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 71</span>
258
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_for_has_one</span>(<span class="ruby-identifier">relation_config</span>)
259
+ <span class="ruby-comment"># Note: This method is not implemented yet.</span>
260
+ <span class="ruby-comment"># It requires that there is a form where it is possible to change</span>
261
+ <span class="ruby-comment"># the related records. This is not implemented yet. in the Demo app</span>
262
+ <span class="ruby-comment"># puts relation_config[&#39;has_many&#39;]</span>
263
+ <span class="ruby-keyword">end</span></pre>
264
+ </div>
265
+ </div>
266
+
267
+
273
268
  </div>
274
269
 
275
270
  <div id="method-i-build_relation_update_payload" class="method-detail ">
@@ -285,7 +280,7 @@
285
280
 
286
281
 
287
282
  <div class="method-source-code" id="build_relation_update_payload-source">
288
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 144</span>
283
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 102</span>
289
284
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_payload</span>(<span class="ruby-identifier">_attrs</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">record</span>, <span class="ruby-identifier">payload_type</span>)
290
285
  <span class="ruby-identifier">encryption_key</span> = <span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">EncryptionKey</span>.<span class="ruby-identifier">for_record</span>(<span class="ruby-identifier">record</span>)&amp;.<span class="ruby-identifier">key</span>
291
286
  <span class="ruby-identifier">encrypted_attrs</span> = <span class="ruby-identifier">relation_encrypted_attrs</span>(<span class="ruby-identifier">record</span>.<span class="ruby-identifier">attributes</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">encryption_key</span>)
@@ -315,12 +310,16 @@
315
310
 
316
311
 
317
312
  <div class="method-source-code" id="build_update_relation_payloads-source">
318
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 111</span>
313
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 51</span>
319
314
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_update_relation_payloads</span>(<span class="ruby-identifier">relation_config</span>)
320
315
  <span class="ruby-identifier">relation_config</span>.<span class="ruby-identifier">each_key</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
321
316
  <span class="ruby-keyword">case</span> <span class="ruby-identifier">key</span>
322
317
  <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;belongs_to&#39;</span>
323
318
  <span class="ruby-identifier">build_relation_update_for_belongs_to</span>(<span class="ruby-identifier">relation_config</span>)
319
+ <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;has_one&#39;</span>
320
+ <span class="ruby-identifier">build_relation_update_for_has_one</span>(<span class="ruby-identifier">relation_config</span>)
321
+ <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;has_many&#39;</span>
322
+ <span class="ruby-identifier">build_relation_update_for_has_many</span>(<span class="ruby-identifier">relation_config</span>)
324
323
  <span class="ruby-keyword">end</span>
325
324
  <span class="ruby-keyword">end</span>
326
325
  <span class="ruby-keyword">end</span></pre>
@@ -343,7 +342,7 @@
343
342
 
344
343
 
345
344
  <div class="method-source-code" id="encrypted_update_attrs-source">
346
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 99</span>
345
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 39</span>
347
346
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encrypted_update_attrs</span>(<span class="ruby-identifier">previous_values</span>, <span class="ruby-identifier">current_values</span>)
348
347
  <span class="ruby-identifier">changes</span> = []
349
348
  <span class="ruby-identifier">changed_attrs</span> = <span class="ruby-identifier">previous_values</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">loggable_attrs</span>)
@@ -374,7 +373,7 @@
374
373
 
375
374
 
376
375
  <div class="method-source-code" id="primary_update_attrs-source">
377
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 81</span>
376
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 21</span>
378
377
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_update_attrs</span>
379
378
  <span class="ruby-identifier">previous_values</span> = <span class="ruby-identifier">saved_changes</span>.<span class="ruby-identifier">transform_values</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:first</span>)
380
379
  <span class="ruby-identifier">current_values</span> = <span class="ruby-identifier">saved_changes</span>.<span class="ruby-identifier">transform_values</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:last</span>)
@@ -400,7 +399,7 @@
400
399
 
401
400
 
402
401
  <div class="method-source-code" id="relation_encrypted_attrs-source">
403
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 155</span>
402
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 113</span>
404
403
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">relation_encrypted_attrs</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">encryption_key</span>)
405
404
  <span class="ruby-identifier">encrypt_attrs</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">encryption_key</span>)
406
405
  <span class="ruby-keyword">end</span></pre>
data/docs/created.rid CHANGED
@@ -1,10 +1,10 @@
1
- Fri, 16 Feb 2024 07:34:33 +0100
2
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/activity.rb Thu, 15 Feb 2024 13:53:38 +0100
3
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/configuration.rb Wed, 14 Feb 2024 15:28:50 +0100
4
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption.rb Thu, 15 Feb 2024 13:53:38 +0100
5
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption_key.rb Fri, 16 Feb 2024 07:32:02 +0100
6
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/hooks.rb Wed, 14 Feb 2024 15:28:50 +0100
7
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payload.rb Wed, 14 Feb 2024 15:28:50 +0100
8
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payloads_builder.rb Wed, 14 Feb 2024 15:28:50 +0100
9
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/update_payloads_builder.rb Wed, 14 Feb 2024 15:28:50 +0100
10
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/version.rb Thu, 15 Feb 2024 13:53:47 +0100
1
+ Wed, 21 Feb 2024 21:47:04 +0100
2
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/activity.rb Wed, 21 Feb 2024 12:58:24 +0100
3
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/configuration.rb Mon, 19 Feb 2024 15:59:34 +0100
4
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption.rb Fri, 16 Feb 2024 15:03:24 +0100
5
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption_key.rb Wed, 21 Feb 2024 12:58:24 +0100
6
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/hooks.rb Wed, 21 Feb 2024 12:58:24 +0100
7
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payload.rb Wed, 21 Feb 2024 12:58:24 +0100
8
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payloads_builder.rb Wed, 21 Feb 2024 21:46:26 +0100
9
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/update_payloads_builder.rb Wed, 21 Feb 2024 21:46:26 +0100
10
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/version.rb Wed, 21 Feb 2024 21:46:16 +0100
@@ -1 +1 @@
1
- var search_data = {"index":{"searchIndex":["loggableactivity","activity","configuration","encryption","encryptionerror","encryptionkey","hooks","payload","payloadsbuilder","updatepayloadsbuilder","action_key()","activities_for_actor()","actor_display_name()","actor_display_name_field()","actor_encryption_key()","actor_key()","associated_record_encryption_key()","attrs()","attrs()","base_action()","blank?()","build_destroy_payload()","build_payload()","build_payloads()","build_primary_payload()","build_primary_update_payload()","build_relation_payload()","build_relation_update_for_belongs_to()","build_relation_update_payload()","build_update_payloads()","build_update_relation_payloads()","create_activity()","create_encryption_key()","current_user_model?()","decrypt()","decrypt_attr()","decrypted_attrs()","decrypted_from_to_attr()","decrypted_update_attrs()","deleted_attrs()","encrypt()","encrypt_attr()","encrypt_attrs()","encrypted_actor_name()","encrypted_record_name()","encrypted_update_attrs()","for_class()","for_record()","for_record_by_type_and_id()","latest()","load_config_file()","log()","log_activity()","log_create_activity()","log_custom_activity()","log_destroy()","log_destroy_activity()","log_update()","log_update_activity()","mark_as_deleted()","must_have_at_least_one_payload()","nothing_to_log?()","ordered_payloads()","payload_encryption_key()","previous_associations_attrs()","primary_encryption_key()","primary_encryption_key_deleted?()","primary_payload()","primary_payload_attrs()","primary_update_attrs()","random_key()","record_display_name()","record_key()","relation_encrypted_attrs()","relations_attrs()","update_activity_attrs()","update_attrs()","updated_relations_attrs()"],"longSearchIndex":["loggableactivity","loggableactivity::activity","loggableactivity::configuration","loggableactivity::encryption","loggableactivity::encryptionerror","loggableactivity::encryptionkey","loggableactivity::hooks","loggableactivity::payload","loggableactivity::payloadsbuilder","loggableactivity::updatepayloadsbuilder","loggableactivity::hooks#action_key()","loggableactivity::activity::activities_for_actor()","loggableactivity::activity#actor_display_name()","loggableactivity::hooks#actor_display_name_field()","loggableactivity::hooks#actor_encryption_key()","loggableactivity::activity#actor_key()","loggableactivity::payloadsbuilder#associated_record_encryption_key()","loggableactivity::activity#attrs()","loggableactivity::payload#attrs()","loggableactivity::hooks#base_action()","loggableactivity::encryption::blank?()","loggableactivity::payloadsbuilder#build_destroy_payload()","loggableactivity::payloadsbuilder#build_payload()","loggableactivity::payloadsbuilder#build_payloads()","loggableactivity::payloadsbuilder#build_primary_payload()","loggableactivity::updatepayloadsbuilder#build_primary_update_payload()","loggableactivity::payloadsbuilder#build_relation_payload()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_belongs_to()","loggableactivity::updatepayloadsbuilder#build_relation_update_payload()","loggableactivity::updatepayloadsbuilder#build_update_payloads()","loggableactivity::updatepayloadsbuilder#build_update_relation_payloads()","loggableactivity::hooks#create_activity()","loggableactivity::encryptionkey::create_encryption_key()","loggableactivity::hooks#current_user_model?()","loggableactivity::encryption::decrypt()","loggableactivity::payload#decrypt_attr()","loggableactivity::payload#decrypted_attrs()","loggableactivity::payload#decrypted_from_to_attr()","loggableactivity::payload#decrypted_update_attrs()","loggableactivity::payload#deleted_attrs()","loggableactivity::encryption::encrypt()","loggableactivity::payloadsbuilder#encrypt_attr()","loggableactivity::payloadsbuilder#encrypt_attrs()","loggableactivity::hooks#encrypted_actor_name()","loggableactivity::hooks#encrypted_record_name()","loggableactivity::updatepayloadsbuilder#encrypted_update_attrs()","loggableactivity::configuration::for_class()","loggableactivity::encryptionkey::for_record()","loggableactivity::encryptionkey::for_record_by_type_and_id()","loggableactivity::activity::latest()","loggableactivity::configuration::load_config_file()","loggableactivity::hooks#log()","loggableactivity::hooks#log_activity()","loggableactivity::hooks#log_create_activity()","loggableactivity::hooks#log_custom_activity()","loggableactivity::hooks#log_destroy()","loggableactivity::hooks#log_destroy_activity()","loggableactivity::hooks#log_update()","loggableactivity::hooks#log_update_activity()","loggableactivity::encryptionkey#mark_as_deleted()","loggableactivity::activity#must_have_at_least_one_payload()","loggableactivity::hooks#nothing_to_log?()","loggableactivity::activity#ordered_payloads()","loggableactivity::payload#payload_encryption_key()","loggableactivity::activity#previous_associations_attrs()","loggableactivity::hooks#primary_encryption_key()","loggableactivity::hooks#primary_encryption_key_deleted?()","loggableactivity::activity#primary_payload()","loggableactivity::activity#primary_payload_attrs()","loggableactivity::updatepayloadsbuilder#primary_update_attrs()","loggableactivity::encryptionkey::random_key()","loggableactivity::activity#record_display_name()","loggableactivity::activity#record_key()","loggableactivity::updatepayloadsbuilder#relation_encrypted_attrs()","loggableactivity::activity#relations_attrs()","loggableactivity::activity#update_activity_attrs()","loggableactivity::activity#update_attrs()","loggableactivity::activity#updated_relations_attrs()"],"info":[["LoggableActivity","","LoggableActivity.html","",""],["LoggableActivity::Activity","","LoggableActivity/Activity.html","","<p>Represents one action in the activity log.\n"],["LoggableActivity::Configuration","","LoggableActivity/Configuration.html","","<p>This class is used to load the configuration file located at config/loggable_activity.yml\n"],["LoggableActivity::Encryption","","LoggableActivity/Encryption.html","","<p>This module is used to encrypt and decrypt attributes\n"],["LoggableActivity::EncryptionError","","LoggableActivity/EncryptionError.html","","<p>This error is raised when encryption or decryption fails\n"],["LoggableActivity::EncryptionKey","","LoggableActivity/EncryptionKey.html","","<p>This class represents the encryption key used to unlock the data for one payload. When deleted, only …\n"],["LoggableActivity::Hooks","","LoggableActivity/Hooks.html","","<p>This module provides hooks for creating activities when included in a model.\n"],["LoggableActivity::Payload","","LoggableActivity/Payload.html","","<p>This class represents a payload in the log, containing encrypted data of one record in the database. …\n"],["LoggableActivity::PayloadsBuilder","","LoggableActivity/PayloadsBuilder.html","","<p>This module is responsible for building payloads used in loggable activities.\n"],["LoggableActivity::UpdatePayloadsBuilder","","LoggableActivity/UpdatePayloadsBuilder.html","","<p>This module is responsible for building update payloads used in loggable activities.\n"],["action_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-action_key","()",""],["activities_for_actor","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-activities_for_actor","(actor, limit = 20, params = { offset: 0 })","<p>Returns a list of activities for a given actor.\n"],["actor_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_display_name","()","<p>Returns the display name for a actor. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["actor_display_name_field","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_display_name_field","()",""],["actor_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_encryption_key","()",""],["actor_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_key","()",""],["associated_record_encryption_key","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-associated_record_encryption_key","(associated_record, data_owner)","<p>Retrieves the encryption key for the associated record.\n<p>@param associated_record [ActiveRecord::Base] …\n"],["attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-attrs","()","<p>Returns a list of attributes of the activity includig the indliced relations. The included relations …\n"],["attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-attrs","()","<p>Returns the decrypted attributes of the payload based on its type.\n<p>@return [Hash] The decrypted attributes. …\n"],["base_action","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-base_action","()",""],["blank?","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-blank-3F","(value)",""],["build_destroy_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_destroy_payload","()","<p>Builds the payload for destroyed records.\n"],["build_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payload","(relation_config, relation_type)","<p>Builds the payload for a specific relation.\n<p>@param relation_config [Hash] The configuration of the relation. …\n"],["build_payloads","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payloads","()","<p>Builds payloads for the loggable activity.\n\n<pre>Example:\n build_payloads\n\nReturns:\n #&lt;LoggableActivity::Payload:0x0000000109658718&gt; ...</pre>\n"],["build_primary_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_primary_payload","()","<p>Builds the primary payload.\n"],["build_primary_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_primary_update_payload","(previous_values, current_values)",""],["build_relation_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_relation_payload","(relation_config)","<p>Builds payloads for related records.\n<p>@param relation_config [Hash] The configuration of the relation. …\n"],["build_relation_update_for_belongs_to","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_belongs_to","(relation_config)",""],["build_relation_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_payload","(_attrs, loggable_attrs, record, payload_type)",""],["build_update_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_payloads","()","<p>Builds payloads for an activity update event.\n\n<pre>Example:\n build_update_payloads\n\n Returns:\n [\n [0] #&lt;LoggableActivity::Payload:0x00000001047d31d8&gt; ...</pre>\n"],["build_update_relation_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_relation_payloads","(relation_config)",""],["create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-create_activity","(payloads)",""],["create_encryption_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-create_encryption_key","(record_type, record_id, parent_key = nil)","<p>Creates an encryption key for a record, optionally using a parent key.\n\n<pre>@param record_type [String] The ...</pre>\n"],["current_user_model?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-current_user_model-3F","()",""],["decrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-decrypt","(data, encryption_key)","<p>Decrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.decrypt(&#39;SOME_ENCRYPTED_STRING&#39;, ...</pre>\n"],["decrypt_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypt_attr","(value)","<p>Decrypts a single attribute.\n<p>@param value [String] The encrypted value to decrypt. @return [String] The …\n"],["decrypted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_attrs","()","<p>Decrypts all attributes.\n<p>@return [Hash] The decrypted attributes.\n"],["decrypted_from_to_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_from_to_attr","(change)","<p>Decrypts ‘from’ and ‘to’ attributes.\n<p>@param change [Hash] The change hash containing ‘from’ …\n"],["decrypted_update_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_update_attrs","()","<p>Decrypts the ‘from’ and ‘to’ attributes in the update payload.\n<p>@return [Array&lt;Hash&gt;] …\n"],["deleted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-deleted_attrs","()","<p>Helper method to handle deleted attributes.\n<p>@return [Hash] The hash with deleted attributes.\n"],["encrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-encrypt","(data, encryption_key)","<p>Encrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.encrypt(&#39;my ...</pre>\n"],["encrypt_attr","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attr","(attrs, encryption_key)","<p>Encrypts a single attribute.\n<p>@param attrs [Hash] The attributes to be encrypted. @param encryption_key …\n"],["encrypt_attrs","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attrs","(attrs, loggable_attrs, encryption_key)","<p>Encrypts attributes.\n<p>@param attrs [Hash] The attributes to be encrypted. @param loggable_attrs [Array&lt;String&gt;] …\n"],["encrypted_actor_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_actor_name","()",""],["encrypted_record_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_record_name","()",""],["encrypted_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-encrypted_update_attrs","(previous_values, current_values)",""],["for_class","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-for_class","(class_name)","<p>Returns the configuration data for the given class\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-constant\">LoggableActivity</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Configuration</span>.<span class=\"ruby-identifier\">for_class</span>(<span class=\"ruby-string\">&#39;User&#39;</span>)\n</pre>\n"],["for_record","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record","(record, parent_key = nil)","<p>Returns an encryption key for a record, optionally using a parent key.\n\n<pre>@param record [ActiveRecord::Base] ...</pre>\n"],["for_record_by_type_and_id","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record_by_type_and_id","(record_type, record_id, parent_key = nil)","<p>Returns an encryption key for a record by its type and ID, optionally using a parent key.\n\n<pre>@param record_type ...</pre>\n"],["latest","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-latest","(limit = 20, params = { offset: 0 })","<p>Returns a list of activities ordered by creation date.\n"],["load_config_file","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-load_config_file","(config_file_path)",""],["log","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log","(action, actor: nil, params: {})","<p>Logs an activity with the specified action, actor, and params.\n\n<pre>@param action [Symbol] The action to log ...</pre>\n"],["log_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_activity","()",""],["log_create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_create_activity","()",""],["log_custom_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_custom_activity","(activity)",""],["log_destroy","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy","()",""],["log_destroy_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy_activity","()",""],["log_update","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update","()",""],["log_update_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update_activity","()",""],["mark_as_deleted","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-i-mark_as_deleted","()","<p>Marks the encryption key as deleted by updating the key to nil.\n"],["must_have_at_least_one_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-must_have_at_least_one_payload","()",""],["nothing_to_log?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-nothing_to_log-3F","(payloads)",""],["ordered_payloads","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-ordered_payloads","()",""],["payload_encryption_key","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-payload_encryption_key","()","<p>Retrieves the encryption key for the payload.\n<p>@return [String, nil] The encryption key.\n"],["previous_associations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-previous_associations_attrs","()",""],["primary_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key","()",""],["primary_encryption_key_deleted?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key_deleted-3F","()",""],["primary_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload","()",""],["primary_payload_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload_attrs","()","<p>Returns the attributes for the primary payload, without the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">primary_payload_attrs</span>\n</pre>\n"],["primary_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-primary_update_attrs","()",""],["random_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-random_key","()","<p>Generates a random encryption key.\n\n<pre>@return [String] The generated encryption key.</pre>\n<p>Example:\n"],["record_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_display_name","()","<p>Returns the display name for a record. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["record_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_key","()",""],["relation_encrypted_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-relation_encrypted_attrs","(attrs, loggable_attrs, encryption_key)",""],["relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-relations_attrs","()","<p>Returns the attributes for the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">relations_attrs</span>\n</pre>\n"],["update_activity_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_activity_attrs","()","<p>Returns the attributes of an upddate activity.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">update_activity_attrs</span>\n</pre>\n"],["update_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_attrs","()",""],["updated_relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-updated_relations_attrs","()",""]]}}
1
+ var search_data = {"index":{"searchIndex":["loggableactivity","activity","configuration","encryption","encryptionerror","encryptionkey","hooks","payload","payloadsbuilder","updatepayloadsbuilder","action_key()","activities_for_actor()","actor_display_name()","actor_display_name_field()","actor_encryption_key()","actor_key()","associated_record_encryption_key()","attrs()","attrs()","base_action()","blank?()","build_associated_payload()","build_destroy_payload()","build_has_many_payloads()","build_payload()","build_payloads()","build_primary_payload()","build_primary_update_payload()","build_relation_payload()","build_relation_update_for_belongs_to()","build_relation_update_for_has_many()","build_relation_update_for_has_one()","build_relation_update_payload()","build_update_payloads()","build_update_relation_payloads()","create_activity()","create_encryption_key()","current_user_model?()","decrypt()","decrypt_attr()","decrypted_attrs()","decrypted_from_to_attr()","decrypted_update_attrs()","deleted_attrs()","encrypt()","encrypt_attr()","encrypt_attrs()","encrypted_actor_name()","encrypted_record_name()","encrypted_update_attrs()","for_class()","for_record()","for_record_by_type_and_id()","last()","latest()","load_config_file()","log()","log_activity()","log_create_activity()","log_custom_activity()","log_destroy()","log_destroy_activity()","log_update()","log_update_activity()","mark_as_deleted()","must_have_at_least_one_payload()","nothing_to_log?()","ordered_payloads()","payload_encryption_key()","previous_associations_attrs()","primary_encryption_key()","primary_encryption_key_deleted?()","primary_payload()","primary_payload_attrs()","primary_update_attrs()","random_key()","record_display_name()","record_key()","relation_encrypted_attrs()","relations_attrs()","update_activity_attrs()","update_attrs()","updated_relations_attrs()"],"longSearchIndex":["loggableactivity","loggableactivity::activity","loggableactivity::configuration","loggableactivity::encryption","loggableactivity::encryptionerror","loggableactivity::encryptionkey","loggableactivity::hooks","loggableactivity::payload","loggableactivity::payloadsbuilder","loggableactivity::updatepayloadsbuilder","loggableactivity::hooks#action_key()","loggableactivity::activity::activities_for_actor()","loggableactivity::activity#actor_display_name()","loggableactivity::hooks#actor_display_name_field()","loggableactivity::hooks#actor_encryption_key()","loggableactivity::activity#actor_key()","loggableactivity::payloadsbuilder#associated_record_encryption_key()","loggableactivity::activity#attrs()","loggableactivity::payload#attrs()","loggableactivity::hooks#base_action()","loggableactivity::encryption::blank?()","loggableactivity::payloadsbuilder#build_associated_payload()","loggableactivity::payloadsbuilder#build_destroy_payload()","loggableactivity::payloadsbuilder#build_has_many_payloads()","loggableactivity::payloadsbuilder#build_payload()","loggableactivity::payloadsbuilder#build_payloads()","loggableactivity::payloadsbuilder#build_primary_payload()","loggableactivity::updatepayloadsbuilder#build_primary_update_payload()","loggableactivity::payloadsbuilder#build_relation_payload()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_belongs_to()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_has_many()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_has_one()","loggableactivity::updatepayloadsbuilder#build_relation_update_payload()","loggableactivity::updatepayloadsbuilder#build_update_payloads()","loggableactivity::updatepayloadsbuilder#build_update_relation_payloads()","loggableactivity::hooks#create_activity()","loggableactivity::encryptionkey::create_encryption_key()","loggableactivity::hooks#current_user_model?()","loggableactivity::encryption::decrypt()","loggableactivity::payload#decrypt_attr()","loggableactivity::payload#decrypted_attrs()","loggableactivity::payload#decrypted_from_to_attr()","loggableactivity::payload#decrypted_update_attrs()","loggableactivity::payload#deleted_attrs()","loggableactivity::encryption::encrypt()","loggableactivity::payloadsbuilder#encrypt_attr()","loggableactivity::payloadsbuilder#encrypt_attrs()","loggableactivity::hooks#encrypted_actor_name()","loggableactivity::hooks#encrypted_record_name()","loggableactivity::updatepayloadsbuilder#encrypted_update_attrs()","loggableactivity::configuration::for_class()","loggableactivity::encryptionkey::for_record()","loggableactivity::encryptionkey::for_record_by_type_and_id()","loggableactivity::activity::last()","loggableactivity::activity::latest()","loggableactivity::configuration::load_config_file()","loggableactivity::hooks#log()","loggableactivity::hooks#log_activity()","loggableactivity::hooks#log_create_activity()","loggableactivity::hooks#log_custom_activity()","loggableactivity::hooks#log_destroy()","loggableactivity::hooks#log_destroy_activity()","loggableactivity::hooks#log_update()","loggableactivity::hooks#log_update_activity()","loggableactivity::encryptionkey#mark_as_deleted()","loggableactivity::activity#must_have_at_least_one_payload()","loggableactivity::hooks#nothing_to_log?()","loggableactivity::activity#ordered_payloads()","loggableactivity::payload#payload_encryption_key()","loggableactivity::activity#previous_associations_attrs()","loggableactivity::hooks#primary_encryption_key()","loggableactivity::hooks#primary_encryption_key_deleted?()","loggableactivity::activity#primary_payload()","loggableactivity::activity#primary_payload_attrs()","loggableactivity::updatepayloadsbuilder#primary_update_attrs()","loggableactivity::encryptionkey::random_key()","loggableactivity::activity#record_display_name()","loggableactivity::activity#record_key()","loggableactivity::updatepayloadsbuilder#relation_encrypted_attrs()","loggableactivity::activity#relations_attrs()","loggableactivity::activity#update_activity_attrs()","loggableactivity::activity#update_attrs()","loggableactivity::activity#updated_relations_attrs()"],"info":[["LoggableActivity","","LoggableActivity.html","",""],["LoggableActivity::Activity","","LoggableActivity/Activity.html","","<p>Represents one action in the activity log.\n"],["LoggableActivity::Configuration","","LoggableActivity/Configuration.html","","<p>This class is used to load the configuration file located at config/loggable_activity.yml\n"],["LoggableActivity::Encryption","","LoggableActivity/Encryption.html","","<p>This module is used to encrypt and decrypt attributes\n"],["LoggableActivity::EncryptionError","","LoggableActivity/EncryptionError.html","","<p>This error is raised when encryption or decryption fails\n"],["LoggableActivity::EncryptionKey","","LoggableActivity/EncryptionKey.html","","<p>This class represents the encryption key used to unlock the data for one payload. When deleted, only …\n"],["LoggableActivity::Hooks","","LoggableActivity/Hooks.html","","<p>This module provides hooks for creating activities when included in a model.\n"],["LoggableActivity::Payload","","LoggableActivity/Payload.html","","<p>This class represents a payload in the log, containing encrypted data of one record in the database. …\n"],["LoggableActivity::PayloadsBuilder","","LoggableActivity/PayloadsBuilder.html","","<p>This module is responsible for building payloads used in loggable activities.\n"],["LoggableActivity::UpdatePayloadsBuilder","","LoggableActivity/UpdatePayloadsBuilder.html","","<p>This module is responsible for building update payloads used in loggable activities.\n"],["action_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-action_key","()",""],["activities_for_actor","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-activities_for_actor","(actor, limit = 20, params = { offset: 0 })","<p>Returns a list of activities for a given actor.\n"],["actor_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_display_name","()","<p>Returns the display name for a actor. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["actor_display_name_field","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_display_name_field","()",""],["actor_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_encryption_key","()",""],["actor_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_key","()",""],["associated_record_encryption_key","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-associated_record_encryption_key","(associated_record, data_owner)","<p>Retrieves the encryption key for the associated record.\n<p>@param associated_record [ActiveRecord::Base] …\n"],["attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-attrs","()","<p>Returns a list of attributes of the activity includig the indliced relations. The included relations …\n"],["attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-attrs","()","<p>Returns the decrypted attributes of the payload based on its type.\n<p>@return [Hash] The decrypted attributes. …\n"],["base_action","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-base_action","()",""],["blank?","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-blank-3F","(value)",""],["build_associated_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_associated_payload","(associated_record, relation_config)","<p>Builds the payload for an associated record.\n"],["build_destroy_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_destroy_payload","()","<p>Builds the payload for destroyed records.\n"],["build_has_many_payloads","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_has_many_payloads","(relation_config, relation_type)","<p>Builds payloads for has_many relations.\n"],["build_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payload","(relation_config, relation_type)","<p>Builds the payload for a specific relation.\n<p>@param relation_config [Hash] The configuration of the relation. …\n"],["build_payloads","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payloads","()","<p>Builds payloads for the loggable activity.\n\n<pre>Example:\n build_payloads\n\nReturns:\n #&lt;LoggableActivity::Payload:0x0000000109658718&gt; ...</pre>\n"],["build_primary_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_primary_payload","()","<p>Builds the primary payload.\n"],["build_primary_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_primary_update_payload","(previous_values, current_values)",""],["build_relation_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_relation_payload","(relation_config)","<p>Builds payloads for relations\n<p>@param relation_config [Hash] The configuration of the relation.\n"],["build_relation_update_for_belongs_to","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_belongs_to","(relation_config)",""],["build_relation_update_for_has_many","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_many","(relation_config)",""],["build_relation_update_for_has_one","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_one","(relation_config)",""],["build_relation_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_payload","(_attrs, loggable_attrs, record, payload_type)",""],["build_update_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_payloads","()","<p>Builds payloads for an activity update event.\n"],["build_update_relation_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_relation_payloads","(relation_config)",""],["create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-create_activity","(payloads)",""],["create_encryption_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-create_encryption_key","(record_type, record_id, parent_key = nil)","<p>Creates an encryption key for a record, optionally using a parent key.\n\n<pre>@param record_type [String] The ...</pre>\n"],["current_user_model?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-current_user_model-3F","()",""],["decrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-decrypt","(data, encoded_key)","<p>Decrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.decrypt(&#39;SOME_ENCRYPTED_STRING&#39;, ...</pre>\n"],["decrypt_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypt_attr","(value)","<p>Decrypts a single attribute.\n<p>@param value [String] The encrypted value to decrypt. @return [String] The …\n"],["decrypted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_attrs","()","<p>Decrypts all attributes.\n<p>@return [Hash] The decrypted attributes.\n"],["decrypted_from_to_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_from_to_attr","(change)","<p>Decrypts ‘from’ and ‘to’ attributes.\n<p>@param change [Hash] The change hash containing ‘from’ …\n"],["decrypted_update_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_update_attrs","()","<p>Decrypts the ‘from’ and ‘to’ attributes in the update payload.\n<p>@return [Array&lt;Hash&gt;] …\n"],["deleted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-deleted_attrs","()","<p>Helper method to handle deleted attributes.\n<p>@return [Hash] The hash with deleted attributes.\n"],["encrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-encrypt","(data, encoded_key)","<p>Encrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.encrypt(&#39;my ...</pre>\n"],["encrypt_attr","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attr","(attrs, encryption_key)","<p>Encrypts a single attribute.\n<p>@param attrs [Hash] The attributes to be encrypted. @param encryption_key …\n"],["encrypt_attrs","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attrs","(attrs, loggable_attrs, encryption_key)","<p>Encrypts attributes.\n<p>@param attrs [Hash] The attributes to be encrypted. @param loggable_attrs [Array&lt;String&gt;] …\n"],["encrypted_actor_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_actor_name","()",""],["encrypted_record_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_record_name","()",""],["encrypted_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-encrypted_update_attrs","(previous_values, current_values)",""],["for_class","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-for_class","(class_name)","<p>Returns the configuration data for the given class\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-constant\">LoggableActivity</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Configuration</span>.<span class=\"ruby-identifier\">for_class</span>(<span class=\"ruby-string\">&#39;User&#39;</span>)\n</pre>\n"],["for_record","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record","(record, parent_key = nil)","<p>Returns an encryption key for a record, optionally using a parent key.\n\n<pre>@param record [ActiveRecord::Base] ...</pre>\n"],["for_record_by_type_and_id","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record_by_type_and_id","(record_type, record_id, parent_key = nil)","<p>Returns an encryption key for a record by its type and ID, optionally using a parent key.\n\n<pre>@param record_type ...</pre>\n"],["last","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-last","(limit = 1)","<p>Returns the last activity.\n"],["latest","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-latest","(limit = 20, params = { offset: 0 })","<p>Returns a list of activities ordered by creation date.\n"],["load_config_file","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-load_config_file","(config_file_path)",""],["log","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log","(action, actor: nil, params: {})","<p>Logs an activity with the specified action, actor, and params.\n\n<pre>@param action [Symbol] The action to log ...</pre>\n"],["log_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_activity","()",""],["log_create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_create_activity","()",""],["log_custom_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_custom_activity","(activity)",""],["log_destroy","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy","()",""],["log_destroy_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy_activity","()",""],["log_update","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update","()",""],["log_update_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update_activity","()",""],["mark_as_deleted","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-i-mark_as_deleted","()","<p>Marks the encryption key as deleted by updating the key to nil.\n"],["must_have_at_least_one_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-must_have_at_least_one_payload","()",""],["nothing_to_log?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-nothing_to_log-3F","(payloads)",""],["ordered_payloads","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-ordered_payloads","()",""],["payload_encryption_key","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-payload_encryption_key","()","<p>Retrieves the encryption key for the payload.\n<p>@return [String, nil] The encryption key.\n"],["previous_associations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-previous_associations_attrs","()",""],["primary_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key","()",""],["primary_encryption_key_deleted?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key_deleted-3F","()",""],["primary_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload","()",""],["primary_payload_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload_attrs","()","<p>Returns the attributes for the primary payload, without the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">primary_payload_attrs</span>\n</pre>\n"],["primary_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-primary_update_attrs","()",""],["random_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-random_key","()","<p>Generates a random encryption key.\n\n<pre>@return [String] The generated encryption key.</pre>\n<p>Example:\n"],["record_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_display_name","()","<p>Returns the display name for a record. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["record_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_key","()",""],["relation_encrypted_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-relation_encrypted_attrs","(attrs, loggable_attrs, encryption_key)",""],["relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-relations_attrs","()","<p>Returns the attributes for the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">relations_attrs</span>\n</pre>\n"],["update_activity_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_activity_attrs","()","<p>Returns the attributes of an upddate activity.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">update_activity_attrs</span>\n</pre>\n"],["update_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_attrs","()",""],["updated_relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-updated_relations_attrs","()",""]]}}
Binary file
@@ -103,6 +103,11 @@
103
103
  &mdash;
104
104
  <span class="container">LoggableActivity::EncryptionKey</span>
105
105
 
106
+ <li class="method">
107
+ <a href="LoggableActivity/Activity.html#method-c-last">::last</a>
108
+ &mdash;
109
+ <span class="container">LoggableActivity::Activity</span>
110
+
106
111
  <li class="method">
107
112
  <a href="LoggableActivity/Activity.html#method-c-latest">::latest</a>
108
113
  &mdash;
@@ -163,11 +168,21 @@
163
168
  &mdash;
164
169
  <span class="container">LoggableActivity::Hooks</span>
165
170
 
171
+ <li class="method">
172
+ <a href="LoggableActivity/PayloadsBuilder.html#method-i-build_associated_payload">#build_associated_payload</a>
173
+ &mdash;
174
+ <span class="container">LoggableActivity::PayloadsBuilder</span>
175
+
166
176
  <li class="method">
167
177
  <a href="LoggableActivity/PayloadsBuilder.html#method-i-build_destroy_payload">#build_destroy_payload</a>
168
178
  &mdash;
169
179
  <span class="container">LoggableActivity::PayloadsBuilder</span>
170
180
 
181
+ <li class="method">
182
+ <a href="LoggableActivity/PayloadsBuilder.html#method-i-build_has_many_payloads">#build_has_many_payloads</a>
183
+ &mdash;
184
+ <span class="container">LoggableActivity::PayloadsBuilder</span>
185
+
171
186
  <li class="method">
172
187
  <a href="LoggableActivity/PayloadsBuilder.html#method-i-build_payload">#build_payload</a>
173
188
  &mdash;
@@ -198,6 +213,16 @@
198
213
  &mdash;
199
214
  <span class="container">LoggableActivity::UpdatePayloadsBuilder</span>
200
215
 
216
+ <li class="method">
217
+ <a href="LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_many">#build_relation_update_for_has_many</a>
218
+ &mdash;
219
+ <span class="container">LoggableActivity::UpdatePayloadsBuilder</span>
220
+
221
+ <li class="method">
222
+ <a href="LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_one">#build_relation_update_for_has_one</a>
223
+ &mdash;
224
+ <span class="container">LoggableActivity::UpdatePayloadsBuilder</span>
225
+
201
226
  <li class="method">
202
227
  <a href="LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_payload">#build_relation_update_payload</a>
203
228
  &mdash;
Binary file
@@ -5,7 +5,7 @@ require 'rails/generators/named_base'
5
5
 
6
6
  module LoggableActivity
7
7
  module Generators
8
- class InstallGenerator < Rails::Generators::NamedBase
8
+ class InstallGenerator < Rails::Generators::Base
9
9
  source_root File.expand_path('templates', __dir__)
10
10
 
11
11
  FILE_NAMES = %w[activity payload encryption_key].freeze
@@ -21,11 +21,16 @@ module LoggableActivity
21
21
  end
22
22
  end
23
23
 
24
- def create_model_file
25
- template 'loggable_activity.en.yml', 'config/locales/loggable_activity.en.yml'
26
- template 'loggable_activity.yml', 'config/loggable_activity.yml'
27
- template 'current_user.rb', 'app/controllers/concerns/loggable_activity/current_user.rb'
28
- # template 'loggable_activity_helper.rb', 'app/helpers/loggable_activity_helper.rb'
24
+ def create_translation_file
25
+ copy_file 'config/locales/loggable_activity.en.yml', 'config/locales/loggable_activity.en.yml'
26
+ end
27
+
28
+ def create_config_file
29
+ copy_file 'config/loggable_activity.yml', 'config/loggable_activity.yml'
30
+ end
31
+
32
+ def create_current_user_concern
33
+ copy_file 'current_user.rb', 'app/controllers/concerns/loggable_activity/current_user.rb'
29
34
  end
30
35
  end
31
36
  end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators/base'
4
+
5
+ module LoggableActivity
6
+ module Generators
7
+ class InstallTemplatesGenerator < Rails::Generators::Base
8
+ source_root File.expand_path('templates', __dir__)
9
+
10
+ class_option :template, type: :string, default: 'erb'
11
+
12
+ def create_helper
13
+ copy_file 'helpers/loggable_activity_helper.rb', 'app/helpers/loggable_activity_helper.rb'
14
+ end
15
+
16
+ def create_views
17
+ template_type = options['template']
18
+
19
+ case template_type
20
+ when 'slim'
21
+ # Copy slim files
22
+ copy_files('slim')
23
+ else
24
+ # Copy erb files
25
+ copy_files('erb')
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ def copy_files(type)
32
+ file_extension = type == 'slim' ? 'html.slim' : 'html.erb'
33
+ %w[create destroy show update].each do |action|
34
+ copy_file "views/loggable_activity/templates/default/_#{action}.#{file_extension}", "app/views/loggable_activity/templates/default/_#{action}.#{file_extension}"
35
+ end
36
+ %w[activity_info list_attrs update_attrs updated_relations].each do |shared|
37
+ copy_file "views/loggable_activity/templates/shared/_#{shared}.#{file_extension}", "app/views/loggable_activity/templates/shared/_#{shared}.#{file_extension}"
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,36 @@
1
+ en:
2
+ loggable:
3
+ activity:
4
+ deleted: "***** DELETED *****"
5
+ demo/address:
6
+ update: An address was updated
7
+ create: An address was created
8
+ show: An address was shown
9
+ destroy: An address was deleted
10
+ demo/club:
11
+ update: A club was updated
12
+ create: A club was created
13
+ show: A club was shown
14
+ destroy: A club was deleted
15
+ demo/journal:
16
+ update: A journal was updated
17
+ create: A journal was created
18
+ show: A journal was shown
19
+ destroy: A journal was deleted
20
+ demo/product:
21
+ update: A product was updated
22
+ create: A product was created
23
+ show: A product was shown
24
+ destroy: A product was deleted
25
+ user:
26
+ update: A user was updated
27
+ create: A user was created
28
+ show: "A user was shown"
29
+ destroy: A user was deleted
30
+ models:
31
+ Demo::Address: Address
32
+ Demo::UserProfile: Profile
33
+ Demo::Club: Club
34
+ Demo::Journal: Journal
35
+ Demo/Product: Product
36
+ User: User
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LoggableActivityHelper
4
+ include ApplicationHelper
5
+
6
+ def render_activity(activity)
7
+ render partial: template_path(activity), locals: { activity: }
8
+ end
9
+
10
+ def primary_type(activity)
11
+ I18n.t("loggable.activity.models.#{activity.record_type}")
12
+ end
13
+
14
+ def relation_type(relation_attrs)
15
+ I18n.t("loggable.activity.models.#{relation_attrs[:record_class]}")
16
+ end
17
+
18
+ def update_relation_class(update_attrs)
19
+ I18n.t("loggable.activity.models.#{update_attrs[:record_class]}")
20
+ end
21
+
22
+ private
23
+
24
+ def action_template_path(activity)
25
+ "loggable_activity/templates/#{activity.action.gsub('.', '/')}"
26
+ end
27
+
28
+ def template_path(activity)
29
+ template_path = action_template_path(activity)
30
+ if lookup_context.template_exists?(template_path, [], true)
31
+ template_path
32
+ else
33
+ action = activity.action.split('.').last || 'default'
34
+ "loggable_activity/templates/default/#{action}"
35
+ end
36
+ end
37
+
38
+ def activity_payload(activity)
39
+ @activity_payload ||= build_payload(activity)
40
+ end
41
+
42
+ def activity_attrs(activity)
43
+ @activity_attrs ||= activity_payload(activity).fetch(:activity, {})
44
+ end
45
+
46
+ def build_payload(activity)
47
+ Loggable::JsonPayloadFactory.new(activity).build_payload
48
+ end
49
+ end
@@ -0,0 +1,23 @@
1
+ <tr>
2
+ <td>
3
+ <%= render partial: 'loggable_activity/templates/shared/activity_info', locals: { activity: activity } %>
4
+ </td>
5
+ <td>
6
+ <b class="text-secondary"><%= primary_type(activity) %></b>
7
+ <br>
8
+ <% activity.primary_payload_attrs.each do |k, v| %>
9
+ <%= "<i>#{k}:</i> #{v.blank? ? t('loggable.activity.deleted') : v}".html_safe %>
10
+ <br>
11
+ <% end %>
12
+ <br>
13
+ <% activity.relations_attrs.each do |relation_attrs| %>
14
+ <b class="text-secondary"><%= relation_type(relation_attrs) %></b>
15
+ <br>
16
+ <%= render partial: 'loggable_activity/templates/shared/list_attrs', locals: { attrs: relation_attrs[:attrs] } %>
17
+ <br>
18
+ <% end %>
19
+ </td>
20
+ <td>
21
+ <%= link_to 'Delete', demo_activity_log_path(activity), data: { turbo_method: :delete, confirm: 'Are you sure?' }, class: 'btn btn-danger btn-sm' %>
22
+ </td>
23
+ </tr>
@@ -0,0 +1,18 @@
1
+ tr
2
+ td
3
+ = render partial: 'loggable_activity/templates/shared/activity_info', locals: { activity: activity }
4
+ td
5
+ b.text-secondary = primary_type(activity)
6
+ br
7
+ - activity.primary_payload_attrs.each do |k, v|
8
+ = "<i>#{k}:</i> #{v.blank? ? t('loggable.activity.deleted') : v}".html_safe
9
+ br/
10
+ br
11
+ - activity.relations_attrs.each do |relation_attrs|
12
+ b.text-secondary = relation_type(relation_attrs)
13
+ br/
14
+ =
15
+ = render partial: 'loggable_activity/templates/shared/list_attrs', locals: { attrs: relation_attrs[:attrs] }
16
+ br/
17
+ td
18
+ =< link_to 'Delete', demo_activity_log_path(activity), data: { turbo_method: :delete, confirm: 'Are you sure?' }, class: 'btn btn-danger btn-sm'