Skip to content

Commit 6588fa8

Browse files
Upgrading the version to 2.2.beta.50 of Jquery Form Validator.
1 parent 237bd11 commit 6588fa8

File tree

14 files changed

+1850
-280
lines changed

14 files changed

+1850
-280
lines changed

app/assets/javascripts/date.dev.js

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
/**
2+
* jQuery Form Validator Module: Date
3+
* ------------------------------------------
4+
* Created by Victor Jonsson <http://www.victorjonsson.se>
5+
* Documentation and issue tracking on Github <https://github.com/victorjonsson/jQuery-Form-Validator/>
6+
*
7+
* The following validators will be added by this module:
8+
* - Time (HH:mmm)
9+
* - Birth date
10+
*
11+
* @website http://formvalidator.net/#location-validators
12+
* @license Dual licensed under the MIT or GPL Version 2 licenses
13+
* @version 2.2.beta.50
14+
*/
15+
(function($) {
16+
17+
/*
18+
* Validate time hh:mm
19+
*/
20+
$.formUtils.addValidator({
21+
name : 'time',
22+
validatorFunction : function(time) {
23+
if (time.match(/^(\d{2}):(\d{2})$/) === null) {
24+
return false;
25+
} else {
26+
var hours = parseInt(time.split(':')[0],10);
27+
var minutes = parseInt(time.split(':')[1],10);
28+
if( hours > 23 || minutes > 59 ) {
29+
return false;
30+
}
31+
}
32+
return true;
33+
},
34+
errorMessage : '',
35+
errorMessageKey: 'badTime'
36+
});
37+
38+
/*
39+
* Is this a valid birth date
40+
*/
41+
$.formUtils.addValidator({
42+
name : 'birthdate',
43+
validatorFunction : function(val, $el, conf) {
44+
var dateFormat = 'yyyy-mm-dd';
45+
if($el.valAttr('format')) {
46+
dateFormat = $el.valAttr('format');
47+
}
48+
else if(typeof conf.dateFormat != 'undefined') {
49+
dateFormat = conf.dateFormat;
50+
}
51+
52+
var inputDate = $.formUtils.parseDate(val, dateFormat);
53+
if (!inputDate) {
54+
return false;
55+
}
56+
57+
var d = new Date();
58+
var currentYear = d.getFullYear();
59+
var year = inputDate[0];
60+
var month = inputDate[1];
61+
var day = inputDate[2];
62+
63+
if (year === currentYear) {
64+
var currentMonth = d.getMonth() + 1;
65+
if (month === currentMonth) {
66+
var currentDay = d.getDate();
67+
return day <= currentDay;
68+
}
69+
else {
70+
return month < currentMonth;
71+
}
72+
}
73+
else {
74+
return year < currentYear && year > (currentYear - 124); // we can not live for ever yet...
75+
}
76+
},
77+
errorMessage : '',
78+
errorMessageKey: 'badDate'
79+
});
80+
81+
})(jQuery);

app/assets/javascripts/file.dev.js

Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
/**
2+
* jQuery Form Validator Module: File
3+
* ------------------------------------------
4+
* Created by Victor Jonsson <http://www.victorjonsson.se>
5+
*
6+
* The following validators will be added by this module:
7+
* - mime type
8+
* - file size
9+
* - file extension
10+
*
11+
* @website http://formvalidator.net/
12+
* @license Dual licensed under the MIT or GPL Version 2 licenses
13+
* @version 2.2.beta.50
14+
*/
15+
(function($, window) {
16+
17+
'use strict';
18+
19+
var SUPPORTS_FILE_READER = typeof window.FileReader != 'undefined',
20+
21+
/**
22+
* @return {Array}
23+
*/
24+
_getTypes = function($input) {
25+
var allowedTypes = $.split( ($input.valAttr('allowing') || '').toLowerCase() );
26+
27+
if( $.inArray('jpg', allowedTypes) > -1 && $.inArray('jpeg', allowedTypes) == -1)
28+
allowedTypes.push('jpeg');
29+
else if( $.inArray('jpeg', allowedTypes) > -1 && $.inArray('jpg', allowedTypes) == -1)
30+
allowedTypes.push('jpg');
31+
return allowedTypes;
32+
},
33+
34+
/**
35+
* @param {Object} obj
36+
* @param {String} key
37+
* @param {String} insert
38+
* @param {Object} lang
39+
*/
40+
_generateErrorMsg = function(obj, key, insert, lang) {
41+
var msg = lang[key];
42+
obj.errorMessageKey = ''; // only use message attached to this object
43+
obj.errorMessage = msg.replace('\%s', insert);
44+
},
45+
46+
/**
47+
* @param {String} msg
48+
*/
49+
_log = function(msg) {
50+
if( window.console && window.console.log ) {
51+
window.console.log(msg);
52+
}
53+
};
54+
55+
/*
56+
* Validate mime type (falls back on validate_extension in older browsers)
57+
*/
58+
$.formUtils.addValidator({
59+
name : 'mime',
60+
validatorFunction : function(str, $input, conf, language) {
61+
62+
if( SUPPORTS_FILE_READER ) {
63+
var valid = true,
64+
files = $input.get(0).files || [],
65+
mime = '',
66+
allowedTypes = _getTypes($input);
67+
68+
if( files.length ) {
69+
$.each(files, function(i, file) {
70+
valid = false;
71+
mime = file.type || '';
72+
$.each(allowedTypes, function(j, type) {
73+
valid = mime.indexOf(type) > -1;
74+
if( valid ) {
75+
return false;
76+
}
77+
});
78+
return valid;
79+
});
80+
81+
if( !valid ) {
82+
_log('Trying to upload a file with mime type '+mime+' which is not allowed');
83+
_generateErrorMsg(this, 'wrongFileType', allowedTypes.join(', '), language);
84+
}
85+
}
86+
87+
return valid;
88+
89+
} else {
90+
_log('FileReader not supported by browser, will check file extension');
91+
return $.formUtils.validators.validate_extension.validatorFunction(str, $input);
92+
}
93+
},
94+
errorMessage : '',
95+
errorMessageKey: 'wrongFileType'
96+
});
97+
98+
/**
99+
* Validate file extension
100+
*/
101+
$.formUtils.addValidator({
102+
name : 'extension',
103+
validatorFunction : function(value, $input, conf, language) {
104+
var valid = true,
105+
_this = this,
106+
allowedTypes = _getTypes($input);
107+
108+
$.each($input.get(0).files || [value], function(i, file) {
109+
var val = typeof file == 'string' ? file : (file.value || file.fileName || file.name),
110+
ext = val.substr( val.lastIndexOf('.')+1 );
111+
112+
if( $.inArray(ext.toLowerCase(), allowedTypes) == -1 ) {
113+
valid = false;
114+
_generateErrorMsg(_this, 'wrongFileType', allowedTypes.join(', '), language);
115+
return false;
116+
}
117+
});
118+
return valid;
119+
},
120+
errorMessage : '',
121+
errorMessageKey: 'wrongFileType'
122+
});
123+
124+
/**
125+
* Validate file size
126+
*/
127+
$.formUtils.addValidator({
128+
name : 'size',
129+
validatorFunction : function(val, $input, conf, language) {
130+
var maxSize = $input.valAttr('max-size');
131+
if( !maxSize ) {
132+
_log('Input "'+$input.attr('name')+'" is missing data-validation-max-size attribute');
133+
return true;
134+
} else if( !SUPPORTS_FILE_READER ) {
135+
return true; // no fallback available
136+
}
137+
138+
var maxBytes = $.formUtils.convertSizeNameToBytes(maxSize),
139+
valid = true;
140+
141+
$.each($input.get(0).files || [], function(i, file) {
142+
valid = file.size <= maxBytes;
143+
return valid;
144+
});
145+
146+
if( !valid ) {
147+
_generateErrorMsg(this, 'wrongFileSize', maxSize, language);
148+
}
149+
return valid;
150+
},
151+
errorMessage : '',
152+
errorMessageKey: 'wrongFileSize'
153+
});
154+
155+
/**
156+
* Make this function accessible via formUtils for unit tests
157+
* @param {String} sizeName
158+
* @return {Number}
159+
*/
160+
$.formUtils.convertSizeNameToBytes = function(sizeName) {
161+
sizeName = sizeName.toUpperCase();
162+
if( sizeName.substr(sizeName.length-1, 1) == 'M' ) {
163+
return parseInt(sizeName.substr(0, sizeName.length-1), 10) * 1024 * 1024;
164+
} else if( sizeName.substr(sizeName.length-2, 2) == 'MB' ) {
165+
return parseInt(sizeName.substr(0, sizeName.length-2), 10) * 1024 * 1024;
166+
} else if( sizeName.substr(sizeName.length-2, 2) == 'KB' ) {
167+
return parseInt(sizeName.substr(0, sizeName.length-2), 10) * 1024;
168+
} else if( sizeName.substr(sizeName.length-1, 1) == 'B' ) {
169+
return parseInt(sizeName.substr(0, sizeName.length-1), 10);
170+
} else {
171+
return parseInt(sizeName, 10);
172+
}
173+
};
174+
175+
/*
176+
* This event listener will remove error messages for file
177+
* inputs when file changes
178+
*/
179+
$(window).one('validatorsLoaded formValidationSetup', function(evt, $form) {
180+
var $inputs;
181+
if( $form ) {
182+
$inputs = $form.find('input[type="file"]');
183+
} else {
184+
$inputs = $('input[type="file"]');
185+
}
186+
187+
$inputs.filter('*[data-validation]').bind('change', function() {
188+
$(this)
189+
.removeClass('error')
190+
.parent()
191+
.find('.form-error').remove();
192+
});
193+
});
194+
195+
})(jQuery, window);

app/assets/javascripts/file.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)