tramway-admin 2.0.0.4 → 2.1.1

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: 632e5dd43c0a3314fabad57036952dc28b1076c332f9d34c88469db3615a70dc
4
- data.tar.gz: 9efd54aee213e9bed5d867f2b64eec6ed049702b26d3aacb36208a329d7a881b
3
+ metadata.gz: efe8998e6d28614e1a7bf88a24ac91cd9635c807db0b1f14c912df66c94bf663
4
+ data.tar.gz: 4f142c6de6479a892b88b60a29017c7cf791e0c2943e1c8fbb0b038ff279e93c
5
5
  SHA512:
6
- metadata.gz: f4ffb4e002ea169573c72e5b14719323e9366d232c68282ab40354fda312109bc9cb7cb042ed5caafeabb39340cc5553e6021b1a3bbe23f45f4bdc1a7487ddb9
7
- data.tar.gz: 223ab421a92f7cd80cc83728736e918440d64fa77e6c902bf77a5e1cc38c6702b882412ca9ad5109457c75104e1d1e8a4719e6f2eb11928a5add7826b4ad2b9d
6
+ metadata.gz: f1187272662360971342253d641daf9b8ab27e218bea93f68b7dda3505bd791ad1d38872c18aea7fa607e8bf1be9d2b1bb4fe1ea4d8fdce96834d4262d66df46
7
+ data.tar.gz: 53b6d3b617ebbf6b53747d6e56b523fe252466654847902b2735a05969a4a23ff95af6ae08537426ccd46c3471ecaf95fd889ea34e8146b3eb57a7c1a6bb417b
data/README.md CHANGED
@@ -526,6 +526,29 @@ en:
526
526
  my_dropdown: Very important dropdown
