devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
56 lines (43 loc) • 1.74 kB
JavaScript
var registerComponent = require("../../core/component_registrator"),
SchedulerTimelineWeek = require("./ui.scheduler.timeline_week"),
dateUtils = require("../../core/utils/date"),
toMs = dateUtils.dateToMilliseconds;
var TIMELINE_CLASS = "dx-scheduler-timeline-work-week",
MONDAY_INDEX = 1;
var SchedulerTimelineWorkWeek = SchedulerTimelineWeek.inherit({
_getElementClass: function _getElementClass() {
return TIMELINE_CLASS;
},
_getWeekDuration: function _getWeekDuration() {
return 5;
},
_firstDayOfWeek: function _firstDayOfWeek() {
return this.option("firstDayOfWeek") || MONDAY_INDEX;
},
_incrementDate: function _incrementDate(date) {
var day = date.getDay();
if (day === 5) {
date.setDate(date.getDate() + 2);
}
this.callBase(date);
},
_getOffsetByCount: function _getOffsetByCount(cellIndex, rowIndex) {
var weekendCount = Math.floor(cellIndex / (5 * this._getCellCountInDay()));
if (weekendCount > 0) {
return toMs("day") * weekendCount * 2;
} else {
return 0;
}
},
_getWeekendsCount: function _getWeekendsCount(days) {
return 2 * Math.floor(days / 7);
},
_setFirstViewDate: function _setFirstViewDate() {
this._firstViewDate = dateUtils.getFirstWeekDate(this.option("currentDate"), this._firstDayOfWeek());
this._firstViewDate = dateUtils.normalizeDateByWeek(this._firstViewDate, this.option("currentDate"));
this._setStartDayHour(this._firstViewDate);
}
});
registerComponent("dxSchedulerTimelineWorkWeek", SchedulerTimelineWorkWeek);
module.exports = SchedulerTimelineWorkWeek;
;