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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51debb8a3c358a4e506ff8d44b55a192e1fbaee3cd69fe11ea5ee0a3cbc75027
4
- data.tar.gz: b4f94aee6c047a100d58fcc2f1007814288ee7f72f1737ea092dc9c0d514ddb7
3
+ metadata.gz: f958353c638d04e501d274aaf555084edd43630474d63d5a7682f7a6b8565da7
4
+ data.tar.gz: 270474b2cbe1394790cbc4a6346737186c204dd03d750025adb2158946c418d0
5
5
  SHA512:
6
- metadata.gz: 99afa4aa8d079d6ed94cf6f85961e24d77ea18e0d1ffe5c40e640a053260f96e7d409fe18b486d2f51f4a4c456a7e20ed36e4400cbdef7673dd45921e0df004d
7
- data.tar.gz: db1ab9d05378bcfcdc3c62d6f8457cdba72fc3b1d99dba3b047e4659f1d9c30730724fe449f3b17194b0f1abb00a26ca5b1b60b36db9006d28730316b720c07e
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
- - if customized_admin_navbar_given?
3
- = customized_admin_navbar
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.singleton_models&.each do |model|
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.available_models&.each do |model|
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
@@ -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 += 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 set_singleton_models(*models)
18
- @singleton_models ||= []
19
- @singleton_models += models
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.merge! 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
 
@@ -1,5 +1,5 @@
1
1
  module Tramway
2
2
  module Admin
3
- VERSION = '1.1.7'
3
+ VERSION = '1.2'
4
4
  end
5
5
  end
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.1.7
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-06-23 00:00:00.000000000 Z
11
+ date: 2018-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tramway-user