guardsjs-rails 1.0.0 → 1.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.
- data/lib/guardsjs-rails/version.rb +1 -1
- data/vendor/assets/javascripts/guards.js +113 -10
- metadata +3 -3
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Guards JavaScript jQuery Plugin v1.
|
2
|
+
* Guards JavaScript jQuery Plugin v1.1.0
|
3
3
|
* https://github.com/on-site/guards.js
|
4
4
|
*
|
5
5
|
* Copyright 2010-2013, On-Site.com, http://www.on-site.com/
|
@@ -8,7 +8,7 @@
|
|
8
8
|
* Includes code for email and phone number validation from the jQuery
|
9
9
|
* Validation plugin. http://docs.jquery.com/Plugins/Validation
|
10
10
|
*
|
11
|
-
* Date:
|
11
|
+
* Date: Fri Jun 28 00:51:31 2013 -0700
|
12
12
|
*/
|
13
13
|
|
14
14
|
/**
|
@@ -48,7 +48,7 @@
|
|
48
48
|
return $.guards.add(selector);
|
49
49
|
};
|
50
50
|
|
51
|
-
$.guard.version = "1.
|
51
|
+
$.guard.version = "1.1.0";
|
52
52
|
|
53
53
|
$.Guards = function() {
|
54
54
|
var self = this;
|
@@ -229,6 +229,59 @@
|
|
229
229
|
*/
|
230
230
|
this.name("disallow").using(this.aggregate(this.isAllValid, this.isDisallowed)).message(this.arrayMessage("Please don't enter: #{0}."));
|
231
231
|
|
232
|
+
/**
|
233
|
+
* @page Named Guards
|
234
|
+
* @section dateUS
|
235
|
+
* @since 1.1.0
|
236
|
+
*
|
237
|
+
* <p>
|
238
|
+
* Guard for a US date. Month and day value validations
|
239
|
+
* exist, though may not conver all invalid dates (so,
|
240
|
+
* 13/32/2013 is invalid, but 2/31/2013 might not properly
|
241
|
+
* fail at this point in time). An empty value is
|
242
|
+
* considered valid.
|
243
|
+
* </p>
|
244
|
+
*
|
245
|
+
* <div class="example">
|
246
|
+
* <div class="display">
|
247
|
+
* <script>
|
248
|
+
* $.guard(".date").using("dateUS");
|
249
|
+
* </script>
|
250
|
+
*
|
251
|
+
* <p>
|
252
|
+
* <input class="date" type="text" value="not valid" /><br />
|
253
|
+
* <small>US date of any value</small>
|
254
|
+
* </p>
|
255
|
+
* </div>
|
256
|
+
* </div>
|
257
|
+
*/
|
258
|
+
this.name("dateUS").using(this.aggregate(this.isAllValid, this.isValidDateUS)).message("Please use: dd/mm/yyyy.")
|
259
|
+
|
260
|
+
/**
|
261
|
+
* @page Named Guards
|
262
|
+
* @section timeUS
|
263
|
+
* @since 1.1.0
|
264
|
+
*
|
265
|
+
* <p>
|
266
|
+
* Guard for a US time. Military time is not currently
|
267
|
+
* supported. An empty value is considered valid.
|
268
|
+
* </p>
|
269
|
+
*
|
270
|
+
* <div class="example">
|
271
|
+
* <div class="display">
|
272
|
+
* <script>
|
273
|
+
* $.guard(".time").using("timeUS");
|
274
|
+
* </script>
|
275
|
+
*
|
276
|
+
* <p>
|
277
|
+
* <input class="time" type="text" value="not valid" /><br />
|
278
|
+
* <small>US time of any value</small>
|
279
|
+
* </p>
|
280
|
+
* </div>
|
281
|
+
* </div>
|
282
|
+
*/
|
283
|
+
this.name("timeUS").using(this.aggregate(this.isAllValid, this.isValidTimeUS)).message("Please use: hh:mm am/pm.")
|
284
|
+
|
232
285
|
/**
|
233
286
|
* @page Named Guards
|
234
287
|
* @section email
|
@@ -597,13 +650,13 @@
|
|
597
650
|
* This version of guards.js library as a string, like <code>"1.0.0"</code>.
|
598
651
|
* </p>
|
599
652
|
*/
|
600
|
-
$.Guards.prototype.version = "1.
|
653
|
+
$.Guards.prototype.version = "1.1.0";
|
601
654
|
|
602
655
|
$.Guards.prototype.parentContext = function(element) {
|
603
656
|
var $element = $(element);
|
604
657
|
var context = $element.parents("form:first");
|
605
658
|
|
606
|
-
if (context.size()
|
659
|
+
if (context.size() === 0) {
|
607
660
|
context = $element.parents("*:last");
|
608
661
|
}
|
609
662
|
|
@@ -1151,6 +1204,32 @@
|
|
1151
1204
|
return this.isInRange(value, options);
|
1152
1205
|
};
|
1153
1206
|
|
1207
|
+
/**
|
1208
|
+
* Validates for a valid US date.
|
1209
|
+
*/
|
1210
|
+
$.Guards.prototype.isValidDateUS = function(value, options) {
|
1211
|
+
value = $.trim(value);
|
1212
|
+
|
1213
|
+
if (value === "") {
|
1214
|
+
return true;
|
1215
|
+
}
|
1216
|
+
|
1217
|
+
return /^(0?[1-9]|1[0-2])\/(0?[1-9]|[1-2]\d|3[0-1])\/(\d{3}\d+)$/.test(value);
|
1218
|
+
};
|
1219
|
+
|
1220
|
+
/**
|
1221
|
+
* Validates for a valid US time.
|
1222
|
+
*/
|
1223
|
+
$.Guards.prototype.isValidTimeUS = function(value, options) {
|
1224
|
+
value = $.trim(value);
|
1225
|
+
|
1226
|
+
if (value === "") {
|
1227
|
+
return true;
|
1228
|
+
}
|
1229
|
+
|
1230
|
+
return /^(0?[1-9]|1[0-2]):([0-5]\d)\s*(a|p)m$/i.test(value);
|
1231
|
+
};
|
1232
|
+
|
1154
1233
|
/**
|
1155
1234
|
* Validates the given value is a valid email. If options is
|
1156
1235
|
* passed with allowDisplay as true, display emails will be
|
@@ -1950,26 +2029,49 @@
|
|
1950
2029
|
* Clear this error and any errors linked with it (grouped guards
|
1951
2030
|
* and radio buttons cause all elements involved to be linked).
|
1952
2031
|
*/
|
1953
|
-
$.GuardError.prototype.clear = function() {
|
2032
|
+
$.GuardError.prototype.clear = function(forLinked) {
|
1954
2033
|
if (this._cleared) {
|
1955
2034
|
return;
|
1956
2035
|
}
|
1957
2036
|
|
2037
|
+
var selected = [];
|
2038
|
+
var $selected;
|
2039
|
+
|
2040
|
+
if (!forLinked) {
|
2041
|
+
for (var i = 0; i < this._linked.length; i++) {
|
2042
|
+
selected.push(this._linked[i]._element);
|
2043
|
+
}
|
2044
|
+
|
2045
|
+
$selected = $(selected);
|
2046
|
+
var clearGuardErrorPrevented = this._guard.sendEvent("clearGuardError", $selected, false, this._errorElement).isDefaultPrevented();
|
2047
|
+
var clearGuardFormErrorPrevented = this._guard.sendEvent("clearGuardFormError", $selected, true, this._errorElement).isDefaultPrevented();
|
2048
|
+
|
2049
|
+
if (clearGuardErrorPrevented || clearGuardFormErrorPrevented) {
|
2050
|
+
return;
|
2051
|
+
}
|
2052
|
+
}
|
2053
|
+
|
1958
2054
|
this._errorElement.remove();
|
1959
2055
|
var index = $.inArray(this, this._element.errors);
|
2056
|
+
var $element = $(this._element);
|
1960
2057
|
|
1961
2058
|
if (index >= 0) {
|
1962
2059
|
this._element.errors.splice(index, 1);
|
1963
2060
|
}
|
1964
2061
|
|
1965
|
-
if (!$
|
1966
|
-
$
|
2062
|
+
if (!$element.hasErrorsWithInvalidClass(this._guard.getInvalidClass())) {
|
2063
|
+
$element.removeClass(this._guard.getInvalidClass());
|
1967
2064
|
}
|
1968
2065
|
|
1969
2066
|
this._cleared = true;
|
1970
2067
|
|
1971
2068
|
while (this._linked.length > 0) {
|
1972
|
-
this._linked.shift().clear();
|
2069
|
+
this._linked.shift().clear(true);
|
2070
|
+
}
|
2071
|
+
|
2072
|
+
if (!forLinked) {
|
2073
|
+
this._guard.sendEvent("afterClearGuardError", $selected, false);
|
2074
|
+
this._guard.sendEvent("afterClearGuardFormError", $selected, true);
|
1973
2075
|
}
|
1974
2076
|
};
|
1975
2077
|
|
@@ -2449,7 +2551,8 @@
|
|
2449
2551
|
return !!(x.errors && x.errors.length > 0);
|
2450
2552
|
},
|
2451
2553
|
"guardable": function(x) {
|
2452
|
-
|
2554
|
+
var tagName = x.tagName.toLowerCase();
|
2555
|
+
return tagName === "input" || tagName === "textarea" || tagName === "select" || tagName === "button";
|
2453
2556
|
}
|
2454
2557
|
});
|
2455
2558
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guardsjs-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
@@ -58,7 +58,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
58
58
|
version: '0'
|
59
59
|
segments:
|
60
60
|
- 0
|
61
|
-
hash:
|
61
|
+
hash: 1471807923169786715
|
62
62
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|