rao-component 0.0.41.pre → 0.0.46.pre

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: eebaf85fc7a06fd03ae23800c7f14c67fb5856aee318e1af736deb9746d59242
4
- data.tar.gz: a0e43d6fa614ff721760a940617ff017d3819d20345aa30799a2b978df6ae3d2
3
+ metadata.gz: 640ec88b1c4c4e0f86a0e992a4c7268ab109138e3abe5b279ecb3ef05c2b87d9
4
+ data.tar.gz: b41517ff56a2abba7bb183afa1a3aeb58e31061f931d5a53333966cf23bd95ad
5
5
  SHA512:
6
- metadata.gz: e807c6c4701d6f63c44622aa29e18b5b14da1f966281dbd1f8907e6eeb3182306a25e5fd2c4fb2dab29445bc1774ff5c9513e66e59eb83b4978e3bf8618dd783
7
- data.tar.gz: 3445e9bb4f0c586152c2f8d3caabbbb7ab493a233815c2d654362db0893a7834a50acdaf9aca3ef39d3e3dbf5fdecf07175a036c2155dae661b885fb776ba530
6
+ metadata.gz: 749cab223faf2d6dd91bfd22010026a2fe6dc1d6b4c4f3c1a06e6e09fbbd97584f9e0a64fb823953881a21e15300358c4071ba8c75601545b352884d582caf2c
7
+ data.tar.gz: 5843ee7e3ee06aaaa6a2e5baf75f4ba662af49867f297e76a51317b49c385f2acdaedb6b42728f34138407d9e36017378ed0d293593c5dcbd5b0491a456b79c8
@@ -10,6 +10,8 @@ module Rao
10
10
  # = t.timestamps format: :short
11
11
  #
12
12
  class CollectionTable < Base
13
+ include AasmConcern
14
+ include ActiveStorageConcern
13
15
  include AwesomeNestedSetConcern
14
16
  include ActsAsPublishedConcern
15
17
  include ActsAsListConcern
@@ -10,6 +10,8 @@ module Rao
10
10
  # = t.timestamps format: :short
11
11
  #
12
12
  class ResourceTable < Base
13
+ include AasmConcern
14
+ include ActiveStorageConcern
13
15
  include BooleanConcern
14
16
  include DateConcern
15
17
  include EmailConcern
@@ -0,0 +1,57 @@
1
+ module Rao
2
+ module Component
3
+ # Usage:
4
+ #
5
+ # # app/models/cart.rb
6
+ # class Cart < ActiveRecord::Base
7
+ # include AASM
8
+ #
9
+ # aasm do
10
+ # # ...
11
+ # end
12
+ # end
13
+ #
14
+ # # app/carts/index.html.haml
15
+ # = collection_table(collection: @carts) do |table|
16
+ # = table.aasm :default
17
+ #
18
+ # You will have to add a event triggering route to your resource:
19
+ #
20
+ # # config/routes.rb:
21
+ # Rails.application.routes do
22
+ # resources :carts do
23
+ # post 'trigger_event/:machine_name/:event_name', on: :member, action: 'trigger_event', as: :trigger_event
24
+ # end
25
+ # # ...
26
+ # end
27
+ #
28
+ # Additionally you will need a controller action to handle the triggering of events.
29
+ # Include Rao::ResourcesController::AasmConcern from rao-resources_controller
30
+ # if you don't want to implement it yourself:
31
+ #
32
+ # # app/controllers/pictures_controller.rb
33
+ # class PicturesController < ApplicationController
34
+ # include Rao::ResourcesController::AasmConcern
35
+ # # ...
36
+ # end
37
+ #
38
+ module CollectionTable::AasmConcern
39
+ extend ActiveSupport::Concern
40
+
41
+ def aasm_state(name = nil, options = {}, &block)
42
+ name = name.presence || :default
43
+ column_name = (name == :default) ? "aasm_state" : "#{name}_state"
44
+ options.reverse_merge!(render_as: :aasm_state, state_machine_name: name)
45
+ column(column_name, options, &block)
46
+ end
47
+
48
+
49
+ def aasm_actions(name = nil, options = {}, &block)
50
+ name = name.presence || :default
51
+ column_name = (name == :default) ? "aasm_actions" : "#{name}_actions"
52
+ options.reverse_merge!(render_as: :aasm_actions, state_machine_name: name)
53
+ column(column_name, options, &block)
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,12 @@
1
+ module Rao
2
+ module Component
3
+ module CollectionTable::ActiveStorageConcern
4
+ extend ActiveSupport::Concern
5
+
6
+ def attachment(name, options = {}, &block)
7
+ options.reverse_merge!(render_as: :attachment)
8
+ column(name, options, &block)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -9,6 +9,7 @@ module Rao
9
9
  #
