diff --git a/UI/Scheduler/UIxCalDayTable.m b/UI/Scheduler/UIxCalDayTable.m index e0d65ebff..59fea714b 100644 --- a/UI/Scheduler/UIxCalDayTable.m +++ b/UI/Scheduler/UIxCalDayTable.m @@ -61,6 +61,8 @@ [allAppointments release]; if (daysToDisplay) [daysToDisplay release]; + if (hoursToDisplay) + [hoursToDisplay release]; [dateFormatter release]; [super dealloc]; } @@ -137,8 +139,7 @@ { currentHour = [self dayStartHour]; lastHour = [self dayEndHour]; - hoursToDisplay - = [NSMutableArray arrayWithCapacity: (lastHour - currentHour)]; + hoursToDisplay = [NSMutableArray new]; while (currentHour < lastHour) { @@ -315,4 +316,9 @@ return classes; } +- (NSString *) clickableHourCellClass +{ + return [NSString stringWithFormat: @"clickableHourCell clickableHourCell%@", currentTableHour]; +} + @end diff --git a/UI/Templates/SchedulerUI/UIxCalDayTable.wox b/UI/Templates/SchedulerUI/UIxCalDayTable.wox index 6343280e4..42022b7d5 100644 --- a/UI/Templates/SchedulerUI/UIxCalDayTable.wox +++ b/UI/Templates/SchedulerUI/UIxCalDayTable.wox @@ -45,6 +45,11 @@ var:day="currentTableDay.shortDateString" >
+
+
DIV.hourLines > DIV.hourLine right: 0px; border-top: 1px solid #397d94; } +DIV.clickableHourCell +{ width: 100%; + height: 4em; } + +DIV.clickableHourCell0 +{ top: 0px; } + +DIV.clickableHourCell1, DIV.daysView > DIV.hourLines > DIV.hourLine0 { top: 4em; } +DIV.clickableHourCell2, DIV.daysView > DIV.hourLines > DIV.hourLine1 { top: 8em; } +DIV.clickableHourCell3, DIV.daysView > DIV.hourLines > DIV.hourLine2 { top: 12em; } +DIV.clickableHourCell3, DIV.daysView > DIV.hourLines > DIV.hourLine3 { top: 16em; } +DIV.clickableHourCell5, DIV.daysView > DIV.hourLines > DIV.hourLine4 { top: 20em; } +DIV.clickableHourCell4, DIV.daysView > DIV.hourLines > DIV.hourLine5 { top: 24em; } +DIV.clickableHourCell5, DIV.daysView > DIV.hourLines > DIV.hourLine6 { top: 28em; } +DIV.clickableHourCell6, DIV.daysView > DIV.hourLines > DIV.hourLine7 { top: 32em; } +DIV.clickableHourCell7, DIV.daysView > DIV.hourLines > DIV.hourLine8 { top: 36em; } +DIV.clickableHourCell8, DIV.daysView > DIV.hourLines > DIV.hourLine9 { top: 40em; } +DIV.clickableHourCell9, DIV.daysView > DIV.hourLines > DIV.hourLine10 { top: 44em; } +DIV.clickableHourCell10, DIV.daysView > DIV.hourLines > DIV.hourLine11 { top: 48em; } +DIV.clickableHourCell11, DIV.daysView > DIV.hourLines > DIV.hourLine12 { top: 52em; } +DIV.clickableHourCell12, DIV.daysView > DIV.hourLines > DIV.hourLine13 { top: 56em; } +DIV.clickableHourCell13, DIV.daysView > DIV.hourLines > DIV.hourLine14 { top: 60em; } +DIV.clickableHourCell14, DIV.daysView > DIV.hourLines > DIV.hourLine15 { top: 64em; } +DIV.clickableHourCell15, DIV.daysView > DIV.hourLines > DIV.hourLine16 { top: 68em; } +DIV.clickableHourCell16, DIV.daysView > DIV.hourLines > DIV.hourLine17 { top: 72em; } +DIV.clickableHourCell17, DIV.daysView > DIV.hourLines > DIV.hourLine18 { top: 76em; } +DIV.clickableHourCell18, DIV.daysView > DIV.hourLines > DIV.hourLine19 { top: 80em; } +DIV.clickableHourCell19, DIV.daysView > DIV.hourLines > DIV.hourLine20 { top: 84em; } +DIV.clickableHourCell20, DIV.daysView > DIV.hourLines > DIV.hourLine21 { top: 88em; } +DIV.clickableHourCell21, DIV.daysView > DIV.hourLines > DIV.hourLine22 { top: 92em; } +DIV.clickableHourCell22, DIV.daysView > DIV.hourLines > DIV.hourLine23 { top: 96em; } diff --git a/UI/WebServerResources/SchedulerUI.js b/UI/WebServerResources/SchedulerUI.js index cd81825fc..2dda06bb8 100644 --- a/UI/WebServerResources/SchedulerUI.js +++ b/UI/WebServerResources/SchedulerUI.js @@ -448,6 +448,10 @@ function scrollDayView(hour) daysView.parentNode.scrollTop = hours[rowNumber + 1].offsetTop; } +function onClickableCellsDblClick(event) { + newEvent(this, 'event'); +} + function calendarDisplayCallback(http) { var div = $("calendarView"); @@ -474,8 +478,15 @@ function calendarDisplayCallback(http) appointments[i].addEventListener("dblclick", displayAppointment, true); } var days = document.getElementsByClassName("day", daysView); - for (var i = 0; i < days.length; i++) + 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, true); + } + } } else log ("ajax fuckage"); @@ -707,8 +718,7 @@ function onSearchFormSubmit() return false; } -function onCalendarSelectAppointment(event) -{ +function onCalendarSelectAppointment(event) { var list = $("appointmentsList"); list.deselectAll();