iquest-simple_table 0.2.1 → 0.3.0

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: db6f28eda6e5c7387dd320504b0d760e8247b46d
4
- data.tar.gz: f1aff3605d65b5b13bcc2110af3832dc4c552fbc
3
+ metadata.gz: 487255feccbbd18459b41325c4ba0072301ba4bb
4
+ data.tar.gz: 9d767604c918f80dbb629f0ce226bde0bd1d73c6
5
5
  SHA512:
6
- metadata.gz: 02085c18ba6bde7a89f96cc0de9ad7ce260b0b8f483ae84f17c3334cbbbe70b331e7d619fcf28db487895e973b5581c006f86a239e71875ea2dc151a9adf5a52
7
- data.tar.gz: 825e215e2665e5fb0625091834bd338ff68f9c8e1225d2bfc18c6dce218701a84a2bf094a8894470da43822751f33851e6db2bf7aaff1d389387fbc8ce2b4439
6
+ metadata.gz: 2ccec335f52588138657eb6e79bc2829d254fd3ae64995a739d65ac96a090dd3dcc1fa29457f4591c485fc814e2a432980c43b585653dc5adaff8c0156b8b0a8
7
+ data.tar.gz: e8f96ccfcb6517d44164d16a4a3600a3d9b8604225b68ddae6d00b79a562564248a9f2fbeeb46ca237d3415634176aceb8d09ca450e5a6d56ad583de886205af
@@ -1 +1 @@
1
- 2.1.2
1
+ 2.0.0-p576
@@ -3,10 +3,10 @@ require 'ransack_simple_form'
3
3
  module Iquest
4
4
  module SimpleTable
5
5
  class TableBuilder
6
- attr_reader :parent, :table_id, :columns, :collection, :search_form, :actions, :new_link
6
+ attr_reader :parent, :table_id, :columns, :collection, :search_form, :actions, :collection_actions
7
7
  delegate :capture, :content_tag, :link_to, :paginate, :page_entries_info, :params, to: :parent
8
8
  delegate :sort_link, :search_form_for, to: :parent
9
- delegate :polymorphic_path, :polymorphic_url, :new_polymorphic_path, :new_polymorphic_url, to: :parent
9
+ delegate :polymorphic_path, :polymorphic_url, to: :parent
10
10
  delegate :l, :t, to: :parent
11
11
 
12
12
  def initialize(parent, collection_or_search, options = {})
@@ -22,37 +22,35 @@ module Iquest
22
22
  @search = search
23
23
  @collection = search.result
24
24
  @klass = @collection.klass
25
- options[:search_url] ||= polymorphic_path(collection_or_search.map {|o| o.is_a?(Ransack::Search) ? o.klass : o})
26
- options[:new_url] ||= new_polymorphic_path(collection_or_search.map {|o| o.is_a?(Ransack::Search) ? o.klass : o}) rescue NoMethodError
25
+ options[:search_url] ||= polymorphic_path(collection_or_search.map {|o| o.is_a?(Ransack::Search) ? o.klass : o})
27
26
  elsif collection_or_search.is_a?(Array) && (collection = collection_or_search.detect {|o| o.is_a?(ActiveRecord::Relation) || o.is_a?(ActiveRecord::AssociationRelation)})
28
27
  @collection = collection
29
- @klass = @collection.klass
30
- options[:new_url] ||= new_polymorphic_path(collection_or_search.map {|o| o.is_a?(ActiveRecord::Relation) || o.is_a?(ActiveRecord::AssociationRelation)}) rescue NoMethodError
28
+ @klass = @collection.klass
31
29
  else
32
30
  raise TypeError, 'ActiveRecord::Relation, ActiveRecord::AssociationRelation or Ransack::Search expected'
33
31
  end
34
32
  apply_pagination
35
33
  #draper
36
34
  @collection = @collection.decorate if @collection.respond_to?(:decorate)
37
- options[:search_url] ||= polymorphic_path(@klass) rescue NoMethodError
38
- options[:new_url] ||= new_polymorphic_path(@klass) rescue NoMethodError
35
+ options[:search_url] ||= polymorphic_path(@klass) rescue NoMethodError
39
36
  @options = options
40
37
  @table_id = "table_#{self.object_id}".parameterize
41
38
  @columns = {}.with_indifferent_access
