6b539e8e15
Monotone-Revision: b37f3f6ae0b2c8936fa170defaec8e6b7c107b85 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2006-08-14T20:43:55 Monotone-Branch: ca.inverse.sogo
420 lines
17 KiB
Plaintext
420 lines
17 KiB
Plaintext
2006-08-14 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/Scheduler/iCalPerson+UIx.m ([iCalPerson +personWithUid:]):
|
|
new class method that returns an iCalPerson based on the UID given
|
|
as param.
|
|
|
|
* UI/Contacts/UIxContactsListViewContainerBase.m:
|
|
UIxContactsListViewContainer renamed to serve as a base class for
|
|
the contact lists in both the contact editor and the contact
|
|
selectors.
|
|
|
|
* SoObjects/Contacts/SOGoContactLDAPFolder.m
|
|
([SOGoContactLDAPFolder
|
|
-LDAPSetHostname:setPort:setBindDN:setBindPW:setContactIdentifier:
|
|
setUserIdentifier:setRootDN:]): an LDAP field specifying the
|
|
loginname of the users can now be specified.
|
|
|
|
* UI/WebServerResources/generic.js: added code to manage contact
|
|
lists through the new implementation of the UIxContactSelector.
|
|
|
|
* UI/Templates: put the templates related to SchedulerUI in its
|
|
own directory.
|
|
|
|
* SoObjects/Contacts/NGLdapEntry+Contact.m ([NGLdapEntry
|
|
-asDictionaryWithAttributeNames:withUID:andCName:cName]): add an
|
|
entry for "uid" with the field name representing the login name of
|
|
the user in the corresponding LDAP branch.
|
|
|
|
2006-08-10 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* SoObjects/Contacts/SOGoContactGCSFolder.m ([SOGoContactGCSFolder
|
|
-lookupName:_keyinContext:_ctxacquire:_flag]): when the HTTP
|
|
request is a PUT, always create an entry, even if we're not sure
|
|
it does exist.
|
|
|
|
2006-08-09 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/WebServerResources/ContactsUI.js: implemented live-search.
|
|
|
|
* SoObjects/Contacts/SOGoContactFolders.m ([SOGoContactFolders
|
|
-appendSystemSourcesInContext:context]): populated method with
|
|
code that creates entries mapped to instances SOGoContactFolder,
|
|
based on the configuration found in the NSUserDefaults under the
|
|
key "SOGoLDAPAddressBooks".
|
|
([SOGoContactFolders
|
|
-lookupName:nameinContext:contextacquire:acquire]):
|
|
"contactsources" do not exist anymore, SOGoContactFolder was split
|
|
into two classes: SOGoContactGCSFolder and SOGoContactLDAPFolder
|
|
and one protocol: SOGOContactFolder, instead.
|
|
([SOGoContactFolders -contactFolders]): new accessor used by the
|
|
views of SOGoContactXXXFolder to list the possible sources.
|
|
|
|
* SoObjects/Contacts/SOGoContactObject.h: new protocol that
|
|
defines the methods that UIxContactsView, ..Editor and so on...
|
|
can expect.
|
|
|
|
* SoObjects/Contacts/SOGoContactFolder.h: new protocol that
|
|
defines the methods that UIxContactsListViewBase expects as well
|
|
as the data fields returned in the contact lists.
|
|
|
|
* SoObjects/Contacts/SOGoContactLDAPFolder.[hm]: new class that
|
|
returns entries an LDAP server. Conforms to the new
|
|
SOGOContactFolder protocol.
|
|
|
|
* SoObjects/Contacts/SOGoContactLDAPEntry.[hm]: new class that
|
|
returns a vCard based on contact entries from an LDAP server.
|
|
Conforms to the new SOGOContactObject protocol.
|
|
|
|
* SoObjects/Contacts/NGVCardSimpleValue+Contact.m
|
|
([NGVCardSimpleValue -vCardEntryString]): generates the correct
|
|
entry for the textual representation of the vCard.
|
|
|
|
* SoObjects/Contacts/NGVCardSimpleValue+Contact.[hm]: new class
|
|
extension.
|
|
|
|
* SoObjects/Contacts/SOGoContactGCSEntry.[hm]: new module name of
|
|
"SOGoContactObject".
|
|
|
|
* SoObjects/Contacts/NGVCard+Contact.m ([NGVCard -asString]): new
|
|
method that generates a textual representation of the vcard.
|
|
|
|
* SoObjects/Contacts/NGVCard+Contact.[hm]: new class extension.
|
|
|
|
* SoObjects/Contacts/SOGoContactGCSFolder.[hm]: new module name of
|
|
"SOGoContactFolder".
|
|
|
|
* SoObjects/Contacts/SOGoContactSource.h,
|
|
SoObjects/Contacts/SOGoPersonalAB.[hm]: unused classes and
|
|
protocols.
|
|
|
|
* SoObjects/Contacts/NGLdapEntry+Contact.m ([NGLdapEntry
|
|
-singleAttributeWithName:key]): new method that returns the first
|
|
object associated with an ldap key (where generally one value is
|
|
returned by key).
|
|
([NGLdapEntry
|
|
-asDictionaryWithAttributeNames:attributeNamesandCName:cName]):
|
|
map the entry into an NSDictionary for processing by
|
|
UIxContactsListViewBase.m with the least possible overhead.
|
|
|
|
* SoObjects/Contacts/NGLdapEntry+Contact.[hm]: new class
|
|
extension.
|
|
|
|
2006-08-04 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* SoObjects/SOGo/SOGoUserFolder.m ([SOGoUserFolder
|
|
-privateContacts:inContext:]): now returns an instance of
|
|
SOGoContactFolders.
|
|
|
|
* UI/Contacts/UIxContactsListViewContainer.m
|
|
([UIxContactsListViewContainer -contactFolderName]): new method to
|
|
return the absolute path to the current contact folder, called
|
|
from within the template.
|
|
|
|
* UI/Templates/ContactsUI/UIxContactsListViewContainer.wox: added
|
|
JS code to initialize the 'currentContactFolder' generic var.
|
|
|
|
* SoObjects/Contacts/SOGoContactFolder.m ([SOGoContactFolder
|
|
+contactFolderWithSource:inContainer:andName:]): new class
|
|
method meant to return an instance connected to the specified
|
|
source. Currently useless but won't be anymore in the next few
|
|
days.
|
|
|
|
* SoObjects/SOGo/SOGoUserFolder.h: commented out declaration of
|
|
the "lookupFreeBusyObject" method since it does not exist.
|
|
|
|
* UI/Contacts/UIxContactFoldersView.[hm]: new class module serving
|
|
as a "view" for the SOGoContactFolders object. Does nothing but
|
|
redirect the browser to the URL of the personal address book of
|
|
the user. It does not even have a template.
|
|
|
|
* SoObjects/Contacts/SOGoPersonalAB.[hm]: new class module
|
|
implementing the SOGoContactSource protocol. Does nothing
|
|
currently but will be used to implement access to the personal
|
|
address book of the user stored in the SOGo database.
|
|
|
|
* SoObjects/Contacts/SOGoContactSource.h: new "SOGoContactSource"
|
|
protocol defining an API common to all possible types of contact
|
|
sources.
|
|
|
|
* SoObjects/Contacts/SOGoContactFolders.[hm]: new class module
|
|
serving as the root of the contact folders available to the
|
|
current user. Correctly lists the contact sources in webdav.
|
|
|
|
2006-08-03 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/MailerUI/UIxMailAccountsView.m ([UIxMailAccountsView
|
|
-composeAction]): new action method that permits external object
|
|
to write a message from the default (primary) account.
|
|
|
|
* UI/Contacts/UIxContactEditorBase.m ([UIxContactEditorBase
|
|
-initSnapshot]): new method with code taken from "defaultAction"
|
|
but needed for others.
|
|
([UIxContactEditorBase -writeAction]): new action designed to
|
|
compose the correct URL needed to obtain the MailerUI's email
|
|
editor with the correct "mailto" parameter.
|
|
|
|
* UI/Common/UIxSortableTableHeader.m: moved from MailerUI to
|
|
Common so that other modules can use it.
|
|
|
|
* UI/Contacts/UIxContactsListViewContainer.m: container to make it
|
|
easier to manage both ajax and non-ajax requests.
|
|
|
|
* UI/Contacts/UIxContactsFilterPanel.m: clone of
|
|
UIxMailFilterPanel, but applicable to contact lists.
|
|
|
|
* SoObjects/Contacts/NSDictionary+Contact.m ([NSDictionary
|
|
-vcardContentFromSOGoContactRecord]): use the new standard methods
|
|
created for each type of entry. If a line is determined to not
|
|
contain information, it will be skipped.
|
|
|
|
* SoObjects/SOGo/AgenorUserManager.m ([AgenorUserManager
|
|
+initialize]): init defaultMailDomain with the user default
|
|
"SOGoDefaultMailDomain".
|
|
|
|
2006-08-02 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/Contacts/UIxContactEditorBase.m ([UIxContactEditorBase
|
|
-saveAction]): reorganized methods to only have ONE return point.
|
|
Invoke saveRecord: directly on the clientObject instead of
|
|
saveContentString, which does the same thing anyway.
|
|
|
|
* SoObjects/Contacts/NSDictionary+Contact.m
|
|
([NSDictionary -vcardContentFromSOGoContactRecord]): extension
|
|
method to convert the dictionary returned with the user submission
|
|
to a record in VCARD format to be stored in the database.
|
|
|
|
2006-08-01 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/WebServerResources/MailerUI.js: when opening the context menu
|
|
of the message list, select the message below the mouse cursor and
|
|
deselect the other selected messages temporarily. This mimics the
|
|
behaviour of Thunderbird for that matter and was already
|
|
implemented for the entries of the folder tree.
|
|
|
|
* UI/MailerUI/UIxMailFolderMenu.m ([UIxMailFolderMenu
|
|
-iconForMenuItem]): new method that returns the fully qualified
|
|
relative URL to the icon representing the mailbox, or the default
|
|
mailbox icon if needed.
|
|
|
|
* UI/SOGoUI/UIxComponent.m ([UIxComponent
|
|
-urlForResourceFilename:filename]): automatically return an empty
|
|
string whenever the filename passed as argument is nil.
|
|
|
|
* UI/WebServerResources/MailerUI.js: open the mailboxes with the
|
|
"desc" parameter set to 1 so that they are sorted in descending
|
|
order by default. Also, added "onHeaderClick()", triggered by
|
|
clicking on the message list header elements.
|
|
|
|
* UI/MailerUI/UIxMailSortableTableHeader.m
|
|
([UIxMailSortableTableHeader -isSortedDescending]): same as below.
|
|
|
|
* UI/MailerUI/UIxMailListView.m ([UIxMailListView
|
|
-isSortedDescending]): defaults to "YES" when the sort order is
|
|
not specified.
|
|
|
|
2006-07-31 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/WebServerResources/MailerUI.js:
|
|
- message cache: set the max num of cached messages to 20. Limit
|
|
the cached message size to 30000 bytes.
|
|
- ajax: when a message request is called while one is already
|
|
being performed, the latter will be cancelled. Idem when
|
|
retrieving the content of a mailbox.
|
|
- folder tree: when a mailbox is selected because of the URL
|
|
requested (initMailboxSelection), the dtree is expanded throughout
|
|
the mailbox entry's parent hierarchy to ensure it is made visible
|
|
when the page is being displayed. (new function: expandUpperTree).
|
|
- mailbox loading: when loading a mailbox where a message was
|
|
previously selected, we invoke its url with the "pageforuid"
|
|
parameter correctly specified. During callback processing, we scan
|
|
the table for the related row and reselect it.
|
|
Also, the message area is set blank before loading any mailbox.
|
|
|
|
* UI/MailerUI/UIxMailListView.m ([UIxMailListView
|
|
-defaultAction]): if the "pageforuid" parameter is passed in the
|
|
url, take its value and invoke [self firstMessageOfPageFor:]
|
|
consequently to deduce the first message to display. Otherwise,
|
|
set it to "idx", otherwise set it to 0.
|
|
([UIxMailListView -firstMessageOfPageFor:]): new method
|
|
that determines the first message of the page where the message
|
|
passed as parameter is contained.
|
|
|
|
* UI/WebServerResources/UIxMailListView.js: removed this module,
|
|
its code was put in MailerUI.js instead.
|
|
|
|
2006-07-28 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/MailerUI/UIxMailFolderMenu.m: a descendent of UIxMailTree
|
|
which returns the nodes for the parent specified in "parentMenu".
|
|
Used to generate the javascript code for the folder dtree.
|
|
|
|
* UI/Templates/MailerUI/UIxMailPanelFrame.wox: the components
|
|
using that container-template are now using UIxMailMainFrame
|
|
since UIxMailPanelFrame had no real interest. File removed.
|
|
|
|
* UI/WebServerResources/dtree.{css,js}: new files to handle
|
|
javascript-generated mailbox tree. Modified from original version
|
|
by integrating the previous code with the one we are using for
|
|
selections and mailbox handling. Minor visual enhancements too...
|
|
|
|
2006-07-25 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* SoObjects/Mailer/SOGoUser+Mail.m: if only one identity is to be
|
|
returned, put it in an NSArray before returning it (fixes
|
|
bug#217).
|
|
|
|
2006-07-24 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/SOGoUI/NSString+URL.m ([NSString -hostlessURL]): new method
|
|
that returns a url string stripped from its "http://hostname"
|
|
prefix.
|
|
|
|
* UI/SOGoUI/NSDictionary+URL.[hm]: moved from UI/Common.
|
|
|
|
* UI/SOGoUI/NSString+URL.[hm]: moved from UI/Common.
|
|
|
|
2006-07-17 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/MailerUI/WOContext+UIxMailer.m ([WOContext
|
|
-mailDateFormatter]): retrieve the timezone from the user settings
|
|
and pass it to the returned dateFormatter. Also, the dateFormatter
|
|
is kept in a static variable to avoid useless
|
|
creations/destructions.
|
|
|
|
* UI/MailerUI/UIxMailFormatter.m ([UIxMailDateFormatter
|
|
-setTimeZone:newTimeZone]): new accessor to specify the timezone.
|
|
|
|
* UI/MailerUI/UIxMailFilterPanel.m ([UIxMailFilterPanel -setSearchCriteria:])
|
|
([UIxMailFilterPanel -searchCriteria]): new methods, similar to
|
|
s/Criteria/Text/ to handle the "criteria" form parameter.
|
|
|
|
2006-07-11 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/WebServerResources/uix.css: enhanced the toolbar appearance
|
|
to integrate better with the firefox look&feel. Added entries for
|
|
the new "menu" DIV class (popup menus).
|
|
|
|
* UI/WebServerResources/generic.js: added "sanitizeMailTo" which
|
|
takes any chunk of text as param, detects the user email and the
|
|
optional first and last names and return them in a well-formatted
|
|
way. Renamed "getSelection" to "getSelectedNodes" to avoid a
|
|
namespace conflict. Added "onMenuClick(node, event, menuId)" to
|
|
handle popup menus through "onclick" element attributes (node =
|
|
this, event = event and menuId = name of the menu DIV id to
|
|
popup).
|
|
|
|
* UI/Contacts/UIxContactEditorBase.m ([UIxContactEditorBase
|
|
-snapshot]): add an entry for "email" into the snapshot
|
|
dictionary if a "contactEmail" URL parameter was detected and if
|
|
the entry for "email" is empty.
|
|
|
|
* UI/Contacts/Toolbars/SOGoContactFolder.toolbar: the "new card"
|
|
button now invokes the newContact() js function in ContactsUI.js
|
|
instead of opening "new" directly. newContact() pops up a window
|
|
stripped from its navigation bar.
|
|
|
|
* UI/Contacts/ContactsUI.js: new module specific to the ContactsUI
|
|
bundle (AddressBook).
|
|
|
|
* UI/Templates/MailerUI/UIxMailView.wox: added a div of class
|
|
"menu" and id "addressMenu" have the header email addresses
|
|
display it with the new menu code in generic.js.
|
|
|
|
* UI/Templates/MailerUI/UIxMailPanelFrame.wox: same as below +
|
|
replaced the body tables with a div of class "pageContent"
|
|
(standardization across the page templates).
|
|
|
|
* UI/Templates/MailerUI/UIxMailMainFrame.wox: include
|
|
productJavaScriptURL and pageJavaScriptURL (conditionnally) since
|
|
those are now inherited from UIxPageFrame.
|
|
|
|
* UI/MailerUI/UIxMailView.js: new file specific to UIxMailView.
|
|
|
|
* UI/MailerUI/UIxMailToSelection.m ([UIxMailToSelection -to]): if
|
|
a "mailto" URL parameter is detected and the "to" array is empty,
|
|
initialize "to" with the value of "mailto" before returning it.
|
|
|
|
* UI/MailerUI/UIxMailEditorAction.m ([UIxMailEditorAction
|
|
-composeAction]): rewrote method in a cleaner way and with usage
|
|
of the URL extensions to NSString and NSDictionary (see below).
|
|
Also, if a "mailto" url parameter is detected, pass it to the
|
|
redirected url.
|
|
|
|
* UI/MailerUI/UIxMailMainFrame.m: subclassed from UIxPageFrame to
|
|
reduce code.
|
|
|
|
* UI/Common/NSDictionary+URL.m ([NSDictionary -asURLParameters]):
|
|
returns a parameter string to add to a base URL.
|
|
|
|
* UI/Common/NSString+URL.m ([NSString
|
|
-composeURLWithAction:parameters:andHash:useHash]): new method to
|
|
compose a complete URL from an object URL with parameters and an
|
|
optional '#' character.
|
|
|
|
* UI/Common/UIxPageFrame.h: separated interface from
|
|
UIxPageFrame.m.
|
|
|
|
2006-07-07 Wsourdeau Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/Scheduler/UIxAppointmentEditor.m: returns yes to "isPopup";
|
|
|
|
* UI/WebServerResources/generic.js: added code to manage
|
|
selections within HTML containers.
|
|
|
|
* UI/Common/UIxPageFrame.m ([UIxPageFrame -productJavaScriptURL]):
|
|
added method to determine the possible URL for a product-specific
|
|
javascript filename of the forme <productname>.js.
|
|
([UIxPageFrame -hasProductSpecificJavaScript]): new method.
|
|
([UIxPageFrame -isPopup]): new method to determine whether the
|
|
application navigator bar should be displayed (main page) or not
|
|
(popup page).
|
|
|
|
* SoObjects/SOGo/SOGoAuthenticator.m ([SOGoAuthenticator
|
|
-LDAPCheckLogin:_loginpassword:_pwd]): new method to authenticate
|
|
the user through LDAP.
|
|
|
|
2006-07-06 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* The toolbar code from the MailerUI product was taken, renamed as
|
|
"UIxToolBar" and put into UI/Common. Toolbar plists were created
|
|
for the Contacts and Scheduler products and put in their respectir
|
|
Toolbars/ subdirectories. Finally,
|
|
UI/Templates/{UIxToolbarButton,UIxToolbarSeparator}.wox, and
|
|
UI/Common/{UIxToolbarButton,UIxToolbarSeparator}.m were removed
|
|
and an invocation to the UIxToolbar component was put at the top
|
|
of UI/Templaces/UIxPageFrame.wox.
|
|
|
|
* UI/Common/UIxToolbar.m: new "isLastGroup" method to determine
|
|
within the templates whether a separator should be displayed.
|
|
|
|
* UI/Common/UIxToolbar.m ([UIxToolbar -hasButtons]): new method
|
|
that returns NO if the toolbar is empty.
|
|
|
|
2006-07-05 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
|
|
* UI/Templates/UIxPageFrame.wox: replaced central table with a DIV.
|
|
|
|
* UI/Common/UIxToolbarSeparator.m, UI/Common/UIxToolbarButton.m:
|
|
new toolbar objects.
|
|
|
|
* UI/Templates/UIxPageFrame.wox: use the exact html code as below.
|
|
|
|
* UI/Templates/MailerUI/UIxMailMainFrame.wox: redone the
|
|
linkbanner as a DIV instead of a TABLE.
|
|
|
|
* UI/MailerUI/UIxMailMainFrame.m [UIxMailMainFrame
|
|
showLinkBanner]:
|
|
returns 'YES' to request the display of the navigation bar between
|
|
applets.
|
|
|
|
2006-06-15 ludovic@inverse.ca
|
|
|
|
* It's now possible to set the default
|
|
domain using for email using the
|
|
SOGoDefaultMailDomain preference key.
|
|
|
|
2006-06-15 ludovic@inverse.ca
|
|
|
|
* Initial import of SOGo from trunk.
|