|
558 | 558 | if (!dontHide)
|
559 | 559 | filter.find(".filter-trigger").popover("hide");
|
560 | 560 |
|
561 |
| - var val = trimToNull(content.find("input").first().val()); |
| 561 | + var val = trimToNull(this.getCleanedValue(content.find("input").first().val(), dataType)); |
| 562 | + |
| 563 | + content.find("input").first().val(val) |
562 | 564 |
|
563 | 565 | if (val != null)
|
564 | 566 | {
|
|
577 | 579 | }
|
578 | 580 | else if (filter.hasClass("griddly-filter-range"))
|
579 | 581 | {
|
580 |
| - var val = trimToNull(content.find("input").first().val()); |
581 |
| - var valEnd = trimToNull(content.find("input").last().val()); |
| 582 | + var val = trimToNull(this.getCleanedValue(content.find("input").first().val(), dataType)); |
| 583 | + var valEnd = trimToNull(this.getCleanedValue(content.find("input").last().val(), dataType)); |
| 584 | + |
| 585 | + content.find("input").first().val(val) |
| 586 | + content.find("input").last().val(valEnd) |
582 | 587 |
|
583 | 588 | if (val != null && valEnd != null)
|
584 | 589 | display = this.getFormattedValue(val, dataType) + " - " + this.getFormattedValue(valEnd, dataType);
|
|
963 | 968 | this.refresh(true);
|
964 | 969 | },
|
965 | 970 |
|
966 |
| - getFormattedValue: function (val, dataType) |
| 971 | + getCleanedValue: function (val, dataType) |
967 | 972 | {
|
968 | 973 | switch (dataType)
|
969 | 974 | {
|
970 | 975 | case "Integer":
|
971 |
| - { |
972 |
| - val = String(val).replace(/[^0-9]/g, "") |
| 976 | + val = String(val).replace(/[^0-9-]/g, "") |
973 | 977 |
|
974 |
| - val = parseInt(val); |
| 978 | + if (val.length > 1) |
| 979 | + val = val.substr(0, 1) + val.substr(1).replace(/-/g, ""); |
| 980 | + else if (val == '-') |
| 981 | + return null; |
975 | 982 |
|
976 |
| - if (!isFinite(val)) |
977 |
| - val = null; |
| 983 | + return val; |
| 984 | + case "Decimal": |
| 985 | + case "Currency": |
| 986 | + //case "Percent": |
| 987 | + val = String(val).replace(/[^0-9,.-]/g, "").replace(/,/g, ""); |
978 | 988 |
|
979 |
| - return val; |
980 |
| - } |
| 989 | + if (val.length > 1) |
| 990 | + val = val.substr(0, 1) + val.substr(1).replace(/-/g, ""); |
| 991 | + else if (val == '-') |
| 992 | + return null; |
| 993 | + |
| 994 | + return val; |
| 995 | + case "Date": |
| 996 | + return String(val).replace(/[^0-9a-zA-Z-\/]/g, ""); |
| 997 | + default: |
| 998 | + return val; |
| 999 | + } |
| 1000 | + }, |
| 1001 | + |
| 1002 | + getFormattedValue: function (val, dataType) |
| 1003 | + { |
| 1004 | + val = this.getCleanedValue(val, dataType); |
| 1005 | + |
| 1006 | + switch (dataType) |
| 1007 | + { |
| 1008 | + case "Integer": |
| 1009 | + val = parseInt(val); |
| 1010 | + |
| 1011 | + if (!isFinite(val)) |
| 1012 | + val = null; |
| 1013 | + |
| 1014 | + return val; |
981 | 1015 | case "Decimal":
|
982 | 1016 | case "Currency":
|
983 | 1017 | //case "Percent":
|
984 |
| - val = String(val).replace(/[^0-9,.-]/g, "").replace(/,/g, "").replace(/\$/g, ""); |
985 | 1018 |
|
986 | 1019 | // TODO: filter down to one decimal point
|
987 | 1020 | // TODO: filter out non numerics
|
|
1019 | 1052 |
|
1020 | 1053 | return val;
|
1021 | 1054 | case "Date":
|
1022 |
| - val = parseForValidDate(String(val).replace(/[^0-9a-zA-Z-\/]/g, "")); |
| 1055 | + val = parseForValidDate(val); |
1023 | 1056 |
|
1024 | 1057 | if (val == null || !isFinite(val))
|
1025 | 1058 | return null;
|
|
0 commit comments