tramway-admin 1.7.8.2 → 1.8
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68806279d5c90ebac0bcba3b6bdc22cda7db8ea1006710ef06ddf3c17d7b38f9
|
4
|
+
data.tar.gz: eec348a9bd8ff22c02428fbaee5a936d6645f5b32a64db89aabbc0b3d8f35808
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 300ad1e390bee15a6fe10ab6e4cda43b346a6c63b6c82e1d4c16d0c232cb5ea570593e8e1f0e1c3fdcf0560ab224e672aa0b0b417247929a9fc5af5e63503f07
|
7
|
+
data.tar.gz: 9f78d9ef1b3a839a0ce7d9d648368f8d2a707099f770b22d3c100019fb49b0f88b63458e6da7f077e60c37be50c85ace1d76cd6df31c0600ffc6b8fe9256ef0e
|
@@ -3,15 +3,15 @@
|
|
3
3
|
- if ::Tramway::Admin.customized_admin_navbar.present?
|
4
4
|
= ::Tramway::Admin.customized_admin_navbar
|
5
5
|
- else
|
6
|
-
= link_to @application&.try(:title) || @application&.
|
6
|
+
= link_to @application&.try(:title) || @application&.public_name || t('aplication.title'), ::Tramway::Admin::Engine.routes.url_helpers.root_path, class: 'navbar-brand'
|
7
7
|
%button.navbar-toggler.collapsed{ aria: { controls: :navbar, expanded: "false", label: 'Toggle Navigation' }, data: { target: "#navbar", toggle: :collapse }, type: :button }
|
8
8
|
%span.navbar-toggler-icon
|
9
9
|
.navbar-collapse.collapse#navbar
|
10
10
|
- if signed_in?
|
11
11
|
%ul.navbar-nav
|
12
|
-
- ::Tramway::Admin.singleton_models_for(@application_engine)&.each do |model|
|
12
|
+
- ::Tramway::Admin.singleton_models_for(@application_engine || @application.name)&.each do |model|
|
13
13
|
= model_menu_item model: model, route: ::Tramway::Admin::Engine.routes.url_helpers.singleton_path(model: model)
|
14
|
-
- ::Tramway::Admin.available_models_for(@application_engine)&.each do |model|
|
14
|
+
- ::Tramway::Admin.available_models_for(@application_engine || @application.name)&.each do |model|
|
15
15
|
= model_menu_item model: model, route: ::Tramway::Admin::Engine.routes.url_helpers.records_path(model: model, scope: decorator_class(model).collections.first)
|
16
16
|
%ul.nav.navbar-nav.ml-auto
|
17
17
|
- if signed_in?
|
@@ -1,3 +1,3 @@
|
|
1
|
-
- title
|
1
|
+
- title
|
2
2
|
%h1
|
3
|
-
= @application&.title
|
3
|
+
= @application&.try(:title) || @application&.name
|
data/lib/tramway/admin.rb
CHANGED
@@ -13,18 +13,22 @@ module Tramway
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def available_models_for(project)
|
16
|
-
(
|
17
|
-
|
18
|
-
@available_models[dependency]
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
16
|
+
if project_is_engine?(project)
|
17
|
+
get_models_by_key(@available_models, project) + engine_class(project).dependencies.map do |dependency|
|
18
|
+
if @available_models[dependency].present?
|
19
|
+
@available_models[dependency]
|
20
|
+
else
|
21
|
+
error = Tramway::Error.new(
|
22
|
+
plugin: :admin,
|
23
|
+
method: :available_models_for,
|
24
|
+
message: "There is no dependency `#{dependency}` for plugin: #{project}. Please, check file `tramway-#{project}/lib/tramway/#{project}/#{project}.rb`"
|
25
|
+
)
|
26
|
+
raise error
|
27
|
+
end
|
28
|
+
end.flatten.compact
|
29
|
+
else
|
30
|
+
get_models_by_key(@available_models, project)
|
31
|
+
end
|
28
32
|
end
|
29
33
|
|
30
34
|
def available_models
|
@@ -43,9 +47,13 @@ module Tramway
|
|
43
47
|
end
|
44
48
|
|
45
49
|
def singleton_models_for(project)
|
46
|
-
(
|
47
|
-
@singleton_models
|
48
|
-
|
50
|
+
if project_is_engine?(project)
|
51
|
+
get_models_by_key(@singleton_models, project) + engine_class(project).dependencies.map do |dependency|
|
52
|
+
@singleton_models[dependency]
|
53
|
+
end.flatten.compact
|
54
|
+
else
|
55
|
+
get_models_by_key(singleton_models, project)
|
56
|
+
end
|
49
57
|
end
|
50
58
|
|
51
59
|
def singleton_models
|
@@ -65,6 +73,19 @@ module Tramway
|
|
65
73
|
def customized_admin_navbar
|
66
74
|
@customized_admin_navbar
|
67
75
|
end
|
76
|
+
|
77
|
+
def engine_class(project)
|
78
|
+
class_name = "::Tramway::#{project.to_s.camelize}"
|
79
|
+
class_name.constantize if self.const_defined?(class_name)
|
80
|
+
end
|
81
|
+
|
82
|
+
def project_is_engine?(project)
|
83
|
+
engine_class(project)
|
84
|
+
end
|
85
|
+
|
86
|
+
def get_models_by_key(checked_models, project)
|
87
|
+
checked_models && checked_models != [] && checked_models[project.to_sym] || []
|
88
|
+
end
|
68
89
|
end
|
69
90
|
end
|
70
91
|
end
|