527
527
  ```
528
528
 
529
+ ## Additional buttons to the show view
530
+
531
+ You can additional buttons to the header of show view of your model. Just add its configuration to the decorator
532
+
533
+ *app/decorators/your_model_decorator.rb*
534
+ ```ruby
535
+ class YourModelDecorator < Tramway::Core::ApplicationDecorator
536
+ def additional_buttons
537
+ {
538
+ show: [ # means that this buttons will be shown on show view only
539
+ {
540
+ url: ::Tramway::Export::Engine.routes.url_helpers.export_path(object.id, model: object.class, collection: :tasks),
541
+ inner: lambda do # inner HTML you want to see in the button
542
+ fa_icon 'file-excel'
543
+ end,
544
+ color: :success # bootstrap button color
545
+ }
546
+ ]
547
+ }
548
+ end
549
+ end
550
+ ```
551
+
529
552
  ## Errors
530
553
 
531
554
  * **Model or Form is not available** - `params[:model]` or `params[:form]` is empty **OR** current user does not have access to model or form in `params[:model]` or `params[:form]`
@@ -1,17 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tramway::Admin::AdditionalButtonsBuilder
4
- def build_buttons(additional_buttons)
5
- additional_buttons = additional_buttons.is_a?(Hash) ? [additional_buttons] : additional_buttons
6
- additional_buttons.each do |button|
7
- options = button[:options] || {}
8
- concat(
9
- link_to(
10
- button[:url], method: button[:method], class: "btn btn-#{button[:color]} btn-xs", **options
11
- ) do
12
- button[:text]
13
- end
14
- )
15
- end
4
+ def build_button(button)
5
+ options = button[:options] || {}
6
+ style = 'margin-right: 8px'
7
+ concat(link_to(button[:url], method: button[:method], class: "btn btn-#{button[:color]} btn-xs", style: style, **options) do
8
+ button[:inner]&.call
9
+ end)
16
10
  end
17
11
  end
@@ -1,11 +1,6 @@
1
1
  - default_page_title ||= nil; on_site_link ||= nil
2
2
  - current_title = default_page_title || "#{object.name} | #{model_class.model_name.human.pluralize(:ru)}"
3
3
  - title current_title
4
- -#= content_for :sidebar do
5
- -# - buttons = ::Tramway::Admin.additional_buttons(record: object.model.class, view: :show, project: @application.name)
6
- -# .btn-group-vertical
7
- -# - buttons.each do |button|
8
- -# - build_buttons button.call object
9
4
  .page-header
10
5
  .row
11
6
  .col-md-12
@@ -15,9 +10,9 @@
15
10
  = link_to fa_icon('pencil-alt'), edit_path, class: 'btn btn-warning btn-xs'
16
11
  - if public_path(object)
17
12
  = link_to fa_icon(:share), public_path(object), class: 'btn btn-primary btn-xs'
18
- - buttons = ::Tramway::Admin.additional_buttons(record: object.model.class, view: :show, project: @application.name)
13
+ - buttons = object.additional_buttons[:show]
19
14
  - buttons&.each do |button|
20
- - build_buttons button.call object
15
+ - build_button button
21
16
  %hr
22
17
  .row
23
18
  %table.table.table-striped.table-bordered
@@ -1,16 +1,19 @@
1
- - if object.class.show_associations.map(&:to_s).include? association.name.to_s
2
- - association_type = association.class.to_s.split('::').last.sub(/Reflection$/, '').underscore.to_sym
3
- %tr
4
- %td
5
- = model_class.human_attribute_name association.name
6
- %hr
7
- - if association_type != :has_one || !object.send(association.name).present?
8
- = link_to "#{I18n.t('helpers.actions.add')} #{model_class.human_attribute_name(association.name).singularize.downcase}", new_associated_record_path(association: association, object: object, as: object.send("#{association.name}_as")), class: 'btn btn-primary'
9
- %td{ colspan: 2 }
10
- - if association_type.in? [ :has_one, :belongs_to ]
11
- %table.table.table-striped.table-bordered
12
- = render 'tramway/admin/shared/show/associations/table_row', object: object, association: association, association_object: object.send(association.name)
13
- - else
14
- %table.table.table-striped.table-bordered
15
- - object.send(association.name)&.each do |association_object|
16
- = render 'tramway/admin/shared/show/associations/table_row', object: object, association: association, association_object: association_object
1
+ - if object.class.show_associations.nil?
2
+ = "Please, fill show associations method in decorator"
3
+ - else
4
+ - if object.class.show_associations.map(&:to_s).include? association.name.to_s
5
+ - association_type = association.class.to_s.split('::').last.sub(/Reflection$/, '').underscore.to_sym
6
+ %tr
7
+ %td
8
+ = model_class.human_attribute_name association.name
9
+ %hr
10
+ - if association_type != :has_one || !object.send(association.name).present?
11
+ = link_to "#{I18n.t('helpers.actions.add')} #{model_class.human_attribute_name(association.name).singularize.downcase}", new_associated_record_path(association: association, object: object, as: object.send("#{association.name}_as")), class: 'btn btn-primary'
12
+ %td{ colspan: 2 }
13
+ - if association_type.in? [ :has_one, :belongs_to ]
14
+ %table.table.table-striped.table-bordered
15
+ = render 'tramway/admin/shared/show/associations/table_row', object: object, association: association, association_object: object.send(association.name)
16
+ - else
17
+ %table.table.table-striped.table-bordered
18
+ - object.send(association.name)&.each do |association_object|
19
+ = render 'tramway/admin/shared/show/associations/table_row', object: object, association: association, association_object: association_object
data/lib/tramway/admin.rb CHANGED
@@ -5,7 +5,6 @@ require 'tramway/admin/engine'
5
5
  require 'tramway/admin/singleton_models'
6
6
  require 'tramway/admin/records_models'
7
7
  require 'tramway/admin/forms'
8
- require 'tramway/admin/additional_buttons'
9
8
  require 'tramway/admin/notifications'
10
9
  require 'tramway/admin/welcome_page_actions'
11
10
  require 'tramway/admin/navbar'
@@ -20,7 +19,6 @@ module Tramway
20
19
  class << self
21
20
  include ::Tramway::Admin::RecordsModels
22
21
  include ::Tramway::Admin::SingletonModels
23
- include ::Tramway::Admin::AdditionalButtons
24
22
  include ::Tramway::Admin::Forms
25
23
  include ::Tramway::Admin::Notifications
26
24
  include ::Tramway::Admin::WelcomePageActions
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Tramway
4
4
  module Admin
5
- VERSION = '2.0.0.4'
5
+ VERSION = '2.1.1'
6
6
  end
7
7
  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: 2.0.0.4
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Kalashnikov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-07 00:00:00.000000000 Z
11
+ date: 2021-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tramway-core
@@ -296,7 +296,6 @@ files:
296
296
  - config/routes.rb
297
297
  - lib/tasks/tramway/admin_tasks.rake
298
298
  - lib/tramway/admin.rb
299
- - lib/tramway/admin/additional_buttons.rb
300
299
  - lib/tramway/admin/engine.rb
301
300
  - lib/tramway/admin/forms.rb
302
301
  - lib/tramway/admin/generators/install_generator.rb
@@ -311,7 +310,7 @@ files:
311
310
  - lib/tramway/admin/tramway_model_helper.rb
312
311
  - lib/tramway/admin/version.rb
313
312
  - lib/tramway/admin/welcome_page_actions.rb
314
- homepage: https://github.com/kalashnikovisme/tramway-dev
313
+ homepage: https://github.com/purple-magic/tramway-admin
315
314
  licenses:
316
315
  - MIT
317
316
  metadata: {}
@@ -330,7 +329,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
330
329
  - !ruby/object:Gem::Version
331
330
  version: '0'
332
331
  requirements: []
333
- rubygems_version: 3.1.4
332
+ rubygems_version: 3.2.3
334
333
  signing_key:
335
334
  specification_version: 4
336
335
  summary: Engine for admin
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Tramway::Admin::AdditionalButtons
4
- def set_additional_buttons(buttons, project:)
5
- @additional_buttons ||= {}
6
- @additional_buttons[project] ||= {}
7
- @additional_buttons[project].merge! buttons
8
- end
9
-
10
- def additional_buttons(view: nil, record: nil, project: nil)
11
- @additional_buttons&.with_indifferent_access&.dig project, record, view
12
- end
13
- end