cmor_audits 0.0.58.pre → 0.0.59.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6487752390abe7a39cd3019144efa583fe8a643afca091b3ceb318d297e7ca3e
4
- data.tar.gz: 52aaf1a1a5cd945ad4f2dbeb52757e46e3bbea65f051c809947abc304b1102c1
3
+ metadata.gz: 6ce7168424890bd736a94277e2ee9633d3094f788a49bf95f7f3d341e61043b8
4
+ data.tar.gz: 4e10f4f69096004032f51235ee2756055852dfc8a55cb23bbdd618fad7013b04
5
5
  SHA512:
6
- metadata.gz: 343bff13dcfb7553366f5bdbe3b7fa2f7f92e6ade40346df2ab1cac6791520168f4b7afae03bc7210e70c7941f7e1ff9fd56fc01cc1dc927db4f4624db357716
7
- data.tar.gz: f12689a614386ecab6d66a36b6647e08104d6ddc1f3f5b45b4f392530ff71a1d96de460d72c2a4f881c2a6f1a28e5aa025716a458727216d0bd9ff740f4fce7a
6
+ metadata.gz: e433eb4bda8e7ab621a0c24e46fda5d4e72807155ad22c3125bebda922057d5993bd5e27ab0303336e5fe7688875488f94000177da340fee659cbc35b4b39538
7
+ data.tar.gz: b05b4129ed433aa82304b7006001e5cfba9e59e56eb2153986e8f391ee4d2aa67f035eba4884944642fa0e7b49ee2d2db9cb52d39d86dc04cc66c34f40109a1f
@@ -30,8 +30,8 @@ module Cmor
30
30
  # PUT /pages/:id(.:format) cmor/cms/backend/pages#update
31
31
  #
32
32
  def paper_trail_resources
33
- get "versions/:version_id", on: :member, action: :version
34
- get "version_at(/:version_at)", on: :member, action: :version_at
33
+ get "versions/:version_id", on: :member, action: :version, as: :version
34
+ get "version_at(/:version_at)", on: :member, action: :version_at, as: :version_at
35
35
  get "versions", on: :member, action: :versions
36
36
  end
37
37
  end
@@ -15,6 +15,12 @@ module Cmor
15
15
  def self.available_rest_actions
16
16
  super - %i(new create edit update)
17
17
  end
18
+
19
+ private
20
+
21
+ def load_collection_scope
22
+ super.order(created_at: :desc)
23
+ end
18
24
  end
19
25
  end
20
26
  end
@@ -1,3 +1,4 @@
1
+ = table.batch_actions
1
2
  = table.id sort: true
2
3
  = table.column :item_type, sort: true
3
4
  = table.column :item_id, sort: true
@@ -5,3 +6,15 @@
5
6
  = table.column :whodunnit, sort: true
6
7
  = table.column :object
7
8
  = table.timestamp :created_at, sort: true
9
+ = table.column :version_actions do |resource|
10
+ - if resource.item_type.constantize.respond_to?(:version_class_name) && resource.reify.present? && resource.item.present?
11
+ - capture_haml do
12
+ - if Cmor::Audits::Configuration.resources.call.dig(resource.item_type, :link_to_version).present?
13
+ - target = instance_exec(resource, &Cmor::Audits::Configuration.resources.call.dig(resource.item_type, :link_to_version))
14
+ - else
15
+ - router_method_name = (Administrador.engines.values.map(&:resources_controllers).flatten.find { |c| c.resource_class == resource.item_type.constantize }&.engine_class&.to_s&.deconstantize&.underscore.gsub('/', '_') || "main_app")
16
+ - target = send(router_method_name).polymorphic_path([:version, resource.reify], version_id: resource.id)
17
+
18
+ = link_to(target, class: 'btn btn-xs btn-primary btn-responsive') do
19
+ %i.fas.fa-history
20
+ %span.btn-text= t('.show')
@@ -14,8 +14,9 @@ de:
14
14
  item_id: Element-ID
15
15
  item_type: Element-Typ
16
16
  object: Objekt
17
- created_at: Erstellt am
17
+ version_actions: Versionierung
18
18
  whodunnit: Geändert durch
19
+ created_at: Erstellt am
19
20
  cmor:
20
21
  core:
21
22
  backend:
