ez-resources 0.1.0 → 0.1.4

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: dadd125c3e79374bebeec76245b56d87f56060706dc2bf7622b546d3096ed319
4
- data.tar.gz: 6beaea0d553ce0ae5ce008006ad0c7b435eb651a38709a69f976c87eb6e68e65
3
+ metadata.gz: 1b3e10c0d602e396efdb1f247852079a73a3ff7400f4b8f6e29be00ef09d00a0
4
+ data.tar.gz: d2a3b95d310489e308e114fcb7cf254839e98673fdb72431c14eda556f10bca8
5
5
  SHA512:
6
- metadata.gz: f67e74bba229bc0a2c7bce3be22f4ee8dfd3ef6e922aab1f1f69e9e6d49f2bafbd356a91773a8e9794c71d0980f6c65ca5f9cfb96f030ea1d67b0dcdd6ad1d65
7
- data.tar.gz: 6dfc56195eb5877e94bd3b6d197679e7fb48ed5ae368d85eb1601de7be6292fdefadfba9d733f96bb3e348faa036105c39dac5f606742565bea83a282aeb798a
6
+ metadata.gz: f5352b31aeeb6e3e427dd18a8968c96d8af522c55f5a67240f17131fae7090c25c84fb3b26d5dd2ba0cde8805a1f3f0605cf13671fa196857cadd97279b6709f
7
+ data.tar.gz: 1bebc28528126229a4b491a56fa766c8695a279a8780a6118f296ae92242a1aab4596716ed6139dfa8298d5d0a5fd225185591f0fa6aa21308717ca32d59223b
data/README.md CHANGED
@@ -43,7 +43,7 @@ class UsersController < ApplicationController
43
43
  config.collection_columns do
44
44
  column :email
45
45
  column :active, type: :boolean
46
- column :name, type: :link, presenter: -> (user) { user.name.humanize }
46
+ column :name, type: :link, presenter: -> (user) { user.name.humanize }, sortable: true
47
47
  column :age
48
48
  column :avatar, type: :image, getter: ->(user) { "/avatars/#{user.id}.jpg" }, class: "t-image-tag"
49
49
  column :custom, type: :custom, builder: ->(user) { "custom #{user.email}" }
@@ -17,7 +17,7 @@
17
17
  thead class=(css_for 'collection-table-thead')
18
18
  tr class=(css_for 'collection-table-thead-tr')
19
19
  - collection_columns.each do |column|
20
- th class=(css_for 'collection-table-thead-th') id=("ez-t-#{column.name}") = column.title
20
+ th class=(css_for 'collection-table-thead-th') id=("ez-t-#{column.name}") = column_title(column)
21
21
  th class=(css_for 'collection-table-thead-th') colspan="2" style="width: 1%"
22
22
  tbody class=(css_for 'collection-table-tbody')
23
23
  - collection.each do |record|
@@ -4,6 +4,7 @@ module Ez
4
4
  module Resources
5
5
  class CollectionCell < ApplicationCell
6
6
  include Pagy::Frontend
7
+ include Ransack::Helpers::FormHelper
7
8
 
8
9
  delegate :resources_name, :collection_columns, :paginator, to: :model
9
10
 
@@ -46,9 +47,9 @@ module Ez
46
47
 
47
48
  def record_tr(record, &block)
48
49
  if model.actions.include?(:show) && Manager::Hooks.can?(:can_read?, model, record)
49
- content_tag :tr, class: css_for('collection-table-tr'), id: "#{resources_name.downcase}-#{record.id}", data: { link: model.path_for(action: :show, id: record.id).to_s }, &block
50
+ content_tag :tr, class: css_for('collection-table-tr'), id: "#{model.model.name.demodulize.pluralize.downcase}-#{record.id}", data: { link: model.path_for(action: :show, id: record.id).to_s }, &block
50
51
  else
