cmor_audits 0.0.58.pre → 0.0.59.pre

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