Monotone-Parent: 1ccd34fd9ea99e675935d745db7e70d19716428a

Monotone-Revision: c40151185171e3ba8a257569b8ab5ec86930d393

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2010-05-05T14:40:53
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2010-05-05 14:40:53 +00:00
parent f7799b9cf8
commit 2bf4b7cf8b
42 changed files with 625 additions and 279 deletions
+23 -11
View File
@@ -796,22 +796,34 @@ TR#messageCountHeader TD
{ padding: 0; }
#iCalAttendees SPAN
{ line-height: 19px; }
#iCalAttendees DIV.status-icon
{ background-repeat: no-repeat;
background-position: 5px 1px;
padding-left: 22px;
padding-right: 4px; }
float: left;
padding: 0px;
clear: both;
width: 12px;
height: 18px;
margin-top: 1px;
margin-left: 4px;
margin-right: 4px;
background-image: url("attendee-partstats.png"); }
#iCalAttendees .accepted
{ background-image: url("accepted.png"); }
#iCalAttendees .accepted DIV.status-icon
{ background-position: 0px 0px; }
#iCalAttendees .needs-action
{ background-image: url("needs-action.png"); }
#iCalAttendees .declined DIV.status-icon
{ background-position: -12px 0px; }
#iCalAttendees .declined
{ background-image: url("declined.png"); }
#iCalAttendees .needs-action DIV.status-icon
{ background-position: -24px 0px; }
#iCalAttendees .delegated
{ background-image: url("delegated.png"); }
#iCalAttendees .tentative DIV.status-icon
{ background-position: -36px 0px; }
#iCalAttendees .delegated DIV.status-icon
{ background-position: -48px 0px; }
#iCalAttendees .attendeeUser,
#iCalAttendees .attendeeUser A
+10 -5
View File
@@ -1330,18 +1330,23 @@ DIV.event.alarm DIV.text
background-repeat: no-repeat;
background-position: top right; }
DIV.eventInside.tentative,
DIV.eventInside.needs-action
{ border: 1px dotted #666;
-moz-opacity: 0.6;
{ -moz-opacity: 0.7;
opacity: 0.7; }
DIV.eventInside.needs-action
{ border: 2px dotted #000; }
DIV.eventInside.tentative DIV.text,
DIV.eventInside.needs-action DIV.text
{ top: 0px;
left: 0px; }
left: 2px; }
DIV.eventInside.delegated,
DIV.eventInside.declined
{ -moz-opacity: 0.3;
opacity: 0.3; }
{ -moz-opacity: 0.4;
opacity: 0.4; }
/* event DnD */
DIV.event DIV.topDragGrip,
+2 -2
View File
@@ -25,7 +25,7 @@ var calendarEvents = null;
var preventAutoScroll = false;
var userStates = [ "needs-action", "accepted", "declined", "tentative" ];
var userStates = [ "needs-action", "accepted", "declined", "tentative", "delegated" ];
var calendarHeaderAdjusted = false;
@@ -297,7 +297,7 @@ function closeInvitationWindow() {
function modifyEventCallback(http) {
if (http.readyState == 4) {
if (http.status == 200) {
if (isHttpStatus204(http.status) || http.status == 200) {
var mailInvitation = queryParameters["mail-invitation"];
if (mailInvitation && mailInvitation.toLowerCase() == "yes")
closeInvitationWindow();
+40 -29
View File
@@ -122,42 +122,53 @@ A#attendeesHref
text-decoration: underline; }
DIV#attendeesMenu LI
{ padding-left: 10px; }
{ padding-left: 10px;
width: auto; }
DIV#attendeesMenu .attendee,
DIV#attendeesMenu DIV
DIV#attendeesMenu .attendeeUser
{ font-weight: bold; }
DIV#attendeesMenu .opt-participant
{ font-style: italic; }
DIV#attendeesMenu .non-participant A
{ color: #888; }
#attendeesLabel DIV#attendeesMenu > DIV
{ margin-left: 4px; }
#attendeesLabel DIV#attendeesMenu > DIV,
DIV#attendeesMenu .attendee
{ height: 18px; }
#attendeesLabel DIV#attendeesMenu .statusIcon
{ margin-top: 4px; }
DIV#attendeesMenu .statusIcon
{ background-repeat: no-repeat;
background-position: 5px center;
padding-left: 22px; }
float: left;
width: 12px;
height: 14px;
margin-right: 4px;
background-image: url("attendee-partstats.png"); }
DIV#attendeesMenu .accepted
{ background-image: url("accepted.png"); }
DIV#attendeesMenu .accepted .statusIcon
{ background-position: 0px 0px; }
DIV#attendeesMenu .accepted:hover
{ background-image: url("accepted.selected.png"); }
DIV#attendeesMenu .declined .statusIcon
{ background-position: -12px 0px; }
DIV#attendeesMenu .needs-action
{ background-image: url("needs-action.png"); }
DIV#attendeesMenu .needs-action .statusIcon
{ background-position: -24px 0px; }
DIV#attendeesMenu .needs-action:hover
{ background-image: url("needs-action.selected.png"); }
DIV#attendeesMenu .tentative .statusIcon
{ background-position: -36px 0px; }
DIV#attendeesMenu .declined
{ background-image: url("declined.png"); }
DIV#attendeesMenu .delegated .statusIcon
{ background-position: -48px 0px; }
DIV#attendeesMenu .declined:hover
{ background-image: url("declined.selected.png"); }
DIV#attendeesMenu .delegated
{ background-image: url("delegated.png"); }
DIV#attendeesMenu .delegated:hover
{ background-image: url("delegated.selected.png"); }
DIV#attendeesMenu .no-partstat .statusIcon
{ background-position: -60px 0px; }
DIV#attendeesMenu .delegate
{ background-position: 15px center;
padding-left: 32px; }
/* read-only view */
DIV#attendeesMenu DIV
{ padding-left: 20px; }
{ padding-left: 16px !important; }
+21 -15
View File
@@ -164,7 +164,7 @@ function addContact(tag, fullContactName, contactId, contactName, contactEmail)
function saveEvent(sender) {
if (validateAptEditor()) {
document.forms['editform'].attendees.value = attendees.toJSON();
document.forms['editform'].attendees.value = $(attendees).toJSON();
document.forms['editform'].submit();
}
@@ -298,7 +298,7 @@ function initTimeWidgets(widgets) {
}
}
function refreshAttendeesRO () {
function refreshAttendeesRO() {
var attendeesMenu = $("attendeesMenu");
var attendeesLabel = $("attendeesLabel");
var attendeesDiv = $("attendeesDiv");
@@ -323,7 +323,7 @@ function refreshAttendees(newAttendees) {
var attendeesMenu = $("attendeesMenu");
if (!attendeesHref)
return refreshAttendeesRO ();
return refreshAttendeesRO();
if (attendeesMenu)
attendeesMenu = $("attendeesMenu").down("ul");
@@ -337,9 +337,10 @@ function refreshAttendees(newAttendees) {
if (menuItems && attendeesMenu)
for (var i = 0; i < menuItems.length; i++)
attendeesMenu.removeChild(menuItems[i]);
if (newAttendees)
attendees = $H(newAttendees.evalJSON(true));
if (newAttendees) {
attendees = $H(newAttendees.evalJSON());
}
if (attendees.keys().length > 0) {
// Update attendees link and show label
@@ -353,13 +354,13 @@ function refreshAttendees(newAttendees) {
if (attendeesMenu) {
var delegatedTo = attendee.get('delegated-to');
if (!attendee.get('delegated-from') || delegatedTo) {
var node = document.createElement("li");
var node = createElement("li");
attendeesMenu.appendChild(node);
setupAttendeeNode(node, attendee);
}
if (delegatedTo) {
var delegate = attendees.get(delegatedTo);
var node = document.createElement("li");
var node = createElement("li");
attendeesMenu.appendChild(node);
setupAttendeeNode(node, $H(delegate), true);
}
@@ -384,13 +385,18 @@ function setupAttendeeNode(aNode, aAttendee, isDelegate) {
// name = email;
name = name || email;
$(aNode).writeAttribute("email", email);
$(aNode).addClassName("attendee");
$(aNode).addClassName(aAttendee.get('partstat'));
aNode.writeAttribute("email", email);
aNode.addClassName("attendee");
var partstat = aAttendee.get('partstat');
if (!partstat)
partstat = "no-partstat";
aNode.addClassName(partstat);
if (isDelegate)
$(aNode).addClassName("delegate");
aNode.addClassName("delegate");
var statusIconNode = createElement("div", null, "statusIcon");
aNode.appendChild(statusIconNode);
aNode.appendChild(document.createTextNode(name));
$(aNode).observe("click", onMailTo);
aNode.observe("click", onMailTo);
}
function initializeAttendeesHref() {
@@ -410,8 +416,8 @@ function onAttendeesHrefClick(event) {
}
function onMailTo(event) {
var target = getTarget(event);
var address = target.firstChild.nodeValue.trim() + " <" + target.readAttribute("email") + ">";
var target = $(getTarget(event));
var address = target.lastChild.nodeValue.trim() + " <" + target.readAttribute("email") + ">";
openMailTo(address);
Event.stop(event);
return false;
+69 -34
View File
@@ -48,20 +48,62 @@ TABLE#freeBusy TD.freeBusyAttendees DIV
TABLE#freeBusy TD.freeBusyData DIV
{ overflow: scroll; }
TABLE#freeBusyAttendees TR.needs-action TD.attendees
{ background-image: url("needs-action.png");
background-repeat: no-repeat;
background-position: 5px center; }
TABLE#freeBusyAttendees TD.attendeeStatus
{ width: 24px;
min-width: 24px;
max-width: 24px; }
TABLE#freeBusyAttendees TR.declined TD.attendees
{ background-image: url("declined.png");
background-repeat: no-repeat;
background-position: 5px center; }
TABLE#freeBusyAttendees TD.attendeeStatus DIV
{ width: 12px;
min-width: 12px;
max-width: 24px;
background-image: none; }
TABLE#freeBusyAttendees TR.accepted TD.attendees
{ background-image: url("accepted.png");
background-repeat: no-repeat;
background-position: 5px center; }
UL.roles-legend SPAN.role-icon
{ display: block;
float: left; }
UL.roles-legend SPAN.role-icon,
TABLE#freeBusyAttendees TR.attendee-row TD.attendeeStatus DIV
{ background-repeat: no-repeat;
width: 24px;
height: 20px;
background-image: url("attendee-roles.png"); }
LI[role="req-participant"] > SPAN.role-icon,
TABLE#freeBusyAttendees TR[role="req-participant"].attendee-row TD.attendeeStatus DIV
{ background-position: 0px 4px; }
LI[role="opt-participant"] > SPAN.role-icon,
TABLE#freeBusyAttendees TR[role="opt-participant"].attendee-row TD.attendeeStatus DIV
{ background-position: -24px 4px; }
LI[role="non-participant"] > SPAN.role-icon,
TABLE#freeBusyAttendees TR[role="non-participant"].attendee-row TD.attendeeStatus DIV
{ background-position: -72px 4px; }
LI[role="chair"] > SPAN.role-icon,
TABLE#freeBusyAttendees TR[role="chair"].attendee-row TD.attendeeStatus DIV
{ background-position: -48px 4px; }
TABLE#freeBusyAttendees TR.organizer-row TD.attendeeStatus DIV
{ background-repeat: no-repeat;
width: 12px;
height: 18px;
margin-left: 6px;
background-image: url("attendee-partstats.png"); }
TABLE#freeBusyAttendees TR[partstat="accepted"].organizer-row TD.attendeeStatus DIV
{ background-position: 0px 4px; }
TABLE#freeBusyAttendees TR[partstat="declined"].organizer-row TD.attendeeStatus DIV
{ background-position: -12px 4px; }
TABLE#freeBusyAttendees TR[partstat="needs-action"].organizer-row TD.attendeeStatus DIV
{ background-position: -24px 4px; }
TABLE#freeBusyAttendees TR[partstat="tentative"].organizer-row TD.attendeeStatus DIV
{ background-position: -36px 4px; }
TABLE#freeBusyHeader TR.freeBusyHeader2 TH
{ font-weight: normal; }
@@ -112,8 +154,7 @@ TABLE#freeBusyAttendees TD.attendees INPUT
background-position: 4px center;
border: 0px;
width: 12em;
padding-left: 24px;
margin-left: 2em; }
padding-left: 24px; }
TABLE#freeBusyAttendees TR.futureAttendee INPUT
{ background-image: none;
@@ -124,9 +165,6 @@ TABLE#freeBusyData TR.futureData TD
{ border: 0;
line-height: 3em; }
TABLE#freeBusyAttendees TR.futureAttendee TD A
{ margin-left: 20px; }
SPAN.freeBusyZoneElement
{ display: block;
float: left;
@@ -165,32 +203,29 @@ DIV#legend
DIV#legend UL
{ cursor: default;
float: left;
width: 30%;
margin: 0px;
margin-right: 10px;
padding: 0px;
line-height: 1.5em;
list-style-type: none;
list-style-image: none; }
DIV#legend UL LI
{ white-space: nowrap;
DIV#legend LI
{ height: 20px;
white-space: nowrap;
margin: 0px;
padding: 0px; }
DIV#legend UL IMG
{ margin-right: .5em; }
DIV#legend UL LI SPAN.colorBox
UL.freebusy-legend SPAN.colorBox
{ float: left;
margin-right: .5em; }
SPAN.colorBox
{ display: block;
float: right;
border: 1px solid #333;
margin: .12em;
width: 1em;
height: .75em; }
margin-top: 5px;
margin-right: 2px;
display: block;
border: 1px solid #999;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
border-bottom: 1px solid #eee;
width: 32px;
height: 10px; }
SPAN.colorBox.busy,
SPAN.freeBusyZoneElement.busy
+126 -50
View File
@@ -1,5 +1,7 @@
/* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
var OwnerLogin = "";
var resultsDiv;
var address;
var awaitingFreeBusyRequests = new Array();
@@ -16,7 +18,6 @@ var attendeesEditor = {
selectedIndex: -1
};
function handleAllDay () {
window.timeWidgets['end']['hour'].value = 17;
window.timeWidgets['end']['minute'].value = 0;
@@ -189,8 +190,23 @@ function performSearchCallback(http) {
if (data.contacts.length == 1) {
// Single result
var contact = data.contacts[0];
if (contact["uid"].length > 0)
if (contact["uid"].length > 0) {
var row = $(input.parentNode.parentNode);
input.uid = contact["uid"];
if (input.uid == OwnerLogin) {
row.removeAttribute("role");
row.setAttribute("partstat", "accepted");
row.addClassName("organizer-row");
row.removeClassName("attendee-row");
row.isOrganizer = true;
} else {
row.removeAttribute("partstat");
row.setAttribute("role", "req-participant");
row.addClassName("attendee-row");
row.removeClassName("organizer-row");
row.isOrganizer = false;
}
}
var completeEmail = contact["name"] + " <" + contact["email"] + ">";
if (contact["name"].substring(0, input.value.length).toUpperCase()
== input.value.toUpperCase())
@@ -284,17 +300,54 @@ function redisplayFreeBusyZone() {
scrollToEvent();
}
function onAttendeeStatusClick(event) {
rotateAttendeeStatus(this);
}
function rotateAttendeeStatus(row) {
var values;
var attributeName;
if (row.isOrganizer) {
values = [ "accepted", "declined", "tentative", "needs-action" ];
attributeName = "partstat";
} else {
values = [ "req-participant", "opt-participant",
"chair", "non-participant" ];
attributeName = "role";
}
var value = row.getAttribute(attributeName);
var idx = (value ? values.indexOf(value) : -1);
if (idx == -1 || idx > (values.length - 2)) {
idx = 0;
} else {
idx++;
}
row.setAttribute(attributeName, values[idx]);
if (Prototype.Browser.IE) {
/* This hack enables a refresh of the row element right after the
click. Otherwise, this occurs only when leaving the element with
them mouse cursor. */
row.className = row.className;
}
}
function newAttendee(event) {
var table = $("freeBusyAttendees");
var tbody = table.tBodies[0];
var model = tbody.rows[tbody.rows.length - 1];
var futureRow = tbody.rows[tbody.rows.length - 2];
var newRow = model.cloneNode(true);
var newRow = $(model.cloneNode(true));
tbody.insertBefore(newRow, futureRow);
var statusTD = newRow.down(".attendeeStatus");
if (statusTD) {
var boundOnStatusClick = onAttendeeStatusClick.bindAsEventListener(newRow);
statusTD.observe("click", boundOnStatusClick, false);
}
$(newRow).removeClassName("attendeeModel");
var input = $(newRow).down("input");
var input = newRow.down("input");
input.observe("keydown", onContactKeydown);
input.observe("blur", checkAttendee);
@@ -305,9 +358,9 @@ function newAttendee(event) {
tbody = table.tBodies[0];
model = tbody.rows[tbody.rows.length - 1];
futureRow = tbody.rows[tbody.rows.length - 2];
newRow = model.cloneNode(true);
newRow = $(model.cloneNode(true));
tbody.insertBefore(newRow, futureRow);
$(newRow).removeClassName("dataModel");
newRow.removeClassName("dataModel");
var attendeesDiv = $$('TABLE#freeBusy TD.freeBusyAttendees DIV').first();
var dataDiv = $$('TABLE#freeBusy TD.freeBusyData DIV').first();
@@ -315,7 +368,7 @@ function newAttendee(event) {
dataDiv.scrollTop = attendeesDiv.scrollTop;
}
function checkAttendee() { log ("checkAttendee");
function checkAttendee() { // log ("checkAttendee");
if (document.currentPopupMenu)
hideMenu(document.currentPopupMenu);
@@ -335,17 +388,11 @@ function checkAttendee() { log ("checkAttendee");
var dataRow = dataTable.rows[row.sectionRowIndex];
tbody.removeChild(row);
dataTable.removeChild(dataRow);
}
}
else if (this.readAttribute("modified") == "1") {
if (!$(row).hasClassName("needs-action")) {
$(row).addClassName("needs-action");
$(row).removeClassName("declined");
$(row).removeClassName("accepted");
}
if (!this.hasfreebusy) {
if (this.uid && this.confirmedValue)
this.value = this.confirmedValue;
log ("4");
displayFreeBusyForNode(this);
this.hasfreebusy = true;
}
@@ -357,7 +404,8 @@ function checkAttendee() { log ("checkAttendee");
function displayFreeBusyForNode(input) {
var rowIndex = input.parentNode.parentNode.sectionRowIndex;
var nodes = $("freeBusyData").tBodies[0].rows[rowIndex].cells; log ("displayFreeBusyForNode index " + rowIndex + " (" + nodes.length + " cells)");
var nodes = $("freeBusyData").tBodies[0].rows[rowIndex].cells;
log ("displayFreeBusyForNode index " + rowIndex + " (" + nodes.length + " cells)");
if (input.uid) {
if (document.contactFreeBusyAjaxRequest) { log ("busy -- delay " + rowIndex);
awaitingFreeBusyRequests.push(input); }
@@ -453,7 +501,7 @@ function initializeWindowButtons() {
$("nextSlot").observe ("click", onNextSlotClick, false);
}
function findSlot (direction) {
function findSlot(direction) {
var userList = UserLogin;
var table = $("freeBusy");
var inputs = table.getElementsByTagName("input");
@@ -565,7 +613,7 @@ function onNextSlotClick(event) {
function onEditorOkClick(event) {
preventDefault(event);
var attendees = window.opener.attendees;
var newAttendees = new Hash();
var table = $("freeBusy");
@@ -582,12 +630,20 @@ function onEditorOkClick(event) {
name = inputs[i].uid;
else
name = email;
var attendee = attendees.get(email);
if (!attendee)
attendee = new Hash({'email': email,
'name': name,
'uid': uid,
'partstat': 'needs-action'});
var attendee = attendees["email"];
if (!attendee) {
attendee = {"email": email,
"name": name,
"role": "req-participant",
"partstat": "needs-action",
"uid": uid};
}
var partstat = row.getAttribute("partstat");
if (partstat)
attendee["partstat"] = partstat;
var role = row.getAttribute("role");
if (role)
attendee["role"] = role;
newAttendees.set(email, attendee);
}
window.opener.refreshAttendees(newAttendees.toJSON());
@@ -733,33 +789,51 @@ function prepareAttendees() {
var modelData = tbodyData.rows[tbodyData.rows.length - 1];
var newDataRow = tbodyData.rows[tbodyData.rows.length - 2];
attendees.values().each(function(attendee) {
attendee = $H(attendee);
var row = modelAttendee.cloneNode(true);
tbodyAttendees.insertBefore(row, newAttendeeRow);
$(row).removeClassName("attendeeModel");
$(row).addClassName(attendee.get('partstat'));
var input = $(row).down("input");
var value = attendee.get('name');
if (value)
value += " ";
else
value = "";
value += "<" + attendee.get('email') + ">";
input.value = value;
if (attendee.get('uid'))
input.uid = attendee.get('uid');
input.setAttribute("name", "");
input.setAttribute("modified", "0");
input.observe("blur", checkAttendee);
input.observe("keydown", onContactKeydown);
attendees.keys().each(function(atKey) {
var attendee = attendees.get(atKey);
// attendee = $H(attendee);
var row = $(modelAttendee.cloneNode(true));
tbodyAttendees.insertBefore(row, newAttendeeRow);
row.removeClassName("attendeeModel");
row.setAttribute("partstat", attendee["partstat"]);
row.setAttribute("role", attendee["role"]);
var uid = attendee["uid"];
if (uid && uid == OwnerLogin) {
row.addClassName("organizer-row");
row.removeClassName("attendee-row");
row.isOrganizer = true;
} else {
row.addClassName("attendee-row");
row.removeClassName("organizer-row");
row.isOrganizer = false;
}
var statusTD = row.down(".attendeeStatus");
if (statusTD) {
var boundOnStatusClick
= onAttendeeStatusClick.bindAsEventListener(row);
statusTD.observe("click", boundOnStatusClick, false);
}
var input = row.down("input");
var value = attendee["name"];
if (value)
value += " ";
else
value = "";
value += "<" + attendee["email"] + ">";
input.value = value;
if (uid)
input.uid = uid;
input.setAttribute("name", "");
input.setAttribute("modified", "0");
input.observe("blur", checkAttendee);
input.observe("keydown", onContactKeydown);
row = modelData.cloneNode(true);
tbodyData.insertBefore(row, newDataRow);
$(row).removeClassName("dataModel");
log ("3");
displayFreeBusyForNode(input);
});
row = $(modelData.cloneNode(true));
tbodyData.insertBefore(row, newDataRow);
row.removeClassName("dataModel");
displayFreeBusyForNode(input);
});
}
// Activate "Add attendee" button
@@ -799,6 +873,8 @@ function onFreeBusyLoadHandler() {
'hour': $("endTime_time_hour"),
'minute': $("endTime_time_minute")}};
OwnerLogin = window.opener.getOwnerLogin();
synchronizeWithParent("startTime", "startTime");
synchronizeWithParent("endTime", "endTime");
+10 -2
View File
@@ -6,6 +6,10 @@ var ComponentEditor = {
reminderWindow: null
};
function getOwnerLogin() {
return ownerLogin;
}
function onPopupAttendeesWindow(event) {
if (event)
preventDefault(event);
@@ -202,7 +206,7 @@ function onSummaryChange (e) {
function onReplyChange(event) {
var delegateEditor = $("delegateEditor");
if (this.value == 2) {
if (this.value == 4) {
// Delegated
delegateEditor.show();
$("delegatedTo").focus();
@@ -328,7 +332,11 @@ function onOkButtonClick (e) {
action = 'accept';
else if (value == 1)
action = 'decline';
else if (value == 2) {
else if (value == 2)
action = 'needsaction';
else if (value == 3)
action = 'tentative';
else if (value == 4) {
var url = ApplicationBaseURL + activeCalendar + '/' + activeComponent;
document.modifyEventAjaxRequest = delegateInvitation(url, modifyEventCallback);
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

+1 -1
View File
@@ -67,7 +67,7 @@ function createElement(tagName, id, classes,
if (parentNode)
parentNode.appendChild(newElement);
return $(newElement);
return newElement;
}
function URLForFolderID(folderID) {
+16
View File
@@ -83,6 +83,10 @@ DIV#attendeesMenu LI.separator
DIV#attendeesView
{ left: 0.5em; }
TABLE#freeBusyAttendees TD.attendeeStatus,
TABLE#freeBusyAttendees TD.attendeeStatus DIV
{ width: 24px; }
TABLE
{ empty-cells: show; }
@@ -100,6 +104,18 @@ DIV#propertiesView LEGEND
/* UIxMailPartICalViewer */
#iCalAttendees SPAN
{ display: block;
height: 18px;
border: 0px;
margin: 0px;
padding: 0px; }
#iCalAttendees DIV.status-icon
{ margin-top: 2px;
border: 0px;
padding: 0px; }
.clear
{ padding-top: 0; }
Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 B