I’ve encountered a strange bug with IE7 or IE in compatiblity mode where start_on_monday set to false seems to be ignored.
Sometimes it will work if you refresh the page but oftentimes it does not. If you change the scheduler date, the scheduler seems to
fix itself. Any idea how I can prevent this from happening while still starting the week on Sunday?
From HTML
<h2>@ViewBag.Message</h2>
<div style="width: 100%; padding: 0px;">
<div id="treeBox" style="width:230px; height:600px; border: 1px solid; margin: 0px 0px 10px 0%; float: left;">
</div>
<div style="width:800px; height:600px; border: 1px solid; margin: 0px auto; float: left;">
<div id="cal" class="dhx_cal_container" style="width:100%; height:100%; overflow:hidden;">
<div class="dhx_cal_navline">
<div class="dhx_cal_prev_button"> </div>
<div class="dhx_cal_next_button"> </div>
<div class="dhx_cal_today_button"></div>
<div class="dhx_cal_date"></div>
<!--<div class="dhx_cal_tab" name="day_tab" style="right:204px;"></div>
<div class="dhx_cal_tab" name="week_tab" style="right:140px;"></div>-->
<div class="dhx_cal_tab" name="month_tab" style="right:76px;"></div>
</div>
<div class="dhx_cal_header">
</div>
<div class="dhx_cal_data">
</div>
</div>
</div>
</div>
<div id="myRequests" style="width:100%; clear:both; margin-left:0%;"></div>
<div id="myShifts" style="width: 100%; margin-left: 0%;"></div>
// data loading
scheduler.config.xml_date = "%m/%d/%Y %H:%i";
scheduler.init("cal", null, "month");
ConfigureCalendar();
scheduler.load("Request/All");
function ConfigureCalendar() {
scheduler.config.details_on_dblclick = true;
scheduler.config.details_on_create = true;
scheduler.config.start_on_monday = false;
scheduler.config.multiday = true;
// block operations for not authenticated users
scheduler.config.readonly = CheckStatus()
scheduler.config.drag_create = true;
// form settings
scheduler.showLightbox = DetailsForm;
//block operations for not owned events
scheduler.attachEvent("onBeforeLightbox", isEditable);
scheduler.attachEvent("onBeforeDrag", function (event_id, mode, event_object) {
var req = scheduler.getEvent(event_id);
if ((mode == "move" || mode == "resize") && req.start_date < new Date()) {
return false;
}
else
return isEditable(event_id);
});
scheduler.attachEvent("onClick", isEditable);
//scheduler.attachEvent("onDblClick", isEditable);
scheduler.attachEvent("onEventAdded", function (event_id, event_object) {
var req = scheduler.getEvent(event_id);
if (req.start_date < new Date()) {
scheduler.deleteEvent(event_id, true);
}
});
//each time as new request created - assign user
scheduler.attachEvent("onEventCreated", function (event_id) {
var req = scheduler.getEvent(event_id);
if (req.start_date < new Date()) {
return false;
} else {
req.user_id = scheduler._user_id;
return true;
}
});
scheduler.attachEvent("onBeforeEventChanged", function (event_object, native_event, is_new) {
//var req = scheduler.getEvent(event_id);
if (event_object.start_date.getMonth() < event_object.end_date.getMonth() && is_new) {
event_object.end_date = Date.parse(event_object.end_date).add(-1).days();
}
else if (event_object.start_date.getDate() < event_object.end_date.getDate() && is_new)
event_object.end_date = Date.parse(event_object.end_date).add(-1).days();
if (!is_new) {
if (event_object.start_date < new Date())
return false;
else {
event_object.employeeId = event_object.user_id;
SaveToDB(event_object);
return true;
}
}
else {
event_object.text = "Enter information about your job and other miscellaneous information here";
if (event_object.start_date < new Date())
return false;
else
return true;
}
});
scheduler.templates.event_class = function (start, end, event) {
if (start < (new Date()))
return "past_event";
else if (event.status == "Pending" && event.user_id != GetMyUserId())
return "pending";
else if (event.status == "Pending" && event.user_id == GetMyUserId())
return "pending_mine";
else if (event.status == "Approved")
return "approved";
else if (event.status == "Denied")
return "denied";
}
// Defines the time portion of single day requests.
scheduler.templates.event_bar_date = function (start, end, event) {
return "";
}
// Defines the text for month view requests.
scheduler.templates.event_bar_text = function (start, end, event) {
if (event.first_name)
return event.last_name + " - " + event.department;
else
return "New request";
}
// Defines the tooltip for requests
scheduler.templates.tooltip_date_format = scheduler.date.date_to_str("%Y-%m-%d");
scheduler.templates.tooltip_text = function (start, end, event) {
var shiftCount = 0;
$.ajax({
type: "GET",
async: false,
url: "Shift/GetShiftsCovered/" + event.requestId,
success: function (data) {
shiftCount = data;
}
});
return event.first_name + " " + event.last_name + " - " + event.shift + "(" + event.crewText + ")" + "
" + event.department + " - Free Shifts: " + shiftCount + "
" +
new Date(event.start_date).fix("d", 1033) + " to " + new Date(event.end_date).fix("d", 1033) + "
" + event.text;
}
}