parsley-rails 1.2.0.0 → 1.2.1.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e645648c07caf2c092c7d7d1dc94a9097268875d
|
4
|
+
data.tar.gz: 86dd883ce8c1944f7dd4232d8a8be8634120a327
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79b12de3cf7140818448e70af178d31516702f104d3a07e4c98e454764a735473641f7683a2c449b8f3413501cefa78542023200d3683fcaa850125edac7c4d1
|
7
|
+
data.tar.gz: 90ac0960ef5312551f973abf51261eb62404df710ffb841f2f70e5fc8640a5852d6e977463540e0b8d96155b7dd0e81220a01e92e271d916178f8367478ae58d
|
@@ -0,0 +1,43 @@
|
|
1
|
+
window.ParsleyConfig = window.ParsleyConfig || {};
|
2
|
+
|
3
|
+
(function ($) {
|
4
|
+
window.ParsleyConfig = $.extend( true, {}, window.ParsleyConfig, {
|
5
|
+
messages: {
|
6
|
+
// parsley //////////////////////////////////////
|
7
|
+
defaultMessage: "Dette felt er ikke gyldigt."
|
8
|
+
, type: {
|
9
|
+
email: "Dette felt skal være en gyldig email."
|
10
|
+
, url: "Dette felt skal være en gyldig url."
|
11
|
+
, urlstrict: "Dette felt skal være en gyldig url."
|
12
|
+
, number: "Dette felt skal være et gyldig nummer."
|
13
|
+
, digits: "Dette felt skal være tal."
|
14
|
+
, dateIso: "Dette felt skal være en gyldig dato (YYYY-MM-DD)."
|
15
|
+
, alphanum: "Dette felt skal være bogstaver."
|
16
|
+
, phone: "Dette felt skal være et gyldigt telefon nummer."
|
17
|
+
}
|
18
|
+
, notnull: "Dette felt må ikke være null."
|
19
|
+
, notblank: "Dette felt må ikke være tome."
|
20
|
+
, required: "Dette felt skal udfyldes."
|
21
|
+
, regexp: "Dette felt er ikke gyldigt."
|
22
|
+
, min: "Dette felt skal være større end %s."
|
23
|
+
, max: "Dette felt skal være mindre end %s."
|
24
|
+
, range: "Dette felt skal være mellem %s og %s."
|
25
|
+
, minlength: "Dette felt er for kort. Det skal have %s tegn eller mere."
|
26
|
+
, maxlength: "Dette felt is too langt. Det skal have %s tegn eller mindre."
|
27
|
+
, rangelength: "Længden på dette felt er ikke gyldigt. Det skal være %s og %s tegn langt."
|
28
|
+
, mincheck: "Du skal vælge mindst %s valg."
|
29
|
+
, maxcheck: "Du skal vælge %s valg eller mindre."
|
30
|
+
, rangecheck: "Du skal vælge mellem %s og %s valg."
|
31
|
+
, equalto: "Dette felt skal være det samme."
|
32
|
+
|
33
|
+
// parsley.extend ///////////////////////////////
|
34
|
+
, minwords: "Dette felt skal indeholde mindst %s ord."
|
35
|
+
, maxwords: "Dette felt skal indeholde højst %s ord."
|
36
|
+
, rangewords: "Dette felt skal indeholde mellem %s og %s ord."
|
37
|
+
, greaterthan: "Dette felt skal være større end %s."
|
38
|
+
, lessthan: "Dette felt skal være mindre end %s."
|
39
|
+
, beforedate: "Denne dato skal være før %s."
|
40
|
+
, afterdate: "Denne dato skal være efter %s."
|
41
|
+
}
|
42
|
+
});
|
43
|
+
}(window.jQuery || window.Zepto));
|
@@ -6,32 +6,32 @@ window.ParsleyConfig = window.ParsleyConfig || {};
|
|
6
6
|
// parsley //////////////////////////////////////
|
7
7
|
defaultMessage: "Tämä arvo on virheellinen."
|
8
8
|
, type: {
|
9
|
-
email: "Tämän
|
10
|
-
, url: "Tämän
|
11
|
-
, urlstrict: "Tämän
|
12
|
-
, number: "Tämän
|
13
|
-
, digits: "Tämän
|
14
|
-
, dateIso: "Tämän
|
15
|
-
, alphanum: "Tämän
|
9
|
+
email: "Tämän arvon pitäisi olla sähköpostiosoite."
|
10
|
+
, url: "Tämän arvon pitäisi olla URL-osoite."
|
11
|
+
, urlstrict: "Tämän arvon pitäisi olla URL-osoite."
|
12
|
+
, number: "Tämän arvon pitäisi olla numero."
|
13
|
+
, digits: "Tämän arvon pitäisi olla numeroita."
|
14
|
+
, dateIso: "Tämän arvon pitäisi olla päivämäärä (VVVV-KK-PP)."
|
15
|
+
, alphanum: "Tämän arvon pitäisi olla alfanumeerinen."
|
16
16
|
}
|
17
|
-
, notnull: "Tämän
|
18
|
-
, notblank: "Tämän
|
17
|
+
, notnull: "Tämän arvon ei pitäisi olla nolla."
|
18
|
+
, notblank: "Tämän arvon ei pitäisi olla tyhjä."
|
19
19
|
, required: "Tämä arvo on pakollinen."
|
20
20
|
, regexp: "Tämä arvo vaikuttaa virheelliseltä."
|
21
|
-
, min: "Tämän
|
22
|
-
, max: "Tämän
|
23
|
-
, range: "Tämän
|
24
|
-
, minlength: "
|
25
|
-
, maxlength: "
|
21
|
+
, min: "Tämän arvon pitäisi olla suurempi kuin %s."
|
22
|
+
, max: "Tämän arvon pitäisi olla pienempi kuin %s."
|
23
|
+
, range: "Tämän arvon pitäisi olla lukujen %s ja %s välillä."
|
24
|
+
, minlength: "Tämä arvo on liian lyhyt. Tässä pitäisi olla %s merkkiä tai enemmän."
|
25
|
+
, maxlength: "Tämä arvo on liian pitkä. Tässä pitäisi olla %s merkkiä tai vähemmän."
|
26
26
|
, rangelength: "Tämän arvon pituus on virheellinen. Tämän pitäisi olla %s-%s merkkiä pitkä."
|
27
27
|
, equalto: "Tämän arvon pitäisi vastata toista arvoa."
|
28
|
-
, mincheck: "Sinun pitää valita vähintään %s
|
29
|
-
, maxcheck: "Sinun pitää valita %s
|
30
|
-
, rangecheck: "Sinun pitää valita %s-%s
|
28
|
+
, mincheck: "Sinun pitää valita vähintään %s."
|
29
|
+
, maxcheck: "Sinun pitää valita %s tai vähemmän."
|
30
|
+
, rangecheck: "Sinun pitää valita %s-%s."
|
31
31
|
|
32
32
|
// parsley.extend ///////////////////////////////
|
33
33
|
, minwords: "Tämän arvon pitäisi sisältää vähintään %s sana(a)."
|
34
|
-
, maxwords: "
|
34
|
+
, maxwords: "Tämä arvo voi olla korkeintaan %s sana(a)."
|
35
35
|
, rangewords: "Tämän arvo pitäisi olla %s-%s sana(a)."
|
36
36
|
, greaterthan: "Tämän arvo pitäisi olla suurempi kuin %s."
|
37
37
|
, lessthan: "Tämän arvo pitäisi olla pienempi kuin %s."
|
@@ -225,6 +225,13 @@
|
|
225
225
|
$( self.UI.ulError + ' .remote' ).remove();
|
226
226
|
}
|
227
227
|
|
228
|
+
if (false === isConstraintValid) {
|
229
|
+
self.options.listeners.onFieldError( self.element, self.constraints, self );
|
230
|
+
} else if (true === isConstraintValid && false === self.options.listeners.onFieldSuccess( self.element, self.constraints, self )) {
|
231
|
+
// if onFieldSuccess returns (bool) false, consider that field si invalid
|
232
|
+
isConstraintValid = false;
|
233
|
+
}
|
234
|
+
|
228
235
|
self.updtConstraint( { name: 'remote', valid: isConstraintValid }, message );
|
229
236
|
self.manageValidationResult();
|
230
237
|
};
|
@@ -335,10 +342,27 @@
|
|
335
342
|
* Add / override a validator in validators list
|
336
343
|
*
|
337
344
|
* @method addValidator
|
338
|
-
* @param {String} name Validator name.
|
339
|
-
* @param {Function} fn Validator
|
345
|
+
* @param {String} name Validator name.
|
346
|
+
* @param {Function} fn Validator. Must return { validator: fn(), priority: int }
|
340
347
|
*/
|
341
348
|
, addValidator: function ( name, fn ) {
|
349
|
+
if ('undefined' === typeof fn().validate) {
|
350
|
+
throw new Error( 'Validator `' + name + '` must have a validate method. See more here: http://parsleyjs.org/documentation.html#javascript-general' );
|
351
|
+
}
|
352
|
+
|
353
|
+
// add default prioirty if not given.
|
354
|
+
if ('undefined' === typeof fn().priority) {
|
355
|
+
fn = {
|
356
|
+
validate: fn().validate
|
357
|
+
, priority: 32
|
358
|
+
};
|
359
|
+
|
360
|
+
// Warn if possible
|
361
|
+
if (window.console && window.console.warn) {
|
362
|
+
window.console.warn( 'Validator `' + name + '` should have a priority. Default priority 32 given' );
|
363
|
+
}
|
364
|
+
}
|
365
|
+
|
342
366
|
this.validators[ name ] = fn;
|
343
367
|
}
|
344
368
|
|
@@ -498,8 +522,8 @@
|
|
498
522
|
* @method manageErrorContainer
|
499
523
|
*/
|
500
524
|
, manageErrorContainer: function () {
|
501
|
-
var errorContainer = this.options.errorContainer || this.options.errors.container( this.element, this.ParsleyInstance.isRadioOrCheckbox )
|
502
|
-
, ulTemplate = this.options.animate ? this.ulTemplate.
|
525
|
+
var errorContainer = this.options.errorContainer || this.options.errors.container( this.ParsleyInstance.element, this.ParsleyInstance.isRadioOrCheckbox )
|
526
|
+
, ulTemplate = this.options.animate ? this.ulTemplate.css('display', '') : this.ulTemplate;
|
503
527
|
|
504
528
|
if ( 'undefined' !== typeof errorContainer ) {
|
505
529
|
$( errorContainer ).append( ulTemplate );
|
@@ -593,8 +617,9 @@
|
|
593
617
|
}
|
594
618
|
|
595
619
|
// add html5 supported types & options
|
596
|
-
|
597
|
-
|
620
|
+
var type = this.$element.attr( 'type' );
|
621
|
+
if ( 'undefined' !== typeof type && new RegExp( type, 'i' ).test( 'email url number range tel' ) ) {
|
622
|
+
this.options.type = 'tel' === type ? 'phone' : type;
|
598
623
|
|
599
624
|
// number and range types could have min and/or max values
|
600
625
|
if ( new RegExp( this.options.type, 'i' ).test( 'number range' ) ) {
|
@@ -803,8 +828,8 @@
|
|
803
828
|
* @returns {String} val
|
804
829
|
*/
|
805
830
|
, getVal: function () {
|
806
|
-
if ('undefined' !== typeof this.$element.domApi()[ 'value' ]) {
|
807
|
-
return this.$element.domApi()[ 'value' ];
|
831
|
+
if ('undefined' !== typeof this.$element.domApi( this.options.namespace )[ 'value' ]) {
|
832
|
+
return this.$element.domApi( this.options.namespace )[ 'value' ];
|
808
833
|
}
|
809
834
|
|
810
835
|
return this.$element.val();
|
@@ -979,7 +1004,6 @@
|
|
979
1004
|
for ( var constraint in this.constraints ) {
|
980
1005
|
if ( false === this.constraints[ constraint ].valid ) {
|
981
1006
|
errors.push( this.constraints[ constraint ]);
|
982
|
-
// this.UI.manageError( this.constraints[ constraint ] );
|
983
1007
|
valid = false;
|
984
1008
|
} else if ( true === this.constraints[ constraint ].valid ) {
|
985
1009
|
this.UI.removeError( this.constraints[ constraint ].name );
|
@@ -996,10 +1020,15 @@
|
|
996
1020
|
return true;
|
997
1021
|
} else if ( false === this.valid ) {
|
998
1022
|
if ( true === this.options.priorityEnabled ) {
|
999
|
-
var maxPriority = 0, constraint;
|
1000
|
-
for ( var i = 0; i < errors.length; i++ )
|
1001
|
-
|
1023
|
+
var maxPriority = 0, constraint, priority;
|
1024
|
+
for ( var i = 0; i < errors.length; i++ ) {
|
1025
|
+
priority = this.Validator.validators[ errors[ i ].name ]().priority;
|
1026
|
+
|
1027
|
+
if ( priority > maxPriority ) {
|
1002
1028
|
constraint = errors[ i ];
|
1029
|
+
maxPriority = priority;
|
1030
|
+
}
|
1031
|
+
}
|
1003
1032
|
this.UI.manageError( constraint );
|
1004
1033
|
} else {
|
1005
1034
|
for ( var i = 0; i < errors.length; i++ )
|
@@ -1364,7 +1393,8 @@
|
|
1364
1393
|
* @return {Mixed} public class method return
|
1365
1394
|
*/
|
1366
1395
|
$.fn.parsley = function ( option, fn ) {
|
1367
|
-
var
|
1396
|
+
var namespace = { namespace: $( this ).data( 'parsleyNamespace' ) ? $( this ).data( 'parsleyNamespace' ) : ( 'undefined' !== typeof option && 'undefined' !== typeof option.namespace ? option.namespace : $.fn.parsley.defaults.namespace ) }
|
1397
|
+
, options = $.extend( true, {}, $.fn.parsley.defaults, 'undefined' !== typeof window.ParsleyConfig ? window.ParsleyConfig : {}, option, this.domApi( namespace.namespace ) )
|
1368
1398
|
, newInstance = null;
|
1369
1399
|
|
1370
1400
|
function bind ( self, type ) {
|
@@ -1400,7 +1430,7 @@
|
|
1400
1430
|
}
|
1401
1431
|
|
1402
1432
|
// if a form elem is given, bind all its input children
|
1403
|
-
if ( $( this ).is( 'form' ) || 'undefined' !== typeof $( this ).domApi()[ 'bind' ] ) {
|
1433
|
+
if ( $( this ).is( 'form' ) || 'undefined' !== typeof $( this ).domApi( namespace.namespace )[ 'bind' ] ) {
|
1404
1434
|
newInstance = bind ( $( this ), 'parsleyForm' );
|
1405
1435
|
|
1406
1436
|
// if it is a Parsley supported single element, bind it too, except inputs type hidden
|
@@ -1412,8 +1442,6 @@
|
|
1412
1442
|
return 'function' === typeof fn ? fn() : newInstance;
|
1413
1443
|
};
|
1414
1444
|
|
1415
|
-
$.fn.parsley.Constructor = ParsleyForm;
|
1416
|
-
|
1417
1445
|
/* PARSLEY auto-binding
|
1418
1446
|
* =================================================== */
|
1419
1447
|
$( window ).on( 'load', function () {
|
@@ -1424,13 +1452,21 @@
|
|
1424
1452
|
|
1425
1453
|
/* PARSLEY DOM API
|
1426
1454
|
* =================================================== */
|
1427
|
-
$.fn.domApi = function () {
|
1428
|
-
var
|
1429
|
-
|
1430
|
-
|
1431
|
-
|
1455
|
+
$.fn.domApi = function ( namespace ) {
|
1456
|
+
var attribute,
|
1457
|
+
obj = {}
|
1458
|
+
, regex = new RegExp("^" + namespace, 'i');
|
1459
|
+
|
1460
|
+
if ( 'undefined' === typeof this[ 0 ] ) {
|
1461
|
+
return {};
|
1462
|
+
}
|
1463
|
+
|
1464
|
+
for ( var i in this[ 0 ].attributes ) {
|
1465
|
+
attribute = this[ 0 ].attributes[ i ];
|
1466
|
+
if ( attribute.specified && regex.test( attribute.name ) ) {
|
1467
|
+
obj[ camelize( attribute.name.replace( namespace, '' ) ) ] = deserializeValue( attribute.value );
|
1432
1468
|
}
|
1433
|
-
}
|
1469
|
+
}
|
1434
1470
|
|
1435
1471
|
return obj;
|
1436
1472
|
};
|
@@ -1483,7 +1519,8 @@
|
|
1483
1519
|
*/
|
1484
1520
|
$.fn.parsley.defaults = {
|
1485
1521
|
// basic data-api overridable properties here..
|
1486
|
-
|
1522
|
+
namespace: 'parsley-' // DOM-API, default 'parsley-'. W3C valid would be 'data-parsley-' but quite ugly
|
1523
|
+
, inputs: 'input, textarea, select' // Default supported inputs.
|
1487
1524
|
, excluded: 'input[type=hidden], input[type=file], :disabled' // Do not validate input[type=hidden] & :disabled.
|
1488
1525
|
, priorityEnabled: true // Will display only one error at the time depending on validators priorities
|
1489
1526
|
, trigger: false // $.Event() that will trigger validation. eg: keyup, change..
|
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: 1.2.
|
4
|
+
version: 1.2.1.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: 2013-11-
|
11
|
+
date: 2013-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Parsley.js bundled for Rails Asset Pipeline
|
14
14
|
email:
|
@@ -31,6 +31,7 @@ files:
|
|
31
31
|
- vendor/assets/javascripts/parsley.i18n.ca.js
|
32
32
|
- vendor/assets/javascripts/parsley.i18n.cs.js
|
33
33
|
- vendor/assets/javascripts/parsley.i18n.cy.js
|
34
|
+
- vendor/assets/javascripts/parsley.i18n.da.js
|
34
35
|
- vendor/assets/javascripts/parsley.i18n.de.js
|
35
36
|
- vendor/assets/javascripts/parsley.i18n.en.js
|
36
37
|
- vendor/assets/javascripts/parsley.i18n.es.js
|