2 * Ext JS Library 0.30
\r
3 * Copyright(c) 2006-2009, Ext JS, LLC.
\r
4 * licensing@extjs.com
\r
6 * http://extjs.com/license
\r
9 // Grid column plugin that does the complete/active button in the left-most column
\r
10 CompleteColumn = function(){
\r
13 function getRecord(t){
\r
14 var index = grid.getView().findRowIndex(t);
\r
15 return grid.store.getAt(index);
\r
18 function onMouseDown(e, t){
\r
19 if(Ext.fly(t).hasClass('task-check')){
\r
21 var record = getRecord(t);
\r
22 record.set('completed', !record.data.completed);
\r
23 grid.store.applyFilter();
\r
27 function onMouseOver(e, t){
\r
28 if(Ext.fly(t).hasClass('task-check')){
\r
29 Ext.fly(t.parentNode).addClass('task-check-over');
\r
33 function onMouseOut(e, t){
\r
34 if(Ext.fly(t).hasClass('task-check')){
\r
35 Ext.fly(t.parentNode).removeClass('task-check-over');
\r
41 header: '<div class="task-col-hd"></div>',
\r
45 renderer: function(){
\r
46 return '<div class="task-check"></div>';
\r
48 init : function(xg){
\r
50 grid.on('render', function(){
\r
51 var view = grid.getView();
\r
52 view.mainBody.on('mousedown', onMouseDown);
\r
53 view.mainBody.on('mouseover', onMouseOver);
\r
54 view.mainBody.on('mouseout', onMouseOut);
\r
61 ReminderColumn = function(){
\r
62 var grid, menu, record;
\r
64 function getRecord(t){
\r
65 var index = grid.getView().findRowIndex(t);
\r
66 return grid.store.getAt(index);
\r
69 function onMenuCheck(item){
\r
70 if(item.reminder === false){
\r
71 record.set('reminder', '');
\r
73 var s = record.data.dueDate ? record.data.dueDate.clearTime(true) : new Date().clearTime();
\r
74 s = s.add('mi', Ext.state.Manager.get('defaultReminder'));
\r
75 s = s.add('mi', item.reminder*-1);
\r
76 record.set('reminder', s);
\r
82 menu = new Ext.menu.Menu({
\r
85 text: 'No Reminder',
\r
87 handler: onMenuCheck
\r
89 text: 'On the Due Date',
\r
91 handler: onMenuCheck
\r
93 text: '1 day before',
\r
95 handler: onMenuCheck
\r
97 text: '2 days before',
\r
99 handler: onMenuCheck
\r
101 text: '3 days before',
\r
103 handler: onMenuCheck
\r
105 text: '1 week before',
\r
107 handler: onMenuCheck
\r
109 text: '2 weeks before',
\r
110 reminder: 14*24*60,
\r
111 handler: onMenuCheck
\r
113 text: 'Set Default Time...',
\r
114 handler: function(){
\r
115 Ext.air.NativeWindowManager.getPrefWindow();
\r
123 function onMouseDown(e, t){
\r
124 if(Ext.fly(t).hasClass('reminder')){
\r
126 record = getRecord(t);
\r
127 if (!record.data.completed) {
\r
128 var rmenu = getMenu();
\r
129 rmenu.show(t, 'tr-br?');
\r
134 function onMouseOver(e, t){
\r
135 if(Ext.fly(t).hasClass('reminder')){
\r
136 Ext.fly(t.parentNode).addClass('reminder-over');
\r
140 function onMouseOut(e, t){
\r
141 if(Ext.fly(t).hasClass('reminder')){
\r
142 Ext.fly(t.parentNode).removeClass('reminder-over');
\r
148 header: '<div class="reminder-col-hd"></div>',
\r
150 id: 'reminder-col',
\r
151 menuDisabled: true,
\r
152 dataIndex:'reminder',
\r
153 renderer: function(v){
\r
154 return '<div class="reminder '+(v ? 'reminder-active' : '')+'"></div>';
\r
156 init : function(xg){
\r
158 grid.on('render', function(){
\r
159 var view = grid.getView();
\r
160 view.mainBody.on('contextmenu', onMouseDown);
\r
161 view.mainBody.on('mousedown', onMouseDown);
\r
162 view.mainBody.on('mouseover', onMouseOver);
\r
163 view.mainBody.on('mouseout', onMouseOut);
\r