51
- content_tag :tr, class: css_for('collection-table-tr'), id: "#{resources_name.downcase}-#{record.id}", &block
52
+ content_tag :tr, class: css_for('collection-table-tr'), id: "#{model.model.name.demodulize.pluralize.downcase}-#{record.id}", &block
52
53
  end
53
54
  end
54
55
 
@@ -81,7 +82,12 @@ module Ez
81
82
  end
82
83
 
83
84
  def remove_link(record)
84
- # TODO
85
+ return unless model.actions.include?(:destroy)
86
+ return unless Manager::Hooks.can?(:can_destroy?, model, record)
87
+
88
+ link_to t('actions.remove'), model.path_for(action: :destroy, id: record.id),
89
+ method: :delete,
90
+ class: css_for('collection-table-td-action-item')
85
91
  end
86
92
 
87
93
  def pagination
@@ -103,6 +109,10 @@ module Ez
103
109
  end
104
110
  end
105
111
 
112
+ def column_title(column)
113
+ column.sortable ? sort_link(search, column.name, column.title) : column.title
114
+ end
115
+
106
116
  private
107
117
 
108
118
  def maybe_use_custom_boolean_presenter(bool)
@@ -110,6 +120,10 @@ module Ez
110
120
 
111
121
  instance_exec bool, &Ez::Resources.config.ui_custom_boolean_presenter
112
122
  end
123
+
124
+ def search
125
+ @search ||= model.model.ransack(model.params[:q])
126
+ end
113
127
  end
114
128
  end
115
129
  end
@@ -18,11 +18,12 @@ module Ez
18
18
 
19
19
  def data
20
20
  @data ||= case controller.action_name
21
- when 'index' then collection
22
- when 'new' then new_resource
23
- when 'show' then resource
24
- when 'edit' then resource
25
- when 'update' then resource
21
+ when 'index' then collection
22
+ when 'new' then new_resource
23
+ when 'show' then resource
24
+ when 'edit' then resource
25
+ when 'update' then resource
26
+ when 'destroy' then resource
26
27
  else
27
28
  raise ConfigurationError, "Invalid action #{controller.action_name}"
28
29
  end
@@ -18,6 +18,7 @@ module Ez
18
18
  :presenter,
19
19
  :builder,
20
20
  :searchable,
21
+ :sortable,
21
22
  :search_suffix,
22
23
  :options
23
24
 
@@ -35,6 +36,7 @@ module Ez
35
36
  @getter = options.delete(:getter)
36
37
  @presenter = options.delete(:presenter)
37
38
  @searchable = options.delete(:searchable) != false
39
+ @sortable = options.delete(:sortable) || false
38
40
  @search_suffix = options.delete(:search_suffix) || :cont
39
41
  @options = options # use for all other custom options
40
42
  end
@@ -89,8 +89,16 @@ module Ez
89
89
  end
90
90
  end
91
91
 
92
- # TODO: Later
93
- def destroy; end
92
+ def destroy
93
+ Manager::Hooks.can?(:can_destroy?, ez_resource_config, ez_resource_config.data)
94
+ ez_resource_config.data.delete
95
+
96
+ flash[:notice] = t('messages.removed',
97
+ resource_name: ez_resource_config.resource_name,
98
+ scope: Ez::Resources.config.i18n_scope)
99
+
100
+ redirect_to ez_resource_config.path_for(action: :index)
101
+ end
94
102
 
95
103
  private
96
104
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ez
4
4
  module Resources
5
- VERSION = '0.1.0'
5
+ VERSION = '0.1.4'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ez-resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Volodya Sveredyuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-05 00:00:00.000000000 Z
11
+ date: 2021-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cells-rails
@@ -198,6 +198,20 @@ dependencies:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
200
  version: '0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: orderly
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
201
215
  - !ruby/object:Gem::Dependency
202
216
  name: pry-rails
203
217
  requirement: !ruby/object:Gem::Requirement