JavaScript-ExtJS-V3
view release on metacpan or search on metacpan
share/ext-3.4.1/examples/calendar/app/test-app.js view on Meta::CPAN
Ext.getCmp('app-nav-picker').setValue(dateInfo.activeDate);
this.updateTitle(dateInfo.viewStart, dateInfo.viewEnd);
}
},
scope: this
},
'dayclick': {
fn: function(vw, dt, ad, el){
this.showEditWindow({
StartDate: dt,
IsAllDay: ad
}, el);
this.clearMsg();
},
scope: this
},
'rangeselect': {
fn: function(win, dates, onComplete){
this.showEditWindow(dates);
this.editWin.on('hide', onComplete, this, {single:true});
this.clearMsg();
},
scope: this
},
'eventmove': {
fn: function(vw, rec){
rec.commit();
var time = rec.data.IsAllDay ? '' : ' \\a\\t g:i a';
this.showMsg('Event '+ rec.data.Title +' was moved to '+rec.data.StartDate.format('F jS'+time));
},
scope: this
},
'eventresize': {
fn: function(vw, rec){
rec.commit();
this.showMsg('Event '+ rec.data.Title +' was updated');
},
scope: this
},
'eventdelete': {
fn: function(win, rec){
this.eventStore.remove(rec);
this.showMsg('Event '+ rec.data.Title +' was deleted');
},
scope: this
},
'initdrag': {
fn: function(vw){
if(this.editWin && this.editWin.isVisible()){
this.editWin.hide();
}
},
scope: this
}
}
}]
}]
});
},
// The edit popup window is not part of the CalendarPanel itself -- it is a separate component.
// This makes it very easy to swap it out with a different type of window or custom view, or omit
// it altogether. Because of this, it's up to the application code to tie the pieces together.
// Note that this function is called from various event handlers in the CalendarPanel above.
showEditWindow : function(rec, animateTarget){
if(!this.editWin){
this.editWin = new Ext.calendar.EventEditWindow({
calendarStore: this.calendarStore,
listeners: {
'eventadd': {
fn: function(win, rec){
win.hide();
rec.data.IsNew = false;
this.eventStore.add(rec);
this.showMsg('Event '+ rec.data.Title +' was added');
},
scope: this
},
'eventupdate': {
fn: function(win, rec){
win.hide();
rec.commit();
this.showMsg('Event '+ rec.data.Title +' was updated');
},
scope: this
},
'eventdelete': {
fn: function(win, rec){
this.eventStore.remove(rec);
win.hide();
this.showMsg('Event '+ rec.data.Title +' was deleted');
},
scope: this
},
'editdetails': {
fn: function(win, rec){
win.hide();
App.calendarPanel.showEditForm(rec);
}
}
}
});
}
this.editWin.show(rec, animateTarget);
},
// The CalendarPanel itself supports the standard Panel title config, but that title
// only spans the calendar views. For a title that spans the entire width of the app
// we added a title to the layout's outer center region that is app-specific. This code
// updates that outer title based on the currently-selected view range anytime the view changes.
updateTitle: function(startDt, endDt){
var p = Ext.getCmp('app-center');
if(startDt.clearTime().getTime() == endDt.clearTime().getTime()){
p.setTitle(startDt.format('F j, Y'));
}
else if(startDt.getFullYear() == endDt.getFullYear()){
if(startDt.getMonth() == endDt.getMonth()){
p.setTitle(startDt.format('F j') + ' - ' + endDt.format('j, Y'));
}
else{
( run in 1.047 second using v1.01-cache-2.11-cpan-364913b4093 )