diff --git a/ChangeLog b/ChangeLog index 10eb495de..53ddffd2b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2006-11-15 Wolfgang Sourdeau + * UI/WebServerResources/SchedulerUI.js: make sure the day view + synchronization mechanism works everywhere. + * UI/WebServerResources/generic.js: the log window is not only visible when UIxDebugEnabled is set. diff --git a/UI/Templates/SchedulerUI/UIxCalMonthView.wox b/UI/Templates/SchedulerUI/UIxCalMonthView.wox index 8113ac0f9..d0f07ceb7 100644 --- a/UI/Templates/SchedulerUI/UIxCalMonthView.wox +++ b/UI/Templates/SchedulerUI/UIxCalMonthView.wox @@ -60,7 +60,7 @@ - +

- +
diff --git a/UI/WebServerResources/SchedulerUI.js b/UI/WebServerResources/SchedulerUI.js index 5adec535c..610542d3b 100644 --- a/UI/WebServerResources/SchedulerUI.js +++ b/UI/WebServerResources/SchedulerUI.js @@ -9,7 +9,7 @@ var listOfSelection = null; var hideCompletedTasks = 0; var currentDay = ''; -var currentView = 'dayview'; +var currentView = "dayview"; var cachedDateSelectors = new Array(); @@ -192,6 +192,8 @@ function displayAppointment(event) { function onDaySelect(node) { var day = node.getAttribute("day"); + var needRefresh = (listFilter == 'view_selectedday' + && day != currentDay); var td = node.getParentWithTagName("td"); var table = td.getParentWithTagName("table"); @@ -205,7 +207,7 @@ function onDaySelect(node) document.selectedDate = td; changeCalendarDisplay( { "day": day } ); - if (listFilter == 'view_selectedday') + if (needRefresh) refreshAppointments(); return false; @@ -430,6 +432,7 @@ function onMonthOverview() function scrollDayView(hour) { + log("stest1"); var rowNumber; if (hour) { if (hour.length == 3) @@ -447,6 +450,8 @@ function scrollDayView(hour) var hours = daysView.childNodesWithTag("div")[0].childNodesWithTag("div"); if (hours.length > 0) daysView.parentNode.scrollTop = hours[rowNumber + 1].offsetTop; + + log("stest2"); } function onClickableCellsDblClick(event) { @@ -472,42 +477,37 @@ function calendarDisplayCallback(http) var hour = null; if (http.callbackData["hour"]) hour = http.callbackData["hour"]; - if (currentView != 'monthview') - scrollDayView(hour); - var daysView = $("daysView"); - if (daysView) { - var appointments = document.getElementsByClassName("appointment", daysView); - for (var i = 0; i < appointments.length; i++) { - appointments[i].addEventListener("mousedown", listRowMouseDownHandler, true); - appointments[i].addEventListener("click", onCalendarSelectAppointment, true); - appointments[i].addEventListener("dblclick", displayAppointment, true); - } - var days = document.getElementsByClassName("day", daysView); - for (var i = 0; i < days.length; i++) { - days[i].addEventListener("click", onCalendarSelectDay, true); - var clickableCells = document.getElementsByClassName("clickableHourCell", - days[i]); - for (var j = 0; j < clickableCells.length; j++) { - clickableCells[j].addEventListener("dblclick", - onClickableCellsDblClick, false); - } - } - } + var contentView; + log ("currentView: " + currentView); + if (currentView == "monthview") + contentView = $("calendarContent"); else { - var content = $("calendarContent"); - var appointments = document.getElementsByClassName("appointment", content); - for (var i = 0; i < appointments.length; i++) { - appointments[i].addEventListener("mousedown", listRowMouseDownHandler, true); - appointments[i].addEventListener("click", onCalendarSelectAppointment, true); - appointments[i].addEventListener("dblclick", displayAppointment, true); - } - var days = document.getElementsByClassName("contentOfDay", content); - log("days: " + days.length); + scrollDayView(hour); + log("cbtest1"); + contentView = $("daysView"); + } + var appointments = document.getElementsByClassName("appointment", contentView); + for (var i = 0; i < appointments.length; i++) { + appointments[i].addEventListener("mousedown", listRowMouseDownHandler, true); + appointments[i].addEventListener("click", onCalendarSelectAppointment, true); + appointments[i].addEventListener("dblclick", displayAppointment, true); + } + var days = document.getElementsByClassName("day", contentView); + if (currentView == "monthview") for (var i = 0; i < days.length; i++) { days[i].addEventListener("click", onCalendarSelectDay, true); days[i].addEventListener("dblclick", onClickableCellsDblClick, false); } - } + else + for (var i = 0; i < days.length; i++) { + days[i].addEventListener("click", onCalendarSelectDay, true); + var clickableCells = document.getElementsByClassName("clickableHourCell", + days[i]); + for (var j = 0; j < clickableCells.length; j++) + clickableCells[j].addEventListener("dblclick", + onClickableCellsDblClick, false); + } + log("cbtest1"); } else log ("ajax fuckage"); @@ -758,6 +758,8 @@ function onCalendarSelectAppointment(event) { function onCalendarSelectDay(event) { var day = this.getAttribute("day"); + var needRefresh = (listFilter == 'view_selectedday' + && day != currentDay); if (currentView == 'weekview') changeWeekCalendarDisplayOfSelectedDay(this); @@ -765,6 +767,9 @@ function onCalendarSelectDay(event) changeMonthCalendarDisplayOfSelectedDay(this); changeDateSelectorDisplay(day); + if (needRefresh) + refreshAppointments(); + event.cancelBubble = true; event.returnValue = false; }