loggable_activity 0.1.55 → 0.1.56
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/generators/loggable_activity/install_templates_generator.rb +3 -1
- data/lib/generators/loggable_activity/templates/helpers/activity_helper.rb +37 -0
- data/lib/generators/loggable_activity/templates/helpers/router.rb +52 -0
- data/lib/generators/loggable_activity/templates/helpers/routes_helper.rb +20 -0
- data/lib/loggable_activity/activity.rb +14 -8
- data/lib/loggable_activity/version.rb +1 -1
- metadata +5 -5
- data/lib/.DS_Store +0 -0
- data/lib/generators/loggable_activity/templates/helpers/loggable_activity_helper.rb +0 -49
- data/lib/generators/loggable_activity/templates/loggable_activity_helper.rb +0 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0026d9021dbb8d457f89aae37cefeab76c25307392f7df9bf33576ced785ab2a
|
4
|
+
data.tar.gz: 1a7e30aee22dad70a1d5b6cfdbc8fbc5647ed9a84acb8e1793a12342dbd2845f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4207be61cc5c3fc3c9f6f8a37a6d589b92c0c5067cfc76dc8187ff94a4c8fcf4f8438c0682830bd609ff78883c3ee863985642926ddbece92a2a230c6b96e7a9
|
7
|
+
data.tar.gz: c770403638780d4708ef561eea6e3522dc1d16de6ac916d656db608e52ec24d88ba24a8314410f542d31a56d1f192a6869a67a0a486721dffc7d2b01dea8d7a8
|
data/CHANGELOG.md
CHANGED
@@ -10,7 +10,9 @@ module LoggableActivity
|
|
10
10
|
class_option :template, type: :string, default: 'erb'
|
11
11
|
|
12
12
|
def create_helper
|
13
|
-
copy_file 'helpers/
|
13
|
+
copy_file 'helpers/activity_helper.rb', 'app/helpers/loggable_activity/activity_helper.rb'
|
14
|
+
copy_file 'helpers/routes_helper.rb', 'app/helpers/loggable_activity/routes_helper.rb'
|
15
|
+
copy_file 'helpers/router.rb', 'app/helpers/loggable_activity/router.rb'
|
14
16
|
end
|
15
17
|
|
16
18
|
def create_views
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module LoggableActivity
|
4
|
+
module ActivityHelper
|
5
|
+
# include ApplicationHelper
|
6
|
+
include LoggableActivity::Router
|
7
|
+
|
8
|
+
def render_activity(activity)
|
9
|
+
render partial: template_path(activity), locals: { activity: }
|
10
|
+
end
|
11
|
+
|
12
|
+
# def relation_type(relation_attrs)
|
13
|
+
# title = I18n.t("loggable.activity.models.#{relation_attrs[:record_type]}")
|
14
|
+
# if path = path_to_payload(relation_attrs[:path])
|
15
|
+
# path
|
16
|
+
# else
|
17
|
+
# title
|
18
|
+
# end
|
19
|
+
# end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def action_template_path(activity)
|
24
|
+
"loggable_activity/templates/#{activity.action.gsub('.', '/')}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def template_path(activity)
|
28
|
+
template_path = action_template_path(activity)
|
29
|
+
if lookup_context.template_exists?(template_path, [], true)
|
30
|
+
template_path
|
31
|
+
else
|
32
|
+
action = activity.action.split('.').last || 'default'
|
33
|
+
"loggable_activity/templates/default/#{action}"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'action_view'
|
4
|
+
|
5
|
+
module LoggableActivity
|
6
|
+
module Router
|
7
|
+
# include ApplicationHelper
|
8
|
+
include LoggableActivity::RoutesHelper
|
9
|
+
|
10
|
+
def primary_activity_text_or_link(activity)
|
11
|
+
route = activity.primary_route
|
12
|
+
text = text_for_link(route)
|
13
|
+
return text if route.nil?
|
14
|
+
return text if activity.record.nil?
|
15
|
+
|
16
|
+
url = url_to_record(route, activity.record)
|
17
|
+
return text unless url.present?
|
18
|
+
|
19
|
+
link_to(text, url)
|
20
|
+
end
|
21
|
+
|
22
|
+
def payload_type_text_or_link(attrs)
|
23
|
+
route = attrs[:route]
|
24
|
+
return model_translation(attrs) if route.nil?
|
25
|
+
|
26
|
+
record = find_record(attrs)
|
27
|
+
return model_translation(attrs) if record.nil?
|
28
|
+
|
29
|
+
text = text_for_link(route)
|
30
|
+
|
31
|
+
url = url_to_record(route, record)
|
32
|
+
return text if url.nil?
|
33
|
+
|
34
|
+
link_to(text, url)
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def text_for_link(route)
|
40
|
+
I18n.t("loggable.activity.routes.#{route}")
|
41
|
+
end
|
42
|
+
|
43
|
+
def model_translation(attrs)
|
44
|
+
I18n.t("loggable.activity.models.#{attrs[:record_type]}")
|
45
|
+
end
|
46
|
+
|
47
|
+
def find_record(attrs)
|
48
|
+
record_class = attrs[:record_type].constantize
|
49
|
+
record_class.find(attrs[:record_id])
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module LoggableActivity
|
4
|
+
module RoutesHelper
|
5
|
+
include ApplicationHelper
|
6
|
+
|
7
|
+
def url_to_record(route, record)
|
8
|
+
case route
|
9
|
+
when 'show_doctor', 'show_patient', 'show_user', 'show_user_profile'
|
10
|
+
demo_user_url(record)
|
11
|
+
when 'show_demo_address'
|
12
|
+
demo_city_demo_address_url(record.demo_city, record)
|
13
|
+
when 'show_demo_city'
|
14
|
+
demo_city_url(record)
|
15
|
+
when 'show_demo_journal'
|
16
|
+
demo_journal_url(record)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -41,7 +41,7 @@ module LoggableActivity
|
|
41
41
|
record_id: payload.record_id,
|
42
42
|
payload_type: payload.payload_type,
|
43
43
|
attrs: payload.attrs,
|
44
|
-
|
44
|
+
route: payload.payload_route
|
45
45
|
}
|
46
46
|
end
|
47
47
|
end
|
@@ -75,7 +75,7 @@ module LoggableActivity
|
|
75
75
|
updated_relations_attrs:
|
76
76
|
}
|
77
77
|
end
|
78
|
-
|
78
|
+
|
79
79
|
# Returns the attributes for the primary payload, without the relations.
|
80
80
|
#
|
81
81
|
# Example:
|
@@ -132,8 +132,8 @@ module LoggableActivity
|
|
132
132
|
# Returns:
|
133
133
|
# "/path/to/activity"
|
134
134
|
#
|
135
|
-
def
|
136
|
-
primary_payload&.
|
135
|
+
def primary_route
|
136
|
+
primary_payload&.payload_route
|
137
137
|
end
|
138
138
|
|
139
139
|
# Returns the display name for a actor. what method to use if defined in '/config/loggable_activity.yaml'
|
@@ -176,6 +176,16 @@ module LoggableActivity
|
|
176
176
|
|
177
177
|
private
|
178
178
|
|
179
|
+
# Returns the primary payload associated with the activity.
|
180
|
+
#
|
181
|
+
# Example usage:
|
182
|
+
# payload = @activity.primary_payload
|
183
|
+
# puts payload.record_type # => 'SOMD_MODEL_NAME'
|
184
|
+
#
|
185
|
+
def primary_payload
|
186
|
+
ordered_payloads.find { |p| p.payload_type == 'primary_payload' }
|
187
|
+
end
|
188
|
+
|
179
189
|
# Returns the attributes for the update+payload.
|
180
190
|
def update_attrs
|
181
191
|
update_payload_attrs = attrs.find { |p| p[:payload_type] == 'update_payload' }
|
@@ -185,10 +195,6 @@ module LoggableActivity
|
|
185
195
|
update_payload_attrs
|
186
196
|
end
|
187
197
|
|
188
|
-
# Returns the primary payload.
|
189
|
-
def primary_payload
|
190
|
-
ordered_payloads.find { |p| p.payload_type == 'primary_payload' }
|
191
|
-
end
|
192
198
|
|
193
199
|
# Returns the attributes for the updated relations.
|
194
200
|
def updated_relations_attrs
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loggable_activity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.56
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Max \nGroenlund"
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -208,7 +208,6 @@ files:
|
|
208
208
|
- docs/js/searcher.js.gz
|
209
209
|
- docs/table_of_contents.html
|
210
210
|
- help/loggable_activity_help.txt
|
211
|
-
- lib/.DS_Store
|
212
211
|
- lib/generators/.DS_Store
|
213
212
|
- lib/generators/loggable_activity/.DS_Store
|
214
213
|
- lib/generators/loggable_activity/install_generator.rb
|
@@ -219,9 +218,10 @@ files:
|
|
219
218
|
- lib/generators/loggable_activity/templates/config/loggable_activity.yaml
|
220
219
|
- lib/generators/loggable_activity/templates/create_loggable_activities.rb
|
221
220
|
- lib/generators/loggable_activity/templates/current_user.rb
|
222
|
-
- lib/generators/loggable_activity/templates/helpers/
|
221
|
+
- lib/generators/loggable_activity/templates/helpers/activity_helper.rb
|
222
|
+
- lib/generators/loggable_activity/templates/helpers/router.rb
|
223
|
+
- lib/generators/loggable_activity/templates/helpers/routes_helper.rb
|
223
224
|
- lib/generators/loggable_activity/templates/loggable_activity.en.yaml
|
224
|
-
- lib/generators/loggable_activity/templates/loggable_activity_helper.rb
|
225
225
|
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.erb
|
226
226
|
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.slim
|
227
227
|
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.erb
|
data/lib/.DS_Store
DELETED
Binary file
|
@@ -1,49 +0,0 @@
|
|
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_type]}")
|
16
|
-
end
|
17
|
-
|
18
|
-
def update_relation_class(update_attrs)
|
19
|
-
I18n.t("loggable.activity.models.#{update_attrs[:record_type]}")
|
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
|
@@ -1,58 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module LoggableActivityHelper
|
4
|
-
include ApplicationHelper
|
5
|
-
# include Rails.application.routes.url_helpers
|
6
|
-
|
7
|
-
def render_activity(activity)
|
8
|
-
render partial: template_path(activity), locals: { activity: }
|
9
|
-
end
|
10
|
-
|
11
|
-
def primary_type(activity)
|
12
|
-
title = I18n.t("loggable.activity.models.#{activity.record_type}")
|
13
|
-
if (path = activity.path)
|
14
|
-
link_to title, send(path, activity.record_id.to_s)
|
15
|
-
else
|
16
|
-
title
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def relation_type(relation_attrs)
|
21
|
-
title = I18n.t("loggable.activity.models.#{relation_attrs[:record_type]}")
|
22
|
-
if (path = relation_attrs[:path])
|
23
|
-
link_to title, send(path, relation_attrs[:record_id])
|
24
|
-
else
|
25
|
-
title
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def link_to_payload; end
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
def action_template_path(activity)
|
34
|
-
"loggable_activity/templates/#{activity.action.gsub('.', '/')}"
|
35
|
-
end
|
36
|
-
|
37
|
-
def template_path(activity)
|
38
|
-
template_path = action_template_path(activity)
|
39
|
-
if lookup_context.template_exists?(template_path, [], true)
|
40
|
-
template_path
|
41
|
-
else
|
42
|
-
action = activity.action.split('.').last || 'default'
|
43
|
-
"loggable_activity/templates/default/#{action}"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def activity_payload(activity)
|
48
|
-
@activity_payload ||= build_payload(activity)
|
49
|
-
end
|
50
|
-
|
51
|
-
def activity_attrs(activity)
|
52
|
-
@activity_attrs ||= activity_payload(activity).fetch(:activity, {})
|
53
|
-
end
|
54
|
-
|
55
|
-
def build_payload(activity)
|
56
|
-
Loggable::JsonPayloadFactory.new(activity).build_payload
|
57
|
-
end
|
58
|
-
end
|