sogo/UI/MailerUI
Wolfgang Sourdeau 455abf0016 Monotone-Parent: 53a7cdc42e8710e661ce709242c9857ae53542ff
Monotone-Revision: a74b4577328a8fac7fcca8f66c50a724bbfbfc32

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-01-31T17:12:15
Monotone-Branch: ca.inverse.sogo
2007-01-31 17:12:15 +00:00
..
English.lproj Monotone-Parent: 140f7dd26cdec380675b0b319d9ee737783d404b 2006-10-18 21:47:03 +00:00
French.lproj Monotone-Parent: 1b7452b6d4603df5d7819aca9c4ae890a9f86070 2006-11-15 18:42:11 +00:00
Toolbars Monotone-Parent: 00073a874a92b7194927dbee98c428cec16b2430 2006-11-13 22:29:44 +00:00
screenshots see ChangeLog 2006-06-15 19:34:10 +00:00
COPYING see ChangeLog 2006-06-15 19:34:10 +00:00
COPYRIGHT see ChangeLog 2006-06-15 19:34:10 +00:00
ChangeLog.upstream - renamed old and obsolete ChangeLogs to Changelog.upstream; 2006-07-04 20:13:47 +00:00
GNUmakefile Monotone-Parent: a3b4583a95b88223d1e19194a62af3dee02ca608 2006-12-22 17:07:27 +00:00
GNUmakefile.postamble see ChangeLog 2006-06-15 19:34:10 +00:00
GNUmakefile.preamble see ChangeLog 2006-06-15 19:34:10 +00:00
MailerUIProduct.m see ChangeLog 2006-06-15 19:34:10 +00:00
NOTES see ChangeLog 2006-06-15 19:34:10 +00:00
README see ChangeLog 2006-06-15 19:34:10 +00:00
UIxEnvelopeAddressFormatter.m see ChangeLog 2006-06-15 19:34:10 +00:00
UIxFilterList.m see ChangeLog 2006-06-15 19:34:10 +00:00
UIxMailAddressbook.m see ChangeLog 2006-06-15 19:34:10 +00:00
UIxMailEditor.m Monotone-Parent: 6de228594e5feb001f4208313d8363017d61a463 2006-10-12 16:42:59 +00:00
UIxMailEditorAction.h see ChangeLog 2006-06-15 19:34:10 +00:00
UIxMailEditorAction.m Monotone-Parent: 53a7cdc42e8710e661ce709242c9857ae53542ff 2007-01-31 17:12:15 +00:00
UIxMailEditorAttach.m see ChangeLog 2006-06-15 19:34:10 +00:00
UIxMailFilterPanel.m Monotone-Parent: f87a75d060ca40309cbd12a50e562a3b2956bea2 2006-08-21 22:26:58 +00:00
UIxMailFolderACLEditor.m see ChangeLog 2006-06-15 19:34:10 +00:00
UIxMailFolderMenu.h Monotone-Parent: 2ad8b0c019808014c990f51cc69c4457fdb537c6 2006-07-28 23:25:34 +00:00
UIxMailFolderMenu.m Monotone-Parent: 698a166193d0842dd18a4a9d456862b37e990823 2006-08-01 19:18:52 +00:00
UIxMailFormatter.h Monotone-Parent: 94a876e445d85c07068605284844c8c23125a590 2006-07-17 17:26:15 +00:00
UIxMailFormatter.m Monotone-Parent: 94a876e445d85c07068605284844c8c23125a590 2006-07-17 17:26:15 +00:00
UIxMailForwardAction.m see ChangeLog 2006-06-15 19:34:10 +00:00
UIxMailListView.h Monotone-Parent: 8566d6fbfa896a774b9907c3125e7b3de87296cd 2006-07-28 22:59:11 +00:00
UIxMailListView.m Monotone-Parent: 7e65e45f8632d82535b215d04d1f984fc6264a95 2007-01-30 18:18:16 +00:00
UIxMailMainFrame.h Monotone-Parent: 8566d6fbfa896a774b9907c3125e7b3de87296cd 2006-07-28 22:59:11 +00:00
UIxMailMainFrame.m Monotone-Parent: d7e6aefd1b9108964b5b73aaa4990bf5dc4c6066 2006-12-22 17:07:15 +00:00
UIxMailMoveToPopUp.m see ChangeLog 2006-06-15 19:34:10 +00:00
UIxMailPopupView.m Monotone-Parent: d535d7ddfc7b2fe0512601074c136e964343f019 2006-12-22 17:06:17 +00:00
UIxMailReplyAction.m see ChangeLog 2006-06-15 19:34:10 +00:00
UIxMailSplashView.m Monotone-Parent: 8753dcb2e70b6f0507ea84bb100f503152e814e4 2006-12-22 17:05:13 +00:00
UIxMailToSelection.m Monotone-Parent: 21336607671cae2f88c376198194b888c617d148 2006-10-19 17:36:19 +00:00
UIxMailTree.h Monotone-Parent: 499bc2829b23383108f8f49050a9f2016be09dc3 2006-08-01 19:17:06 +00:00
UIxMailTree.m Monotone-Parent: 499bc2829b23383108f8f49050a9f2016be09dc3 2006-08-01 19:17:06 +00:00
UIxMailTreeBlock.h Monotone-Parent: 8566d6fbfa896a774b9907c3125e7b3de87296cd 2006-07-28 22:59:11 +00:00
UIxMailTreeBlock.m Monotone-Parent: 8566d6fbfa896a774b9907c3125e7b3de87296cd 2006-07-28 22:59:11 +00:00
UIxMailTreeBlockJS.h Monotone-Parent: 8566d6fbfa896a774b9907c3125e7b3de87296cd 2006-07-28 22:59:11 +00:00
UIxMailTreeBlockJS.m Monotone-Parent: 8566d6fbfa896a774b9907c3125e7b3de87296cd 2006-07-28 22:59:11 +00:00
UIxMailView.m Monotone-Parent: 894040959f04f3ec2b197130603cd4d9eb104d53 2006-12-22 17:02:01 +00:00
UIxMailWindowCloser.m see ChangeLog 2006-06-15 19:34:10 +00:00
UIxSieveEditor.m see ChangeLog 2006-06-15 19:34:10 +00:00
UIxSubjectFormatter.m see ChangeLog 2006-06-15 19:34:10 +00:00
Version see ChangeLog 2006-06-15 19:34:10 +00:00
WOContext+UIxMailer.h see ChangeLog 2006-06-15 19:34:10 +00:00
WOContext+UIxMailer.m Monotone-Parent: a2a755bb974fa1ddef5662d996422c2b90023444 2006-07-17 17:28:29 +00:00
bundle-info.plist see ChangeLog 2006-06-15 19:34:10 +00:00
common.h see ChangeLog 2006-06-15 19:34:10 +00:00
product.plist Monotone-Parent: 2e77a2e6f2332e279f7000689f3410f5e2d8427e 2006-12-22 17:02:12 +00:00

