cmor_core_backend 0.0.55.pre → 0.0.56.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 +4 -4
- data/app/controllers/cmor/core/backend/resources_controller/base.rb +4 -0
- data/app/routes/cmor/core/backend/routing/resources_routes.rb +90 -0
- data/app/views/cmor/core/backend/resources_controller/base/_index_actions.html.haml +7 -0
- data/app/views/cmor/core/backend/resources_controller/base/_show_actions.html.haml +16 -0
- data/config/locales/de.yml +7 -0
- data/config/locales/en.yml +7 -0
- data/lib/cmor/core/backend/configuration.rb +32 -2
- data/lib/generators/cmor/core/backend/install/templates/initializer.rb +23 -0
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 706d8379a914d4d31042960f41b5e219774eba5fe936c0f11b5be66f1cbba8b6
|
4
|
+
data.tar.gz: 80be7b89718817219c0c9d6bdc943240114338afd608a77fe623e0408b479280
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f1ad6f2bcdd81cdf7ba3235ccc5689627741b0bcb8e657c6a8e2bcc7c6cc0563209ae568db27290b639a1897b4f7d5e48170feab6ac439d12a3ddf452eb0350
|
7
|
+
data.tar.gz: db7b3929e2f1412a3b0dba67c18110fec69ca8991566335fecb72dafff179f4395d4cd0c664ae71553d6c94b9bfcc145ce2928f21ce87aa0c14faad5e3fba06b
|
@@ -3,6 +3,10 @@ module Cmor
|
|
3
3
|
module Backend
|
4
4
|
module ResourcesController
|
5
5
|
class Base < Administrador::ResourcesController::Base
|
6
|
+
if Cmor::Core.features?(:transports)
|
7
|
+
include Cmor::Transports::ResourcesController::ExportConcern
|
8
|
+
view_helper Cmor::Transports::ExportViewHelper, as: :export_helper
|
9
|
+
end
|
6
10
|
end
|
7
11
|
end
|
8
12
|
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
module Cmor
|
2
|
+
module Core
|
3
|
+
module Backend
|
4
|
+
module Routing
|
5
|
+
# You can add routes to resources based an any condition that is based
|
6
|
+
# on the controller or resource class that a route is used for.
|
7
|
+
#
|
8
|
+
# This is useful when writing modules that conditionally add actions to
|
9
|
+
# resources based on the capabilities of the controller or resource class.
|
10
|
+
#
|
11
|
+
# Example:
|
12
|
+
#
|
13
|
+
# # lib/cmor/audits/engine.rb (in the Cmor::Audits Engine)
|
14
|
+
# module Cmor::Audits
|
15
|
+
# class Engine < ::Rails::Engine
|
16
|
+
# config.to_prepare do
|
17
|
+
# Cmor::Core::Backend.configure do |config|
|
18
|
+
# config.add_resources_routes(
|
19
|
+
# :cmor_audits,
|
20
|
+
# condition: ->{ resource_class.ancestors.map(&:to_s).include?("PaperTrail::Model::InstanceMethods") },
|
21
|
+
# routes: ->{
|
22
|
+
# get "versions/:version_id", on: :member, action: :version
|
23
|
+
# get "versions_at(/:version_at)", on: :member, action: :version_at
|
24
|
+
# get "versions", on: :member, action: :versions
|
25
|
+
# }
|
26
|
+
# )
|
27
|
+
# end
|
28
|
+
# end
|
29
|
+
# end
|
30
|
+
# end
|
31
|
+
#
|
32
|
+
# # config/routes.rb ( in the Cmor::Cms::Backend Engine)
|
33
|
+
# Cmor::Cms::Backend::Engine.routes.draw do
|
34
|
+
# resources :pages do
|
35
|
+
# Cmor::Core::Backend::Routing::ResourcesRoutes.inject_routes(self)
|
36
|
+
# end
|
37
|
+
# end
|
38
|
+
#
|
39
|
+
#
|
40
|
+
# This will add the routes for the versioning to the pages resource
|
41
|
+
# routing if the resource class of the pages controller includes the
|
42
|
+
# PaperTrail::Model::InstanceMethods module.
|
43
|
+
#
|
44
|
+
class ResourcesRoutes
|
45
|
+
def self.inject_routes(router, options = {})
|
46
|
+
new(router, options).inject_routes
|
47
|
+
end
|
48
|
+
|
49
|
+
def initialize(router, options = {})
|
50
|
+
@router = router
|
51
|
+
@options = options
|
52
|
+
end
|
53
|
+
|
54
|
+
def inject_routes
|
55
|
+
routes.each do |name, options|
|
56
|
+
if instance_exec(&options[:condition])
|
57
|
+
@router.instance_exec(&options[:routes])
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def controller_class
|
63
|
+
@controller_class ||= begin
|
64
|
+
__controller = @router.instance_variable_get(:@scope).instance_variable_get(:@hash)[:controller]
|
65
|
+
__namespaces = []
|
66
|
+
__actual_scope = @router.instance_variable_get(:@scope)
|
67
|
+
while __actual_scope.instance_variable_get(:@parent).present?
|
68
|
+
__namespace = __actual_scope.instance_variable_get(:@parent).instance_variable_get(:@hash).try(:[], :module)
|
69
|
+
if __namespace.present? && !__namespaces.any? { |n| n&.start_with?(__namespace) }
|
70
|
+
__namespaces << __actual_scope.instance_variable_get(:@parent).instance_variable_get(:@hash).try(:[], :module)
|
71
|
+
end
|
72
|
+
__actual_scope = __actual_scope.instance_variable_get(:@parent)
|
73
|
+
end
|
74
|
+
__namespace = __namespaces.uniq.reverse.compact.join("/")
|
75
|
+
"#{__namespace}/#{__controller}_controller".camelize.constantize
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def resource_class
|
80
|
+
controller_class.resource_class
|
81
|
+
end
|
82
|
+
|
83
|
+
def routes
|
84
|
+
@routes ||= Cmor::Core::Backend::Configuration.resources_routes
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
.ml-auto
|
2
|
+
- if Cmor::Core.features?(:cmor_transports) && controller.class.available_rest_actions.include?(:export)
|
3
|
+
= link_to(export_path, class: 'btn btn-secondary btn-circle btn-lg') do
|
4
|
+
%i.fas.fa-file-export
|
5
|
+
- if available_rest_actions.include?(:new)
|
6
|
+
= link_to({ action: :new }, class: 'btn btn-success btn-circle btn-lg') do
|
7
|
+
%i.fas.fa-plus
|
@@ -0,0 +1,16 @@
|
|
1
|
+
= link_to({ action: :index }, class: 'btn btn-light btn-responsive') do
|
2
|
+
%i.fas.fa-arrow-left
|
3
|
+
%span.btn-text= t('.back')
|
4
|
+
|
5
|
+
.ml-auto
|
6
|
+
- if Cmor::Core.features?(:cmor_audits) && controller.respond_to?(:versions)
|
7
|
+
= link_to([:versions, resource_namespace, resource], class: 'btn btn-secondary btn-circle btn-lg') do
|
8
|
+
%i.fas.fa-history
|
9
|
+
|
10
|
+
- if available_rest_actions.include?(:destroy)
|
11
|
+
= link_to([resource_namespace, resource], class: 'destroy btn btn-danger btn-circle btn-lg', method: :delete, 'data-confirm': I18n.t('administrador.controller.confirmations.destroy')) do
|
12
|
+
%i.fas.fa-fire
|
13
|
+
|
14
|
+
- if available_rest_actions.include?(:edit)
|
15
|
+
= link_to([:edit, resource_namespace, resource], class: 'btn btn-success btn-circle btn-lg') do
|
16
|
+
%i.fas.fa-edit
|
data/config/locales/de.yml
CHANGED
data/config/locales/en.yml
CHANGED
@@ -5,6 +5,8 @@ module Cmor
|
|
5
5
|
module Core
|
6
6
|
module Backend
|
7
7
|
module Configuration
|
8
|
+
extend self
|
9
|
+
|
8
10
|
def configure
|
9
11
|
yield self
|
10
12
|
end
|
@@ -16,8 +18,36 @@ module Cmor
|
|
16
18
|
}
|
17
19
|
}
|
18
20
|
|
19
|
-
|
20
|
-
|
21
|
+
mattr_accessor(:resources_routes) { {} }
|
22
|
+
|
23
|
+
def image_variant_options_for(identifier)
|
24
|
+
image_variant_options[identifier]
|
25
|
+
end
|
26
|
+
|
27
|
+
# You can add routes to resources based an any condition that can based
|
28
|
+
# on the controller or resource class that a route is used for.
|
29
|
+
#
|
30
|
+
# This is useful when writing modules that conditionally add actions to
|
31
|
+
# resources based on the capabilities of the controller or resource class.
|
32
|
+
#
|
33
|
+
# Example:
|
34
|
+
#
|
35
|
+
# config.add_resources_routes(
|
36
|
+
# :cmor_audits,
|
37
|
+
# condition: ->{ resource_class.ancestors.map(&:to_s).include?("PaperTrail::Model::InstanceMethods") },
|
38
|
+
# routes: ->{ paper_trail_resources }
|
39
|
+
# )
|
40
|
+
#
|
41
|
+
# Example:
|
42
|
+
#
|
43
|
+
# config.add_resources_routes(
|
44
|
+
# :acts_as_list,
|
45
|
+
# condition: ->{ resource_class.respond_to?(:position) },
|
46
|
+
# routes: ->{ get :toggle_position, on: :member }
|
47
|
+
# )
|
48
|
+
#
|
49
|
+
def add_resources_routes(name, options)
|
50
|
+
resources_routes[name] = options
|
21
51
|
end
|
22
52
|
end
|
23
53
|
end
|
@@ -9,4 +9,27 @@ Cmor::Core::Backend.configure do |config|
|
|
9
9
|
gallery: { resize: "640x480" },
|
10
10
|
table: { resize: "160x120" }
|
11
11
|
}
|
12
|
+
|
13
|
+
# You can add routes to resources based an any condition that is based
|
14
|
+
# on the controller or resource class that a route is used for.
|
15
|
+
#
|
16
|
+
# This is useful when writing modules that conditionally add actions to
|
17
|
+
# resources based on the capabilities of the controller or resource class.
|
18
|
+
#
|
19
|
+
# Example:
|
20
|
+
#
|
21
|
+
# config.add_resources_routes(
|
22
|
+
# :cmor_audits,
|
23
|
+
# condition: ->{ resource_class.ancestors.map(&:to_s).include?("PaperTrail::Model::InstanceMethods") },
|
24
|
+
# routes: ->{ paper_trail_resources }
|
25
|
+
# )
|
26
|
+
#
|
27
|
+
# Example:
|
28
|
+
#
|
29
|
+
# config.add_resources_routes(
|
30
|
+
# :acts_as_list,
|
31
|
+
# condition: ->{ resource_class.respond_to?(:position) },
|
32
|
+
# routes: ->{ get :toggle_position, on: :member }
|
33
|
+
# )
|
34
|
+
#
|
12
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cmor_core_backend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.56.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-
|
11
|
+
date: 2020-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.
|
33
|
+
version: 0.0.56.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.
|
40
|
+
version: 0.0.56.pre
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sqlite3
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -310,14 +310,14 @@ dependencies:
|
|
310
310
|
requirements:
|
311
311
|
- - ">="
|
312
312
|
- !ruby/object:Gem::Version
|
313
|
-
version: 0.0.
|
313
|
+
version: 0.0.26.pre
|
314
314
|
type: :runtime
|
315
315
|
prerelease: false
|
316
316
|
version_requirements: !ruby/object:Gem::Requirement
|
317
317
|
requirements:
|
318
318
|
- - ">="
|
319
319
|
- !ruby/object:Gem::Version
|
320
|
-
version: 0.0.
|
320
|
+
version: 0.0.26.pre
|
321
321
|
description:
|
322
322
|
email:
|
323
323
|
- roberto@vasquez-angel.de
|
@@ -342,6 +342,9 @@ files:
|
|
342
342
|
- app/controllers/cmor/core/backend/resource_controller/base.rb
|
343
343
|
- app/controllers/cmor/core/backend/resources_controller/base.rb
|
344
344
|
- app/controllers/cmor/core/backend/service_controller/base.rb
|
345
|
+
- app/routes/cmor/core/backend/routing/resources_routes.rb
|
346
|
+
- app/views/cmor/core/backend/resources_controller/base/_index_actions.html.haml
|
347
|
+
- app/views/cmor/core/backend/resources_controller/base/_show_actions.html.haml
|
345
348
|
- config/initializers/assets.rb
|
346
349
|
- config/locales/de.yml
|
347
350
|
- config/locales/en.yml
|