hooch 0.14.2 → 0.14.3
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/app/assets/javascripts/hooch.js +63 -8
- data/lib/hooch/hooch_helper.rb +4 -2
- data/lib/hooch/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2924f0bcf7ff855e4749842f37e39af41c1d926e
|
4
|
+
data.tar.gz: 75313abc2f94bbc3960fec44fc1bbc2734b0ad7a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bac4eb1a8b7bc60bfa9cb45dd5ceca87acca11b54f170b64642737f41775d33969689f599c44854c2cc5b628e96273be3e90e1c5f71ab304205593c896816a30
|
7
|
+
data.tar.gz: 910647fd4c0a510d2212236986b3fb37c4ff508181b81dbfe7ecb28458a313ebbbdb8ce89401d36a9796e530ec325f9f879d93b9241fc131b41075195fc8bcc7
|
@@ -829,7 +829,7 @@ var initHooch = function(){
|
|
829
829
|
FakeCheckbox: Class.extend({
|
830
830
|
init: function($fake_checkbox){
|
831
831
|
this.$fake_checkbox = $fake_checkbox
|
832
|
-
this.$form =
|
832
|
+
this.$form = this.getForm()
|
833
833
|
this.$field = this.getField()
|
834
834
|
var fake_checkbox = this
|
835
835
|
this.$fake_checkbox.click(function(){ fake_checkbox.change() })
|
@@ -837,31 +837,86 @@ var initHooch = function(){
|
|
837
837
|
change: function(){
|
838
838
|
if(this.$fake_checkbox.hasClass('checked')){
|
839
839
|
this.$fake_checkbox.removeClass('checked')
|
840
|
-
this.
|
840
|
+
this.removeCheckedFromForm()
|
841
|
+
this.removeValue()
|
841
842
|
} else {
|
842
843
|
this.$fake_checkbox.addClass('checked')
|
843
|
-
this.
|
844
|
+
this.addCheckedToForm()
|
845
|
+
this.addValue()
|
844
846
|
}
|
845
847
|
},
|
846
848
|
getField: function(){
|
847
849
|
this.field_name = this.$fake_checkbox.data('field-name')
|
848
850
|
this.value = this.$fake_checkbox.data('field-value')
|
849
|
-
|
851
|
+
this.field_selector = '[name="' + this.field_name +'"][value="' + this.value + '"]'
|
850
852
|
var $field
|
851
|
-
if(this.$form.find(field_selector).length > 0){
|
852
|
-
$field = this.$form.find(field_selector)
|
853
|
-
this.$fake_checkbox.addClass('checked')
|
853
|
+
if(this.$form.find(this.field_selector).length > 0){
|
854
|
+
$field = this.$form.find(this.field_selector)
|
855
|
+
this.$fake_checkbox.addClass('checked')
|
856
|
+
this.addCheckedToForm()
|
854
857
|
} else {
|
855
858
|
$field = $('<input type="hidden" name="' + this.field_name + '" value="' + this.value + '">')
|
856
859
|
}
|
857
860
|
return $field
|
858
861
|
},
|
862
|
+
getForm: function(){
|
863
|
+
var form_selector = this.$fake_checkbox.data('form-selector')
|
864
|
+
var $form = $(form_selector)
|
865
|
+
if($form.length == 0){
|
866
|
+
console.log("WARNING: hooch.FakeCheckbox could not find the form with the selector '" + form_selector + "'")
|
867
|
+
}
|
868
|
+
var toggleable_selector = this.$fake_checkbox.data('toggle-form')
|
869
|
+
if(toggleable_selector == true || toggleable_selector == 'true'){
|
870
|
+
this.$toggle_form = $form
|
871
|
+
} else {
|
872
|
+
var $toggleable = $(toggleable_selector)
|
873
|
+
if($toggleable.length > 0){
|
874
|
+
this.$toggle_form = $toggleable
|
875
|
+
} else {
|
876
|
+
this.$toggle_form = false
|
877
|
+
}
|
878
|
+
}
|
879
|
+
return $form
|
880
|
+
},
|
859
881
|
addValue: function(){
|
860
|
-
console.log(this.$field)
|
861
882
|
this.$form.append(this.$field)
|
883
|
+
this.possiblyShowForm()
|
862
884
|
},
|
863
885
|
removeValue: function(){
|
864
886
|
this.$field.detach()
|
887
|
+
this.possiblyHideForm()
|
888
|
+
},
|
889
|
+
possiblyShowForm: function(){
|
890
|
+
if(this.$toggle_form && this.$toggle_form.is(':hidden')){
|
891
|
+
this.$toggle_form.show()
|
892
|
+
}
|
893
|
+
},
|
894
|
+
possiblyHideForm: function(){
|
895
|
+
if(this.$toggle_form && this.$toggle_form.is(':visible') && this.formNoCheckedBoxes()){
|
896
|
+
this.$toggle_form.hide()
|
897
|
+
}
|
898
|
+
},
|
899
|
+
addCheckedToForm: function(){
|
900
|
+
if(this.$toggle_form){
|
901
|
+
var form_checkbox_list = this.$form.data('checked_fake_checkboxes')
|
902
|
+
if(form_checkbox_list){
|
903
|
+
form_checkbox_list.push(this.field_selector)
|
904
|
+
this.$form.data('checked_fake_checkboxes',form_checkbox_list)
|
905
|
+
} else {
|
906
|
+
this.$form.data('checked_fake_checkboxes',[this.field_selector])
|
907
|
+
}
|
908
|
+
}
|
909
|
+
},
|
910
|
+
removeCheckedFromForm: function(){
|
911
|
+
if(this.$toggle_form){
|
912
|
+
var form_checkbox_list = this.$form.data('checked_fake_checkboxes')
|
913
|
+
var fake_checkbox = this
|
914
|
+
var new_list = $.grep(form_checkbox_list, function(fs){return fs != fake_checkbox.field_selector})
|
915
|
+
this.$form.data('checked_fake_checkboxes',new_list)
|
916
|
+
}
|
917
|
+
},
|
918
|
+
formNoCheckedBoxes: function(){
|
919
|
+
return (!this.$form.data('checked_fake_checkboxes') || this.$form.data('checked_fake_checkboxes').length == 0)
|
865
920
|
}
|
866
921
|
}),
|
867
922
|
FakeSelect: Class.extend({
|
data/lib/hooch/hooch_helper.rb
CHANGED
@@ -154,21 +154,23 @@ module Hooch
|
|
154
154
|
end
|
155
155
|
end
|
156
156
|
|
157
|
-
def fake_checkbox_attrs(form_selector, field_name, field_value)
|
157
|
+
def fake_checkbox_attrs(form_selector, field_name, field_value, toggle_form: false)
|
158
158
|
''.tap do |attrs|
|
159
159
|
attrs.concat 'data-fake-checkbox=true'
|
160
160
|
attrs.concat " data-form-selector=#{form_selector}"
|
161
161
|
attrs.concat " data-field-name=\"#{field_name}\""
|
162
162
|
attrs.concat " data-field-value=\"#{field_value}\""
|
163
|
+
attrs.concat " data-toggle-form=\"#{toggle_form}\"" if toggle_form
|
163
164
|
end.html_safe
|
164
165
|
end
|
165
166
|
|
166
|
-
def fake_checkbox(form_selector, field_name, field_value)
|
167
|
+
def fake_checkbox(form_selector, field_name, field_value, toggle_form: false)
|
167
168
|
{}.tap do |params|
|
168
169
|
params['data-fake-checkbox'] = true
|
169
170
|
params['data-form-selector'] = form_selector
|
170
171
|
params['data-field-name'] = field_name
|
171
172
|
params['data-field-value'] = field_value
|
173
|
+
params['data-toggle-form'] = toggle_form if toggle_form
|
172
174
|
end
|
173
175
|
end
|
174
176
|
|
data/lib/hooch/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hooch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Draut
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|