diff --git a/UI/WebServerResources/ContactsUI.css b/UI/WebServerResources/ContactsUI.css
index 86084f388..d9dbb1c39 100644
--- a/UI/WebServerResources/ContactsUI.css
+++ b/UI/WebServerResources/ContactsUI.css
@@ -135,7 +135,7 @@ UL#contactFolders
color: #000;
background: #CCDDEC;
position: absolute; /* required for Safari & IE */
- top: 73px; /* leave space for the mini addressbook */
+ top: 76px; /* leave space for the mini addressbook */
bottom: 0px;
left: 0;
right: 0;
@@ -372,7 +372,7 @@ DIV.copy
DIV#smallToolbarContainer
{ top: 2em !important;
- height: 40px;
+ height: 44px;
right: 0px; }
@media print
diff --git a/UI/WebServerResources/ContactsUI.js b/UI/WebServerResources/ContactsUI.js
index d880d78f4..19b75f41c 100644
--- a/UI/WebServerResources/ContactsUI.js
+++ b/UI/WebServerResources/ContactsUI.js
@@ -525,10 +525,11 @@ function newContact(sender) {
function newList(sender) {
var li = $(Contact.currentAddressBook);
- if (li.hasClassName ("remote"))
- alert (getLabel("You cannot create a list in a shared address book."));
+ if (li.hasClassName("remote"))
+ alert(getLabel("You cannot create a list in a shared address book."));
else
openContactWindow(URLForFolderID(Contact.currentAddressBook) + "/newlist");
+
return false;
}
diff --git a/UI/WebServerResources/SchedulerUI.css b/UI/WebServerResources/SchedulerUI.css
index 2fc77d747..c29731be3 100644
--- a/UI/WebServerResources/SchedulerUI.css
+++ b/UI/WebServerResources/SchedulerUI.css
@@ -31,7 +31,7 @@ DIV#tasksListView LABEL
{ margin: .25em; }
DIV#calendarSelectorView
-{ top: 0px; }
+{ top: 3px; }
DIV#calendarSelectorView
{ overflow: hidden; }
@@ -64,7 +64,7 @@ UL#tasksList, UL#calendarList
UL#calendarList
{ clear: left;
- height: 10em; }
+ height: 102px; }
UL#calendarList LI
{ cursor: pointer;
diff --git a/UI/WebServerResources/UIxAttendeesEditor.css b/UI/WebServerResources/UIxAttendeesEditor.css
index 7eb95eecd..7a3ddcd47 100644
--- a/UI/WebServerResources/UIxAttendeesEditor.css
+++ b/UI/WebServerResources/UIxAttendeesEditor.css
@@ -23,6 +23,9 @@ DIV#freeBusyView
border-right: 1px solid #fff;
border-bottom: 1px solid #fff; }
+SPAN.timeDateControl A:hover
+{ text-decoration: none; }
+
TABLE
{ border-collapse: separate;
table-layout: auto;
diff --git a/UI/WebServerResources/UIxAttendeesEditor.js b/UI/WebServerResources/UIxAttendeesEditor.js
index 1bc940d39..f14c4d52c 100644
--- a/UI/WebServerResources/UIxAttendeesEditor.js
+++ b/UI/WebServerResources/UIxAttendeesEditor.js
@@ -79,7 +79,7 @@ function onContactKeydown(event) {
attendeesEditor.selectedIndex = -1;
if (this.uid) {
this.hasfreebusy = false;
- this.setAttribute ("modified", "1");
+ this.writeAttribute("modified", "1");
this.blur(); // triggers checkAttendee function call
}
}
@@ -315,7 +315,7 @@ function newAttendee(event) {
dataDiv.scrollTop = attendeesDiv.scrollTop;
}
-function checkAttendee() {
+function checkAttendee() { log ("checkAttendee");
if (document.currentPopupMenu)
hideMenu(document.currentPopupMenu);
@@ -340,11 +340,12 @@ function checkAttendee() {
if (!$(row).hasClassName("needs-action")) {
$(row).addClassName("needs-action");
$(row).removeClassName("declined");
- $(row).removeClassName("accepted");
+ $(row).removeClassName("accepted");
}
if (!this.hasfreebusy) {
if (this.uid && this.confirmedValue)
this.value = this.confirmedValue;
+ log ("4");
displayFreeBusyForNode(this);
this.hasfreebusy = true;
}
@@ -356,10 +357,10 @@ function checkAttendee() {
function displayFreeBusyForNode(input) {
var rowIndex = input.parentNode.parentNode.sectionRowIndex;
- var nodes = $("freeBusyData").tBodies[0].rows[rowIndex].cells;
+ var nodes = $("freeBusyData").tBodies[0].rows[rowIndex].cells; log ("displayFreeBusyForNode index " + rowIndex + " (" + nodes.length + " cells)");
if (input.uid) {
- if (document.contactFreeBusyAjaxRequest)
- awaitingFreeBusyRequests.push(input);
+ if (document.contactFreeBusyAjaxRequest) { log ("busy -- delay " + rowIndex);
+ awaitingFreeBusyRequests.push(input); }
else {
for (var i = 0; i < nodes.length; i++) {
$(nodes[i]).removeClassName("noFreeBusy");
@@ -368,17 +369,17 @@ function displayFreeBusyForNode(input) {
+ ''
+ '');
}
- if (document.contactFreeBusyAjaxRequest) {
- // Abort any pending request
- document.contactFreeBusyAjaxRequest.aborted = true;
- document.contactFreeBusyAjaxRequest.abort();
- }
+// if (document.contactFreeBusyAjaxRequest) {
+// // Abort any pending request
+// document.contactFreeBusyAjaxRequest.aborted = true;
+// document.contactFreeBusyAjaxRequest.abort();
+// }
var sd = $('startTime_date').valueAsShortDateString();
var ed = $('endTime_date').valueAsShortDateString();
var urlstr = ( UserFolderURL + "../" + input.uid
+ "/freebusy.ifb/ajaxRead?"
+ "sday=" + sd + "&eday=" + ed + "&additional=" +
- additionalDays );
+ additionalDays ); log (urlstr);
document.contactFreeBusyAjaxRequest
= triggerAjaxRequest(urlstr,
updateFreeBusyDataCallback,
@@ -418,14 +419,15 @@ function updateFreeBusyDataCallback(http) {
var slots = http.responseText.split(",");
var rowIndex = input.parentNode.parentNode.sectionRowIndex;
var nodes = $("freeBusyData").tBodies[0].rows[rowIndex].cells;
+ log ("received " + slots.length + " slots for " + rowIndex + " with " + nodes.length + " cells");
for (var i = 0; i < slots.length; i++) {
if (slots[i] != '0')
setSlot(nodes, i, slots[i]);
}
}
- document.contactFreeBusyAjaxRequest = null;
- if (awaitingFreeBusyRequests.length > 0)
- displayFreeBusyForNode(awaitingFreeBusyRequests.shift());
+ document.contactFreeBusyAjaxRequest = null;
+ if (awaitingFreeBusyRequests.length > 0) { log ("1");
+ displayFreeBusyForNode(awaitingFreeBusyRequests.shift()); }
}
}
@@ -434,9 +436,9 @@ function resetAllFreeBusys() {
var inputs = table.getElementsByTagName("input");
for (var i = 0; i < inputs.length - 1; i++) {
- var currentInput = inputs[i];
- currentInput.hasfreebusy = false;
- displayFreeBusyForNode(inputs[i]);
+ var currentInput = inputs[i]; log ("reset fb " + currentInput.uid);
+ currentInput.hasfreebusy = false; log ("2");
+ displayFreeBusyForNode(currentInput);
}
}
@@ -755,7 +757,7 @@ function prepareAttendees() {
row = modelData.cloneNode(true);
tbodyData.insertBefore(row, newDataRow);
$(row).removeClassName("dataModel");
-
+ log ("3");
displayFreeBusyForNode(input);
});
}
diff --git a/UI/WebServerResources/generic.css b/UI/WebServerResources/generic.css
index 58a3a013d..6b94ece5b 100644
--- a/UI/WebServerResources/generic.css
+++ b/UI/WebServerResources/generic.css
@@ -843,7 +843,7 @@ A.smallToolbarButton:hover {
}
A.smallToolbarButton,
A.smallToolbarButton:hover {
- height: 35px;
+ height: 37px;
}
A.toolbarButton:hover {
background: transparent url('toolbarbtn_a_bg.png') no-repeat scroll top right;