42
39
  @actions = []
40
+ @collection_actions = []
43
41
  @search_input_default_options = {label: false, placeholder: false}.with_indifferent_access
44
42
  end
45
43
 
46
44
  def column(*args, &block)
47
45
  attr = args.first
48
46
  options = args.extract_options!
49
- search = options.delete(:search)
47
+ search = options.delete(:search)
50
48
  @columns[attr] = options
51
49
  if @search
52
50
  @columns[attr][:label] ||= Ransack::Translate.attribute(attr.to_s.tr('.','_'), context: @search.context)
53
51
  else
54
52
  @columns[attr][:label] ||= @klass.human_attribute_name(attr)
55
- end
53
+ end
56
54
  #iniciaizce search options
57
55
  if search.is_a?(Symbol) || search.is_a?(String)
58
56
  @columns[attr][:search] = {search.to_sym => {}}
@@ -62,6 +60,7 @@ module Iquest
62
60
  @columns[attr][:search] = search
63
61
  end
64
62
  @columns[attr][:formatter] ||= block if block_given?
63
+ @columns[attr][:sort] ||= attr.to_s.tr('.','_') #sort link attr
65
64
  end
66
65
 
67
66
  def action(*args, &block)
@@ -71,11 +70,18 @@ module Iquest
71
70
  @actions << options
72
71
  end
73
72
 
74
- def new_link(*args, &block)
75
- @new_link = args.first if args.first
76
- @new_link = block.call if block_given?
73
+ def collection_action(*args, &block)
74
+ action = args.first
75
+ if action.is_a? String
76
+ @collection_actions << action
77
+ elsif block_given?
78
+ @collection_actions << block.call
79
+ end
77
80
  end
78
81
 
82
+ def new_link(*args, &block)
83
+ ActiveSupport::Deprecation.warn("Iquest::SimpleTable#new_link does nothing. Use collection_action")
84
+ end
79
85
 
80
86
  def search_link(*args, &block)
81
87
  @search_button = block if block_given?
@@ -134,13 +140,13 @@ module Iquest
134
140
  rendered_columns = columns.map do |col, opts|
135
141
  render_column_label(col)
136
142
  end.join.html_safe
137
- render_new_link + rendered_columns
143
+ render_collection_actions + rendered_columns
138
144
  end
139
145
  end
140
146
 
141
- def render_new_link
142
- content_tag :th, class:'new-link' do
143
- @new_link || (link_to t('simple_table.new', default: 'new'), @options[:new_url], class: "btn btn-primary" if @options[:new_url])
147
+ def render_collection_actions
148
+ content_tag :th, class:'collection-actions' do
149
+ @collection_actions.join.html_safe
144
150
  end
145
151
  end
146
152
 
@@ -208,10 +214,10 @@ module Iquest
208
214
  def render_label(column)
209
215
  attr = column
210
216
  options = @columns[attr]
211
-
212
217
  label = options[:label] || attr.to_s
213
- if @search
214
- sort_link(@search, attr, label, method: search_action)
218
+ sort = options[:sort]
219
+ if @search && sort
220
+ sort_link(@search, sort, label, method: search_action)
215
221
  else
216
222
  label
217
223
  end
@@ -1,5 +1,5 @@
1
1
  module Iquest
2
2
  module SimpleTable
3
- VERSION = "0.2.1"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iquest-simple_table
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Dusanek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-18 00:00:00.000000000 Z
11
+ date: 2014-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ransack_simple_form
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description: Simple table helper
@@ -59,8 +59,8 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - ".gitignore"
63
- - ".ruby-version"
62
+ - .gitignore
63
+ - .ruby-version
64
64
  - Gemfile
65
65
  - LICENSE.txt
66
66
  - README.md
@@ -81,17 +81,17 @@ require_paths:
81
81
  - lib
82
82
  required_ruby_version: !ruby/object:Gem::Requirement
83
83
  requirements:
84
- - - ">="
84
+ - - '>='
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0'
87
87
  required_rubygems_version: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ">="
89
+ - - '>='
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  requirements: []
93
93
  rubyforge_project:
94
- rubygems_version: 2.2.2
94
+ rubygems_version: 2.4.2
95
95
  signing_key:
96
96
  specification_version: 4
97
97
  summary: Simple table helper, taht supports filtering through Ransack