tramway-admin 1.1.7 → 1.2

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 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