olay-rails 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/olay/rails/version.rb +2 -2
- data/vendor/assets/javascripts/olay.js +19 -12
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA512:
|
3
|
-
data.tar.gz:
|
4
|
-
metadata.gz:
|
3
|
+
data.tar.gz: 5b642a78813dbad0b298734f7ee2d19e6ed7cb5590dc819d098f3dbd03834e92de05e999e5266e0a2a6c90ea68f9c18e5859b5cc21aadb46378a831118a62b85
|
4
|
+
metadata.gz: c81b19768914cdcf0dfe1abb7ce806b37804b1f10c389bd59015d9a4602e49e8c631645f5fac30c377e2b452f4321944d7a009342c8735f46ddee5bad9489a1e
|
5
5
|
SHA1:
|
6
|
-
data.tar.gz:
|
7
|
-
metadata.gz:
|
6
|
+
data.tar.gz: 7a8c03371b6f7a35e301f3db345170309781dc23
|
7
|
+
metadata.gz: 854ad8f089a4b6757cf8ff9ed0efbd06aa99f477
|
data/lib/olay/rails/version.rb
CHANGED
@@ -4,6 +4,13 @@
|
|
4
4
|
// Store a local reference to jQuery.
|
5
5
|
var $ = window.jQuery;
|
6
6
|
|
7
|
+
// This private function will be used to stop event propagation in $content.
|
8
|
+
var stopPropagation = function (ev) { ev.stopPropagation(); };
|
9
|
+
|
10
|
+
// Selector for tabbable elements.
|
11
|
+
var tabbable = 'a[href], area[href], :input, iframe, object, embed, ' +
|
12
|
+
'*[tabindex], *[contenteditable]';
|
13
|
+
|
7
14
|
// Listen for keydown events.
|
8
15
|
$(document).keydown(function (ev) {
|
9
16
|
var $olay = $('.js-olay-container').last();
|
@@ -14,19 +21,8 @@
|
|
14
21
|
for (var i = 0, l = keys.length; i < l; ++i) {
|
15
22
|
if (which === keys[i]) return olay.hide() && false;
|
16
23
|
}
|
17
|
-
if (which === 9) {
|
18
|
-
setTimeout(function () {
|
19
|
-
if (!$olay.find(':focus').length) {
|
20
|
-
$(':focus').blur();
|
21
|
-
$olay.find(':input').first().focus();
|
22
|
-
}
|
23
|
-
}, 0);
|
24
|
-
}
|
25
24
|
});
|
26
25
|
|
27
|
-
// This private function will be used to stop event propagation in $content.
|
28
|
-
var stopPropagation = function (ev) { ev.stopPropagation(); };
|
29
|
-
|
30
26
|
// Create the `Olay` constructor.
|
31
27
|
//
|
32
28
|
// ```js
|
@@ -151,6 +147,12 @@
|
|
151
147
|
$olays.length && active === $body[0] ?
|
152
148
|
$olays.last() :
|
153
149
|
$(active);
|
150
|
+
$(tabbable).each(function () {
|
151
|
+
var $t = $(this);
|
152
|
+
if ('olayTabindex' in $t.data()) return;
|
153
|
+
$t.data('olayTabindex', $t.attr('tabindex') || null)
|
154
|
+
.attr('tabindex', -1);
|
155
|
+
});
|
154
156
|
$body.addClass('js-olay-visible').append(this.$container);
|
155
157
|
this.$content.attr('tabindex', 0).focus().removeAttr('tabindex');
|
156
158
|
return this;
|
@@ -161,7 +163,12 @@
|
|
161
163
|
this.$container.detach();
|
162
164
|
this._$active.attr('tabindex', 0).focus().removeAttr('tabindex');
|
163
165
|
var $olays = $('.js-olay-container');
|
164
|
-
|
166
|
+
($olays.length ? $olays.last() : $('body').removeClass('js-olay-visible'))
|
167
|
+
.find(tabbable).each(function () {
|
168
|
+
var $t = $(this);
|
169
|
+
$t.attr('tabindex', $t.data('olayTabindex'))
|
170
|
+
.removeData('olayTabindex');
|
171
|
+
});
|
165
172
|
this.$el.trigger('hide');
|
166
173
|
if (!this.preserve) this.destroy();
|
167
174
|
return this;
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: olay-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Casey Foster
|
@@ -22,7 +22,7 @@ dependencies:
|
|
22
22
|
version: "3.1"
|
23
23
|
type: :runtime
|
24
24
|
version_requirements: *id001
|
25
|
-
description: Places Olay 0.1.
|
25
|
+
description: Places Olay 0.1.7 in the Rails asset pipeline.
|
26
26
|
email:
|
27
27
|
- c@sey.me
|
28
28
|
executables: []
|