hooch 0.9.1 → 0.10.0
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 +109 -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: f9a38d4ae28c3ecc514f90569f9ac3a2aeb2dd84
|
4
|
+
data.tar.gz: aebb4ffb7cf8b1074948882573d42a70ab0484ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7357e41994cd20bf8281f91f3c5a4c5c6e15423291a38cc6a41524b57640d1436db20ecc0668fb87cae770a2cfbf535848ecc459ffe9fb5f913f544dd8c102e8
|
7
|
+
data.tar.gz: 2cd39841cdc986fe739314d72a4f37dfc3fd096eb701c558beadf242dcfa33af5d7050111a3285f0e2d43a8085512c38c2fd7e7a3db4ec987e965d8e3bd73829
|
@@ -91,6 +91,101 @@ var initHooch = function(){
|
|
91
91
|
return changed;
|
92
92
|
}
|
93
93
|
}),
|
94
|
+
ModalTrigger: Class.extend({
|
95
|
+
init: function($modal_trigger){
|
96
|
+
this.$modal_content = $($modal_trigger.data('content-target'))
|
97
|
+
var modal_trigger = this
|
98
|
+
$modal_trigger.on('click', function(){
|
99
|
+
new hooch.Modal(modal_trigger.$modal_content.html())
|
100
|
+
})
|
101
|
+
}
|
102
|
+
}),
|
103
|
+
ModalDismisser: Class.extend({
|
104
|
+
init: function($dismisser,modal_mask){
|
105
|
+
var dismisser = this
|
106
|
+
this.modal_mask = modal_mask
|
107
|
+
$dismisser.css({cursor: 'pointer'})
|
108
|
+
$dismisser.on('click', function(){
|
109
|
+
dismisser.modal_mask.close()
|
110
|
+
})
|
111
|
+
}
|
112
|
+
}),
|
113
|
+
Modal: Class.extend({
|
114
|
+
init: function($modal_content){
|
115
|
+
this.$modal_content = $modal_content
|
116
|
+
this.setGeometry()
|
117
|
+
this.getMask()
|
118
|
+
this.getModal()
|
119
|
+
this.getDismisser()
|
120
|
+
this.getContentWrapper()
|
121
|
+
this.disableScroll()
|
122
|
+
this.$modal_mask.show()
|
123
|
+
},
|
124
|
+
setGeometry: function(){
|
125
|
+
this.margin = 30;
|
126
|
+
this.padding = 30;
|
127
|
+
this.mask_top = $(window).scrollTop()
|
128
|
+
this.mask_height = $(window).height()
|
129
|
+
this.modal_height = this.mask_height - (this.margin*2)
|
130
|
+
},
|
131
|
+
getMask: function(){
|
132
|
+
this.$modal_mask = $('#hooch-mask')
|
133
|
+
this.$modal_mask.css({height: this.mask_height + 'px', top: this.mask_top + 'px'})
|
134
|
+
},
|
135
|
+
getModal: function(){
|
136
|
+
this.$modal_element = this.$modal_mask.find('#hooch-modal')
|
137
|
+
this.$modal_element.css({'max-height': this.modal_height, 'margin-top': this.margin, 'margin-bottom': this.margin, 'padding-bottom': this.padding, 'padding-left': this.padding, 'padding-right': this.padding})
|
138
|
+
},
|
139
|
+
getContentWrapper: function(){
|
140
|
+
this.$modal_content_wrapper = this.$modal_element.find('#hooch-content')
|
141
|
+
var content_height = this.modal_height - (this.padding*2)
|
142
|
+
this.$modal_content_wrapper.css({'overflow-y': 'scroll', 'max-height': content_height})
|
143
|
+
this.$modal_content_wrapper.html(this.$modal_content)
|
144
|
+
},
|
145
|
+
getDismisser: function(){
|
146
|
+
this.$dismisser = this.$modal_mask.find('#hooch-dismiss')
|
147
|
+
this.dismisser = new hooch.ModalDismisser(this.$dismisser,this)
|
148
|
+
},
|
149
|
+
close: function(){
|
150
|
+
this.$modal_mask.hide()
|
151
|
+
this.$modal_content_wrapper.empty()
|
152
|
+
this.enableScroll()
|
153
|
+
},
|
154
|
+
disableScroll: function(){
|
155
|
+
var modal = this
|
156
|
+
modal.old_height = $('body')[0].style.height
|
157
|
+
modal.old_overflow = $('body')[0].style.overflow
|
158
|
+
$('body').css({height: '100%',overflow: 'hidden'})
|
159
|
+
$('body').on({
|
160
|
+
'mousewheel.hoochModalScroll DOMMouseScroll.hoochModalScroll': function(e) {
|
161
|
+
if(($(e.target).attr('id') == 'hooch-content') || ($(e.target).parents('#hooch-content').length > 0)){
|
162
|
+
var delta = e.originalEvent.wheelDelta
|
163
|
+
new_scrolltop = $('#hooch-content').scrollTop() + delta
|
164
|
+
$('#hooch-content').scrollTop(new_scrolltop)
|
165
|
+
}
|
166
|
+
e.preventDefault();
|
167
|
+
}
|
168
|
+
})
|
169
|
+
if (window.addEventListener){ // older FF
|
170
|
+
window.addEventListener('DOMMouseScroll', hooch.preventDefault, false)
|
171
|
+
}
|
172
|
+
window.onwheel = hooch.preventDefault; // modern standard
|
173
|
+
window.onmousewheel = document.onmousewheel = hooch.preventDefault; // older browsers, IE
|
174
|
+
window.ontouchmove = hooch.preventDefault; // mobile
|
175
|
+
document.onkeydown = hooch.preventDefaultForScrollKeys;
|
176
|
+
},
|
177
|
+
enableScroll: function(){
|
178
|
+
$('body').css({height: this.old_height, overflow: this.old_overflow})
|
179
|
+
$('body').off('.hoochModalScroll')
|
180
|
+
if (window.removeEventListener){
|
181
|
+
window.removeEventListener('DOMMouseScroll', hooch.preventDefault, false);
|
182
|
+
}
|
183
|
+
window.onmousewheel = document.onmousewheel = null;
|
184
|
+
window.onwheel = null;
|
185
|
+
window.ontouchmove = null;
|
186
|
+
document.onkeydown = null;
|
187
|
+
}
|
188
|
+
}),
|
94
189
|
Expandable: Class.extend({
|
95
190
|
init: function($expandable){
|
96
191
|
var expandable = this;
|
@@ -1103,6 +1198,7 @@ var initHooch = function(){
|
|
1103
1198
|
this.$sort_element.replaceWith($jq_obj)
|
1104
1199
|
}
|
1105
1200
|
}),
|
1201
|
+
scroll_keys: {37: 1, 38: 1, 39: 1, 40: 1},
|
1106
1202
|
key_code_map: { // borrowed from jresig: https://github.com/jeresig/jquery.hotkeys
|
1107
1203
|
8: "backspace",
|
1108
1204
|
9: "tab",
|
@@ -1169,6 +1265,18 @@ var initHooch = function(){
|
|
1169
1265
|
221: "]",
|
1170
1266
|
222: "'"
|
1171
1267
|
},
|
1268
|
+
preventDefault: function(e) {
|
1269
|
+
e = e || window.event;
|
1270
|
+
if (e.preventDefault)
|
1271
|
+
e.preventDefault();
|
1272
|
+
e.returnValue = false;
|
1273
|
+
},
|
1274
|
+
preventDefaultForScrollKeys: function(e) {
|
1275
|
+
if (hooch.scroll_keys[e.keyCode]) {
|
1276
|
+
hooch.preventDefault(e);
|
1277
|
+
return false;
|
1278
|
+
}
|
1279
|
+
},
|
1172
1280
|
BindKey: Class.extend({
|
1173
1281
|
init: function($bound_element){
|
1174
1282
|
this.$bound_element = $bound_element
|
@@ -1343,7 +1451,7 @@ var initHooch = function(){
|
|
1343
1451
|
['hover_overflow','hidey_button','submit-proxy','click-proxy','field-filler','revealer',
|
1344
1452
|
'checkbox-hidden-proxy','prevent-double-submit','prevent-double-link-click', 'tab-group',
|
1345
1453
|
'hover-reveal', 'emptier', 'remover', 'checkbox-proxy', 'fake-select', 'select-action-changer',
|
1346
|
-
'sorter','bind-key'],'hooch');
|
1454
|
+
'sorter','bind-key','modal-trigger'],'hooch');
|
1347
1455
|
window.any_time_manager.load();
|
1348
1456
|
};
|
1349
1457
|
hooch.pauseEvent = function(e){
|
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.
|
4
|
+
version: 0.10.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-07-
|
11
|
+
date: 2016-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|