rlog_items 0.0.3 → 0.0.4

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.
@@ -10,7 +10,7 @@ module ActiveRecordLogger
10
10
  extend ClassMethods
11
11
  end
12
12
 
13
- base.class.class_exec do
13
+ base.class.class_execm do
14
14
  attr_reader :rlog_fields
15
15
  attr_reader :recoverable
16
16
  end
@@ -1,3 +1,3 @@
1
1
  module RlogItems
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,119 @@
1
+ module RlogItems
2
+
3
+ module ViewHelpers
4
+
5
+ def rlog_item_user rlog_item
6
+ if rlog_item.user
7
+ target_type = t("activerecord.models.#{rlog_item.user.target_type.underscore}")
8
+ username = rlog_item.user.target.to_s
9
+ target_info = "#{target_type} #{username}"
10
+ capture_haml do
11
+ haml_tag "div" do
12
+ if rlog_item.user.target_type.downcase == "admin"
13
+ target_url = "rcoi"
14
+ elsif rlog_item.user.target_type.downcase == "rcoi"
15
+ target_url = "rcoi"
16
+ else
17
+ target_url = rlog_item.user.target #TODO SHIT
18
+ end
19
+ haml_concat link_to(target_info, url_for(target_url))
20
+ end
21
+ haml_tag "div", rlog_item.ip if rlog_item.ip && current_user.has_role?("admin")
22
+ end
23
+ else
24
+ target_info = "#{t("messages.user_id")}: #{rlog_item.user_id}"
25
+ capture_haml do
26
+ haml_tag "div" do
27
+ haml_tag "span.username", target_info
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ def rlog_item_object rlog_item
34
+ model = rlog_item.record_type.camelize.constantize
35
+ id = rlog_item.record_id
36
+ object = model.unscoped.find_by_id id
37
+
38
+ return capture_haml do
39
+ haml_tag "div", t("messages.object_not_found")
40
+ end if object.nil?
41
+
42
+ if object.hidden
43
+ record_type = t("activerecord.models.#{rlog_item.record_type.underscore}")
44
+ record_id = rlog_item.record_id
45
+ capture_haml do
46
+ haml_tag "div", t("messages.object_with_target_deleted", :target => object)
47
+ haml_tag "div", t("messages.record_type", :record_type => record_type)
48
+ haml_tag "div", t("messages.record_id", :record_id => record_id)
49
+ end
50
+ else
51
+ capture_haml do
52
+ haml_concat link_to object.to_s, url_for(object)
53
+ end
54
+ end
55
+ end
56
+
57
+ def value_conversion key, value, object
58
+ begin
59
+ is_scan = object.record.send(key.to_sym).is_a? ScanUploader
60
+ rescue
61
+ is_scan = false
62
+ end
63
+ begin
64
+ is_date = object.record.send(key.to_sym).is_a? ActiveSupport::TimeWithZone
65
+ rescue
66
+ is_date = false
67
+ end
68
+
69
+ if !!value==value
70
+ bool_to_word(value)
71
+ elsif key =~ /^.*(_id|_code)$/
72
+ full_string, model_name, foreign_key = key.match(/(^.*)_(id|code)$/).to_a
73
+ begin
74
+ model = model_name.camelize.constantize
75
+ model.where(foreign_key => value).first.to_s
76
+ rescue
77
+ return value
78
+ end
79
+ elsif is_scan
80
+ unless value.blank?
81
+ capture_haml do
82
+ haml_concat link_to t("messages.download"), value.to_s
83
+ end
84
+ end
85
+ elsif is_date
86
+ l(value, :format => :short)
87
+ elsif key == "hidden" && !value.blank?
88
+ code = value.split(":").first
89
+ if DestroyReason::SYSTEM_CODE.include?(code.to_sym)
90
+ case
91
+ when code == "recursive"
92
+ recoursive, object_id, object_type = value.split(":")
93
+ object_type_name = t("activerecord.models.#{object_type.underscore}")
94
+ target = object_type.constantize.unscoped.find_by_id object_id
95
+ reason = t("messages.deleted_by_recursive", :target => target, :object_id => object_id, :object_type => object_type_name)
96
+ else
97
+ reason = t("messages.deleted_by_#{code}").to_s
98
+ end
99
+ else
100
+ reason = DestroyReason.find_by_code(code).try(:name)
101
+ end
102
+ value = t("messages.removed_due_to", :reason => reason)
103
+ value
104
+ elsif key == "hidden" && value.blank?
105
+ t("messages.record_was_recovered")
106
+ elsif value.nil?
107
+ t("messages.nil_value")
108
+ else
109
+ value
110
+ end
111
+ end
112
+
113
+ def changed_field_name key, model_name
114
+ t("activerecord.attributes.#{model_name}.#{key}")
115
+ end
116
+
117
+
118
+ end
119
+ end
data/lib/rlog_items.rb CHANGED
@@ -1,15 +1,22 @@
1
1
  require "rails"
2
2
  require "rlog_items/version"
3
- require "rlog_items/railtie"
3
+ require "rlog_items/active_record_logger"
4
+ require "rlog_items/view_helpers"
4
5
 
5
6
  module RlogItems
6
- #def self.config
7
- # yield self
8
- #end
9
7
 
10
- #def self.templates &block
11
- # self::PageFragment.config &block
12
- #end
8
+ class Railtie < Rails::Railtie
9
+ initializer "rlog_items.active_record_logger" do
10
+ ActiveRecord::Base.send :include, ActiveRecordLogger
11
+ ActiveRecord::Base.class_eval { cattr_accessor :current_user }
12
+ ActiveRecord::Base.class_eval { cattr_accessor :current_request }
13
+ end
14
+
15
+ initializer "rlog_items.view_helpers" do
16
+ ActionView::Base.send :include, ViewHelpers
17
+ end
18
+
19
+ end
13
20
 
14
21
  class Engine < Rails::Engine
15
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rlog_items
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -27,6 +27,7 @@ files:
27
27
  - lib/rlog_items.rb
28
28
  - lib/rlog_items/active_record_logger.rb
29
29
  - lib/rlog_items/version.rb
30
+ - lib/rlog_items/view_helpers.rb
30
31
  - rlog_items.gemspec
31
32
  homepage: http://mystand.ru/
32
33
  licenses: