jscott1989 / Veto
Veto Form Validation Library.
$ hg clone http://bitbucket.org/jscott1989/veto/
| commit 99: | b073adcd12f2 |
| parent 98: | e09fc91b7bf7 |
| branch: | default |
Changed (Δ5.9 KB):
js/veto.js (5 lines added, 3 lines removed)
lib/veto.php (2 lines added, 0 lines removed)
lib/vtCustomValidation.class.php (4 lines added, 15 lines removed)
lib/vtDateRangeValidation.class.php (4 lines added, 14 lines removed)
lib/vtDateValidation.class.php (2 lines added, 11 lines removed)
lib/vtEmailAddressValidation.class.php (2 lines added, 11 lines removed)
lib/vtField.class.php (13 lines added, 10 lines removed)
lib/vtLengthValidation.class.php (4 lines added, 14 lines removed)
lib/vtNumberRangeValidation.class.php (4 lines added, 14 lines removed)
lib/vtNumberValidation.class.php (2 lines added, 10 lines removed)
lib/vtOptionalValidation.class.php (2 lines added, 13 lines removed)
lib/vtOptionsValidation.class.php (4 lines added, 13 lines removed)
lib/vtRegularExpressionValidation.class.php (2 lines added, 11 lines removed)
lib/vtRequiredValidation.class.php (2 lines added, 11 lines removed)
lib/vtSameAsValidation.class.php (2 lines added, 12 lines removed)
| … | … | @@ -776,15 +776,17 @@ function vtField(name) { |
776 |
776 |
|
777 |
777 |
// Constructor |
778 |
778 |
this.validation = validation; |
779 |
this.field = field; |
|
779 |
780 |
this.requirement = requirement; |
780 |
781 |
// end constructor |
781 |
782 |
|
782 |
783 |
// Functions |
783 |
784 |
this.validate = function(form, key, configuration) { |
784 |
if (this.requirement.validate(form_data, this.field, configuration)) { |
|
785 |
return this.validation.validate(form_data, key, configuration); |
|
785 |
console.log(this.requirement.validate(form, this.field, configuration)); |
|
786 |
if (!is_empty(this.requirement.validate(form, this.field, configuration))) { |
|
787 |
return this.validation.validate(form, key, configuration); |
|
786 |
788 |
} |
787 |
return |
|
789 |
return []; |
|
788 |
790 |
}; |
789 |
791 |
// end functions |
790 |
792 |
25 |
25 |
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 |
26 |
*/ |
27 |
27 |
|
28 |
// TODO: Escape quotes in strings when outputting to javascript |
|
29 |
||
28 |
30 |
// Veto includes - These will be redundant as this will be merged |
29 |
31 |
// into one minified file for use |
30 |
32 |
include('vtForm.class.php'); |
Up to file-list lib/vtCustomValidation.class.php:
44 |
44 |
$javascript_function = $php_array; |
45 |
45 |
$php_array = array(); |
46 |
46 |
} |
47 |
||
48 |
47 |
$this->php_function = $php_function; |
49 |
48 |
$this->php_array = $php_array; |
50 |
49 |
$this->javascript_function = $javascript_function; |
63 |
62 |
} |
64 |
63 |
} |
65 |
64 |
|
66 |
function javascript($form_name, $set_name, $field_name = null) { |
|
67 |
if (!$field_name) { |
|
68 |
$field_name = $set_name; |
|
69 |
$set_name = null; |
|
70 |
} |
|
71 |
if ($this->javascript_function) { |
|
72 |
if ($set_name) |
|
73 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
74 |
else |
|
75 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
76 |
return $field_name . '.custom("' . $this->javascript_function . '", ' . json_encode($this->javascript_array) . ');'; |
|
77 |
} else { |
|
78 |
return ''; |
|
79 |
} |
|
65 |
function javascript() { |
|
66 |
if ($this->javascript_function) |
|
67 |
return 'vtCustom("' . $this->javascript_function . '", ' . json_encode($this->javascript_array) . ')'; |
|
68 |
else return null; |
|
80 |
69 |
} |
81 |
70 |
} |
82 |
71 |
Up to file-list lib/vtDateRangeValidation.class.php:
67 |
67 |
return array(); |
68 |
68 |
} |
69 |
69 |
|
70 |
function javascript($form_name, $set_name, $field_name = null) { |
|
71 |
if (!$field_name) { |
|
72 |
$field_name = $set_name; |
|
73 |
$set_name = null; |
|
74 |
} |
|
75 |
||
76 |
if ($set_name) |
|
77 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
78 |
else |
|
79 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
80 |
||
81 |
if ($this->earliest && $this->latest) return $field_name . '.dateBetween("' . $this->earliest . '","' . $this->latest . '",' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
82 |
else if ($this->earliest) return $field_name . '.dateEarliest("' . $this->earliest . '",' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
83 |
else return $field_name . '.dateLatest("' . $this->latest . '",' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
70 |
function javascript() { |
|
71 |
if ($this->earliest && $this->latest) return 'vtDateBetween("' . $this->earliest . '","' . $this->latest . '",' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
72 |
else if ($this->earliest) return 'vtDateEarliest("' . $this->earliest . '",' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
73 |
else return 'vtDateLatest("' . $this->latest . '",' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
84 |
74 |
} |
85 |
75 |
} |
86 |
76 |
Up to file-list lib/vtDateValidation.class.php:
53 |
53 |
return array($key => array($this->error)); |
54 |
54 |
} |
55 |
55 |
|
56 |
function javascript($form_name, $set_name, $field_name = null) { |
|
57 |
if (!$field_name) { |
|
58 |
$field_name = $set_name; |
|
59 |
$set_name = null; |
|
60 |
} |
|
61 |
||
62 |
if ($set_name) |
|
63 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
64 |
else |
|
65 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
66 |
|
|
56 |
function javascript() { |
|
57 |
return 'vtDate(' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
67 |
58 |
} |
68 |
59 |
} |
69 |
60 |
Up to file-list lib/vtEmailAddressValidation.class.php:
35 |
35 |
parent::__construct('.*@.*\..*', $options, ($error) ? $error : '%n must be a valid email address'); |
36 |
36 |
} |
37 |
37 |
|
38 |
function javascript($form_name, $set_name, $field_name = null) { |
|
39 |
if (!$field_name) { |
|
40 |
$field_name = $set_name; |
|
41 |
$set_name = null; |
|
42 |
} |
|
43 |
||
44 |
if ($set_name) |
|
45 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
46 |
else |
|
47 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
48 |
|
|
38 |
function javascript() { |
|
39 |
return 'vtEmail(' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
49 |
40 |
} |
50 |
41 |
} |
51 |
42 |
Up to file-list lib/vtField.class.php:
55 |
55 |
|
56 |
56 |
function javascript($form_name, $set_name = null) { |
57 |
57 |
if ($set_name) |
58 |
|
|
58 |
$variable_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($this->name); |
|
59 |
59 |
else |
60 |
|
|
60 |
$variable_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($this->name); |
|
61 |
||
62 |
$ret = 'var ' . $variable_name . ' = vtField("' . $this->name . '");'; |
|
63 |
||
61 |
64 |
if (isset($this->validations)) { |
65 |
$ret .= $variable_name; |
|
62 |
66 |
foreach ($this->validations as $validation) { |
63 |
if ($set_name) { |
|
64 |
$ret .= $validation->javascript($form_name, $set_name, $this->name); |
|
65 |
} else { |
|
66 |
$ret .= $validation->javascript($form_name, $this->name); |
|
67 |
|
|
67 |
$js = $validation->javascript(); |
|
68 |
if ($js) |
|
69 |
$ret .= '.add(' . $validation->javascript() . ')'; |
|
68 |
70 |
} |
71 |
$ret .= ';'; |
|
69 |
72 |
} |
70 |
73 |
|
71 |
74 |
if ($set_name) |
72 |
$ret .= 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_set.add(vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($this->name) . ');'; |
|
73 |
else |
|
74 |
|
|
75 |
$ret .= 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_set.add(' . $variable_name . ');'; |
|
76 |
else |
|
77 |
$ret .= 'vt_' . prepare_javascript_variable($form_name) . '_form.add(' . $variable_name . ');'; |
|
75 |
78 |
return $ret; |
76 |
79 |
} |
77 |
80 |
Up to file-list lib/vtLengthValidation.class.php:
61 |
61 |
return array(); |
62 |
62 |
} |
63 |
63 |
|
64 |
function javascript($form_name, $set_name, $field_name = null) { |
|
65 |
if (!$field_name) { |
|
66 |
$field_name = $set_name; |
|
67 |
$set_name = null; |
|
68 |
} |
|
69 |
||
70 |
if ($set_name) |
|
71 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
72 |
else |
|
73 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
74 |
||
75 |
if ($this->min && $this->max) return $field_name . '.lengthBetween(' . $this->min . ',' . $this->max . ',' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
76 |
else if ($this->min) return $field_name . '.minimumLength(' . $this->min . ',' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
77 |
else return $field_name . '.maximumLength(' . $this->max . ',' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
64 |
function javascript() { |
|
65 |
if ($this->min && $this->max) return 'vtLengthBetween(' . $this->min . ',' . $this->max . ',' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
66 |
else if ($this->min) return 'vtMinimumLength(' . $this->min . ',' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
67 |
else return 'vtMaximumLength(' . $this->max . ',' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
78 |
68 |
} |
79 |
69 |
} |
80 |
70 |
Up to file-list lib/vtNumberRangeValidation.class.php:
48 |
48 |
return array(); |
49 |
49 |
} |
50 |
50 |
|
51 |
function javascript($form_name, $set_name, $field_name = null) { |
|
52 |
if (!$field_name) { |
|
53 |
$field_name = $set_name; |
|
54 |
$set_name = null; |
|
55 |
} |
|
56 |
||
57 |
if ($set_name) |
|
58 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
59 |
else |
|
60 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
61 |
||
62 |
if ($this->min && $this->max) return $field_name . '.between(' . $this->min . ',' . $this->max . ',' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
63 |
else if ($this->min) return $field_name . '.minimum(' . $this->min . ',' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
64 |
else return $field_name . '.maximum(' . $this->max . ',' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
51 |
function javascript() { |
|
52 |
if ($this->min && $this->max) return 'vtBetween(' . $this->min . ',' . $this->max . ',' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
53 |
else if ($this->min) return 'vtMinimum(' . $this->min . ',' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
54 |
else return 'vtMaximum(' . $this->max . ',' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
65 |
55 |
} |
66 |
56 |
} |
67 |
57 |
Up to file-list lib/vtNumberValidation.class.php:
71 |
71 |
return array(); |
72 |
72 |
} |
73 |
73 |
|
74 |
function javascript($form_name, $set_name, $field_name = null) { |
|
75 |
if (!$field_name) { |
|
76 |
$field_name = $set_name; |
|
77 |
$set_name = null; |
|
78 |
} |
|
79 |
if ($set_name) |
|
80 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
81 |
else |
|
82 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
83 |
return $field_name . '.number(' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
74 |
function javascript() { |
|
75 |
return 'vtNumber(' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
84 |
76 |
} |
85 |
77 |
} |
86 |
78 |
Up to file-list lib/vtOptionalValidation.class.php:
39 |
39 |
return array(); |
40 |
40 |
} |
41 |
41 |
|
42 |
function javascript($form_name, $set_name, $field_name = null) { |
|
43 |
// if (!$field_name) { |
|
44 |
// $field_name = $set_name; |
|
45 |
// $set_name = null; |
|
46 |
// } |
|
47 |
// |
|
48 |
// if ($set_name) |
|
49 |
// $field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
50 |
// else |
|
51 |
// $field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
52 |
// return $field_name . '.optional(' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
53 |
// TODO: implement a way to generate the javascript for an validation without attaching it (as is needed for this) |
|
54 |
return false; |
|
42 |
function javascript() { |
|
43 |
return 'vtOptional(' . $this->validation->javascript() . ',"' . $this->field . '", ' . $this->requirement->javascript() . ')'; |
|
55 |
44 |
} |
56 |
45 |
} |
57 |
46 |
Up to file-list lib/vtOptionsValidation.class.php:
64 |
64 |
else return array(); |
65 |
65 |
} |
66 |
66 |
|
67 |
function javascript($form_name, $set_name, $field_name = null) { |
|
68 |
if (!$field_name) { |
|
69 |
$field_name = $set_name; |
|
70 |
$set_name = null; |
|
71 |
} |
|
72 |
if ($set_name) |
|
73 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
74 |
else |
|
75 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
76 |
||
77 |
if (isset($this->_options['should_be_in']) && $this->_options['should_be_in']) return $field_name . '.options(' . json_encode($this->options) . ',' . json_encode($this->_options) . ',"' . $this->error . '");'; |
|
78 |
else return $field_name . '.notOptions(' . json_encode($this->options) . ',' . json_encode($this->_options) . ',"' . $this->error . '");'; |
|
67 |
function javascript() { |
|
68 |
if (isset($this->_options['should_be_in']) && $this->_options['should_be_in']) return 'vtOptions(' . json_encode($this->options) . ',' . json_encode($this->_options) . ',"' . $this->error . '")'; |
|
69 |
else return 'vtNotOptions(' . json_encode($this->options) . ',' . json_encode($this->_options) . ',"' . $this->error . '")'; |
|
79 |
70 |
} |
80 |
71 |
} |
81 |
72 |
|
106 |
97 |
} |
107 |
98 |
|
108 |
99 |
if (!$error) { // Overwrite default error |
109 |
$error = '%n must not be |
|
100 |
$error = '%n must not be ' . $to . ''; |
|
110 |
101 |
} |
111 |
102 |
|
112 |
103 |
return vtOptionsValidation(array($to), array_merge(array('should_be_in' => false), $options), $error); |
Up to file-list lib/vtRegularExpressionValidation.class.php:
42 |
42 |
return array(); |
43 |
43 |
} |
44 |
44 |
|
45 |
function javascript($form_name, $set_name, $field_name = null) { |
|
46 |
if (!$field_name) { |
|
47 |
$field_name = $set_name; |
|
48 |
$set_name = null; |
|
49 |
} |
|
50 |
||
51 |
if ($set_name) |
|
52 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
53 |
else |
|
54 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
55 |
|
|
45 |
function javascript() { |
|
46 |
return 'vtMatches("' . $this->regex . '",' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
56 |
47 |
} |
57 |
48 |
} |
58 |
49 |
Up to file-list lib/vtRequiredValidation.class.php:
40 |
40 |
return array(); |
41 |
41 |
} |
42 |
42 |
|
43 |
function javascript($form_name, $set_name, $field_name = null) { |
|
44 |
if (!$field_name) { |
|
45 |
$field_name = $set_name; |
|
46 |
$set_name = null; |
|
47 |
} |
|
48 |
||
49 |
if ($set_name) |
|
50 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
51 |
else |
|
52 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
53 |
|
|
43 |
function javascript() { |
|
44 |
return 'vtRequired(' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
54 |
45 |
} |
55 |
46 |
} |
56 |
47 |
Up to file-list lib/vtSameAsValidation.class.php:
41 |
41 |
return array($key => array($this->error)); |
42 |
42 |
} |
43 |
43 |
|
44 |
function javascript($form_name, $set_name, $field_name = null) { |
|
45 |
if (!$field_name) { |
|
46 |
$field_name = $set_name; |
|
47 |
$set_name = null; |
|
48 |
} |
|
49 |
||
50 |
// TODO: make this a function in vtValidation - repeated too much |
|
51 |
if ($set_name) |
|
52 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($field_name); |
|
53 |
else |
|
54 |
$field_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($field_name); |
|
55 |
return $field_name . '.sameAs("' . $this->other_field . '",' . json_encode($this->options) . ',"' . $this->error . '");'; |
|
44 |
function javascript() { |
|
45 |
return 'vtSameAs("' . $this->other_field . '",' . json_encode($this->options) . ',"' . $this->error . '")'; |
|
56 |
46 |
} |
57 |
47 |
} |
58 |
48 |
