provide installation instructions
[extjs.git] / air / samples / tasks / js / TextDate.js
1 /*\r
2  * Ext JS Library 0.30\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 // generates a renderer function to be used for textual date groups\r
10 Ext.util.Format.createTextDateRenderer = function(){\r
11     // create the cache of ranges to be reused\r
12     var today = new Date().clearTime(true);\r
13     var year = today.getFullYear();\r
14     var todayTime = today.getTime();\r
15     var yesterday = today.add('d', -1).getTime();\r
16     var tomorrow = today.add('d', 1).getTime();\r
17     var weekDays = today.add('d', 6).getTime();\r
18     var lastWeekDays = today.add('d', -6).getTime();\r
19 \r
20     var weekAgo1 = today.add('d', -13).getTime();\r
21     var weekAgo2 = today.add('d', -20).getTime();\r
22     var weekAgo3 = today.add('d', -27).getTime();\r
23 \r
24     var f = function(date){\r
25         if(!date) {\r
26             return '(No Date)';\r
27         }\r
28         var notime = date.clearTime(true).getTime();\r
29 \r
30         if (notime == todayTime) {\r
31             return 'Today';\r
32         }\r
33         if(notime > todayTime){\r
34             if (notime == tomorrow) {\r
35                 return 'Tomorrow';\r
36             }\r
37             if (notime <= weekDays) {\r
38                 return date.format('l');\r
39             }\r
40         }else {\r
41                 if(notime == yesterday) {\r
42                 return 'Yesterday';\r
43             }\r
44             if(notime >= lastWeekDays) {\r
45                 return 'Last ' + date.format('l');\r
46             }\r
47         }            \r
48         return date.getFullYear() == year ? date.format('D m/d') : date.format('D m/d/Y');\r
49    };\r
50    \r
51    f.date = today;\r
52    return f;\r
53 };