simple_form_extension 1.3.17 → 1.3.18

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ac6b5b0ebf41918f6bd3081eac0de4cd523c8b1a
4
+ data.tar.gz: c745a93f5f169fb41c015a84587a7ce045bf3795
5
+ SHA512:
6
+ metadata.gz: 974e96f1017ee2f057b71497bba44d417d33bd39392e029705be8fcaa6ea8dac4e3eb6df76b85c49e9aaca74c733d0c496a0ff88d8144f488beb0b8210c3d766
7
+ data.tar.gz: 5c6bd73e5cdc85c55009b36ea84265a51c3273f52d296792289519987a8292a8869788d7f15e91786ce6e4f119f8f81ae9a04834a44911a6afc652a96d0706db
@@ -17,23 +17,24 @@ module SimpleFormExtension
17
17
  input_html_options[:data] ||= {}
18
18
 
19
19
  input_html_options[:data].merge!(
20
- :'selectize' => true,
21
- :'value' => serialized_value,
22
- :'creatable' => creatable?,
23
- :'multi' => multi?,
20
+ :'selectize' => true,
21
+ :'value' => serialized_value,
22
+ :'creatable' => creatable?,
23
+ :'multi' => multi?,
24
24
  :'add-translation' => _translate('selectize.add'),
25
- :'collection' => collection,
26
- :'max-items' => max_items,
27
- :'sort-field' => sort_field,
28
- :'search-url' => search_url,
29
- :'search-param' => search_param
25
+ :'collection' => collection,
26
+ :'max-items' => max_items,
27
+ :'sort-field' => sort_field,
28
+ :'search-url' => search_url,
29
+ :'search-param' => search_param,
30
+ :'escape' => escape
30
31
  )
31
32
 
32
33
  @builder.hidden_field attribute_name, input_html_options
33
34
  end
34
35
 
35
36
  def search_param
36
- options[:search_param] ||= 'name'
37
+ options[:search_param] ||= 'q'
37
38
  end
38
39
 
39
40
  def search_url
@@ -44,6 +45,10 @@ module SimpleFormExtension
44
45
  !!options[:creatable]
45
46
  end
46
47
 
48
+ def escape
49
+ options[:escape]
50
+ end
51
+
47
52
  def multi?
48
53
  (options.key?(:multi) && !!options[:multi]) ||
49
54
  enumerable?(value)
@@ -59,7 +64,7 @@ module SimpleFormExtension
59
64
 
60
65
  def collection
61
66
  return if search_url
62
-
67
+
63
68
  if (collection = options[:collection])
64
69
  if enumerable?(collection)
65
70
  collection.map(&method(:serialize_option))
@@ -74,12 +79,26 @@ module SimpleFormExtension
74
79
  end
75
80
 
76
81
  def serialized_value
82
+ return input_html_options[:data][:value] if input_html_options[:data][:value]
83
+
77
84
  if multi?
78
- value.map do |item|
79
- { text: item, value: item }
85
+ if relation?
86
+ value.map do |item|
87
+ if (resource = relation.find { |resource| resource.id == item.to_i }) && (text = text_from(resource))
88
+ serialize_value(item, text)
89
+ else
90
+ serialize_value(item)
91
+ end
92
+ end
93
+ else
94
+ value.map(&method(:serialize_value))
80
95
  end
81
96
  else
82
- value && { text: value, value: value }
97
+ if relation? && relation && (text = text_from(relation))
98
+ serialize_value(value, text)
99
+ else
100
+ serialize_value(value)
101
+ end
83
102
  end
84
103
  end
85
104
 
@@ -87,6 +106,10 @@ module SimpleFormExtension
87
106
  @value ||= options_fetch(:value) { object.send(attribute_name) }
88
107
  end
89
108
 
109
+ def serialize_value(value, text = nil)
110
+ { text: (text || value), value: value }
111
+ end
112
+
90
113
  private
91
114
 
92
115
  def serialize_option(option)
@@ -119,6 +142,10 @@ module SimpleFormExtension
119
142
  option.try(:name) || options.try(:title) || option.to_s
120
143
  end
121
144
 
145
+ def relation
146
+ @relation ||= object.send(reflection.name) if relation?
147
+ end
148
+
122
149
  def relation?
123
150
  !!reflection
124
151
  end
@@ -136,6 +163,10 @@ module SimpleFormExtension
136
163
  when :has_many then :"#{ reflection.name.to_s.singularize }_ids"
137
164
  end
138
165
  end
166
+
167
+ def text_from(resource)
168
+ resource.try(:title) || resource.try(:name)
169
+ end
139
170
  end
