loggable_activity 0.1.55 → 0.1.56
Sign up to get free protection for your applications and to get access to all the features.
- 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
|