@@ -13,20 +13,21 @@ en:
13
13
  item: Item
14
14
  item_id: Item-ID
15
15
  item_type: Item-Type
16
- object: Objekt
17
- created_at: Created at
16
+ object: Object
17
+ version_actions: Auditing
18
18
  whodunnit: Changed by
19
+ created_at: Created at
19
20
  cmor:
20
21
  core:
21
22
  backend:
22
23
  resources_controller:
23
24
  base:
24
25
  version:
25
- back: Zurück
26
+ back: Back
26
27
  next: Next
27
28
  previous: Previous
28
29
  versions:
29
- back: Zurück
30
+ back: Back
30
31
  versions_form_buttons:
31
32
  submit: Show
32
33
  routes:
@@ -2,6 +2,8 @@ Cmor::Audits::Engine.routes.draw do
2
2
  root to: 'home#index'
3
3
 
4
4
  namespace :paper_trail do
5
- resources :versions
5
+ resources :versions do
6
+ post :destroy_many, on: :collection
7
+ end
6
8
  end
7
9
  end
@@ -11,10 +11,12 @@ module Cmor::Audits
11
11
 
12
12
  Cmor::Audits::Configuration.resources.call.each do |resource_class, options|
13
13
  print "[Cmor::Audits] Enabling paper trail on #{resource_class}"
14
- resource_class.constantize.send(:has_paper_trail, options)
14
+ resource_class.constantize.send(:has_paper_trail, (options[:paper_trail] || {}))
15
15
  puts " => [OK]"
16
16
  end
17
+ end
17
18
 
19
+ config.after_initialize do
18
20
  print "[Cmor::Audits] Adding resources routes"
19
21
  Cmor::Core::Backend.configure do |config|
20
22
  config.add_resources_routes(
@@ -28,7 +30,7 @@ module Cmor::Audits
28
30
  unless Rails.application.config.instance_variable_get(:@eager_load)
29
31
  print "[Cmor::Audits] Reloading routes"
30
32
  Rails.application.reload_routes!
31
- puts " => [OK)"
33
+ puts " => [OK]"
32
34
  end
33
35
  end
34
36
  end
@@ -28,12 +28,36 @@ Cmor::Audits.configure do |config|
28
28
  config.sidebar_controllers = -> {[]}
29
29
 
30
30
  # Specify the models that will be audited. Listing models here is the same
31
- # as adding has_paper_trail to the model class directly. The hash is passed
32
- # to has_paper_trail as options hash.
31
+ # as adding has_paper_trail to the model class directly.
33
32
  #
34
- # Example: config.resources = -> { { "Post" => { on: [:update] } } }
33
+ # Example: config.resources = -> {
34
+ # {
35
+ # "Cmor::Cms::Page" => {}
36
+ # }
37
+ # }
35
38
  #
36
- # Default: config.resources = -> { {} }
39
+ # Options:
40
+ #
41
+ # paper_trail: The paper_trail hash is passed to has_paper_trail as options hash.
42
+ #
43
+ # Example: config.resources = -> {
44
+ # {
45
+ # "Post" => { paper_trail: { on: [:update] }
46
+ # }
47
+ # }
48
+ #
49
+ # link_to_version: If you need a custom link to the specific version of a
50
+ # resource, you can override the url generation here:
51
+ #
52
+ # Example:
53
+ #
54
+ # config.resources = -> {
55
+ # {
56
+ # "ActiveStorage::Blob" => { link_to_version: ->(resource) { cmor_system.polymorphic_path([:version, :active_storage, resource.reify], version_id: resource.id) } }
57
+ # }
58
+ # }
59
+ #
60
+ # Default: config.resources = -> {{}}
37
61
  #
38
62
  config.resources = -> { {} }
39
63
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cmor_audits
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.58.pre
4
+ version: 0.0.59.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-17 00:00:00.000000000 Z
11
+ date: 2020-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.58.pre
33
+ version: 0.0.59.pre
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.58.pre
40
+ version: 0.0.59.pre
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: cmor_core_backend
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 0.0.58.pre
47
+ version: 0.0.59.pre
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 0.0.58.pre
54
+ version: 0.0.59.pre
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sqlite3
57
57
  requirement: !ruby/object:Gem::Requirement