source: trunk/web/addons/job_monarch/lib/extjs/air/samples/tasks/js/columns.js @ 619

Last change on this file since 619 was 619, checked in by ramonb, 15 years ago

lib/:

  • added new AJAX dependancies: ExtJS, pChart, Lightbox2
File size: 4.3 KB
Line 
1/*
2 * Ext JS Library 0.30
3 * Copyright(c) 2006-2009, Ext JS, LLC.
4 * licensing@extjs.com
5 *
6 * http://extjs.com/license
7 */
8
9// Grid column plugin that does the complete/active button in the left-most column
10CompleteColumn = function(){
11    var grid;
12
13    function getRecord(t){
14        var index = grid.getView().findRowIndex(t);
15        return grid.store.getAt(index);
16    }
17
18    function onMouseDown(e, t){
19        if(Ext.fly(t).hasClass('task-check')){
20            e.stopEvent();
21            var record = getRecord(t);
22            record.set('completed', !record.data.completed);
23            grid.store.applyFilter();
24        }
25    }
26
27    function onMouseOver(e, t){
28        if(Ext.fly(t).hasClass('task-check')){
29            Ext.fly(t.parentNode).addClass('task-check-over');
30        }
31    }
32
33    function onMouseOut(e, t){
34        if(Ext.fly(t).hasClass('task-check')){
35            Ext.fly(t.parentNode).removeClass('task-check-over');
36        }
37    }
38
39    Ext.apply(this, {
40        width: 22,
41        header: '<div class="task-col-hd"></div>',
42        fixed: true,
43                menuDisabled: true,
44        id: 'task-col',
45        renderer: function(){
46            return '<div class="task-check"></div>';
47        },
48        init : function(xg){
49            grid = xg;
50            grid.on('render', function(){
51                var view = grid.getView();
52                view.mainBody.on('mousedown', onMouseDown);
53                view.mainBody.on('mouseover', onMouseOver);
54                view.mainBody.on('mouseout', onMouseOut);
55            });
56        }
57    });
58};
59
60
61ReminderColumn = function(){
62    var grid, menu, record;
63
64        function getRecord(t){
65        var index = grid.getView().findRowIndex(t);
66        return grid.store.getAt(index);
67    }
68       
69        function onMenuCheck(item){
70                if(item.reminder === false){
71                        record.set('reminder', '');
72                }else{
73                        var s = record.data.dueDate ? record.data.dueDate.clearTime(true) : new Date().clearTime();
74                        s = s.add('mi', Ext.state.Manager.get('defaultReminder'));
75                        s = s.add('mi', item.reminder*-1);
76                        record.set('reminder', s);
77                }
78        }
79
80        function getMenu(){
81                if(!menu){
82                        menu = new Ext.menu.Menu({
83                                plain: true,
84                                items: [{
85                                        text: 'No Reminder',
86                                        reminder: false,
87                                        handler: onMenuCheck
88                                },'-',{
89                                        text: 'On the Due Date',
90                                        reminder: 0,
91                                        handler: onMenuCheck
92                                },'-',{
93                                        text: '1 day before',
94                                        reminder: 24*60,
95                                        handler: onMenuCheck
96                                },{
97                                        text: '2 days before',
98                                        reminder: 48*60,
99                                        handler: onMenuCheck
100                                },{
101                                        text: '3 days before',
102                                        reminder: 72*60,
103                                        handler: onMenuCheck
104                                },{
105                                        text: '1 week before',
106                                        reminder: 7*24*60,
107                                        handler: onMenuCheck
108                                },{
109                                        text: '2 weeks before',
110                                        reminder: 14*24*60,
111                                        handler: onMenuCheck
112                                },'-',{
113                                        text: 'Set Default Time...',
114                                        handler: function(){
115                                                Ext.air.NativeWindowManager.getPrefWindow();
116                                        }
117                                }]
118                        });
119                }
120                return menu;
121        }
122
123    function onMouseDown(e, t){
124        if(Ext.fly(t).hasClass('reminder')){
125                        e.stopEvent();
126            record = getRecord(t);
127                        if (!record.data.completed) {
128                                var rmenu = getMenu();
129                                rmenu.show(t, 'tr-br?');
130                        }
131        }
132    }
133
134    function onMouseOver(e, t){
135        if(Ext.fly(t).hasClass('reminder')){
136            Ext.fly(t.parentNode).addClass('reminder-over');
137        }
138    }
139
140    function onMouseOut(e, t){
141        if(Ext.fly(t).hasClass('reminder')){
142            Ext.fly(t.parentNode).removeClass('reminder-over');
143        }
144    }
145
146    Ext.apply(this, {
147        width: 26,
148        header: '<div class="reminder-col-hd"></div>',
149        fixed: true,
150        id: 'reminder-col',
151                menuDisabled: true,
152        dataIndex:'reminder',
153        renderer: function(v){
154                        return '<div class="reminder '+(v ? 'reminder-active' : '')+'"></div>';
155        },
156        init : function(xg){
157            grid = xg;
158            grid.on('render', function(){
159                var view = grid.getView();
160                view.mainBody.on('contextmenu', onMouseDown);
161                view.mainBody.on('mousedown', onMouseDown);
162                view.mainBody.on('mouseover', onMouseOver);
163                view.mainBody.on('mouseout', onMouseOut);
164            });
165        }
166    });
167};
Note: See TracBrowser for help on using the repository browser.