provide installation instructions
[extjs.git] / source / data / SortTypes.js
1 /*\r
2  * Ext JS Library 2.2.1\r
3  * Copyright(c) 2006-2009, Ext JS, LLC.\r
4  * licensing@extjs.com\r
5  * \r
6  * http://extjs.com/license\r
7  */\r
8 \r
9 \r
10 /**\r
11  * @class Ext.data.SortTypes\r
12  * @singleton\r
13  * Defines the default sorting (casting?) comparison functions used when sorting data.\r
14  */\r
15 Ext.data.SortTypes = {\r
16     /**\r
17      * Default sort that does nothing\r
18      * @param {Mixed} s The value being converted\r
19      * @return {Mixed} The comparison value\r
20      */\r
21     none : function(s){\r
22         return s;\r
23     },\r
24     \r
25     /**\r
26      * The regular expression used to strip tags\r
27      * @type {RegExp}\r
28      * @property\r
29      */\r
30     stripTagsRE : /<\/?[^>]+>/gi,\r
31     \r
32     /**\r
33      * Strips all HTML tags to sort on text only\r
34      * @param {Mixed} s The value being converted\r
35      * @return {String} The comparison value\r
36      */\r
37     asText : function(s){\r
38         return String(s).replace(this.stripTagsRE, "");\r
39     },\r
40     \r
41     /**\r
42      * Strips all HTML tags to sort on text only - Case insensitive\r
43      * @param {Mixed} s The value being converted\r
44      * @return {String} The comparison value\r
45      */\r
46     asUCText : function(s){\r
47         return String(s).toUpperCase().replace(this.stripTagsRE, "");\r
48     },\r
49     \r
50     /**\r
51      * Case insensitive string\r
52      * @param {Mixed} s The value being converted\r
53      * @return {String} The comparison value\r
54      */\r
55     asUCString : function(s) {\r
56         return String(s).toUpperCase();\r
57     },\r
58     \r
59     /**\r
60      * Date sorting\r
61      * @param {Mixed} s The value being converted\r
62      * @return {Number} The comparison value\r
63      */\r
64     asDate : function(s) {\r
65         if(!s){\r
66             return 0;\r
67         }\r
68         if(Ext.isDate(s)){\r
69             return s.getTime();\r
70         }\r
71         return Date.parse(String(s));\r
72     },\r
73     \r
74     /**\r
75      * Float sorting\r
76      * @param {Mixed} s The value being converted\r
77      * @return {Float} The comparison value\r
78      */\r
79     asFloat : function(s) {\r
80         var val = parseFloat(String(s).replace(/,/g, ""));\r
81         if(isNaN(val)) val = 0;\r
82         return val;\r
83     },\r
84     \r
85     /**\r
86      * Integer sorting\r
87      * @param {Mixed} s The value being converted\r
88      * @return {Number} The comparison value\r
89      */\r
90     asInt : function(s) {\r
91         var val = parseInt(String(s).replace(/,/g, ""));\r
92         if(isNaN(val)) val = 0;\r
93         return val;\r
94     }\r
95 };