10
10
  def batch_actions(options = {}, &block)
11
11
  @wrap_in_form = true
12
+ options[:actions] ||= instance_exec(&Rao::Component::Configuration.batch_actions_default_actions)
12
13
  title = @view.render partial: 'rao/component/table/header_cells/batch_actions', locals: { options: options }
13
14
  options.reverse_merge!(render_as: :batch_actions, title: title)
14
15
  column(:batch_actions, options, &block)
@@ -0,0 +1,57 @@
1
+ module Rao
2
+ module Component
3
+ # Usage:
4
+ #
5
+ # # app/models/cart.rb
6
+ # class Cart < ActiveRecord::Base
7
+ # include AASM
8
+ #
9
+ # aasm do
10
+ # # ...
11
+ # end
12
+ # end
13
+ #
14
+ # # app/carts/show.html.haml
15
+ # = resource_table(resource: @carts) do |table|
16
+ # = table.aasm :default
17
+ #
18
+ # You will have to add a event triggering route to your resource:
19
+ #
20
+ # # config/routes.rb:
21
+ # Rails.application.routes do
22
+ # resources :carts do
23
+ # post 'trigger_event/:machine_name/:event_name', on: :member, action: 'trigger_event', as: :trigger_event
24
+ # end
25
+ # # ...
26
+ # end
27
+ #
28
+ # Additionally you will need a controller action to handle the triggering of events.
29
+ # Include Rao::ResourcesController::AasmConcern from rao-resources_controller
30
+ # if you don't want to implement it yourself:
31
+ #
32
+ # # app/controllers/pictures_controller.rb
33
+ # class PicturesController < ApplicationController
34
+ # include Rao::ResourcesController::AasmConcern
35
+ # # ...
36
+ # end
37
+ #
38
+ module ResourceTable::AasmConcern
39
+ extend ActiveSupport::Concern
40
+
41
+ def aasm_state(name = nil, options = {}, &block)
42
+ name = name.presence || :default
43
+ row_name = (name == :default) ? "aasm_state" : "#{name}_state"
44
+ options.reverse_merge!(render_as: :aasm_state, state_machine_name: name)
45
+ row(row_name, options, &block)
46
+ end
47
+
48
+
49
+ def aasm_actions(name = nil, options = {}, &block)
50
+ name = name.presence || :default
51
+ row_name = (name == :default) ? "aasm_actions" : "#{name}_actions"
52
+ options.reverse_merge!(render_as: :aasm_actions, state_machine_name: name)
53
+ row(row_name, options, &block)
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,12 @@
1
+ module Rao
2
+ module Component
3
+ module ResourceTable::ActiveStorageConcern
4
+ extend ActiveSupport::Concern
5
+
6
+ def attachment(name, options = {}, &block)
7
+ options.reverse_merge!(render_as: :attachment)
8
+ row(name, options, &block)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,2 @@
1
+ - resource.aasm(options[:state_machine_name]).events(permitted: true).each do |event|
2
+ = link_to(resource.class.aasm(options[:state_machine_name]).human_event_name(event.name), { action: 'trigger_event', id: resource.to_param, machine_name: options[:state_machine_name], event_name: event.name }, class: 'btn btn-xs btn-primary', method: :post)
@@ -0,0 +1 @@
1
+ %span.badge.badge-primary= resource.aasm(options[:state_machine_name]).human_state
@@ -0,0 +1,5 @@
1
+ - if resource.send(name).attached?
2
+ = capture_haml do
3
+ = link_to(main_app.url_for(resource.send(name)), class: 'btn btn-xs btn-primary btn-responsive') do
4
+ %i.fas.fa-download
5
+ %span.btn-text= "#{t('rao.component.collection_table.download')} (#{resource.send(name).blob.content_type.split('/').last}, #{number_to_human_size(resource.send(name).blob.byte_size)})"
@@ -6,13 +6,13 @@
6
6
  %form{ method: 'post', id: 'batch-action-form' }
7
7
  = hidden_field_tag :authenticity_token, form_authenticity_token
8
8
  .dropdown.batch-action-dropdown
9
- %button.btn.btn-default.dropdown-toggle{"aria-expanded" => "true", "aria-haspopup" => "true", "data-toggle" => "dropdown", :type => "button", id: 'batch-action-dropdown' }
10
- = t('.title')
9
+ %button.btn.btn-xs.btn-default.dropdown-toggle{"aria-expanded" => "true", "aria-haspopup" => "true", "data-toggle" => "dropdown", :type => "button", id: 'batch-action-dropdown' }
10
+ /=# t('.title')
11
11
  %span.caret
