cck_forms 3.1.3 → 3.2.2
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 +4 -4
- data/README.md +3 -0
- data/lib/cck_forms/engine.rb +3 -0
- data/lib/cck_forms/parameter_type_class/album.rb +4 -3
- data/lib/cck_forms/parameter_type_class/checkboxes.rb +23 -21
- data/lib/cck_forms/parameter_type_class/image.rb +5 -1
- data/lib/cck_forms/parameter_type_class/map.rb +1 -1
- data/lib/cck_forms/version.rb +1 -1
- data/vendor/assets/javascripts/cck_forms/index.js +2 -1
- data/vendor/assets/javascripts/cck_forms/jquery.checkboxes.coffee +42 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13d92b9f74221a1651abc8c15bfe35743bc11bd0
|
4
|
+
data.tar.gz: 643415c319917544c8902187f8bd007d083a53a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50a1ed167f097b57f7e94f1dc0dad6d4d2fa185d07f5fb458ae4edc8a39c3030542c2d0228a7973736671c5b596cdb9fd3a139bca7c737bc352cecc598b6ac67
|
7
|
+
data.tar.gz: f4220e7b29a787d7686733b531f8243b3219249a76bdbdb855ede70f676f59f91da253a60def0f4e2c107f997058ef927ecfce151d9d995df45fad73f1bb5038
|
data/README.md
CHANGED
@@ -238,6 +238,9 @@ config.cck_forms.phones.prefix = '+7'
|
|
238
238
|
|
239
239
|
# the glue for concatenating phone number parts: 111[glue]22[glue]33
|
240
240
|
config.cck_forms.phones.number_parts_glue = '-'
|
241
|
+
|
242
|
+
# the default map provider; if not specified, google is the default
|
243
|
+
config.cck_forms.maps.default_type = 'yandex'.freeze
|
241
244
|
```
|
242
245
|
|
243
246
|
|
data/lib/cck_forms/engine.rb
CHANGED
@@ -19,5 +19,8 @@ module CckForms
|
|
19
19
|
config.cck_forms.phones.mobile_codes = %w{ 777 705 771 701 702 775 778 700 707 }
|
20
20
|
config.cck_forms.phones.prefix = '+7'
|
21
21
|
config.cck_forms.phones.number_parts_glue = '-'
|
22
|
+
|
23
|
+
# maps
|
24
|
+
config.cck_forms.maps = ActiveSupport::OrderedOptions.new
|
22
25
|
end
|
23
26
|
end
|
@@ -95,9 +95,10 @@ HTML
|
|
95
95
|
# Returns a collection of 64x64 IMGs
|
96
96
|
def to_diff_value(options = {})
|
97
97
|
view_context = options[:view_context]
|
98
|
-
|
99
|
-
value.
|
100
|
-
|
98
|
+
|
99
|
+
images_html_list = (value || []).map(&:presence).compact.map do
|
100
|
+
id = elem.is_a?(BSON::Document) ? elem['_id'] : elem
|
101
|
+
"<img style='width: 64px; height: 64px;' src='#{view_context.neofiles_image_path(id: id, format: '64x64', crop: 1)}'>"
|
101
102
|
end
|
102
103
|
|
103
104
|
images_html_list.join.html_safe if images_html_list.any?
|
@@ -28,10 +28,14 @@ class CckForms::ParameterTypeClass::Checkboxes
|
|
28
28
|
value.present? or return {}
|
29
29
|
|
30
30
|
valid_values = parameter_type_class.try!(:valid_values) || value.map { |x| [x, nil] }
|
31
|
-
valid_values.reduce({}) do |r, (key, _)|
|
31
|
+
valid_values = valid_values.reduce({}) do |r, (key, _)|
|
32
32
|
r[key] = value.include?(key) ? '1' : '0'
|
33
33
|
r
|
34
34
|
end
|
35
|
+
|
36
|
+
valid_values = valid_values.dup
|
37
|
+
priority_values = valid_values.extract!(*(value.respond_to?(:keys) ? value.keys : value))
|
38
|
+
priority_values.merge valid_values
|
35
39
|
end
|
36
40
|
|
37
41
|
# Comma-separated list of checked entries. Options:
|
@@ -150,33 +154,31 @@ class CckForms::ParameterTypeClass::Checkboxes
|
|
150
154
|
set_value_in_hash options
|
151
155
|
val = options[:value]
|
152
156
|
|
153
|
-
result
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
method = :each_pair
|
158
|
-
end
|
159
|
-
|
160
|
-
valid_values.send(method) do |k, v|
|
161
|
-
if !options[:only] || options[:only] == k || options[:only].try(:include?, k)
|
162
|
-
result += form_builder.fields_for :value do |ff|
|
157
|
+
result = ''
|
158
|
+
valid_values = self.valid_values.dup
|
159
|
+
valid_values = valid_values.is_a?(Hash) ? valid_values : valid_values.zip([])
|
160
|
+
priority_values = valid_values.extract!(*(value.respond_to?(:keys) ? value.keys : value))
|
163
161
|
|
164
|
-
|
165
|
-
|
166
|
-
rescue
|
167
|
-
checked = false
|
168
|
-
end
|
162
|
+
priority_values.merge(valid_values).each_pair do |k, v|
|
163
|
+
next if options[:only] && options[:only] != k && !options[:only].try(:include?, k)
|
169
164
|
|
170
|
-
|
165
|
+
result += form_builder.fields_for :value do |ff|
|
171
166
|
|
172
|
-
|
173
|
-
|
174
|
-
|
167
|
+
begin
|
168
|
+
checked = !val.try(:[], k).to_i.zero?
|
169
|
+
rescue
|
170
|
+
checked = false
|
175
171
|
end
|
172
|
+
|
173
|
+
v = options[:map][v] || v
|
174
|
+
|
175
|
+
# skip `required` since form will not be submitted unless a user checks all the checkboxes
|
176
|
+
data = options[:data] ? extract_data_for_key(k, options[:data]) : nil
|
177
|
+
sprintf(options[:block], ff.check_box(k.to_sym, {checked: checked}, '1', options[:for] == :search ? nil : '0'), ff.label(k.to_sym, v, data: data)).html_safe
|
176
178
|
end
|
177
179
|
end
|
178
180
|
|
179
|
-
result
|
181
|
+
sprintf '<div class="checkboxes" id="%1$s">%2$s</div><script type="text/javascript">$(function() {$("#%1$s").checkboxes()})</script>', form_builder_name_to_id(form_builder), result
|
180
182
|
end
|
181
183
|
|
182
184
|
|
@@ -12,6 +12,10 @@ class CckForms::ParameterTypeClass::Image < CckForms::ParameterTypeClass::File
|
|
12
12
|
# Returns a 64x64 IMG
|
13
13
|
def to_diff_value(options = {})
|
14
14
|
view_context = options[:view_context]
|
15
|
-
|
15
|
+
|
16
|
+
if value.present?
|
17
|
+
id = value.is_a?(BSON::Document) ? value['_id'] : value
|
18
|
+
"<img style='width: 64px; height: 64px;' src='#{view_context.neofiles_image_path(id: id, format: '64x64', crop: 1)}'>".html_safe
|
19
|
+
end
|
16
20
|
end
|
17
21
|
end
|
@@ -5,7 +5,7 @@ class CckForms::ParameterTypeClass::Map
|
|
5
5
|
|
6
6
|
MAP_TYPE_GOOGLE = 'google'.freeze
|
7
7
|
MAP_TYPE_YANDEX = 'yandex'.freeze
|
8
|
-
DEFAULT_MAP_TYPE = MAP_TYPE_GOOGLE
|
8
|
+
DEFAULT_MAP_TYPE = Rails.application.config.cck_forms.maps.default_type || MAP_TYPE_GOOGLE
|
9
9
|
|
10
10
|
mattr_accessor :map_providers
|
11
11
|
@@map_providers = [MAP_TYPE_YANDEX, MAP_TYPE_GOOGLE]
|
data/lib/cck_forms/version.rb
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
$ ->
|
2
|
+
|
3
|
+
#
|
4
|
+
# Helper widget to allow sorting of checkboxes, if jquery.sortable is available
|
5
|
+
#
|
6
|
+
$.widget "cck.checkboxes",
|
7
|
+
|
8
|
+
_create: ->
|
9
|
+
@_checkBoxBlockSelector = ".form_check_box_block"
|
10
|
+
|
11
|
+
@_ensureSortableIsAvailable =>
|
12
|
+
@_initStickies()
|
13
|
+
@_bind()
|
14
|
+
|
15
|
+
_ensureSortableIsAvailable: (callback)->
|
16
|
+
callback() if $(document).sortable
|
17
|
+
|
18
|
+
_initStickies: ->
|
19
|
+
@element.find("input:checked").each (_i, checkbox)=>
|
20
|
+
$(checkbox).closest(@_checkBoxBlockSelector).addClass("sticky")
|
21
|
+
|
22
|
+
@element.sortable
|
23
|
+
items: ".sticky"
|
24
|
+
|
25
|
+
_bind: ->
|
26
|
+
@element.on "change", "#{@_checkBoxBlockSelector} input:checkbox", (e)=>
|
27
|
+
@_checkboxChange($(e.target))
|
28
|
+
|
29
|
+
_checkboxChange: ($checkbox)->
|
30
|
+
$container = $checkbox.closest(@_checkBoxBlockSelector)
|
31
|
+
|
32
|
+
$container.removeClass("sticky") unless $checkbox.is(":checked")
|
33
|
+
|
34
|
+
$lastSticky = @element.find(".sticky").last()
|
35
|
+
|
36
|
+
if $container.prev(@_checkBoxBlockSelector).get(0) != $lastSticky.get(0)
|
37
|
+
if $lastSticky.size() == 0
|
38
|
+
@element.prepend($container)
|
39
|
+
else
|
40
|
+
$container.insertAfter($lastSticky)
|
41
|
+
|
42
|
+
$container.addClass("sticky") if $checkbox.is(":checked")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cck_forms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilya Konanykhin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- lib/cck_forms/parameter_type_class/work_hours.rb
|
92
92
|
- lib/cck_forms/version.rb
|
93
93
|
- vendor/assets/javascripts/cck_forms/index.js
|
94
|
+
- vendor/assets/javascripts/cck_forms/jquery.checkboxes.coffee
|
94
95
|
- vendor/assets/javascripts/cck_forms/jquery.workhours.js
|
95
96
|
- vendor/assets/javascripts/cck_forms/map.js.coffee
|
96
97
|
homepage: http://github.com/ilya-konanykhin/cck_forms
|
@@ -113,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
114
|
version: '0'
|
114
115
|
requirements: []
|
115
116
|
rubyforge_project:
|
116
|
-
rubygems_version: 2.
|
117
|
+
rubygems_version: 2.6.12
|
117
118
|
signing_key:
|
118
119
|
specification_version: 4
|
119
120
|
summary: Content Construction Kit Forms
|