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();