From eb8125f468ed43eda70b1e94eb5a63118ba36376 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 28 May 2010 16:52:17 +0000 Subject: [PATCH] Monotone-Parent: a641a4defe2d11d4baa914640535e45ef48f0425 Monotone-Revision: 0de048fc2845b8e712e21700f4604fa0cd9eeea4 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2010-05-28T16:52:17 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 9 ++++ .../SchedulerUI/UIxComponentEditor.wox | 15 +----- UI/WebServerResources/UIxComponentEditor.js | 52 +++++++++++++++++-- 3 files changed, 59 insertions(+), 17 deletions(-) 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);