simple_form_extension 1.3.17 → 1.3.18
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
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'
|
21
|
-
:'value'
|
22
|
-
:'creatable'
|
23
|
-
:'multi'
|
20
|
+
:'selectize' => true,
|
21
|
+
:'value' => serialized_value,
|
22
|
+
:'creatable' => creatable?,
|
23
|
+
:'multi' => multi?,
|
24
24
|
:'add-translation' => _translate('selectize.add'),
|
25
|
-
:'collection'
|
26
|
-
:'max-items'
|
27
|
-
:'sort-field'
|
28
|
-
:'search-url'
|
29
|
-
:'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] ||= '
|
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
|
-
|
79
|
-
|
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
|
-
|
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
|
@@ -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:
|
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.
|
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
|
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:
|
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:
|
185
|
+
rubygems_version: 2.5.1
|
200
186
|
signing_key:
|
201
|
-
specification_version:
|
187
|
+
specification_version: 4
|
202
188
|
summary: This gems adds custom common input types to simple form.
|
203
189
|
test_files: []
|