12
12
  %ul.dropdown-menu{"aria-labelledby" => 'batch-action-dropdown' }
13
13
  - options[:actions].each do |action, target|
14
14
  %li
15
- %a{ href: target, class: 'batch-action-form-submit-link' }= t(".#{action}")
15
+ %a{ href: target, class: 'batch-action-form-submit-link btn btn-xs btn-link' }= t(".#{action}")
16
16
 
17
17
  :javascript
18
18
  $(document).ready(function() {
@@ -13,6 +13,7 @@ de:
13
13
  download: Download
14
14
  visit: Öffnen
15
15
  resource_table:
16
+ destroy_confirmation: Sind Sie sicher?
16
17
  download: Download
17
18
  table:
18
19
  body_cells:
@@ -23,6 +24,7 @@ de:
23
24
  batch_actions:
24
25
  title: Stapelverarbeitung
25
26
  destroy: Löschen
27
+ destroy_many: Löschen
26
28
  publish: Veröffentlichen
27
29
  unpublish: Zurückziehen
28
30
  date:
@@ -13,6 +13,7 @@ en:
13
13
  download: Download
14
14
  visit: Open
15
15
  resource_table:
16
+ destroy_confirmation: Are you sure?
16
17
  download: Download
17
18
  table:
18
19
  body_cells:
@@ -23,6 +24,7 @@ en:
23
24
  batch_actions:
24
25
  title: Batch actions
25
26
  destroy: Delete
27
+ destroy_many: Delete
26
28
  publish: Publish
27
29
  unpublish: Unpublish
28
30
  date:
@@ -13,6 +13,11 @@ module Rao
13
13
  resource: { resize: "320x240" }
14
14
  }
15
15
  }
16
+ mattr_accessor(:batch_actions_default_actions) do
17
+ -> {
18
+ { destroy_many: @view.url_for(action: :destroy_many) }
19
+ }
20
+ end
16
21
  end
17
22
  end
18
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rao-component
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.41.pre
4
+ version: 0.0.46.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-24 00:00:00.000000000 Z
11
+ date: 2020-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -179,6 +179,8 @@ files:
179
179
  - app/components/rao/component/base.rb
180
180
  - app/components/rao/component/collection_table.rb
181
181
  - app/components/rao/component/resource_table.rb
182
+ - app/concerns/rao/component/collection_table/aasm_concern.rb
183
+ - app/concerns/rao/component/collection_table/active_storage_concern.rb
182
184
  - app/concerns/rao/component/collection_table/acts_as_list_concern.rb
183
185
  - app/concerns/rao/component/collection_table/acts_as_published_concern.rb
184
186
  - app/concerns/rao/component/collection_table/awesome_nested_set_concern.rb
@@ -187,6 +189,8 @@ files:
187
189
  - app/concerns/rao/component/collection_table/date_concern.rb
188
190
  - app/concerns/rao/component/collection_table/email_concern.rb
189
191
  - app/concerns/rao/component/collection_table/thumbnail_concern.rb
192
+ - app/concerns/rao/component/resource_table/aasm_concern.rb
193
+ - app/concerns/rao/component/resource_table/active_storage_concern.rb
190
194
  - app/concerns/rao/component/resource_table/boolean_concern.rb
191
195
  - app/concerns/rao/component/resource_table/date_concern.rb
192
196
  - app/concerns/rao/component/resource_table/email_concern.rb
@@ -194,9 +198,12 @@ files:
194
198
  - app/helpers/rao/component/application_helper.rb
195
199
  - app/views/rao/component/_collection_table.html.haml
196
200
  - app/views/rao/component/_resource_table.html.haml
201
+ - app/views/rao/component/table/body_cells/_aasm_actions.html.haml
202
+ - app/views/rao/component/table/body_cells/_aasm_state.html.haml
197
203
  - app/views/rao/component/table/body_cells/_acts_as_list.html.haml
198
204
  - app/views/rao/component/table/body_cells/_acts_as_published.html.haml
199
205
  - app/views/rao/component/table/body_cells/_association.html.haml
206
+ - app/views/rao/component/table/body_cells/_attachment.html.haml
200
207
  - app/views/rao/component/table/body_cells/_awesome_nested_set.html.haml
201
208
  - app/views/rao/component/table/body_cells/_batch_actions.html.haml
202
209
  - app/views/rao/component/table/body_cells/_boolean.html.haml
@@ -236,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
243
  - !ruby/object:Gem::Version
237
244
  version: 1.3.1
238
245
  requirements: []
239
- rubygems_version: 3.1.2
246
+ rubygems_version: 3.1.4
240
247
  signing_key:
241
248
  specification_version: 4
242
249
  summary: View Components for Ruby on Rails.