3 <title>The source code</title>
\r
4 <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
\r
5 <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
\r
7 <body onload="prettyPrint();">
\r
8 <pre class="prettyprint lang-js">// Grid column plugin that does the complete/active button in the left-most column
\r
9 CompleteColumn = function(){
\r
12 function getRecord(t){
\r
13 var index = grid.getView().findRowIndex(t);
\r
14 return grid.store.getAt(index);
\r
17 function onMouseDown(e, t){
\r
18 if(Ext.fly(t).hasClass('task-check')){
\r
20 var record = getRecord(t);
\r
21 record.set('completed', !record.data.completed);
\r
22 grid.store.applyFilter();
\r
26 function onMouseOver(e, t){
\r
27 if(Ext.fly(t).hasClass('task-check')){
\r
28 Ext.fly(t.parentNode).addClass('task-check-over');
\r
32 function onMouseOut(e, t){
\r
33 if(Ext.fly(t).hasClass('task-check')){
\r
34 Ext.fly(t.parentNode).removeClass('task-check-over');
\r
40 header: '<div class="task-col-hd"></div>',
\r
44 renderer: function(){
\r
45 return '<div class="task-check"></div>';
\r
47 init : function(xg){
\r
49 grid.on('render', function(){
\r
50 var view = grid.getView();
\r
51 view.mainBody.on('mousedown', onMouseDown);
\r
52 view.mainBody.on('mouseover', onMouseOver);
\r
53 view.mainBody.on('mouseout', onMouseOut);
\r
60 ReminderColumn = function(){
\r
61 var grid, menu, record;
\r
63 function getRecord(t){
\r
64 var index = grid.getView().findRowIndex(t);
\r
65 return grid.store.getAt(index);
\r
68 function onMenuCheck(item){
\r
69 if(item.reminder === false){
\r
70 record.set('reminder', '');
\r
72 var s = record.data.dueDate ? record.data.dueDate.clearTime(true) : new Date().clearTime();
\r
73 s = s.add('mi', Ext.state.Manager.get('defaultReminder'));
\r
74 s = s.add('mi', item.reminder*-1);
\r
75 record.set('reminder', s);
\r
81 menu = new Ext.menu.Menu({
\r
84 text: 'No Reminder',
\r
86 handler: onMenuCheck
\r
88 text: 'On the Due Date',
\r
90 handler: onMenuCheck
\r
92 text: '1 day before',
\r
94 handler: onMenuCheck
\r
96 text: '2 days before',
\r
98 handler: onMenuCheck
\r
100 text: '3 days before',
\r
102 handler: onMenuCheck
\r
104 text: '1 week before',
\r
106 handler: onMenuCheck
\r
108 text: '2 weeks before',
\r
109 reminder: 14*24*60,
\r
110 handler: onMenuCheck
\r
112 text: 'Set Default Time...',
\r
113 handler: function(){
\r
114 Ext.air.NativeWindowManager.getPrefWindow();
\r
122 function onMouseDown(e, t){
\r
123 if(Ext.fly(t).hasClass('reminder')){
\r
125 record = getRecord(t);
\r
126 if (!record.data.completed) {
\r
127 var rmenu = getMenu();
\r
128 rmenu.show(t, 'tr-br?');
\r
133 function onMouseOver(e, t){
\r
134 if(Ext.fly(t).hasClass('reminder')){
\r
135 Ext.fly(t.parentNode).addClass('reminder-over');
\r
139 function onMouseOut(e, t){
\r
140 if(Ext.fly(t).hasClass('reminder')){
\r
141 Ext.fly(t.parentNode).removeClass('reminder-over');
\r
147 header: '<div class="reminder-col-hd"></div>',
\r
149 id: 'reminder-col',
\r
150 menuDisabled: true,
\r
151 dataIndex:'reminder',
\r
152 renderer: function(v){
\r
153 return '<div class="reminder '+(v ? 'reminder-active' : '')+'"></div>';
\r
155 init : function(xg){
\r
157 grid.on('render', function(){
\r
158 var view = grid.getView();
\r
159 view.mainBody.on('contextmenu', onMouseDown);
\r
160 view.mainBody.on('mousedown', onMouseDown);
\r
161 view.mainBody.on('mouseover', onMouseOver);
\r
162 view.mainBody.on('mouseout', onMouseOut);
\r