polymer-rails-forms 0.2.01 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/assets/rails-forms/rails-form-helpers.html +295 -422
- data/assets/rails-forms/rails-form-validators.html +24 -18
- data/assets/rails-forms/rails-form.html +533 -186
- metadata +4 -3
@@ -1,14 +1,11 @@
|
|
1
1
|
<script>
|
2
2
|
var Validation = {
|
3
|
-
|
4
|
-
validatedInputs: {},
|
5
|
-
|
6
|
-
addValidation: function(type, input){
|
3
|
+
addValidation: function(type, input, structure, key, data){
|
7
4
|
//TODO should validate everything
|
8
|
-
if (
|
9
|
-
var fn = function(){ this.validate(
|
10
|
-
} else if (!!
|
11
|
-
var fn = function(){ this[
|
5
|
+
if (structure.required){
|
6
|
+
var fn = function(k){ return this.validate(structure.type, input, true, data, k); }.bind(this, key)
|
7
|
+
} else if (!!structure.validates){
|
8
|
+
var fn = function(k){ return this[structure.validates](type, input, true || false, data, k) }.bind(this, key)
|
12
9
|
} else {
|
13
10
|
var fn = function(){ return false; }
|
14
11
|
}
|
@@ -19,6 +16,15 @@
|
|
19
16
|
input.addEventListener('DOMNodeRemoved', function(){ delete this.validatedInputs[key] }.bind(this), false);
|
20
17
|
},
|
21
18
|
|
19
|
+
genIndexStoreKey: function(){
|
20
|
+
var key = "_" + ((Math.random() * 1000000) | 0);
|
21
|
+
while(this.validatedInputs[key] !== void(0)){
|
22
|
+
key = "_" + ((Math.random() * 1000000) | 0);
|
23
|
+
}
|
24
|
+
|
25
|
+
return key;
|
26
|
+
},
|
27
|
+
|
22
28
|
invalidate: function(type, input, isInvalid){
|
23
29
|
var parent = this.findParent(input, 'gc-input-decorator'),
|
24
30
|
wrapper = this.findParent(input, '.input-wrapper'),
|
@@ -43,10 +49,8 @@
|
|
43
49
|
}
|
44
50
|
},
|
45
51
|
|
46
|
-
validate: function(type, input, required,
|
47
|
-
|
48
|
-
invalidate = invalidate || true;
|
49
|
-
|
52
|
+
validate: function(type, input, required, data, key){
|
53
|
+
|
50
54
|
var validators = {
|
51
55
|
string: function(){
|
52
56
|
return !(required && input.value.replace(/(^ *| *$)/g, "").length > 0);
|
@@ -89,13 +93,17 @@
|
|
89
93
|
}.bind(this),
|
90
94
|
|
91
95
|
location: function(){
|
92
|
-
|
96
|
+
return data[key].lat === null || data[key].lng === null
|
93
97
|
}.bind(this),
|
94
98
|
|
95
99
|
image: function(){
|
96
100
|
return !(required && input.value.length > 0)
|
97
101
|
}.bind(this),
|
98
102
|
|
103
|
+
file: function(){
|
104
|
+
return !(required && input.value.length > 0)
|
105
|
+
}.bind(this),
|
106
|
+
|
99
107
|
select: function(){
|
100
108
|
return false;
|
101
109
|
}
|
@@ -103,10 +111,9 @@
|
|
103
111
|
|
104
112
|
var isInvalid = (!!validators[type] && validators[type]())
|
105
113
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
114
|
+
|
115
|
+
this.invalidate(type, input, isInvalid);
|
116
|
+
|
110
117
|
return isInvalid;
|
111
118
|
},
|
112
119
|
|
@@ -117,7 +124,6 @@
|
|
117
124
|
isInvalid = true;
|
118
125
|
}
|
119
126
|
}
|
120
|
-
|
121
127
|
return isInvalid;
|
122
128
|
}
|
123
129
|
}
|