summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-01-14 21:38:23 +0100
committerDan McGee <dan@archlinux.org>2011-01-14 21:38:23 +0100
commit9538d3492eb0efef144b78a50035ce4e4deaf8d1 (patch)
tree080c34f029ff005c0bbf3b82eab5d02b12028936
parent6285c379bac3fa05ecb3ccaccbe981d3573e290a (diff)
downloadarchweb-9538d3492eb0efef144b78a50035ce4e4deaf8d1.tar.gz
archweb-9538d3492eb0efef144b78a50035ce4e4deaf8d1.tar.xz
Fix JS null error when parsing non-matching date
We didn't escape early with some value, causing an invalid dereference. While fixing this, also touch up the other functions and move a few more thngs to parser dictionary attributes. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--media/archweb.js16
1 files changed, 8 insertions, 8 deletions
diff --git a/media/archweb.js b/media/archweb.js
index bbbc48b..cf8acd1 100644
--- a/media/archweb.js
+++ b/media/archweb.js
@@ -21,14 +21,13 @@ if (typeof $.tablesorter !== 'undefined') {
$.tablesorter.addParser({
/* sorts numeric, but put '', 'unknown', and '∞' last. */
id: 'mostlydigit',
+ special: ['', 'unknown', '∞'],
is: function(s, table) {
- var special = ['', 'unknown', '∞'];
var c = table.config;
- return ($.inArray(s, special) > -1) || $.tablesorter.isDigit(s, c);
+ return ($.inArray(s, this.special) > -1) || $.tablesorter.isDigit(s, c);
},
format: function(s) {
- var special = ['', 'unknown', '∞'];
- if ($.inArray(s, special) > -1) return Number.MAX_VALUE;
+ if ($.inArray(s, this.special) > -1) return Number.MAX_VALUE;
return $.tablesorter.formatFloat(s);
},
type: 'numeric'
@@ -37,14 +36,14 @@ if (typeof $.tablesorter !== 'undefined') {
/* sorts duration; put '', 'unknown', and '∞' last. */
id: 'duration',
re: /^([0-9]+):([0-5][0-9])$/,
+ special: ['', 'unknown', '∞'],
is: function(s) {
- var special = ['', 'unknown', '∞'];
- return ($.inArray(s, special) > -1) || this.re.test(s);
+ return ($.inArray(s, this.special) > -1) || this.re.test(s);
},
format: function(s) {
- var special = ['', 'unknown', '∞'];
- if ($.inArray(s, special) > -1) return Number.MAX_VALUE;
+ if ($.inArray(s, this.special) > -1) return Number.MAX_VALUE;
var matches = this.re.exec(s);
+ if (!matches) return Number.MAX_VALUE;
return matches[1] * 60 + matches[2];
},
type: 'numeric'
@@ -57,6 +56,7 @@ if (typeof $.tablesorter !== 'undefined') {
},
format: function(s) {
var matches = this.re.exec(s);
+ if (!matches) return 0;
/* skip group 6, group 7 is optional seconds */
if (matches[7] == undefined) matches[7] = '0';
return $.tablesorter.formatFloat(new Date(