tramway-admin 1.1.7 → 1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/tramway/admin/application_controller.rb +2 -2
- data/app/views/layouts/tramway/admin/shared/_navbar.html.haml +5 -4
- data/app/views/tramway/admin/records/show.html.haml +1 -1
- data/lib/tramway/admin.rb +26 -11
- data/lib/tramway/admin/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f958353c638d04e501d274aaf555084edd43630474d63d5a7682f7a6b8565da7
|
4
|
+
data.tar.gz: 270474b2cbe1394790cbc4a6346737186c204dd03d750025adb2158946c418d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ca5455bd4191f663f6186e007d93f53f8fd9c2eb68289a8d409756bc75c2ad6bbee1f56781d9df2789585a94d53d56a2f5aca164546990a4deb01c2aeb396d2
|
7
|
+
data.tar.gz: b0a7c65aed9447ebe1171445b832946bdca147d3721f7f098f44cbc221502dc66ef82e925b7f198dc55a980c509792a3a0532c69b69ba6347756d1457d8b4edd
|
@@ -54,11 +54,11 @@ module Tramway
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def available_models_given?
|
57
|
-
::Tramway::Admin.available_models && params[:model].in?(::Tramway::Admin.available_models.map(&:to_s))
|
57
|
+
::Tramway::Admin.available_models.any? && params[:model].in?(::Tramway::Admin.available_models.map(&:to_s))
|
58
58
|
end
|
59
59
|
|
60
60
|
def singleton_models_given?
|
61
|
-
::Tramway::Admin.singleton_models && params[:model].in?(::Tramway::Admin.singleton_models.map(&:to_s))
|
61
|
+
::Tramway::Admin.singleton_models.any? && params[:model].in?(::Tramway::Admin.singleton_models.map(&:to_s))
|
62
62
|
end
|
63
63
|
end
|
64
64
|
end
|
@@ -1,14 +1,15 @@
|
|
1
1
|
%nav.navbar.navbar-expand-md.navbar-dark.bg-dark
|
2
|
-
|
3
|
-
|
2
|
+
-# FIXME use helper methods
|
3
|
+
- if ::Tramway::Admin.customized_admin_navbar.present?
|
4
|
+
= ::Tramway::Admin.customized_admin_navbar
|
4
5
|
- else
|
5
6
|
= link_to @application&.title || t('application.title'), try(:root_path) || '/', class: 'navbar-brand'
|
6
7
|
.navbar-collapse.collapse
|
7
8
|
- if signed_in?
|
8
9
|
%ul.navbar-nav
|
9
|
-
- ::Tramway::Admin.
|
10
|
+
- ::Tramway::Admin.singleton_models_for(@application_engine)&.each do |model|
|
10
11
|
= model_menu_item model: model, route: ::Tramway::Admin::Engine.routes.url_helpers.singleton_path(model: model)
|
11
|
-
- ::Tramway::Admin.
|
12
|
+
- ::Tramway::Admin.available_models_for(@application_engine)&.each do |model|
|
12
13
|
= model_menu_item model: model, route: ::Tramway::Admin::Engine.routes.url_helpers.records_path(model: model)
|
13
14
|
%ul.nav.navbar-nav.ml-auto
|
14
15
|
- if signed_in?
|
@@ -7,7 +7,7 @@
|
|
7
7
|
%h1
|
8
8
|
= current_title
|
9
9
|
= link_to fa_icon(:pencil), edit_current_model_record_path(@record.id), class: 'btn btn-warning btn-xs'
|
10
|
-
= ::Tramway::Admin.additional_buttons(record: @record.model.model_name, view: :show)
|
10
|
+
= ::Tramway::Admin.additional_buttons(record: @record.model.model_name, view: :show, project: @application_engine)
|
11
11
|
%hr
|
12
12
|
.row
|
13
13
|
%table.table.table-striped.table-bordered
|
data/lib/tramway/admin.rb
CHANGED
@@ -5,30 +5,45 @@ module Tramway
|
|
5
5
|
|
6
6
|
module Admin
|
7
7
|
class << self
|
8
|
-
def set_available_models(*models)
|
9
|
-
@available_models ||=
|
10
|
-
@available_models
|
8
|
+
def set_available_models(*models, project:)
|
9
|
+
@available_models ||= {}
|
10
|
+
@available_models[project] ||= []
|
11
|
+
@available_models[project] += models
|
12
|
+
end
|
13
|
+
|
14
|
+
def available_models_for(project)
|
15
|
+
(@available_models[project.to_sym] || []) + "::Tramway::#{project.to_s.camelize}".constantize.dependencies.map do |dependency|
|
16
|
+
@available_models[dependency]
|
17
|
+
end.flatten.compact
|
11
18
|
end
|
12
19
|
|
13
20
|
def available_models
|
14
|
-
@available_models
|
21
|
+
@available_models.values.flatten
|
22
|
+
end
|
23
|
+
|
24
|
+
def set_singleton_models(*models, project:)
|
25
|
+
@singleton_models ||= {}
|
26
|
+
@singleton_models[project] ||= []
|
27
|
+
@singleton_models[project] += models
|
15
28
|
end
|
16
29
|
|
17
|
-
def
|
18
|
-
@singleton_models
|
19
|
-
|
30
|
+
def singleton_models_for(project)
|
31
|
+
(@singleton_models[project.to_sym] || []) + "::Tramway::#{project.to_s.camelize}".constantize.dependencies.map do |dependency|
|
32
|
+
@singleton_models[dependency]
|
33
|
+
end.flatten.compact
|
20
34
|
end
|
21
35
|
|
22
36
|
def singleton_models
|
23
|
-
@singleton_models
|
37
|
+
@singleton_models.values.flatten
|
24
38
|
end
|
25
39
|
|
26
|
-
def set_additional_buttons(buttons)
|
40
|
+
def set_additional_buttons(buttons, project:)
|
27
41
|
@additional_buttons ||= {}
|
28
|
-
@additional_buttons
|
42
|
+
@additional_buttons[project] ||= {}
|
43
|
+
@additional_buttons[project].merge! buttons
|
29
44
|
end
|
30
45
|
|
31
|
-
def additional_buttons(view: nil, record: nil)
|
46
|
+
def additional_buttons(project:, view: nil, record: nil)
|
32
47
|
@additional_buttons&.dig record, view
|
33
48
|
end
|
34
49
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tramway-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: '1.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kalashnikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tramway-user
|