diff --git a/ChangeLog b/ChangeLog index 2951d46b9..c0718c7aa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2010-05-28 Wolfgang Sourdeau + + * UI/WebServerResources/UIxComponentEditor.js: + (findDeleteAddress): new function that returns the properly + formatter full email of the delegate attendee. + (findAttendeeWithFieldValue): new function that wanders through + the list of attendees and returns the one that has the field + passed as parameter equal to the value passed as parameter. + 2010-05-27 Wolfgang Sourdeau * UI/MailerUI/WOContext+UIxMailer.m diff --git a/UI/Templates/SchedulerUI/UIxComponentEditor.wox b/UI/Templates/SchedulerUI/UIxComponentEditor.wox index bb13b41a2..7bafdd2c5 100644 --- a/UI/Templates/SchedulerUI/UIxComponentEditor.wox +++ b/UI/Templates/SchedulerUI/UIxComponentEditor.wox @@ -212,24 +212,14 @@ string="itemReplyText" var:selection="reply" /> - - - - ( - ) diff --git a/UI/WebServerResources/UIxComponentEditor.js b/UI/WebServerResources/UIxComponentEditor.js index 0b715dd08..36490f5dd 100644 --- a/UI/WebServerResources/UIxComponentEditor.js +++ b/UI/WebServerResources/UIxComponentEditor.js @@ -135,6 +135,42 @@ function initializePrivacyMenu() { } } +function findAttendeeWithFieldValue(field, fieldValue) { + var foundAttendee = null; + + var attendeesKeys = attendees.keys(); + for (var i = 0; !foundAttendee && i < attendeesKeys.length; i++) { + var attendee = attendees.get(attendeesKeys[i]); + if (attendee[field] == fieldValue) { + foundAttendee = attendee; + } + } + + return foundAttendee; +} + +function findDelegateAddress() { + var delegateAddress = null; + + var ownerAttendee = findAttendeeWithFieldValue("uid", ownerLogin); + if (ownerAttendee && ownerAttendee["delegated-to"]) { + var delegateAttendee + = findAttendeeWithFieldValue("email", + ownerAttendee["delegated-to"]); + if (delegateAttendee) { + if (delegateAttendee["name"]) { + delegateAddress = (delegateAttendee["name"] + + " <" + delegateAttendee["email"] + ">"); + } + else { + delegateAddress = delegateAttendee["email"]; + } + } + } + + return delegateAddress; +} + function onComponentEditorLoad(event) { initializeDocumentHref(); initializePrivacyMenu(); @@ -152,16 +188,26 @@ function onComponentEditorLoad(event) { onMenuSetClassification.bindAsEventListener(menuItems[i]), false); } - + tmp = $("replyList"); if (tmp) { tmp.observe("change", onReplyChange); + var isDelegated = (tmp.value == 4); tmp = $("delegatedTo"); tmp.addInterface(SOGoAutoCompletionInterface); tmp.uidField = "c_mail"; tmp.excludeGroups = true; - tmp.animationParent=$("delegateEditor"); - } + var delegateEditor = $("delegateEditor"); + tmp.animationParent = delegateEditor; + if (isDelegated) { + var delegateAddress = findDelegateAddress(); + if (delegateAddress) { + tmp.value = delegateAddress; + } + delegateEditor.show(); + } + } + tmp = $("repeatHref"); if (tmp) tmp.observe("click", onPopupRecurrenceWindow);