admin_it 1.0.8 → 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
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