README

SOGO Mailer UI
==============

- own (Thunderbird styled) frame
- component for tree

TODO
====
- a lot ;->
- SOPE: does not recognize <input type="button"> !

Components
==========
UIxMailAccountView.wox
UIxMailAccountsView.wox
UIxMailEditor.wox
UIxMailToSelection.wox
UIxMailListView.wox
UIxMailMainFrame.wox
UIxMailTree.wox
UIxMailView.wox

Class Hierarchy
===============

[NSObject]
  MailerUIProduct
  [WOComponent]
    [SoComponent]
      <UIxComponent>
        UIxFilterList
        UIxMailAccountView
        UIxMailAccountsView
        UIxMailAddressbook
        UIxMailEditor
        (Scheduler_Privates)
        UIxMailListView
        UIxMailMainFrame
        UIxMailToSelection
        UIxMailToolbar
        UIxMailTree
        UIxMailView
        UIxSieveEditor
      UIxMailSortableTableHeader
    UIxMailEditorAttach.m
    UIxMailFilterPanel
    UIxMailMoveToPopUp
    UIxMailWindowCloser
  [WODirectAction]
    UIxMailEditorAction
      UIxMailForwardAction
      UIxMailReplyAction
  [NSFormatter]
    UIxMailFormatter
      UIxMailDateFormatter
      UIxSubjectFormatter
      UIxEnvelopeAddressFormatter
  UIxMailTreeBlock
  [WOContext]
    (UIxMailer)

