/* This file is part of Ext JS 3.4 Copyright (c) 2011-2013 Sencha Inc Contact: http://www.sencha.com/contact GNU General Public License Usage This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact. Build date: 2013-04-03 15:07:25 */ /** * @class Ext.calendar.DayHeaderView * @extends Ext.calendar.MonthView *
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}.
* @constructor * @param {Object} config The config object */ Ext.calendar.DayHeaderView = Ext.extend(Ext.calendar.MonthView, { // 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.Element} el The Element that was clicked on */ // private afterRender: function() { if (!this.tpl) { this.tpl = new Ext.calendar.DayHeaderTemplate({ id: this.id, showTodayText: this.showTodayText, todayText: this.todayText, showTime: this.showTime }); } this.tpl.compile(); this.addClass('ext-cal-day-header'); Ext.calendar.DayHeaderView.superclass.afterRender.call(this); }, // private forceSize: Ext.emptyFn, // private refresh: function() { Ext.calendar.DayHeaderView.superclass.refresh.call(this); this.recalcHeaderBox(); }, // private recalcHeaderBox: function() { var tbl = this.el.child('.ext-cal-evt-tbl'), h = tbl.getHeight(); this.el.setHeight(h + 7); if (Ext.isIE && Ext.isStrict) { this.el.child('.ext-cal-hd-ad-inner').setHeight(h + 4); } if (Ext.isOpera) { //TODO: figure out why Opera refuses to refresh height when //the new height is lower than the previous one // var ct = this.el.child('.ext-cal-hd-ct'); // ct.repaint(); } }, // private moveNext: function(noRefresh) { this.moveDays(this.dayCount, noRefresh); }, // private movePrev: function(noRefresh) { 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, Date.parseDate(dt, 'Ymd'), true, Ext.get(this.getDayId(dt))); return; } } Ext.calendar.DayHeaderView.superclass.onClick.apply(this, arguments); } }); Ext.reg('dayheaderview', Ext.calendar.DayHeaderView);