hooch 0.10.3 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2f3fc38326b5fc5b55a3c22a3cb62a49a05761a5
4
- data.tar.gz: 062309fcae4c4be6f58b5da595f82688bd257805
3
+ metadata.gz: 54f4e899ce069ebb6f60defca61434660d7afe73
4
+ data.tar.gz: 7e44a2f22f8325dc1135ad9523ef4e142fb1c5d6
5
5
  SHA512:
6
- metadata.gz: 0b5c01b39a30833141fb096ea248471de81c8589f7bb49779fc6ceea49aa65b541de722a0ca73575289bc9d3b0e2645a8414dd7136010aca2e9304dbae35f774
7
- data.tar.gz: aaa0b4c7be5f5a592c0833366f56d6079247e4143fc17a79f5db32a8773b1e316f3fc3410e57966b11fd6af920b8250cd28ad29add04594359d26a2dae2a57f9
6
+ metadata.gz: 0d7ff3f114fb4fa0143fce2a2d1c9d51866c2d089b5b8b5f9d91e0b03b0c82c7a8a72d9cac5aa063b03be36dc1ea62e2cf4e95d183390bdc8de55b40ea7bd0a0
7
+ data.tar.gz: 2ac05e37ff14c01f3f62b16fca3408f0f38d7b8a066637d37b372e85ed27ea5ff835dd768b1e35d50cb466d596bcc5de7e3aed83bc553bf9d2341e59aedc8df3
@@ -373,12 +373,10 @@ var initHooch = function(){
373
373
  Revealer: Class.extend({
374
374
  init: function($revealer){
375
375
  var revealer = this;
376
- this.$revealer = $revealer;
377
- this.children_id = this.$revealer.data('revealer-children-id');
378
- this.$all_children = $('[data-revealer-id="' + this.children_id + '"]');
379
- $revealer.bind('change',function(){
380
- revealer.reveal();
381
- });
376
+ this.$revealer = $revealer;
377
+ this.children_id = this.$revealer.data('revealer-children-id');
378
+ this.$all_children = $('[data-revealer-id="' + this.children_id + '"]');
379
+ this.bindEvent();
382
380
  revealer.reveal();
383
381
  },
384
382
  reveal: function(){
@@ -413,6 +411,12 @@ var initHooch = function(){
413
411
  },
414
412
  revealChosenOnes: function(){
415
413
  $.each(this.$children,function(){ $(this).show(); });
414
+ },
415
+ bindEvent: function(){
416
+ var revealer = this;
417
+ this.$revealer.bind('change',function(){
418
+ revealer.reveal();
419
+ });
416
420
  }
417
421
  }),
418
422
  TabGroup: Class.extend({
@@ -723,7 +727,8 @@ var initHooch = function(){
723
727
  FakeOption: Class.extend({
724
728
  init: function($fake_option,$fake_select){
725
729
  this.select_value = $fake_option.data('select-value')
726
- this.select_name = $fake_option.data('select-name')
730
+ this.select_name = $fake_option.data('select-name')
731
+ this.$fake_option = $fake_option
727
732
  var fake_option = this
728
733
  $fake_option.on('click',function(){
729
734
  $fake_select.select(fake_option)
@@ -1377,6 +1382,76 @@ var initHooch = function(){
1377
1382
  form.submit();
1378
1383
  }
1379
1384
  });
1385
+ hooch.FakeSelectRevealer = hooch.Revealer.extend({
1386
+ init: function($fake_select){
1387
+ this.select_display = $fake_select.find('[data-select-display]')
1388
+ this.real_select = $fake_select.find('input')
1389
+ var fake_select = this
1390
+ this.select_options = []
1391
+ $fake_select.find('[data-select-value][data-select-name]').each(function(){
1392
+ fake_select.select_options.push(new hooch.FakeOption($(this), fake_select));
1393
+ })
1394
+ this.children_id = $fake_select.data('revealer-children-id');
1395
+ this.highlander = $fake_select.data('revealer-highlander');
1396
+ this.$revelation_target = $('[data-revealer-target="' + this.children_id + '"]');
1397
+ this._super($fake_select);
1398
+ },
1399
+ select: function(fake_option){
1400
+ this.select_display.html(fake_option.select_name);
1401
+ this.real_select.val(fake_option.select_value);
1402
+ this.select_display.trigger('click');
1403
+ },
1404
+ bindEvent: function(){
1405
+ var revealer = this;
1406
+ $.each(this.select_options, function(){
1407
+ this.$fake_option.bind('click', function(){
1408
+ revealer.reveal();
1409
+ })
1410
+ })
1411
+ },
1412
+ reveal: function(){
1413
+ var sanitized_value = this.real_select.val()
1414
+ if('true' == sanitized_value){ sanitized_value = true }
1415
+ if('false' == sanitized_value){ sanitized_value = false }
1416
+ this.$children = [];
1417
+ var revealer = this;
1418
+ this.$all_children.each(function(){
1419
+ var triggers = $(this).data('revealer-triggers');
1420
+ if(triggers){
1421
+ trigger_prototype = typeof(triggers)
1422
+ if(trigger_prototype.toLowerCase() == 'string'){
1423
+ var revelation_triggers = eval('(' + triggers + ')');
1424
+ } else {
1425
+ revelation_triggers = triggers
1426
+ }
1427
+ if($.inArray(sanitized_value,revelation_triggers) > -1){
1428
+ revealer.$children.push($(this));
1429
+ }
1430
+ } else {
1431
+ if(sanitized_value == $(this).data('revealer-trigger')){
1432
+ revealer.$children.push($(this));
1433
+ }
1434
+ }
1435
+ })
1436
+ this.hideChildren();
1437
+ this.revealChosenOnes();
1438
+ },
1439
+ hideChildren: function(){
1440
+ this._super();
1441
+ if (this.highlander){
1442
+ this.$form = this.$revealer.parents('form:first')
1443
+ if(this.$form.length > 0){
1444
+ this.$form.after(this.$all_children)
1445
+ }
1446
+ }
1447
+ },
1448
+ revealChosenOnes: function(){
1449
+ if (this.highlander){
1450
+ this.$revelation_target.html(this.$children);
1451
+ }
1452
+ this._super();
1453
+ }
1454
+ });
1380
1455
  hooch.FormFieldRevealer = hooch.Revealer.extend({
1381
1456
  init: function($revealer){
1382
1457
  this.children_id = $revealer.data('revealer-children-id');
@@ -74,7 +74,10 @@ module Hooch
74
74
  ''.tap do |attrs|
75
75
  attrs.concat "data-revealer=true data-revealer-children-id=\"#{id}\""
76
76
  attrs.concat " data-sub-type=\"#{type}\"" if type.present?
77
- attrs.concat " data-sub-type=FormFieldRevealer" if highlander
77
+ if highlander
78
+ attrs.concat " data-sub-type=FormFieldRevealer"
79
+ attrs.concat " data-revealer-highlander=\"true\""
80
+ end
78
81
  end.html_safe
79
82
  end
80
83
 
@@ -1,3 +1,3 @@
1
1
  module Hooch
2
- VERSION = "0.10.3"
2
+ VERSION = "0.11.0"
3
3
  end
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.10.3
4
+ version: 0.11.0
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-08-02 00:00:00.000000000 Z
11
+ date: 2016-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails