Blame | Last modification | View Log | RSS feed
/*
* Ext JS Library 0.20
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
// Grid column plugin that does the complete/active button in the left-most column
CompleteColumn = function(){
var grid;
function getRecord(t){
var index = grid.getView().findRowIndex(t);
return grid.store.getAt(index);
}
function onMouseDown(e, t){
if(Ext.fly(t).hasClass('task-check')){
e.stopEvent();
var record = getRecord(t);
record.set('completed', !record.data.completed);
grid.store.applyFilter();
}
}
function onMouseOver(e, t){
if(Ext.fly(t).hasClass('task-check')){
Ext.fly(t.parentNode).addClass('task-check-over');
}
}
function onMouseOut(e, t){
if(Ext.fly(t).hasClass('task-check')){
Ext.fly(t.parentNode).removeClass('task-check-over');
}
}
Ext.apply(this, {
width: 22,
header: '<div class="task-col-hd"></div>',
fixed: true,
menuDisabled: true,
id: 'task-col',
renderer: function(){
return '<div class="task-check"></div>';
},
init : function(xg){
grid = xg;
grid.on('render', function(){
var view = grid.getView();
view.mainBody.on('mousedown', onMouseDown);
view.mainBody.on('mouseover', onMouseOver);
view.mainBody.on('mouseout', onMouseOut);
});
}
});
};
ReminderColumn = function(){
var grid, menu, record;
function getRecord(t){
var index = grid.getView().findRowIndex(t);
return grid.store.getAt(index);
}
function onMenuCheck(item){
if(item.reminder === false){
record.set('reminder', '');
}else{
var s = record.data.dueDate ? record.data.dueDate.clearTime(true) : new Date().clearTime();
s = s.add('mi', Ext.state.Manager.get('defaultReminder'));
s = s.add('mi', item.reminder*-1);
record.set('reminder', s);
}
}
function getMenu(){
if(!menu){
menu = new Ext.menu.Menu({
plain: true,
items: [{
text: 'No Reminder',
reminder: false,
handler: onMenuCheck
},'-',{
text: 'On the Due Date',
reminder: 0,
handler: onMenuCheck
},'-',{
text: '1 day before',
reminder: 24*60,
handler: onMenuCheck
},{
text: '2 days before',
reminder: 48*60,
handler: onMenuCheck
},{
text: '3 days before',
reminder: 72*60,
handler: onMenuCheck
},{
text: '1 week before',
reminder: 7*24*60,
handler: onMenuCheck
},{
text: '2 weeks before',
reminder: 14*24*60,
handler: onMenuCheck
},'-',{
text: 'Set Default Time...',
handler: function(){
Ext.air.NativeWindowManager.getPrefWindow();
}
}]
});
}
return menu;
}
function onMouseDown(e, t){
if(Ext.fly(t).hasClass('reminder')){
e.stopEvent();
record = getRecord(t);
if (!record.data.completed) {
var rmenu = getMenu();
rmenu.show(t, 'tr-br?');
}
}
}
function onMouseOver(e, t){
if(Ext.fly(t).hasClass('reminder')){
Ext.fly(t.parentNode).addClass('reminder-over');
}
}
function onMouseOut(e, t){
if(Ext.fly(t).hasClass('reminder')){
Ext.fly(t.parentNode).removeClass('reminder-over');
}
}
Ext.apply(this, {
width: 26,
header: '<div class="reminder-col-hd"></div>',
fixed: true,
id: 'reminder-col',
menuDisabled: true,
dataIndex:'reminder',
renderer: function(v){
return '<div class="reminder '+(v ? 'reminder-active' : '')+'"></div>';
},
init : function(xg){
grid = xg;
grid.on('render', function(){
var view = grid.getView();
view.mainBody.on('contextmenu', onMouseDown);
view.mainBody.on('mousedown', onMouseDown);
view.mainBody.on('mouseover', onMouseOver);
view.mainBody.on('mouseout', onMouseOut);
});
}
});
};