parsley-rails 2.0.5.0 → 2.0.6.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/README.md +11 -0
- data/lib/parsley-rails/version.rb +1 -1
- data/vendor/assets/javascripts/parsley.i18n.bg.js +0 -1
- data/vendor/assets/javascripts/parsley.i18n.da.js +9 -8
- data/vendor/assets/javascripts/parsley.i18n.en.extra.js +5 -1
- data/vendor/assets/javascripts/parsley.i18n.es.js +1 -1
- data/vendor/assets/javascripts/parsley.i18n.ko.js +33 -0
- data/vendor/assets/javascripts/parsley.i18n.ms_MY.extra.js +13 -0
- data/vendor/assets/javascripts/parsley.i18n.ms_MY.js +33 -0
- data/vendor/assets/javascripts/parsley.i18n.nl.extra.js +11 -0
- data/vendor/assets/javascripts/parsley.i18n.nl.js +19 -30
- data/vendor/assets/javascripts/parsley.i18n.ru.extra.js +4 -1
- data/vendor/assets/javascripts/parsley.i18n.ru.js +4 -4
- data/vendor/assets/javascripts/parsley.js +31 -19
- data/vendor/assets/javascripts/parsley.remote.js +33 -21
- data/vendor/assets/stylesheets/parsley.css +1 -2
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 634825ca2abab6902f5c17a4bdd1bf6ab30e293c
|
4
|
+
data.tar.gz: 73666d399b9d5d6a02599eac268388dce139128b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 205319188aab92ca38ce33f767f82f3e6f90dc4dcbf6eee85731c7396077ce85fd19069c7c50cef103ca08384a8bcf3e26e3c6c9ab7041a066b5e93a815903ed
|
7
|
+
data.tar.gz: ee8a53503db47367780240b7992b6d18cdfb9fa762ceb8e7e5bea4884182208a0b0116849fd60ff4b621be36e711abce66613fd3625930b9b43cd4d41f4c3c77
|
data/README.md
CHANGED
@@ -25,11 +25,22 @@ To use the `remote` library or a different i18n, add this right after:
|
|
25
25
|
//= require parsley.remote
|
26
26
|
//= require parsley.i18n.fr
|
27
27
|
|
28
|
+
Note that in order to use the Russian i18n and avoid bumping into [sstephenson/sprockets#529](https://github.com/sstephenson/sprockets/issues/529), you need to append `.js` to the filename (`parsley.i18n.ru.js`).
|
29
|
+
|
28
30
|
Finally, if you want to use the default CSS, add the following to your
|
29
31
|
`app/assets/stylesheets/application.css`:
|
30
32
|
|
31
33
|
*= require parsley
|
32
34
|
|
35
|
+
## Sass Support
|
36
|
+
|
37
|
+
If you prefer SCSS, add this to your application.css.scss file:
|
38
|
+
|
39
|
+
@import 'parsley';
|
40
|
+
|
41
|
+
If you use the Sass indented syntax, add this to your application.css.sass file:
|
42
|
+
|
43
|
+
@import parsley
|
33
44
|
|
34
45
|
See the complete [Parsley.js documentation](http://parsleyjs.org/doc/index.html).
|
35
46
|
|
@@ -13,7 +13,6 @@ window.ParsleyConfig.i18n.bg = $.extend(window.ParsleyConfig.i18n.bg || {}, {
|
|
13
13
|
digits: "Невалидни цифри.",
|
14
14
|
alphanum: "Стойността трябва да садържа само букви или цифри."
|
15
15
|
},
|
16
|
-
notnull: "Полето е задължително.",
|
17
16
|
notblank: "Полето е задължително.",
|
18
17
|
required: "Полето е задължително.",
|
19
18
|
pattern: "Невалидна стойност.",
|
@@ -6,22 +6,22 @@ window.ParsleyConfig.i18n = window.ParsleyConfig.i18n || {};
|
|
6
6
|
window.ParsleyConfig.i18n.da = $.extend(window.ParsleyConfig.i18n.da || {}, {
|
7
7
|
defaultMessage: "Indtast venligst en korrekt værdi.",
|
8
8
|
type: {
|
9
|
-
email: "Indtast venligst en korrekt
|
9
|
+
email: "Indtast venligst en korrekt emailadresse.",
|
10
10
|
url: "Indtast venligst en korrekt internetadresse.",
|
11
|
-
number: "Indtast venligst et
|
12
|
-
integer: "Indtast venligst et
|
11
|
+
number: "Indtast venligst et tal.",
|
12
|
+
integer: "Indtast venligst et heltal.",
|
13
13
|
digits: "Dette felt må kun bestå af tal.",
|
14
14
|
alphanum: "Dette felt skal indeholde både tal og bogstaver."
|
15
15
|
},
|
16
16
|
notblank: "Dette felt må ikke være tomt.",
|
17
17
|
required: "Dette felt er påkrævet.",
|
18
18
|
pattern: "Ugyldig indtastning.",
|
19
|
-
min: "Dette felt skal indeholde
|
20
|
-
max: "Dette felt
|
21
|
-
range: "Dette felt skal
|
19
|
+
min: "Dette felt skal indeholde et tal som er større end eller lig med %s.",
|
20
|
+
max: "Dette felt skal indeholde et tal som er mindre end eller lig med %s.",
|
21
|
+
range: "Dette felt skal indeholde et tal mellem %s og %s.",
|
22
22
|
minlength: "Indtast venligst mindst %s tegn.",
|
23
|
-
maxlength: "Dette felt kan
|
24
|
-
length: "
|
23
|
+
maxlength: "Dette felt kan højst indeholde %s tegn.",
|
24
|
+
length: "Længden af denne værdi er ikke korrekt. Værdien skal være mellem %s og %s tegn lang.",
|
25
25
|
mincheck: "Vælg mindst %s muligheder.",
|
26
26
|
maxcheck: "Vælg op til %s muligheder.",
|
27
27
|
check: "Vælg mellem %s og %s muligheder.",
|
@@ -31,3 +31,4 @@ window.ParsleyConfig.i18n.da = $.extend(window.ParsleyConfig.i18n.da || {}, {
|
|
31
31
|
// If file is loaded after Parsley main file, auto-load locale
|
32
32
|
if ('undefined' !== typeof window.ParsleyValidator)
|
33
33
|
window.ParsleyValidator.addCatalog('da', window.ParsleyConfig.i18n.da, true);
|
34
|
+
|
@@ -5,5 +5,9 @@ window.ParsleyConfig.i18n.en = $.extend(window.ParsleyConfig.i18n.en || {}, {
|
|
5
5
|
dateiso: "This value should be a valid date (YYYY-MM-DD).",
|
6
6
|
minwords: "This value is too short. It should have %s words or more.",
|
7
7
|
maxwords: "This value is too long. It should have %s words or fewer.",
|
8
|
-
words: "This value length is invalid. It should be between %s and %s words long."
|
8
|
+
words: "This value length is invalid. It should be between %s and %s words long.",
|
9
|
+
gt: "This value should be greater.",
|
10
|
+
gte: "This value should be greater or equal.",
|
11
|
+
lt: "This value should be less.",
|
12
|
+
lte: "This value should be less or equal."
|
9
13
|
});
|
@@ -23,7 +23,7 @@ window.ParsleyConfig.i18n.es = $.extend(window.ParsleyConfig.i18n.es || {}, {
|
|
23
23
|
length: "La longitud de este valor debe estar entre %s y %s caracteres.",
|
24
24
|
mincheck: "Debe seleccionar al menos %s opciones.",
|
25
25
|
maxcheck: "Debe seleccionar %s opciones o menos.",
|
26
|
-
|
26
|
+
check: "Debe seleccionar entre %s y %s opciones.",
|
27
27
|
equalto: "Este valor debe ser idéntico."
|
28
28
|
});
|
29
29
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
// ParsleyConfig definition if not already set
|
2
|
+
window.ParsleyConfig = window.ParsleyConfig || {};
|
3
|
+
window.ParsleyConfig.i18n = window.ParsleyConfig.i18n || {};
|
4
|
+
|
5
|
+
// Define then the messages
|
6
|
+
window.ParsleyConfig.i18n.ko = $.extend(window.ParsleyConfig.i18n.ko || {}, {
|
7
|
+
defaultMessage: "입력하신 내용이 올바르지 않습니다.",
|
8
|
+
type: {
|
9
|
+
email: "입력하신 이메일이 유효하지 않습니다.",
|
10
|
+
url: "입력하신 URL이 유효하지 않습니다.",
|
11
|
+
number: "입력하신 전화번호가 올바르지 않습니다.",
|
12
|
+
integer: "입력하신 URL이 유효하지 않습니다.",
|
13
|
+
digits: "숫자를 입력하여 주십시오.",
|
14
|
+
alphanum: "입력하신 내용은 알파벳과 숫자의 조합이어야 합니다."
|
15
|
+
},
|
16
|
+
notblank: "공백은 입력하실 수 없습니다.",
|
17
|
+
required: "필수 입력사항입니다.",
|
18
|
+
pattern: "입력하신 내용이 올바르지 않습니다.",
|
19
|
+
min: "입력하신 내용이 %s보다 크거나 같아야 합니다. ",
|
20
|
+
max: "입력하신 내용이 %s보다 작거나 같아야 합니다.",
|
21
|
+
range: "입력하신 내용이 %s보다 크고 %s 보다 작아야 합니다.",
|
22
|
+
minlength: "%s 이상의 글자수를 입력하십시오. ",
|
23
|
+
maxlength: "%s 이하의 글자수를 입력하십시오. ",
|
24
|
+
length: "입력하신 내용의 글자수가 %s보다 크고 %s보다 작아야 합니다.",
|
25
|
+
mincheck: "최소한 %s개를 선택하여 주십시오. ",
|
26
|
+
maxcheck: "%s개 또는 그보다 적게 선택하여 주십시오.",
|
27
|
+
check: "선택하신 내용이 %s보다 크거나 %s보다 작아야 합니다.",
|
28
|
+
equalto: "같은 값을 입력하여 주십시오."
|
29
|
+
});
|
30
|
+
|
31
|
+
// If file is loaded after Parsley main file, auto-load locale
|
32
|
+
if ('undefined' !== typeof window.ParsleyValidator)
|
33
|
+
window.ParsleyValidator.addCatalog('ko', window.ParsleyConfig.i18n.ko, true);
|
@@ -0,0 +1,13 @@
|
|
1
|
+
window.ParsleyConfig = window.ParsleyConfig || {};
|
2
|
+
window.ParsleyConfig.i18n = window.ParsleyConfig.i18n || {};
|
3
|
+
|
4
|
+
window.ParsleyConfig.i18n.ms_MY = $.extend(window.ParsleyConfig.i18n.ms_MY || {}, {
|
5
|
+
dateiso: "Nilai hendaklah berbentuk tarikh yang sah (YYYY-MM-DD).",
|
6
|
+
minwords: "Ayat terlalu pendek. Ianya perlu sekurang-kurangnya %s patah perkataan.",
|
7
|
+
maxwords: "Ayat terlalu panjang. Ianya tidak boleh melebihi %s patah perkataan.",
|
8
|
+
words: "Panjang ayat tidak sah. Jumlah perkataan adalah diantara %s hingga %s patah perkataan.",
|
9
|
+
gt: "Nilai lebih besar diperlukan.",
|
10
|
+
gte: "Nilai hendaklah lebih besar atau sama.",
|
11
|
+
lt: "Nilai lebih kecil diperlukan.",
|
12
|
+
lte: "Nilai hendaklah lebih kecil atau sama."
|
13
|
+
});
|
@@ -0,0 +1,33 @@
|
|
1
|
+
// ParsleyConfig definition if not already set
|
2
|
+
window.ParsleyConfig = window.ParsleyConfig || {};
|
3
|
+
window.ParsleyConfig.i18n = window.ParsleyConfig.i18n || {};
|
4
|
+
|
5
|
+
// Define then the messages
|
6
|
+
window.ParsleyConfig.i18n.ms_MY = $.extend(window.ParsleyConfig.i18n.ms_MY || {}, {
|
7
|
+
defaultMessage: "Nilai tidak sah.",
|
8
|
+
type: {
|
9
|
+
email: "Nilai mestilah dalam format emel yang sah.",
|
10
|
+
url: "Nilai mestilah dalam bentuk url yang sah.",
|
11
|
+
number: "Hanya nombor dibenarkan.",
|
12
|
+
integer: "Hanya integer dibenarkan.",
|
13
|
+
digits: "Hanya angka dibenarkan.",
|
14
|
+
alphanum: "Hanya alfanumerik dibenarkan."
|
15
|
+
},
|
16
|
+
notblank: "Nilai ini tidak boleh kosong.",
|
17
|
+
required: "Nilai ini wajib diisi.",
|
18
|
+
pattern: "Bentuk nilai ini tidak sah.",
|
19
|
+
min: "Nilai perlu lebih besar atau sama dengan %s.",
|
20
|
+
max: "Nilai perlu lebih kecil atau sama dengan %s.",
|
21
|
+
range: "Nilai perlu berada antara %s hingga %s.",
|
22
|
+
minlength: "Nilai terlalu pendek. Ianya perlu sekurang-kurangnya %s huruf.",
|
23
|
+
maxlength: "Nilai terlalu panjang. Ianya tidak boleh melebihi %s huruf.",
|
24
|
+
length: "Panjang nilai tidak sah. Panjangnya perlu diantara %s hingga %s huruf.",
|
25
|
+
mincheck: "Anda mesti memilih sekurang-kurangnya %s pilihan.",
|
26
|
+
maxcheck: "Anda tidak boleh memilih lebih daripada %s pilihan.",
|
27
|
+
check: "Anda mesti memilih diantara %s hingga %s pilihan.",
|
28
|
+
equalto: "Nilai dimasukkan hendaklah sama."
|
29
|
+
});
|
30
|
+
|
31
|
+
// If file is loaded after Parsley main file, auto-load locale
|
32
|
+
if ('undefined' !== typeof window.ParsleyValidator)
|
33
|
+
window.ParsleyValidator.addCatalog('ms_MY', window.ParsleyConfig.i18n.ms_MY, true);
|
@@ -0,0 +1,11 @@
|
|
1
|
+
window.ParsleyConfig = window.ParsleyConfig || {};
|
2
|
+
window.ParsleyConfig.i18n = window.ParsleyConfig.i18n || {};
|
3
|
+
|
4
|
+
window.ParsleyConfig.i18n.nl = $.extend(window.ParsleyConfig.i18n.nl || {}, {
|
5
|
+
dateiso: "Deze waarde moet een datum in het volgende formaat zijn: (YYYY-MM-DD).",
|
6
|
+
minwords: "Deze waarde moet minstens %s woorden bevatten.",
|
7
|
+
maxwords: "Deze waarde mag maximaal %s woorden bevatten.",
|
8
|
+
words: "Deze waarde moet tussen de %s en %s woorden bevatten.",
|
9
|
+
gt: "Deze waarde moet groter dan %s zijn.",
|
10
|
+
lt: "Deze waarde moet kleiner dan %s zijn."
|
11
|
+
});
|
@@ -4,36 +4,25 @@ window.ParsleyConfig.i18n = window.ParsleyConfig.i18n || {};
|
|
4
4
|
|
5
5
|
// Define then the messages
|
6
6
|
window.ParsleyConfig.i18n.nl = $.extend(window.ParsleyConfig.i18n.nl || {}, {
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
, minlength: "Deze tekst is te kort. Deze moet uit minimaal %s karakters bestaan."
|
27
|
-
, maxlength: "Deze waarde is te lang. Deze mag maximaal %s karakters lang zijn."
|
28
|
-
, rangelength: "Deze waarde moet tussen %s en %s karakters lang zijn."
|
29
|
-
, equalto: "Deze waardes moeten identiek zijn."
|
30
|
-
|
31
|
-
// parsley.extend ///////////////////////////////
|
32
|
-
, minwords: "Deze waarde moet minstens %s woorden bevatten."
|
33
|
-
, maxwords: "Deze waarde mag maximaal %s woorden bevatten."
|
34
|
-
, rangewords: "Deze waarde moet tussen de %s en %s woorden bevatten."
|
35
|
-
, greaterthan: "Deze waarde moet groter dan %s zijn."
|
36
|
-
, lessthan: "Deze waarde moet kleiner dan %s zijn."
|
7
|
+
defaultMessage: "Deze waarde lijkt onjuist.",
|
8
|
+
type: {
|
9
|
+
email: "Dit lijkt geen geldig e-mail adres te zijn.",
|
10
|
+
url: "Dit lijkt geen geldige URL te zijn.",
|
11
|
+
number: "Deze waarde moet een nummer zijn.",
|
12
|
+
integer: "Deze waarde moet een nummer zijn.",
|
13
|
+
digits: "Deze waarde moet numeriek zijn.",
|
14
|
+
alphanum: "Deze waarde moet alfanumeriek zijn."
|
15
|
+
},
|
16
|
+
notblank: "Deze waarde mag niet leeg zijn.",
|
17
|
+
required: "Dit veld is verplicht.",
|
18
|
+
pattern: "Deze waarde lijkt onjuist te zijn.",
|
19
|
+
min: "Deze waarde mag niet lager zijn dan %s.",
|
20
|
+
max: "Deze waarde mag niet groter zijn dan %s.",
|
21
|
+
range: "Deze waarde moet tussen %s en %s liggen.",
|
22
|
+
minlength: "Deze tekst is te kort. Deze moet uit minimaal %s karakters bestaan.",
|
23
|
+
maxlength: "Deze waarde is te lang. Deze mag maximaal %s karakters lang zijn.",
|
24
|
+
length: "Deze waarde moet tussen %s en %s karakters lang zijn.",
|
25
|
+
equalto: "Deze waardes moeten identiek zijn."
|
37
26
|
});
|
38
27
|
|
39
28
|
// If file is loaded after Parsley main file, auto-load locale
|
@@ -2,5 +2,8 @@ window.ParsleyConfig = window.ParsleyConfig || {};
|
|
2
2
|
window.ParsleyConfig.i18n = window.ParsleyConfig.i18n || {};
|
3
3
|
|
4
4
|
window.ParsleyConfig.i18n.ru = $.extend(window.ParsleyConfig.i18n.ru || {}, {
|
5
|
-
dateiso:
|
5
|
+
dateiso: "Это значение должно быть корректной датой (ГГГГ-ММ-ДД).",
|
6
|
+
minwords: "Это значение должно содержать не менее %s слов.",
|
7
|
+
maxwords: "Это значение должно содержать не более %s слов.",
|
8
|
+
words: "Это значение должно содержать от %s до %s слов."
|
6
9
|
});
|
@@ -23,10 +23,10 @@ window.ParsleyConfig.i18n.ru = $.extend(window.ParsleyConfig.i18n.ru || {}, {
|
|
23
23
|
pattern: "Это значение некорректно.",
|
24
24
|
min: "Это значение должно быть не менее чем %s.",
|
25
25
|
max: "Это значение должно быть не более чем %s.",
|
26
|
-
range: "Это значение должно быть
|
27
|
-
minlength: "
|
28
|
-
maxlength: "
|
29
|
-
length: "
|
26
|
+
range: "Это значение должно быть от %s до %s.",
|
27
|
+
minlength: "Это значение должно содержать не менее %s символов.",
|
28
|
+
maxlength: "Это значение должно содержать не более %s символов.",
|
29
|
+
length: "Это значение должно содержать от %s до %s символов.",
|
30
30
|
mincheck: "Выберите не менее %s значений.",
|
31
31
|
maxcheck: "Выберите не более %s значений.",
|
32
32
|
check: "Выберите от %s до %s значений.",
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*!
|
2
2
|
* Parsleyjs
|
3
3
|
* Guillaume Potier - <guillaume@wisembly.com>
|
4
|
-
* Version 2.0.
|
4
|
+
* Version 2.0.6 - built Tue Dec 02 2014 17:12:12
|
5
5
|
* MIT Licensed
|
6
6
|
*
|
7
7
|
*/
|
@@ -1001,11 +1001,11 @@ var Validator = ( function ( ) {
|
|
1001
1001
|
},
|
1002
1002
|
maxlength: function (value) {
|
1003
1003
|
return $.extend(new Validator.Assert().Length({ max: value }), {
|
1004
|
-
|
1005
|
-
|
1004
|
+
priority: 30,
|
1005
|
+
requirementsTransformer: function () {
|
1006
1006
|
return 'string' === typeof value && !isNaN(value) ? parseInt(value, 10) : value;
|
1007
1007
|
}
|
1008
|
-
|
1008
|
+
});
|
1009
1009
|
},
|
1010
1010
|
length: function (array) {
|
1011
1011
|
return $.extend(new Validator.Assert().Length({ min: array[0], max: array[1] }), { priority: 32 });
|
@@ -1343,9 +1343,10 @@ var Validator = ( function ( ) {
|
|
1343
1343
|
if ('ParsleyForm' === parsleyInstance.__class__)
|
1344
1344
|
return;
|
1345
1345
|
// Reset all errors' li
|
1346
|
-
parsleyInstance._ui.$errorsWrapper
|
1347
|
-
|
1348
|
-
|
1346
|
+
parsleyInstance._ui.$errorsWrapper
|
1347
|
+
.removeClass('filled')
|
1348
|
+
.children()
|
1349
|
+
.remove();
|
1349
1350
|
// Reset validation class
|
1350
1351
|
this._resetClass(parsleyInstance);
|
1351
1352
|
// Reset validation flags and last validation result
|
@@ -1465,7 +1466,7 @@ var Validator = ( function ( ) {
|
|
1465
1466
|
},
|
1466
1467
|
_isFieldInGroup: function (field, group) {
|
1467
1468
|
if(ParsleyUtils.isArray(field.options.group))
|
1468
|
-
return -1 !== $.inArray(field.options.group
|
1469
|
+
return -1 !== $.inArray(group, field.options.group);
|
1469
1470
|
return field.options.group === group;
|
1470
1471
|
},
|
1471
1472
|
_refreshFields: function () {
|
@@ -1556,11 +1557,13 @@ var Validator = ( function ( ) {
|
|
1556
1557
|
this.refreshConstraints();
|
1557
1558
|
// Sort priorities to validate more important first
|
1558
1559
|
var priorities = this._getConstraintsSortedPriorities();
|
1560
|
+
if (0 === priorities.length)
|
1561
|
+
return this.validationResult = [];
|
1559
1562
|
// Value could be passed as argument, needed to add more power to 'parsley:field:validate'
|
1560
1563
|
value = value || this.getValue();
|
1561
1564
|
// If a field is empty and not required, leave it alone, it's just fine
|
1562
1565
|
// Except if `data-parsley-validate-if-empty` explicitely added, useful for some custom validators
|
1563
|
-
if (
|
1566
|
+
if (!value.length && !this._isRequired() && 'undefined' === typeof this.options.validateIfEmpty && true !== force)
|
1564
1567
|
return this.validationResult = [];
|
1565
1568
|
// If we want to validate field against all constraints, just call Validator and let it do the job
|
1566
1569
|
if (false === this.options.priorityEnabled)
|
@@ -1620,6 +1623,7 @@ var Validator = ( function ( ) {
|
|
1620
1623
|
this.constraints.splice(i, 1);
|
1621
1624
|
break;
|
1622
1625
|
}
|
1626
|
+
delete this.constraintsByName[name];
|
1623
1627
|
return this;
|
1624
1628
|
},
|
1625
1629
|
// Update a constraint (Remove + re-add)
|
@@ -1631,12 +1635,15 @@ var Validator = ( function ( ) {
|
|
1631
1635
|
// Internal only.
|
1632
1636
|
// Bind constraints from config + options + DOM
|
1633
1637
|
_bindConstraints: function () {
|
1634
|
-
var constraints = [];
|
1638
|
+
var constraints = [], constraintsByName = {};
|
1635
1639
|
// clean all existing DOM constraints to only keep javascript user constraints
|
1636
1640
|
for (var i = 0; i < this.constraints.length; i++)
|
1637
|
-
if (false === this.constraints[i].isDomConstraint)
|
1641
|
+
if (false === this.constraints[i].isDomConstraint) {
|
1638
1642
|
constraints.push(this.constraints[i]);
|
1643
|
+
constraintsByName[this.constraints[i].name] = this.constraints[i];
|
1644
|
+
}
|
1639
1645
|
this.constraints = constraints;
|
1646
|
+
this.constraintsByName = constraintsByName;
|
1640
1647
|
// then re-add Parsley DOM-API constraints
|
1641
1648
|
for (var name in this.options)
|
1642
1649
|
this.addConstraint(name, this.options[name]);
|
@@ -1665,12 +1672,17 @@ var Validator = ( function ( ) {
|
|
1665
1672
|
var type = this.$element.attr('type');
|
1666
1673
|
if ('undefined' === typeof type)
|
1667
1674
|
return this;
|
1668
|
-
// Small special case here for HTML5 number
|
1669
|
-
if ('number' === type)
|
1670
|
-
|
1675
|
+
// Small special case here for HTML5 number: integer validator if step attribute is undefined or an integer value, number otherwise
|
1676
|
+
if ('number' === type) {
|
1677
|
+
if (('undefined' === typeof this.$element.attr('step')) || (0 === parseFloat(this.$element.attr('step')) % 1)) {
|
1678
|
+
return this.addConstraint('type', 'integer', undefined, true);
|
1679
|
+
} else {
|
1680
|
+
return this.addConstraint('type', 'number', undefined, true);
|
1681
|
+
}
|
1671
1682
|
// Regular other HTML5 supported types
|
1672
|
-
else if (new RegExp(type, 'i').test('email url range'))
|
1683
|
+
} else if (new RegExp(type, 'i').test('email url range')) {
|
1673
1684
|
return this.addConstraint('type', type, undefined, true);
|
1685
|
+
}
|
1674
1686
|
return this;
|
1675
1687
|
},
|
1676
1688
|
// Internal only.
|
@@ -1863,7 +1875,7 @@ window.ParsleyConfig.i18n.en = $.extend(window.ParsleyConfig.i18n.en || {}, {
|
|
1863
1875
|
if ('undefined' !== typeof window.ParsleyValidator)
|
1864
1876
|
window.ParsleyValidator.addCatalog('en', window.ParsleyConfig.i18n.en, true);
|
1865
1877
|
|
1866
|
-
// Parsley.js 2.0.
|
1878
|
+
// Parsley.js 2.0.6
|
1867
1879
|
// http://parsleyjs.org
|
1868
1880
|
// (c) 20012-2014 Guillaume Potier, Wisembly
|
1869
1881
|
// Parsley may be freely distributed under the MIT license.
|
@@ -1871,7 +1883,7 @@ if ('undefined' !== typeof window.ParsleyValidator)
|
|
1871
1883
|
// ### Parsley factory
|
1872
1884
|
var Parsley = function (element, options, parsleyFormInstance) {
|
1873
1885
|
this.__class__ = 'Parsley';
|
1874
|
-
this.__version__ = '2.0.
|
1886
|
+
this.__version__ = '2.0.6';
|
1875
1887
|
this.__id__ = ParsleyUtils.hash(4);
|
1876
1888
|
// Parsley must be instanciated with a DOM element or jQuery $element
|
1877
1889
|
if ('undefined' === typeof element)
|
@@ -1934,7 +1946,7 @@ if ('undefined' !== typeof window.ParsleyValidator)
|
|
1934
1946
|
return this;
|
1935
1947
|
}
|
1936
1948
|
// Remove special chars
|
1937
|
-
multiple = multiple.replace(/(:|\.|\[|\]|\$)/g, '');
|
1949
|
+
multiple = multiple.replace(/(:|\.|\[|\]|\{|\}|\$)/g, '');
|
1938
1950
|
// Add proper `data-parsley-multiple` to siblings if we have a valid multiple name
|
1939
1951
|
if ('undefined' !== typeof name) {
|
1940
1952
|
$('input[name="' + name + '"]').each(function () {
|
@@ -2054,7 +2066,7 @@ if ('undefined' !== typeof window.ParsleyValidator)
|
|
2054
2066
|
// ### PARSLEY auto-binding
|
2055
2067
|
// Prevent it by setting `ParsleyConfig.autoBind` to `false`
|
2056
2068
|
if (false !== ParsleyUtils.get(window, 'ParsleyConfig.autoBind'))
|
2057
|
-
$(
|
2069
|
+
$(function () {
|
2058
2070
|
// Works only on `data-parsley-validate`.
|
2059
2071
|
if ($('[data-parsley-validate]').length)
|
2060
2072
|
$('[data-parsley-validate]').parsley();
|
@@ -9,7 +9,7 @@ window.ParsleyExtend = $.extend(window.ParsleyExtend, {
|
|
9
9
|
asyncSupport: true,
|
10
10
|
|
11
11
|
asyncValidators: $.extend({
|
12
|
-
default: {
|
12
|
+
'default': {
|
13
13
|
fn: function (xhr) {
|
14
14
|
return 'resolved' === xhr.state();
|
15
15
|
},
|
@@ -170,7 +170,7 @@ window.ParsleyExtend = $.extend(window.ParsleyExtend, {
|
|
170
170
|
data = {},
|
171
171
|
ajaxOptions,
|
172
172
|
csr,
|
173
|
-
validator = this.options.remoteValidator ||
|
173
|
+
validator = this.options.remoteValidator || (true === this.options.remoteReverse ? 'reverse' : 'default');
|
174
174
|
|
175
175
|
validator = validator.toLowerCase();
|
176
176
|
|
@@ -259,7 +259,7 @@ window.ParsleyConfig.validators.remote = {
|
|
259
259
|
/*!
|
260
260
|
* Parsleyjs
|
261
261
|
* Guillaume Potier - <guillaume@wisembly.com>
|
262
|
-
* Version 2.0.
|
262
|
+
* Version 2.0.6 - built Tue Dec 02 2014 17:12:12
|
263
263
|
* MIT Licensed
|
264
264
|
*
|
265
265
|
*/
|
@@ -1259,11 +1259,11 @@ var Validator = ( function ( ) {
|
|
1259
1259
|
},
|
1260
1260
|
maxlength: function (value) {
|
1261
1261
|
return $.extend(new Validator.Assert().Length({ max: value }), {
|
1262
|
-
|
1263
|
-
|
1262
|
+
priority: 30,
|
1263
|
+
requirementsTransformer: function () {
|
1264
1264
|
return 'string' === typeof value && !isNaN(value) ? parseInt(value, 10) : value;
|
1265
1265
|
}
|
1266
|
-
|
1266
|
+
});
|
1267
1267
|
},
|
1268
1268
|
length: function (array) {
|
1269
1269
|
return $.extend(new Validator.Assert().Length({ min: array[0], max: array[1] }), { priority: 32 });
|
@@ -1601,9 +1601,10 @@ var Validator = ( function ( ) {
|
|
1601
1601
|
if ('ParsleyForm' === parsleyInstance.__class__)
|
1602
1602
|
return;
|
1603
1603
|
// Reset all errors' li
|
1604
|
-
parsleyInstance._ui.$errorsWrapper
|
1605
|
-
|
1606
|
-
|
1604
|
+
parsleyInstance._ui.$errorsWrapper
|
1605
|
+
.removeClass('filled')
|
1606
|
+
.children()
|
1607
|
+
.remove();
|
1607
1608
|
// Reset validation class
|
1608
1609
|
this._resetClass(parsleyInstance);
|
1609
1610
|
// Reset validation flags and last validation result
|
@@ -1723,7 +1724,7 @@ var Validator = ( function ( ) {
|
|
1723
1724
|
},
|
1724
1725
|
_isFieldInGroup: function (field, group) {
|
1725
1726
|
if(ParsleyUtils.isArray(field.options.group))
|
1726
|
-
return -1 !== $.inArray(field.options.group
|
1727
|
+
return -1 !== $.inArray(group, field.options.group);
|
1727
1728
|
return field.options.group === group;
|
1728
1729
|
},
|
1729
1730
|
_refreshFields: function () {
|
@@ -1814,11 +1815,13 @@ var Validator = ( function ( ) {
|
|
1814
1815
|
this.refreshConstraints();
|
1815
1816
|
// Sort priorities to validate more important first
|
1816
1817
|
var priorities = this._getConstraintsSortedPriorities();
|
1818
|
+
if (0 === priorities.length)
|
1819
|
+
return this.validationResult = [];
|
1817
1820
|
// Value could be passed as argument, needed to add more power to 'parsley:field:validate'
|
1818
1821
|
value = value || this.getValue();
|
1819
1822
|
// If a field is empty and not required, leave it alone, it's just fine
|
1820
1823
|
// Except if `data-parsley-validate-if-empty` explicitely added, useful for some custom validators
|
1821
|
-
if (
|
1824
|
+
if (!value.length && !this._isRequired() && 'undefined' === typeof this.options.validateIfEmpty && true !== force)
|
1822
1825
|
return this.validationResult = [];
|
1823
1826
|
// If we want to validate field against all constraints, just call Validator and let it do the job
|
1824
1827
|
if (false === this.options.priorityEnabled)
|
@@ -1878,6 +1881,7 @@ var Validator = ( function ( ) {
|
|
1878
1881
|
this.constraints.splice(i, 1);
|
1879
1882
|
break;
|
1880
1883
|
}
|
1884
|
+
delete this.constraintsByName[name];
|
1881
1885
|
return this;
|
1882
1886
|
},
|
1883
1887
|
// Update a constraint (Remove + re-add)
|
@@ -1889,12 +1893,15 @@ var Validator = ( function ( ) {
|
|
1889
1893
|
// Internal only.
|
1890
1894
|
// Bind constraints from config + options + DOM
|
1891
1895
|
_bindConstraints: function () {
|
1892
|
-
var constraints = [];
|
1896
|
+
var constraints = [], constraintsByName = {};
|
1893
1897
|
// clean all existing DOM constraints to only keep javascript user constraints
|
1894
1898
|
for (var i = 0; i < this.constraints.length; i++)
|
1895
|
-
if (false === this.constraints[i].isDomConstraint)
|
1899
|
+
if (false === this.constraints[i].isDomConstraint) {
|
1896
1900
|
constraints.push(this.constraints[i]);
|
1901
|
+
constraintsByName[this.constraints[i].name] = this.constraints[i];
|
1902
|
+
}
|
1897
1903
|
this.constraints = constraints;
|
1904
|
+
this.constraintsByName = constraintsByName;
|
1898
1905
|
// then re-add Parsley DOM-API constraints
|
1899
1906
|
for (var name in this.options)
|
1900
1907
|
this.addConstraint(name, this.options[name]);
|
@@ -1923,12 +1930,17 @@ var Validator = ( function ( ) {
|
|
1923
1930
|
var type = this.$element.attr('type');
|
1924
1931
|
if ('undefined' === typeof type)
|
1925
1932
|
return this;
|
1926
|
-
// Small special case here for HTML5 number
|
1927
|
-
if ('number' === type)
|
1928
|
-
|
1933
|
+
// Small special case here for HTML5 number: integer validator if step attribute is undefined or an integer value, number otherwise
|
1934
|
+
if ('number' === type) {
|
1935
|
+
if (('undefined' === typeof this.$element.attr('step')) || (0 === parseFloat(this.$element.attr('step')) % 1)) {
|
1936
|
+
return this.addConstraint('type', 'integer', undefined, true);
|
1937
|
+
} else {
|
1938
|
+
return this.addConstraint('type', 'number', undefined, true);
|
1939
|
+
}
|
1929
1940
|
// Regular other HTML5 supported types
|
1930
|
-
else if (new RegExp(type, 'i').test('email url range'))
|
1941
|
+
} else if (new RegExp(type, 'i').test('email url range')) {
|
1931
1942
|
return this.addConstraint('type', type, undefined, true);
|
1943
|
+
}
|
1932
1944
|
return this;
|
1933
1945
|
},
|
1934
1946
|
// Internal only.
|
@@ -2121,7 +2133,7 @@ window.ParsleyConfig.i18n.en = $.extend(window.ParsleyConfig.i18n.en || {}, {
|
|
2121
2133
|
if ('undefined' !== typeof window.ParsleyValidator)
|
2122
2134
|
window.ParsleyValidator.addCatalog('en', window.ParsleyConfig.i18n.en, true);
|
2123
2135
|
|
2124
|
-
// Parsley.js 2.0.
|
2136
|
+
// Parsley.js 2.0.6
|
2125
2137
|
// http://parsleyjs.org
|
2126
2138
|
// (c) 20012-2014 Guillaume Potier, Wisembly
|
2127
2139
|
// Parsley may be freely distributed under the MIT license.
|
@@ -2129,7 +2141,7 @@ if ('undefined' !== typeof window.ParsleyValidator)
|
|
2129
2141
|
// ### Parsley factory
|
2130
2142
|
var Parsley = function (element, options, parsleyFormInstance) {
|
2131
2143
|
this.__class__ = 'Parsley';
|
2132
|
-
this.__version__ = '2.0.
|
2144
|
+
this.__version__ = '2.0.6';
|
2133
2145
|
this.__id__ = ParsleyUtils.hash(4);
|
2134
2146
|
// Parsley must be instanciated with a DOM element or jQuery $element
|
2135
2147
|
if ('undefined' === typeof element)
|
@@ -2192,7 +2204,7 @@ if ('undefined' !== typeof window.ParsleyValidator)
|
|
2192
2204
|
return this;
|
2193
2205
|
}
|
2194
2206
|
// Remove special chars
|
2195
|
-
multiple = multiple.replace(/(:|\.|\[|\]|\$)/g, '');
|
2207
|
+
multiple = multiple.replace(/(:|\.|\[|\]|\{|\}|\$)/g, '');
|
2196
2208
|
// Add proper `data-parsley-multiple` to siblings if we have a valid multiple name
|
2197
2209
|
if ('undefined' !== typeof name) {
|
2198
2210
|
$('input[name="' + name + '"]').each(function () {
|
@@ -2312,7 +2324,7 @@ if ('undefined' !== typeof window.ParsleyValidator)
|
|
2312
2324
|
// ### PARSLEY auto-binding
|
2313
2325
|
// Prevent it by setting `ParsleyConfig.autoBind` to `false`
|
2314
2326
|
if (false !== ParsleyUtils.get(window, 'ParsleyConfig.autoBind'))
|
2315
|
-
$(
|
2327
|
+
$(function () {
|
2316
2328
|
// Works only on `data-parsley-validate`.
|
2317
2329
|
if ($('[data-parsley-validate]').length)
|
2318
2330
|
$('[data-parsley-validate]').parsley();
|
@@ -15,7 +15,7 @@ textarea.parsley-error {
|
|
15
15
|
}
|
16
16
|
|
17
17
|
.parsley-errors-list {
|
18
|
-
margin: 2px 0 3px
|
18
|
+
margin: 2px 0 3px;
|
19
19
|
padding: 0;
|
20
20
|
list-style-type: none;
|
21
21
|
font-size: 0.9em;
|
@@ -26,7 +26,6 @@ textarea.parsley-error {
|
|
26
26
|
|
27
27
|
transition: all .3s ease-in;
|
28
28
|
-o-transition: all .3s ease-in;
|
29
|
-
-ms-transition: all .3s ease-in;
|
30
29
|
-moz-transition: all .3s ease-in;
|
31
30
|
-webkit-transition: all .3s ease-in;
|
32
31
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parsley-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jiri Pospisil
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -59,6 +59,10 @@ files:
|
|
59
59
|
- vendor/assets/javascripts/parsley.i18n.it.extra.js
|
60
60
|
- vendor/assets/javascripts/parsley.i18n.it.js
|
61
61
|
- vendor/assets/javascripts/parsley.i18n.ja.js
|
62
|
+
- vendor/assets/javascripts/parsley.i18n.ko.js
|
63
|
+
- vendor/assets/javascripts/parsley.i18n.ms_MY.extra.js
|
64
|
+
- vendor/assets/javascripts/parsley.i18n.ms_MY.js
|
65
|
+
- vendor/assets/javascripts/parsley.i18n.nl.extra.js
|
62
66
|
- vendor/assets/javascripts/parsley.i18n.nl.js
|
63
67
|
- vendor/assets/javascripts/parsley.i18n.pl.js
|
64
68
|
- vendor/assets/javascripts/parsley.i18n.pt-br.js
|
@@ -98,4 +102,3 @@ signing_key:
|
|
98
102
|
specification_version: 4
|
99
103
|
summary: Parsley.js bundled for Rails Asset Pipeline
|
100
104
|
test_files: []
|
101
|
-
has_rdoc:
|