hooch 0.15.2 → 0.15.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/app/assets/javascripts/hooch.js +32 -5
- data/lib/hooch/hooch_helper.rb +2 -1
- 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: 52c149faace46de6b5c09101da5c55b29a6dfe9e
|
4
|
+
data.tar.gz: 0fdc3af73d3dc87c8627e219b9ab43bfb6d02442
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01b12c2623fb4f008c561dbfe14d2af46b3b16467e1a87b9ac3a84911450e053b5cc90709ba560b796c158be943e8ea12e683679f51f293ad4835c3192c3bd06
|
7
|
+
data.tar.gz: 27662733491a9211d5e6093fd0363db0c9cc08e200ab706187d5ad68aea5b72cf9657f4a2d83bf64d54c49155eb0bbff9e03a475c9d9ad4bcf73b52bcb98c904
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
|
1
|
+
[![Build Status](https://semaphoreci.com/api/v1/invitedhome/hooch/branches/master/badge.svg)](https://semaphoreci.com/invitedhome/hooch)
|
2
2
|
|
3
|
-
|
3
|
+
# Hooch
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -20,7 +20,7 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
|
23
|
+
See the [Wiki](https://github.com/edraut/hooch/wiki)
|
24
24
|
|
25
25
|
## Contributing
|
26
26
|
|
@@ -443,6 +443,7 @@ var initHooch = function(){
|
|
443
443
|
TabGroup: Class.extend({
|
444
444
|
init: function($tab_group){
|
445
445
|
this.$tab_group = $tab_group;
|
446
|
+
this.getStateBehavior();
|
446
447
|
this.getName();
|
447
448
|
this.tab_triggers = [];
|
448
449
|
this.tab_triggers_by_id = {};
|
@@ -477,9 +478,10 @@ var initHooch = function(){
|
|
477
478
|
this.$content_parent = this.tab_triggers[0].getParent();
|
478
479
|
},
|
479
480
|
handleDefault: function(){
|
481
|
+
|
480
482
|
if(this.$tab_group.data('default-tab')){
|
481
483
|
this.default_tab = this.tab_triggers_by_id[this.$tab_group.data('default-tab')];
|
482
|
-
this.default_tab.toggleTarget(
|
484
|
+
this.default_tab.toggleTarget(this.state_behavior);
|
483
485
|
}
|
484
486
|
},
|
485
487
|
hideAll: function(trigger){
|
@@ -510,12 +512,20 @@ var initHooch = function(){
|
|
510
512
|
},
|
511
513
|
getActiveTab: function(){
|
512
514
|
return this.active_tab;
|
515
|
+
},
|
516
|
+
getStateBehavior: function(){
|
517
|
+
if(this.$tab_group.data('no-history')){
|
518
|
+
this.state_behavior = 'no history'
|
519
|
+
} else {
|
520
|
+
this.state_behavior = 'replace'
|
521
|
+
}
|
513
522
|
}
|
514
523
|
}),
|
515
524
|
TabTrigger: Class.extend({
|
516
525
|
init: function($tab_trigger,tab_group){
|
517
526
|
this.$tab_trigger = $tab_trigger;
|
518
527
|
this.tab_group = tab_group;
|
528
|
+
this.state_behavior = this.tab_group.state_behavior
|
519
529
|
this.tab_group_name = tab_group.name;
|
520
530
|
this.tab_id = $tab_trigger.data('tab-target-id');
|
521
531
|
this.getPushState();
|
@@ -536,20 +546,22 @@ var initHooch = function(){
|
|
536
546
|
this.push_state = this.$tab_trigger.data('push-state')
|
537
547
|
}
|
538
548
|
},
|
539
|
-
toggleTarget: function(
|
549
|
+
toggleTarget: function(requested_state_behavior){
|
540
550
|
var was_visible = this.$target.is(':visible');
|
541
551
|
if(!was_visible){
|
542
552
|
this.tab_group.setActiveTab(this);
|
543
553
|
this.resize();
|
544
554
|
var change_history = true;
|
545
555
|
var history_method = 'pushState'
|
546
|
-
if('no history' == state_behavior){
|
556
|
+
if('no history' == requested_state_behavior || 'no history' == this.state_behavior){
|
547
557
|
change_history = false
|
548
|
-
} else if('replace' ==
|
558
|
+
} else if('replace' == requested_state_behavior){
|
549
559
|
history_method = 'replaceState'
|
550
560
|
}
|
551
561
|
if (this.push_state && change_history) {
|
552
|
-
var
|
562
|
+
var current_query = jQuery.extend(true, {}, hooch.beginning_params);
|
563
|
+
current_query = jQuery.extend(true, current_query, history.state);
|
564
|
+
var current_state = new hooch.IhHistoryState(current_query)
|
553
565
|
current_state.addState(this.tab_group_name, this.push_state);
|
554
566
|
history[history_method](current_state.state, null, current_state.toUrl());
|
555
567
|
}
|
@@ -1787,6 +1799,21 @@ var initHooch = function(){
|
|
1787
1799
|
e.cancelBubble=true;
|
1788
1800
|
e.returnValue=false;
|
1789
1801
|
}
|
1802
|
+
|
1803
|
+
//https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript
|
1804
|
+
hooch.beginning_params = (function(a) {
|
1805
|
+
if (a == "") return {};
|
1806
|
+
var b = {};
|
1807
|
+
for (var i = 0; i < a.length; ++i)
|
1808
|
+
{
|
1809
|
+
var p=a[i].split('=', 2);
|
1810
|
+
if (p.length == 1)
|
1811
|
+
b[p[0]] = "";
|
1812
|
+
else
|
1813
|
+
b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
|
1814
|
+
}
|
1815
|
+
return b;
|
1816
|
+
})(window.location.search.substr(1).split('&'));
|
1790
1817
|
$.fn.findExclude = function( selector, mask, result )
|
1791
1818
|
{
|
1792
1819
|
result = typeof result !== 'undefined' ? result : new jQuery();
|
data/lib/hooch/hooch_helper.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
module Hooch
|
2
2
|
module HoochHelper
|
3
|
-
def tab_set(name, type: nil, default_tab: nil)
|
3
|
+
def tab_set(name, type: nil, default_tab: nil, no_history: nil)
|
4
4
|
if :ajax == type
|
5
5
|
type = 'AjaxTabGroup'
|
6
6
|
end
|
7
7
|
attrs = 'data-tab-group=' + name
|
8
8
|
attrs += ' data-sub-type=' + type if type.present?
|
9
9
|
attrs += ' data-default-tab=' + default_tab if default_tab.present?
|
10
|
+
attrs += ' data-no-history=true' if no_history.present?
|
10
11
|
attrs
|
11
12
|
end
|
12
13
|
|
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.15.
|
4
|
+
version: 0.15.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: 2017-07-
|
11
|
+
date: 2017-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|