admin_it 1.0.8 → 1.0.9

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
  SHA1:
3
- metadata.gz: f3c78b05180f3886708f8ebb99413ae49d655d1d
4
- data.tar.gz: 777702fc5bc52596130f80447c686859460d442f
3
+ metadata.gz: 45f2f0b918cc7598db68bfa95c9531166582e32f
4
+ data.tar.gz: 20beca7ce9441e4e9daf07193b683d2cce03fdbf
5
5
  SHA512:
6
- metadata.gz: 8d1eca80d0a17486ef98a48c0d74bd5b146c37b04b4ffa98849231077bad3f73f0a2bc5368da5ff58b39427e82811ee8604a01494258084ac228938a37499c13
7
- data.tar.gz: 3b51e836dc3cd9742b06e33a479f48e2f4d4a8af7e525eda044361ce838e797b86e82b37fd5982327e3d845efe96793e049d6fea792cd7156acb352720056122
6
+ metadata.gz: f3c96628072ee5f826f3363d3f46c0d35913af0f04d63f33cdcb38162c106c533535a32cf3705bfe2dd862086cfcd9ee03c4cc7cb704adf4e115c16e7f1af931
7
+ data.tar.gz: bab6e0655d1a46847110bea8721ff19ad182e8f5cf516633de1b3edf83a635be1c6ad700c8cb4360f45f384492e5ed51cc8307b2dbd78aa181636262699cd78d
@@ -13,18 +13,25 @@
13
13
  - opts[:class] = 'text-info' if for_context.sorting.any? { |s| s.index("#{k}:") == 0 }
14
14
  = header.cell opts do
15
15
  = h
16
- - v_filter = for_context.filters.select do |f|
17
- - f.is_a?(AdminIt::ValueFilter) && f.class.field == for_context.field(k)
16
+ - filter_class = for_context.all_filters(scope: :value).find do |f|
17
+ - f.field.field_name == k
18
+ - unless filter_class.nil?
19
+ - active_filter = for_context.filters.find { |f| f.is_a?(filter_class) }
20
+ - if !active_filter.nil? && !active_filter.values.empty?
21
+ a class="btn btn-success btn-xs pull-right" href==for_context.url_for(filters: "-#{filter_class.filter_name}")
22
+ i class="fa fa-filter"
23
+ = ' '
24
+ i class="fa fa-times-circle-o text-danger"
18
25
  - if for_context.sortable.include?(k) || !v_filter.nil?
19
26
  div class="btn-group btn-group-xs pull-right fade" data-toggle="popup-target"
20
27
  - unless for_context.sorting.include?("#{k}:asc")
21
- a class="btn btn-default" href==url_for(for_context.url_params(sorting: "#{k}:asc"))
28
+ a class="btn btn-default" href==for_context.url_for(sorting: "#{k}:asc")
22
29
  i class="fa fa-caret-down"
23
30
  - unless for_context.sorting.include?("#{k}:desc")
24
- a class="btn btn-default" href==url_for(for_context.url_params(sorting: "#{k}:desc"))
31
+ a class="btn btn-default" href==for_context.url_for(sorting: "#{k}:desc")
25
32
  i class="fa fa-caret-up"
26
- - unless v_filter.nil?
27
- a class="btn btn-info" href="#"
33
+ - if !filter_class.nil? && (active_filter.nil? || active_filter.values.empty?)
34
+ a class="btn btn-info" href==for_context.url_for(filters: "+#{filter_class.filter_name}", active_filter: filter_class.filter_name)
28
35
  i class="fa fa-filter"
29
36
  - if for_context.actions?
30
37
  th style='border: none'
@@ -27,4 +27,5 @@
27
27
  span class="caret"
28
28
  ul class="dropdown-menu" role="menu"
29
29
  - for_context.all_filters.each do |filter|
30
- li: a href==url_for(filters: filter.filter_name) =filter.display_name
30
+ li: a href==for_context.url_for(filters: filter.filter_name)
31
+ = filter.display_name
@@ -93,8 +93,8 @@ module AdminIt
93
93
  end
94
94
  end
95
95
 
96
- def all_filters
97
- self.class.filters
96
+ def all_filters(scope: :all)
97
+ self.class.filters(scope: scope)
98
98
  end
99
99
 
100
100
  def filters
@@ -202,6 +202,11 @@ module AdminIt
202
202
  params
203
203
  end
204
204
 
205
+ def url_for(*args, **params)
206
+ return nil if @template.nil?
207
+ @template.url_for(*args, url_params(**params))
208
+ end
209
+
205
210
  protected
206
211
 
207
212
  def context_param
@@ -1,7 +1,9 @@
1
1
  module AdminIt
2
2
  module ActiveRecordData
3
3
  module Resource
4
- def display_name
4
+ protected
5
+
6
+ def default_display_name
5
7
  entity_class
6
8
  .model_name
7
9
  .human#(count: 0)
@@ -10,8 +12,6 @@ module AdminIt
10
12
  .join(' ')
11
13
  end
12
14
 
13
- protected
14
-
15
15
  def default_fields(&block)
16
16
  enum = Enumerator.new do |yielder|
17
17
  exclude = []
@@ -226,6 +226,7 @@ module AdminIt
226
226
  def filters(scope: :all)
227
227
  case scope
228
228
  when nil, :all then @filters.values
229
+ when :value then @filters.values.select { |f| f <= ValueFilter }
229
230
  else @filters.values
230
231
  end
231
232
  end
@@ -126,7 +126,7 @@ module AdminIt
126
126
  end
127
127
 
128
128
  def display_name
129
- @display_name ||= plural.split('_').map { |s| s.capitalize }.join(' ')
129
+ @display_name ||= i18n_display_name || default_display_name
130
130
  end
131
131
 
132
132
  def collection_path
@@ -211,6 +211,22 @@ module AdminIt
211
211
  []
212
212
  end
213
213
 
214
+ def default_display_name
215
+ plural.split('_').map { |s| s.capitalize }.join(' ')
216
+ end
217
+
218
+ def i18n_display_name
219
+ begin
220
+ I18n
221
+ .t!("admin_it.resources.#{name}.display_name.plural")
222
+ .split(' ')
223
+ .map { |s| s.mb_chars.capitalize }
224
+ .join(' ')
225
+ rescue I18n::MissingTranslationData
226
+ nil
227
+ end
228
+ end
229
+
214
230
  private
215
231
 
216
232
  def import_data_module
@@ -1,5 +1,5 @@
1
1
  #
2
2
  module AdminIt
3
3
  # Current gem version
4
- VERSION = '1.0.8'
4
+ VERSION = '1.0.9'
5
5
  end
data/lib/extend_it/dsl.rb CHANGED
@@ -144,15 +144,10 @@ module ExtendIt
144
144
 
145
145
  define_method "use_#{hash_name}" do |*names, except: nil|
146
146
  hash = dsl_get(variable || hash_name, {})
147
- # puts "---< #{names}, except: #{except} #{hash.inspect}"
148
147
  keys = hash.keys
149
148
  names = Dsl.expand_asterisk(names.ensure_symbols, keys)
150
- # puts "---> #{names}"
151
149
  names = names.empty? ? keys : names & keys
152
- # puts "---> #{names}"
153
150
  names -= except.ensure_symbols
154
- # puts "---> #{names}"
155
- # puts ''
156
151
  hash.replace(Hash[names.map { |n| [n, hash[n]] }])
157
152
  end
158
153
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: admin_it
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.8
4
+ version: 1.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexey Ovchinnikov