mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-07-11 03:15:10 +00:00
See ChangeLog
Monotone-Parent: 6909119bf676c36ec9130366c9880eea70ad1841 Monotone-Revision: 91077f9a3b3dec2d983310daef5d9923ce41255f Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2010-07-08T04:13:56 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -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 = Object.toJSON($(attendees));
|
||||
document.forms['editform'].submit();
|
||||
}
|
||||
|
||||
@@ -324,7 +324,7 @@ function refreshAttendees(newAttendees) {
|
||||
|
||||
if (!attendeesHref)
|
||||
return refreshAttendeesRO();
|
||||
|
||||
|
||||
if (attendeesMenu)
|
||||
attendeesMenu = $("attendeesMenu").down("ul");
|
||||
|
||||
@@ -337,12 +337,12 @@ function refreshAttendees(newAttendees) {
|
||||
if (menuItems && attendeesMenu)
|
||||
for (var i = 0; i < menuItems.length; i++)
|
||||
attendeesMenu.removeChild(menuItems[i]);
|
||||
|
||||
if (newAttendees) {
|
||||
|
||||
if (newAttendees)
|
||||
// Update global variable
|
||||
attendees = $H(newAttendees.evalJSON());
|
||||
}
|
||||
|
||||
if (attendees.keys().length > 0) {
|
||||
if (attendees.keys().length > 0) {
|
||||
// Update attendees link and show label
|
||||
var names = new Array();
|
||||
attendees.values().each(function(attendee) {
|
||||
|
||||
@@ -243,13 +243,15 @@ TABLE#freeBusyData TD.noFreeBusy
|
||||
{ margin: 0px;
|
||||
text-align: left; }
|
||||
|
||||
SPAN#freeBusyViewOptions
|
||||
{ float: left; }
|
||||
|
||||
#freeBusyViewButtons SELECT
|
||||
{ width: 50px; }
|
||||
|
||||
SPAN.hidden
|
||||
{ display: none; }
|
||||
|
||||
#freeBusyViewButtons > DIV.buttons
|
||||
{ margin: 0px;
|
||||
margin-top: 4px; }
|
||||
|
||||
DIV#freeBusyReplicas
|
||||
{ position: absolute;
|
||||
top: 2px;
|
||||
|
||||
@@ -106,8 +106,10 @@ function onContactKeydown(event) {
|
||||
this.focussed = true;
|
||||
return;
|
||||
}
|
||||
if (event.keyCode == 9 || event.keyCode == 13) { // Tab
|
||||
if (event.keyCode == Event.KEY_TAB || event.keyCode == Event.KEY_RETURN) {
|
||||
preventDefault(event);
|
||||
this.scrollLeft = 0;
|
||||
$(this).up('DIV').scrollLeft = 0;
|
||||
if (this.confirmedValue)
|
||||
this.value = this.confirmedValue;
|
||||
this.hasfreebusy = false;
|
||||
@@ -128,7 +130,7 @@ function onContactKeydown(event) {
|
||||
}
|
||||
}
|
||||
else if (event.keyCode == 0
|
||||
|| event.keyCode == 8 // Backspace
|
||||
|| event.keyCode == Event.KEY_BACKSPACE
|
||||
|| event.keyCode == 32 // Space
|
||||
|| event.keyCode > 47) {
|
||||
this.modified = true;
|
||||
@@ -349,6 +351,8 @@ function onAttendeeResultClick(event) {
|
||||
input.confirmedValue = input.value = this.address;
|
||||
initializeAttendeeRole(input);
|
||||
checkAttendee(input);
|
||||
this.scrollLeft = 0;
|
||||
$(this).up('DIV').scrollLeft = 0;
|
||||
|
||||
this.parentNode.input = null;
|
||||
}
|
||||
@@ -440,7 +444,7 @@ function rotateAttendeeStatus(row) {
|
||||
idx++;
|
||||
}
|
||||
row.setAttribute(attributeName, values[idx]);
|
||||
if (Prototype.Browser.IE) {
|
||||
if (!Prototype.Browser.Gecko) {
|
||||
/* 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. */
|
||||
@@ -1289,7 +1293,7 @@ function onEditorOkClick(event) {
|
||||
var inputs = $("freeBusy").getElementsByTagName("input");
|
||||
for (var i = 0; i < inputs.length - 1; i++) {
|
||||
var input = inputs[i];
|
||||
if (input.uid) {
|
||||
if (!input.disabled && input.uid) {
|
||||
uids.push(input.uid);
|
||||
}
|
||||
}
|
||||
@@ -1321,6 +1325,8 @@ function _confirmEditorOkClick() {
|
||||
var newAttendees = new Hash();
|
||||
var inputs = $("freeBusy").getElementsByTagName("input");
|
||||
for (var i = 0; i < inputs.length - 1; i++) {
|
||||
if (inputs[i].disabled)
|
||||
continue;
|
||||
var row = $(inputs[i]).up("tr");
|
||||
var name = extractEmailName(inputs[i].value);
|
||||
var email = extractEmailAddress(inputs[i].value);
|
||||
@@ -1348,7 +1354,7 @@ function _confirmEditorOkClick() {
|
||||
attendee["role"] = role;
|
||||
newAttendees.set(email, attendee);
|
||||
}
|
||||
window.opener.refreshAttendees(newAttendees.toJSON());
|
||||
window.opener.refreshAttendees(Object.toJSON(newAttendees));
|
||||
|
||||
updateParentDateFields("startTime", "startTime");
|
||||
updateParentDateFields("endTime", "endTime");
|
||||
@@ -1481,16 +1487,48 @@ function prepareTableRows() {
|
||||
function prepareAttendees() {
|
||||
var tableAttendees = $("freeBusyAttendees");
|
||||
var tableData = $("freeBusyData");
|
||||
var organizer = window.opener.organizer;
|
||||
var attendees = window.opener.attendees;
|
||||
var attendeesKeys = (attendees ? attendees.keys() : null);
|
||||
if (attendeesKeys && attendeesKeys.length > 0) {
|
||||
var tbodyAttendees = tableAttendees.tBodies[0];
|
||||
var modelAttendee = tbodyAttendees.rows[tbodyAttendees.rows.length - 1];
|
||||
var newAttendeeRow = tbodyAttendees.rows[tbodyAttendees.rows.length - 2];
|
||||
|
||||
var tbodyData = tableData.tBodies[0];
|
||||
var modelData = tbodyData.rows[tbodyData.rows.length - 1];
|
||||
var newDataRow = tbodyData.rows[tbodyData.rows.length - 2];
|
||||
var tbodyAttendees = tableAttendees.tBodies[0];
|
||||
var modelAttendee = tbodyAttendees.rows[tbodyAttendees.rows.length - 1];
|
||||
var newAttendeeRow = tbodyAttendees.rows[tbodyAttendees.rows.length - 2];
|
||||
|
||||
var tbodyData = tableData.tBodies[0];
|
||||
var modelData = tbodyData.rows[tbodyData.rows.length - 1];
|
||||
var newDataRow = tbodyData.rows[tbodyData.rows.length - 2];
|
||||
|
||||
// Unconditionaly add the organizer
|
||||
var row = $(modelAttendee.cloneNode(true));
|
||||
tbodyAttendees.insertBefore(row, newAttendeeRow);
|
||||
row.removeClassName("attendeeModel");
|
||||
row.setAttribute("partstat", organizer["partstat"]);
|
||||
row.setAttribute("role", organizer["role"]);
|
||||
var uid = organizer["uid"];
|
||||
row.addClassName("organizer-row");
|
||||
row.removeClassName("attendee-row");
|
||||
row.isOrganizer = true;
|
||||
var input = row.down("input");
|
||||
var value = organizer["name"];
|
||||
if (value)
|
||||
value += " ";
|
||||
else
|
||||
value = "";
|
||||
value += "<" + organizer["email"] + ">";
|
||||
input.value = value;
|
||||
input.uid = uid;
|
||||
//input.cname = organizer["cname"];
|
||||
input.setAttribute("name", "");
|
||||
input.modified = false;
|
||||
input.disable();
|
||||
|
||||
row = $(modelData.cloneNode(true));
|
||||
tbodyData.insertBefore(row, newDataRow);
|
||||
row.removeClassName("dataModel");
|
||||
displayFreeBusyForNode(input);
|
||||
|
||||
if (attendeesKeys && attendeesKeys.length > 0) {
|
||||
|
||||
attendeesKeys.each(function(atKey) {
|
||||
var attendee = attendees.get(atKey);
|
||||
@@ -1524,7 +1562,7 @@ function prepareAttendees() {
|
||||
value = "";
|
||||
value += "<" + attendee["email"] + ">";
|
||||
input.value = value;
|
||||
input.uid = attendee["uid"];
|
||||
input.uid = uid;
|
||||
input.cname = attendee["cname"];
|
||||
input.setAttribute("name", "");
|
||||
input.modified = false;
|
||||
@@ -1535,7 +1573,7 @@ function prepareAttendees() {
|
||||
row = $(modelData.cloneNode(true));
|
||||
tbodyData.insertBefore(row, newDataRow);
|
||||
row.removeClassName("dataModel");
|
||||
displayFreeBusyForNode(input);
|
||||
displayFreeBusyForNode(input);
|
||||
});
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -352,7 +352,6 @@ function initMailEditor() {
|
||||
|
||||
var subjectField = $$("div#subjectRow input").first();
|
||||
initTabIndex($("addressList"), subjectField, textarea);
|
||||
//onWindowResize.defer();
|
||||
|
||||
var focusField = (mailIsReply ? textarea : $("addr_0"));
|
||||
focusField.focus();
|
||||
@@ -517,18 +516,18 @@ function onWindowResize(event) {
|
||||
|
||||
var attachmentsarea = $("attachmentsArea");
|
||||
var attachmentswidth = 0;
|
||||
var subjectfield = headerarea.down("div#subjectRow span.headerField");
|
||||
var subjectinput = headerarea.down("div#subjectRow input.textField");
|
||||
if (attachmentsarea.style.display) {
|
||||
// Resize attachments list
|
||||
attachmentswidth = attachmentsarea.getWidth();
|
||||
fromfield = $(document).getElementsByClassName('headerField', headerarea)[0];
|
||||
var height = headerarea.getHeight() - fromfield.getHeight() - 10;
|
||||
var height = headerarea.getHeight() - fromfield.getHeight() - subjectfield.getHeight() - 10;
|
||||
if (Prototype.Browser.IE)
|
||||
$("attachments").setStyle({ height: (height - 13) + 'px' });
|
||||
else
|
||||
$("attachments").setStyle({ height: height + 'px' });
|
||||
}
|
||||
var subjectfield = headerarea.down("div#subjectRow span.headerField");
|
||||
var subjectinput = headerarea.down("div#subjectRow input.textField");
|
||||
|
||||
// Resize subject field
|
||||
subjectinput.setStyle({ width: (window.width()
|
||||
|
||||
Reference in New Issue
Block a user