devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
80 lines (56 loc) • 2.47 kB
JavaScript
var registerComponent = require("../../core/component_registrator"),
dateUtils = require("../../core/utils/date"),
toMs = dateUtils.dateToMilliseconds,
SchedulerWorkSpaceWeek = require("./ui.scheduler.work_space_week"),
dateUtils = require("../../core/utils/date"),
dateLocalization = require("../../localization/date");
var WORK_WEEK_CLASS = "dx-scheduler-work-space-work-week";
var dayIndexes = [1, 2, 3, 4, 5];
var weekCounter = 0;
var SchedulerWorkSpaceWorkWeek = SchedulerWorkSpaceWeek.inherit({
_getElementClass: function _getElementClass() {
return WORK_WEEK_CLASS;
},
_getCellCount: function _getCellCount() {
return 5 * this.option("intervalCount");
},
_firstDayOfWeek: function _firstDayOfWeek() {
return this.option("firstDayOfWeek") || 1;
},
_getDateByIndex: function _getDateByIndex(headerIndex) {
var resultDate = new Date(this._firstViewDate);
if (headerIndex % this._getCellCount() === 0) {
weekCounter = 0;
}
resultDate.setDate(this._firstViewDate.getDate() + headerIndex + weekCounter);
var index = resultDate.getDay();
while (dayIndexes.indexOf(index) === -1) {
resultDate.setDate(resultDate.getDate() + 1);
index = resultDate.getDay();
weekCounter++;
}
return resultDate;
},
_renderView: function _renderView() {
weekCounter = 0;
this.callBase();
},
_getWeekendsCount: function _getWeekendsCount(days) {
return 2 * Math.floor(days / 7);
},
_setFirstViewDate: function _setFirstViewDate() {
this._firstViewDate = dateUtils.getFirstWeekDate(this._getViewStartByOptions(), this._firstDayOfWeek() || dateLocalization.firstDayOfWeekIndex());
this._firstViewDate = dateUtils.normalizeDateByWeek(this._firstViewDate, this._getViewStartByOptions());
this._setStartDayHour(this._firstViewDate);
},
_getOffsetByCount: function _getOffsetByCount(cellIndex) {
var cellsInGroup = this._getCellCount(),
inGroup = Math.floor(cellIndex / cellsInGroup);
cellIndex = cellIndex - cellsInGroup * inGroup;
var weekendCount = Math.floor(cellIndex / 5);
return toMs("day") * weekendCount * 2;
}
});
registerComponent("dxSchedulerWorkSpaceWorkWeek", SchedulerWorkSpaceWorkWeek);
module.exports = SchedulerWorkSpaceWorkWeek;
;