autotab-rails 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/lib/autotab-rails.rb +1 -1
- data/lib/autotab-rails/version.rb +2 -2
- data/vendor/assets/bower.json +1 -1
- data/vendor/assets/javascripts/autotab-jquery.js +104 -18
- data/vendor/assets/javascripts/autotab-jquery.min.js +17 -14
- 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: 2846f4ea6a0a39a755845a89c21c9b901e5a219c
|
4
|
+
data.tar.gz: 8b18509417eb3b7b3f5e6403b072fd9f686e382c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f52884ef649be90eaca86834dce34da1c0cffbaab49630ca9ce927daec0018bb462596ad9375cf8693cce355b3ab3ce9a124b5e94c49413a793f662873be5f46
|
7
|
+
data.tar.gz: 004076656d41c26cc61ca5b9eb4bc840e0b333701061466ebe9ff7bfc6e8941d6273341f09e0a54bcff87797df4a28c53dc755da1bca4e26ae8a1d602cc2b992
|
data/.gitignore
CHANGED
data/lib/autotab-rails.rb
CHANGED
data/vendor/assets/bower.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "jquery.autotab",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.8.0",
|
4
4
|
"description": "A jQuery plugin that provides auto-tabbing and filtering on text fields in a form.",
|
5
5
|
"main": [ "./js/jquery.autotab.min.js" ],
|
6
6
|
"homepage": "https://github.com/Mathachew/jquery-autotab",
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* Autotab - jQuery plugin 1.
|
2
|
+
* Autotab - jQuery plugin 1.8.0
|
3
3
|
* https://github.com/Mathachew/jquery-autotab
|
4
4
|
*
|
5
5
|
* Copyright (c) 2008, 2014 Matthew Miller
|
@@ -46,6 +46,19 @@
|
|
46
46
|
tabOnSelect: false
|
47
47
|
};
|
48
48
|
|
49
|
+
// If $.autotab.selectFilterByClas is true and the format not specified, automatically select an element's format based on a matching class name.
|
50
|
+
// The first matched element becomes the selected format for the filter.
|
51
|
+
if ($.autotab.selectFilterByClass === true && typeof $(e).data('autotab-format') === 'undefined') {
|
52
|
+
var classes = ['all', 'text', 'alpha', 'number', 'numeric', 'alphanumeric', 'hex', 'hexadecimal', 'custom'];
|
53
|
+
|
54
|
+
for (var key in classes) {
|
55
|
+
if ($(e).hasClass(classes[key])) {
|
56
|
+
settings.format = classes[key];
|
57
|
+
break;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
49
62
|
for (var key in settings) {
|
50
63
|
if (typeof $(e).data('autotab-' + key) !== 'undefined') {
|
51
64
|
settings[key] = $(e).data('autotab-' + key);
|
@@ -76,6 +89,8 @@
|
|
76
89
|
$(':input').autotab(options);
|
77
90
|
};
|
78
91
|
|
92
|
+
$.autotab.selectFilterByClass = false;
|
93
|
+
|
79
94
|
$.autotab.next = function () {
|
80
95
|
var e = $(document.activeElement);
|
81
96
|
|
@@ -100,6 +115,10 @@
|
|
100
115
|
queryObject(e) ? $(e).autotab('restore') : $(':input').autotab('restore');
|
101
116
|
};
|
102
117
|
|
118
|
+
$.autotab.refresh = function (e) {
|
119
|
+
queryObject(e) ? $(e).autotab('refresh') : $(':input').autotab('refresh');
|
120
|
+
};
|
121
|
+
|
103
122
|
$.fn.autotab = function (method, options) {
|
104
123
|
if (!this.length) {
|
105
124
|
return this;
|
@@ -155,6 +174,61 @@
|
|
155
174
|
setSettings(filtered[i], defaults);
|
156
175
|
}
|
157
176
|
}
|
177
|
+
// Refresh target/previous elements
|
178
|
+
else if (method == 'refresh') {
|
179
|
+
for (var i = 0, length = filtered.length; i < length; i++) {
|
180
|
+
var defaults = getSettings(filtered[i]),
|
181
|
+
n = i + 1,
|
182
|
+
p = i - 1;
|
183
|
+
|
184
|
+
// No selector was specified, so automatically set the target
|
185
|
+
if (defaults.target === null || typeof defaults.target === 'undefined' || defaults.target.selector === '') {
|
186
|
+
if (i > 0 && n < length) {
|
187
|
+
defaults.target = filtered[n];
|
188
|
+
}
|
189
|
+
else if (i > 0) {
|
190
|
+
defaults.target = null;
|
191
|
+
}
|
192
|
+
else {
|
193
|
+
defaults.target = filtered[n];
|
194
|
+
}
|
195
|
+
}
|
196
|
+
else {
|
197
|
+
console.log('target selector!');
|
198
|
+
}
|
199
|
+
|
200
|
+
// No selector was specified, so automatically set the previous
|
201
|
+
if (defaults.previous === null || typeof defaults.previous === 'undefined' || defaults.previous.selector === '') {
|
202
|
+
if (i > 0 && n < length) {
|
203
|
+
defaults.previous = filtered[p];
|
204
|
+
}
|
205
|
+
else if (i > 0) {
|
206
|
+
defaults.previous = filtered[p];
|
207
|
+
}
|
208
|
+
else {
|
209
|
+
defaults.previous = null;
|
210
|
+
}
|
211
|
+
}
|
212
|
+
else {
|
213
|
+
console.log('previous selector!');
|
214
|
+
}
|
215
|
+
|
216
|
+
if (!defaults.loaded) {
|
217
|
+
autotabBind(filtered[i], defaults);
|
218
|
+
}
|
219
|
+
else {
|
220
|
+
if (queryObject(defaults.target)) {
|
221
|
+
defaults.target = $(defaults.target);
|
222
|
+
}
|
223
|
+
|
224
|
+
if (queryObject(defaults.previous)) {
|
225
|
+
defaults.previous = $(defaults.previous);
|
226
|
+
}
|
227
|
+
|
228
|
+
setSettings(filtered[i], defaults);
|
229
|
+
}
|
230
|
+
}
|
231
|
+
}
|
158
232
|
else {
|
159
233
|
if (method === null || typeof method === 'undefined') {
|
160
234
|
options = {};
|
@@ -331,8 +405,8 @@
|
|
331
405
|
// Using focus on iOS devices is a pain, so use the browser's next/previous buttons to proceed
|
332
406
|
if (!settings.iOS) {
|
333
407
|
|
334
|
-
// Field is disabled, so tab to next element
|
335
|
-
if (target.prop('disabled')) {
|
408
|
+
// Field is disabled/readonly, so tab to next element
|
409
|
+
if (target.prop('disabled') || target.prop('readonly')) {
|
336
410
|
target.trigger('autotab-next');
|
337
411
|
}
|
338
412
|
else {
|
@@ -355,8 +429,8 @@
|
|
355
429
|
if (!defaults.disabled && previous.length) {
|
356
430
|
var value = previous.val();
|
357
431
|
|
358
|
-
// Field is disabled, so tab to previous element
|
359
|
-
if (previous.prop('disabled')) {
|
432
|
+
// Field is disabled/readonly, so tab to previous element
|
433
|
+
if (previous.prop('disabled') || previous.prop('readonly')) {
|
360
434
|
previous.trigger('autotab-previous');
|
361
435
|
}
|
362
436
|
else if (value.length && previous.data('autotab-editable')) {
|
@@ -391,17 +465,18 @@
|
|
391
465
|
// Go to the previous element when backspace
|
392
466
|
// is pressed in an empty input field
|
393
467
|
if (keyCode == 8) {
|
394
|
-
|
468
|
+
// Prevent the browser from of navigating to the previous page
|
469
|
+
if (this.type === 'select-one' || this.type === 'checkbox' || this.type === 'radio' || this.type === 'button' || this.type === 'submit' || this.type === 'range') {
|
395
470
|
$(this).trigger('autotab-previous', defaults);
|
396
|
-
|
397
|
-
// Prevent the browser from of navigating to the previous page
|
398
|
-
if (!defaults.editable) {
|
399
|
-
return false;
|
400
|
-
}
|
471
|
+
return false;
|
401
472
|
}
|
402
|
-
|
403
|
-
|
473
|
+
|
474
|
+
if (this.value.length === 0) {
|
475
|
+
$(this).trigger('autotab-previous', defaults);
|
476
|
+
return;
|
404
477
|
}
|
478
|
+
|
479
|
+
setSettings(this, { changed: (this.value !== defaults.originalValue) });
|
405
480
|
}
|
406
481
|
else if (keyCode == 9 && settings.focusChange !== null) {
|
407
482
|
// Tab backwards
|
@@ -525,6 +600,7 @@
|
|
525
600
|
hiddenInput = document.createElement('input');
|
526
601
|
hiddenInput.type = 'hidden';
|
527
602
|
hiddenInput.value = e.value.toLowerCase();
|
603
|
+
hiddenInput.originalValue = e.value;
|
528
604
|
|
529
605
|
e.maxLength = originDefaults.maxlength;
|
530
606
|
e.value = filterValue(e, e.value, originDefaults).substr(0, originDefaults.maxlength);
|
@@ -534,12 +610,22 @@
|
|
534
610
|
return;
|
535
611
|
}
|
536
612
|
|
613
|
+
var defaults = getSettings(e);
|
614
|
+
|
615
|
+
if ($(e).prop('disabled') || $(e).prop('readonly')) {
|
616
|
+
$(e).trigger('autotab-next');
|
617
|
+
|
618
|
+
if (!settings.iOS) {
|
619
|
+
handlePaste(defaults.target[0], previousValue);
|
620
|
+
}
|
621
|
+
return;
|
622
|
+
}
|
623
|
+
|
537
624
|
for (var i = 0, count = previousValue.length; i < count; i++) {
|
538
|
-
lastIndex = hiddenInput.value.indexOf(previousValue.charAt(i), lastIndex) + 1;
|
625
|
+
lastIndex = hiddenInput.value.indexOf(previousValue.charAt(i).toLowerCase(), lastIndex) + 1;
|
539
626
|
}
|
540
627
|
|
541
|
-
var
|
542
|
-
trimmedValue = hiddenInput.value.substr(lastIndex),
|
628
|
+
var trimmedValue = hiddenInput.originalValue.substr(lastIndex),
|
543
629
|
filteredValue = filterValue(e, trimmedValue, defaults).substr(0, defaults.maxlength);
|
544
630
|
|
545
631
|
if (!filteredValue) {
|
@@ -573,7 +659,7 @@
|
|
573
659
|
|
574
660
|
// Deprecated, here for backwards compatibility
|
575
661
|
$.fn.autotab_magic = function (focus) {
|
576
|
-
$(this).autotab();
|
662
|
+
return $(this).autotab();
|
577
663
|
};
|
578
664
|
$.fn.autotab_filter = function (options) {
|
579
665
|
var defaults = {};
|
@@ -585,7 +671,7 @@
|
|
585
671
|
$.extend(defaults, options);
|
586
672
|
}
|
587
673
|
|
588
|
-
$(this).autotab('filter', defaults);
|
674
|
+
return $(this).autotab('filter', defaults);
|
589
675
|
};
|
590
676
|
|
591
677
|
})(jQuery);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* Autotab - jQuery plugin 1.
|
2
|
+
* Autotab - jQuery plugin 1.8.0
|
3
3
|
* https://github.com/Mathachew/jquery-autotab
|
4
4
|
*
|
5
5
|
* Copyright (c) 2008, 2014 Matthew Miller
|
@@ -8,16 +8,19 @@
|
|
8
8
|
* http://www.opensource.org/licenses/mit-license.php
|
9
9
|
*/
|
10
10
|
|
11
|
-
(function(
|
12
|
-
typeof
|
13
|
-
|
14
|
-
|
15
|
-
b[
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
11
|
+
(function(d){var t=navigator.platform,n=null,r="iPad"===t||"iPhone"===t||"iPod"===t,v="undefined"!==typeof InstallTrigger,g=function(a,e){if(null!==e&&"undefined"!==typeof e)for(var b in e)d(a).data("autotab-"+b,e[b])},m=function(a){var e={format:"all",loaded:!1,disabled:!1,pattern:null,uppercase:!1,lowercase:!1,nospace:!1,maxlength:2147483647,target:null,previous:null,trigger:null,originalValue:"",changed:!1,editable:"text"==a.type||"password"==a.type||"textarea"==a.type,tabOnSelect:!1};if(!0===
|
12
|
+
d.autotab.selectFilterByClass&&"undefined"===typeof d(a).data("autotab-format")){var b="all text alpha number numeric alphanumeric hex hexadecimal custom".split(" "),c;for(c in b)if(d(a).hasClass(b[c])){e.format=b[c];break}}for(c in e)"undefined"!==typeof d(a).data("autotab-"+c)&&(e[c]=d(a).data("autotab-"+c));e.loaded||(null!==e.trigger&&"string"===typeof e.trigger&&(e.trigger=e.trigger.toString()),g(a,e));return e},p=function(a){return"undefined"!==typeof a&&("string"===typeof a||!(a instanceof
|
13
|
+
jQuery))};d.autotab=function(a){"object"!==typeof a&&(a={});d(":input").autotab(a)};d.autotab.selectFilterByClass=!1;d.autotab.next=function(){var a=d(document.activeElement);a.length&&a.trigger("autotab-next")};d.autotab.previous=function(){var a=d(document.activeElement);a.length&&a.trigger("autotab-previous")};d.autotab.remove=function(a){p(a)?d(a).autotab("remove"):d(":input").autotab("remove")};d.autotab.restore=function(a){p(a)?d(a).autotab("restore"):d(":input").autotab("restore")};d.autotab.refresh=
|
14
|
+
function(a){p(a)?d(a).autotab("refresh"):d(":input").autotab("refresh")};d.fn.autotab=function(a,e){if(!this.length)return this;var b=d.grep(this,function(a,b){return"hidden"!=a.type});if("filter"==a){if("string"===typeof e||"function"===typeof e)e={format:e};for(var c=0,h=b.length;c<h;c++){var f=m(b[c]),k=e;k.target=f.target;k.previous=f.previous;d.extend(f,k);f.loaded?g(b[c],f):(f.disabled=!0,s(b[c],k))}}else if("remove"==a||"destroy"==a||"disable"==a)for(c=0,h=b.length;c<h;c++)f=m(b[c]),f.disabled=
|
15
|
+
!0,g(b[c],f);else if("restore"==a||"enable"==a)for(c=0,h=b.length;c<h;c++)f=m(b[c]),f.disabled=!1,g(b[c],f);else if("refresh"==a)for(c=0,h=b.length;c<h;c++){var f=m(b[c]),q=c+1,l=c-1;null===f.target||"undefined"===typeof f.target||""===f.target.selector?f.target=0<c&&q<h?b[q]:0<c?null:b[q]:console.log("target selector!");null===f.previous||"undefined"===typeof f.previous||""===f.previous.selector?f.previous=0<c&&q<h?b[l]:0<c?b[l]:null:console.log("previous selector!");f.loaded?(p(f.target)&&(f.target=
|
16
|
+
d(f.target)),p(f.previous)&&(f.previous=d(f.previous)),g(b[c],f)):s(b[c],f)}else if(null===a||"undefined"===typeof a?e={}:"string"===typeof a||"function"===typeof a?e={format:a}:"object"===typeof a&&(e=a),1<b.length)for(c=0,h=b.length;c<h;c++)q=c+1,l=c-1,k=e,0<c&&q<h?(k.target=b[q],k.previous=b[l]):0<c?(k.target=null,k.previous=b[l]):(k.target=b[q],k.previous=null),s(b[c],k);else s(b[0],e);return this};var u=function(a,d,b){if("function"===typeof b.format)return b.format(d,a);a=null;switch(b.format){case "text":a=
|
17
|
+
RegExp("[0-9]+","g");break;case "alpha":a=RegExp("[^a-zA-Z]+","g");break;case "number":case "numeric":a=RegExp("[^0-9]+","g");break;case "alphanumeric":a=RegExp("[^0-9a-zA-Z]+","g");break;case "hex":case "hexadecimal":a=RegExp("[^0-9A-Fa-f]+","g");break;case "custom":a=new RegExp(b.pattern,"g")}null!==a&&(d=d.replace(a,""));b.nospace&&(a=RegExp("[ ]+","g"),d=d.replace(a,""));b.uppercase&&(d=d.toUpperCase());b.lowercase&&(d=d.toLowerCase());return d},s=function(a,e){var b=m(a);b.disabled&&(b.disabled=
|
18
|
+
!1,b.target=null,b.previous=null);d.extend(b,e);p(b.target)&&(b.target=d(b.target));p(b.previous)&&(b.previous=d(b.previous));var c=a.maxLength;"undefined"===typeof a.maxLength&&"textarea"==a.type&&(c=a.maxLength=a.getAttribute("maxlength"));2147483647==b.maxlength&&2147483647!=c&&-1!=c?b.maxlength=c:0<b.maxlength?a.maxLength=b.maxlength:b.target=null;if(b.loaded)g(a,b);else{b.loaded=!0;g(a,b);if("select-one"==a.type)d(a).on("change",function(a){m(this).tabOnSelect&&d(this).trigger("autotab-next")});
|
19
|
+
d(a).on("autotab-next",function(a,b){var d=this;setTimeout(function(){b||(b=m(d));var a=b.target;b.disabled||!a.length||r||(a.prop("disabled")||a.prop("readonly")?a.trigger("autotab-next"):a.focus().select(),n=new Date)},1)}).on("autotab-previous",function(a,b){var d=this;setTimeout(function(){b||(b=m(d));var a=b.previous;if(!b.disabled&&a.length){var c=a.val();a.prop("disabled")||a.prop("readonly")?a.trigger("autotab-previous"):c.length&&a.data("autotab-editable")?(a.focus().val(c.substring(0,c.length-
|
20
|
+
1)),g(a,{changed:!0})):a.focus();n=null}},1)}).on("focus",function(){g(this,{originalValue:this.value})}).on("blur",function(){var a=m(this);a.changed&&this.value!=a.originalValue&&(g(this,{changed:!1}),d(this).change())}).on("keydown",function(a){var b=m(this);if(!b||b.disabled)return!0;var c=a.which||a.charCode;if(8==c){if("select-one"===this.type||"checkbox"===this.type||"radio"===this.type||"button"===this.type||"submit"===this.type||"range"===this.type)return d(this).trigger("autotab-previous",
|
21
|
+
b),!1;0===this.value.length?d(this).trigger("autotab-previous",b):g(this,{changed:this.value!==b.originalValue})}else if(9==c&&null!==n)if(a.shiftKey)n=null;else if(800>(new Date).getTime()-n.getTime())return n=null,!1}).on("keypress",function(a){var b=m(this),c=a.which||a.keyCode;if(!b||b.disabled||v&&0===a.charCode||a.ctrlKey||a.altKey||13==c||"text"!=this.type&&"password"!=this.type&&"textarea"!=this.type||this.disabled)return!0;c=String.fromCharCode(c);if(null!==b.trigger&&0<=b.trigger.indexOf(c))return null!==
|
22
|
+
n&&800>(new Date).getTime()-n.getTime()?n=null:d(this).trigger("autotab-next",b),!1;n=null;a=document.selection&&document.selection.createRange?!0:0<a.charCode;c=u(this,c,b);if(a&&(null===c||""===c))return!1;if(a&&this.value.length<=this.maxLength){var e,l;a=0;if("number"===typeof this.selectionStart&&"number"===typeof this.selectionEnd)e=this.selectionStart,l=this.selectionEnd,a=1;else if(document.selection&&document.selection.createRange){l=document.selection.createRange();e=this.createTextRange();
|
23
|
+
a=this.createTextRange();var p=l.getBookmark();e.moveToBookmark(p);a.setEndPoint("EndToStart",e);e=a.text.length;l=e+l.text.length;a=2}if(0===e&&l==this.value.length)this.value=c;else{if(this.value.length==this.maxLength&&e===l)return d(this).trigger("autotab-next",b),!1;this.value=this.value.slice(0,e)+c+this.value.slice(l)}g(this,{changed:this.value!=b.originalValue});this.value.length!=b.maxlength&&(e++,1==a?this.selectionStart=this.selectionEnd=e:2==a&&(c=this.createTextRange(),c.collapse(!0),
|
24
|
+
c.moveEnd("character",e),c.moveStart("character",e),c.select()))}this.value.length==b.maxlength&&d(this).trigger("autotab-next",b);return!1}).on("paste",function(a){var b=m(this);if(!b)return!0;this.maxLength=2147483647;(function(a,c){setTimeout(function(){var e=-1,g=document.createElement("input");g.type="hidden";g.value=a.value.toLowerCase();g.originalValue=a.value;a.maxLength=c.maxlength;a.value=u(a,a.value,c).substr(0,c.maxlength);var h=function(a,b){if(a){var c=m(a);if(d(a).prop("disabled")||
|
25
|
+
d(a).prop("readonly"))d(a).trigger("autotab-next"),r||h(c.target[0],b);else{for(var f=0,k=b.length;f<k;f++)e=g.value.indexOf(b.charAt(f).toLowerCase(),e)+1;f=g.originalValue.substr(e);(f=u(a,f,c).substr(0,c.maxlength))?(a.value=f,f.length==c.maxlength&&(d(a).trigger("autotab-next",c),r||h(c.target[0],f))):a.value=""}}};a.value.length==c.maxlength&&(d(a).trigger("autotab-next",b),r||h(c.target[0],a.value.toLowerCase()))},1)})(this,b)})}};d.fn.autotab_magic=function(a){return d(this).autotab()};d.fn.autotab_filter=
|
26
|
+
function(a){var e={};"string"===typeof a||"function"===typeof a?e.format=a:d.extend(e,a);return d(this).autotab("filter",e)}})(jQuery);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autotab-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sachin Singh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|