140
171
  end
141
172
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleFormExtension
2
- VERSION = "1.3.17"
2
+ VERSION = "1.3.18"
3
3
  end
@@ -12,9 +12,12 @@ class Selectize
12
12
  constructor: (@$el, @options) ->
13
13
  @single = @$el.data('multi') is false
14
14
  @el = @$el[0]
15
-
16
15
  @$el.val('')
17
16
 
17
+ @searchURL = @$el.data('search-url')
18
+ @searchParam = @$el.data('search-param')
19
+ @escape = @$el.data('escape') isnt false
20
+
18
21
  @$el.selectize($.extend @selectizeDefaults(), @options)
19
22
 
20
23
  if (value = @$el.data('value'))
@@ -35,21 +38,34 @@ class Selectize
35
38
  @el.selectize.addOption(data)
36
39
  @el.selectize.addItem(data.value)
37
40
 
38
- searchURL: ->
39
- @$el.data('search-url')
40
-
41
41
  load: (query, callback) =>
42
- return callback() unless query.length && @searchURL()
42
+ return callback() unless query.length && @searchURL
43
+
44
+ data = {}
45
+ data[@searchParam] = query
46
+
43
47
  $.ajax
44
- url: @searchURL()
48
+ url: @searchURL
45
49
  type: 'GET'
46
- data:
47
- q: query
50
+ data: data
48
51
  error: -> callback()
49
- success: (res) ->
50
- callback(res)
52
+ success: callback
51
53
 
52
54
  renderOptions: ->
55
+ option: (data, escape) =>
56
+ """
57
+ <div data-value="#{ escape(data.value) }" class="item">
58
+ #{ if @escape then escape(data.text) else data.text }
59
+ </div>
60
+ """
61
+
62
+ item: (data, escape) =>
63
+ """
64
+ <div data-value="#{ escape(data.value) }" data-selectable="" class="option">
65
+ #{ if @escape then escape(data.text) else data.text }
66
+ </div>
67
+ """
68
+
53
69
  option_create: (data) =>
54
70
  """
55
71
  <div class="create" data-selectable="">
metadata CHANGED
@@ -1,113 +1,100 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_form_extension
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.17
5
- prerelease:
4
+ version: 1.3.18
6
5
  platform: ruby
7
6
  authors:
8
7
  - Glyph-fr
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2016-02-16 00:00:00.000000000 Z
11
+ date: 2016-03-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rails
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.1'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '3.1'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: simple_form
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: redactor-rails
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: selectize-rails
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: bundler
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ~>
73
+ - - "~>"
84
74
  - !ruby/object:Gem::Version
85
75
  version: '1.5'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ~>
80
+ - - "~>"
92
81
  - !ruby/object:Gem::Version
93
82
  version: '1.5'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rake
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - ">="
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - ">="
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
- description: ! 'The following custom Simple Form inputs are available : boolean, collection_check_boxes,
97
+ description: 'The following custom Simple Form inputs are available : boolean, collection_check_boxes,
111
98
  collection_radio_buttons, color, date_time, file, image, numeric, redactor, selectize
112
99
  and slider'
113
100
  email:
@@ -116,7 +103,7 @@ executables: []
116
103
  extensions: []
117
104
  extra_rdoc_files: []
118
105
  files:
119
- - .gitignore
106
+ - ".gitignore"
120
107
  - Gemfile
121
108
  - LICENSE.txt
122
109
  - README.md
@@ -178,26 +165,25 @@ files:
178
165
  homepage: http://www.glyph.fr
179
166
  licenses:
180
167
  - MIT
168
+ metadata: {}
181
169
  post_install_message:
182
170
  rdoc_options: []
183
171
  require_paths:
184
172
  - lib
185
173
  required_ruby_version: !ruby/object:Gem::Requirement
186
- none: false
187
174
  requirements:
188
- - - ! '>='
175
+ - - ">="
189
176
  - !ruby/object:Gem::Version
190
177
  version: '0'
191
178
  required_rubygems_version: !ruby/object:Gem::Requirement
192
- none: false
193
179
  requirements:
194
- - - ! '>='
180
+ - - ">="
195
181
  - !ruby/object:Gem::Version
196
182
  version: '0'
197
183
  requirements: []
198
184
  rubyforge_project:
199
- rubygems_version: 1.8.23
185
+ rubygems_version: 2.5.1
200
186
  signing_key:
201
- specification_version: 3
187
+ specification_version: 4
202
188
  summary: This gems adds custom common input types to simple form.
203
189
  test_files: []