jscott1989 / Veto

Veto Form Validation Library.

Clone this repository (size: 194.5 KB): HTTPS / SSH
$ hg clone http://bitbucket.org/jscott1989/veto/
commit 99: b073adcd12f2
parent 98: e09fc91b7bf7
branch: default
Added optional validation link
Jonathan Scott / jscott1989
4 months ago

Changed (Δ5.9 KB):

raw changeset »

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)

Up to file-list js/veto.js:

@@ -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 array();
789
                return [];
788
790
             };
789
791
             // end functions
790
792

Up to file-list lib/veto.php:

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
			return $field_name . '.date(' . json_encode($this->options) . ',"' . $this->error . '");';
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
			return $field_name . '.email(' . json_encode($this->options) . ',"' . $this->error . '");';
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
				$ret = 'var vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($this->name) . ' = vtField("' . $this->name . '");';
58
			    $variable_name = 'vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($set_name) . '_' . prepare_javascript_variable($this->name);
59
59
			else
60
				$ret = 'var vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($this->name) . ' = vtField("' . $this->name . '");';
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
				$ret .= 'vt_' . prepare_javascript_variable($form_name) . '_form.add(vt_' . prepare_javascript_variable($form_name) . '_' . prepare_javascript_variable($this->name) . ');';
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 "' . $to . '"';
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
			return $field_name . '.matches("' . $this->regex . '",' . json_encode($this->options) . ',"' . $this->error . '");';
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
			return $field_name . '.required(' . json_encode($this->options) . ',"' . $this->error . '");';
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