Defaults
========

SOGoShowInternetMarker - bool
- show a marker in the editor that the request is from the outside

SOGoInternetDetectQualifier - string
- an EOQualifier to detect whether a set of HTTP headers is from the outside,
  eg: "NOT (minequprovenance = 'intranet')"
      -SOGoInternetDetectQualifier '"NOT (minequprovenance = \"intranet\")"'
  Note: all header field names are lowercase

SOGoInternetMailHeaders - dictionary
- if a request was detected as coming from the Internet, add the mail headers
  specified in this default
  eg: { received = "sogo depuis internet"; }
  -SOGoInternetMailHeaders "{received=\"sogo depuis internet\"; }"

SOGoMailEditorKeepTmpFile
- for debugging, if a mail was send, keep the file containing the MIME in the
  temporary directory for review instead of deleting it

SOGoMailTreeRootClass
- configure the root class of the mail tree, eg:
  - SOGoMailAccounts - standard view, show all IMAP4 accounts
  - SOGoMailAccount  - just show the standard mail account (tree at Inbox!)
  - SoApplication    - stop at the application object (show all folders)

SOGoDontUseETagsForMailViewer - YES|NO
- when enable SOGo won't tag mail viewers with an entity-tag (HTTP etag)
  - the etag ensures that the viewer will only get resend to the browser when
    it changed. In the case of IMAP4 this is never because URLs are one-time
    IDs in the IMAP4 server and messages cannot be edited in IMAP4
  - use the default for debugging (otherwise you won't see changes ...)

SOGoUseLocationBasedSentFolder - YES | NO
- when enable SOGo looks up the Sent folder by traversing the lookup-path
  until it finds a SOGoMailAccount object and then asks the account for the
  Sent folder.

Notes
=====

- we might want to bind the content viewers as SOPE methods to the mail class?
  eg "viewTextPlain"
  - this would not return a WOComponent, but a SoPageInvocation
  - caching might be more difficult 
    - some 'reuse component' support in SoPageInvocation for stateless
      components?
      - watch nested calls
  - for this we would need to add support for embedded calling of SOPE methods
    <var:component method="viewTextPlain" /> ?

Bodystructures
==============

Multiparts: multipart/MIXED, multipart/SIGNED

Feature: we fetch all plain/text bodies in a single run by traversing the
         body structure.

Sample Bodystructure (GPG):
---snip---
  {
    parts = (
        {
            bodyId = ""; 
            description = ""; 
            encoding = "QUOTED-PRINTABLE"; 
            lines = 22; 
            parameterList = {}; 
            size = 731; 
            subtype = PLAIN; 
            type = text; 
        }, 
        {
            bodyId = ""; 
            description = "Esta parte del mensaje"; 
            encoding = 7BIT; 
            parameterList = {name = "signature.asc"; }; 
            size = 196; 
            subtype = "PGP-SIGNATURE"; 
            type = application; 
        }
    ); 
    subtype = SIGNED; 
    type = multipart; 
  }
---snap---

Sample Body Structure (Image):
---snip---
  {
    parts = (
        {
            bodyId = ""; 
            description = ""; 
            encoding = BASE64; 
            parameterList = {name = "PoseChau.jpg"; "x-unix-mode" = 0644; }; 
            size = 58370; 
            subtype = JPEG; 
            type = image; 
        }, 
        {
            bodyId = ""; 
            description = ""; 
            encoding = 7BIT; 
            lines = 2; 
            parameterList = {charset = "US-ASCII"; format = flowed; }; 
            size = 57; 
            subtype = PLAIN; 
            type = text; 
        }
    ); 
    subtype = MIXED; 
    type = multipart; 
  }
---snap---