DayHeader.js
3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/**
* @class Ext.calendar.view.DayHeader
* @extends Ext.calendar.MonthView
* <p>This is the header area container within the day and week views where all-day events are displayed.
* Normally you should not need to use this class directly -- instead you should use {@link Ext.calendar.DayView DayView}
* which aggregates this class and the {@link Ext.calendar.DayBodyView DayBodyView} into the single unified view
* presented by {@link Ext.calendar.CalendarPanel CalendarPanel}.</p>
* @constructor
* @param {Object} config The config object
*/
Ext.define('Ext.calendar.view.DayHeader', {
extend: 'Ext.calendar.view.Month',
alias: 'widget.dayheaderview',
requires: [
'Ext.calendar.template.DayHeader'
],
// private configs
weekCount: 1,
dayCount: 1,
allDayOnly: true,
monitorResize: false,
/**
* @event dayclick
* Fires after the user clicks within the day view container and not on an event element
* @param {Ext.calendar.DayBodyView} this
* @param {Date} dt The date/time that was clicked on
* @param {Boolean} allday True if the day clicked on represents an all-day box, else false. Clicks within the
* DayHeaderView always return true for this param.
* @param {Ext.core.Element} el The Element that was clicked on
*/
// private
afterRender: function() {
if (!this.tpl) {
this.tpl = new Ext.calendar.template.DayHeader({
id: this.id,
showTodayText: this.showTodayText,
todayText: this.todayText,
showTime: this.showTime
});
}
this.tpl.compile();
this.addCls('ext-cal-day-header');
this.callParent(arguments);
},
// private
forceSize: Ext.emptyFn,
// private
refresh: function() {
this.callParent(arguments);
this.recalcHeaderBox();
},
// private
recalcHeaderBox : function(){
var tbl = this.el.down('.ext-cal-evt-tbl'),
h = tbl.getHeight();
this.el.setHeight(h+7);
// These should be auto-height, but since that does not work reliably
// across browser / doc type, we have to size them manually
this.el.down('.ext-cal-hd-ad-inner').setHeight(h+5);
this.el.down('.ext-cal-bg-tbl').setHeight(h+5);
},
// private
moveNext: function(noRefresh) {
return this.moveDays(this.dayCount, noRefresh);
},
// private
movePrev: function(noRefresh) {
return this.moveDays( - this.dayCount, noRefresh);
},
// private
onClick: function(e, t) {
var el = e.getTarget('td', 3),
parts,
dt;
if (el) {
if (el.id && el.id.indexOf(this.dayElIdDelimiter) > -1) {
parts = el.id.split(this.dayElIdDelimiter);
dt = parts[parts.length - 1];
this.fireEvent('dayclick', this, Ext.Date.parseDate(dt, 'Ymd'), true, Ext.get(this.getDayId(dt)));
return;
}
}
this.callParent(arguments);
}
});