- 
      
 - 
        
Save maxandersen/40b70477ad8594565f24f9b7b45abf5d to your computer and use it in GitHub Desktop.  
| { | |
| name = "Threaded"; | |
| rootViewer = | |
| { | |
| viewerType = "MmSplitView"; | |
| orientation = "horizontal"; | |
| children = | |
| ( | |
| { | |
| viewerType = "MmBoxView"; | |
| orientation = "vertical"; | |
| defaultSize = 200; | |
| minWidth = 100; | |
| autoresize = 0; | |
| toggleMenuTitle = "Mailboxes"; | |
| toggleKeyEquivalent = "^~@d"; | |
| dragRect = { width = 16.0; height = 16.0; location = "bottomRight"; }; | |
| children = | |
| ( | |
| { | |
| identifier = "mailboxesOutline"; | |
| viewerType = "MmMailboxesOutlineView"; | |
| stickyMessages = 1; | |
| }, | |
| { | |
| viewerType = "MmMailboxesStatusBar"; | |
| }, | |
| ); | |
| }, | |
| { | |
| viewerType = "MmSplitView"; | |
| orientation = "vertical"; | |
| collapsibleSubview = 2; // Incomplete support -- no way to get it back (1 = first, 2 = last) | |
| children = | |
| ( | |
| { | |
| identifier = "pathOutlineBox"; | |
| viewerType = "MmBoxView"; | |
| orientation = "vertical"; | |
| defaultSize = 250; | |
| autoresize = 0; | |
| children = | |
| ( | |
| { | |
| identifier = "pathControl"; | |
| viewerType = "MmPathControlView"; | |
| sources = ( { sourceIdentifier = "mailboxesOutline"; } ); | |
| }, | |
| { viewerType = "MmSeparatorView"; showWithViews = ( "pathControl" ); }, | |
| { | |
| identifier = "mainOutline"; | |
| viewerType = "MmMessagesOutlineView"; | |
| // columnSettings = "outlineColumns"; | |
| // Keeps selected messages in the view even if they no longer match the main query | |
| // sources = ( { sourceIdentifier = "mainOutline"; }, { sourceIdentifier = "pathControl"; } ); | |
| sources = ( { sourceIdentifier = "pathControl"; } ); | |
| minHeight = 50; | |
| }, | |
| ); | |
| }, | |
| { | |
| viewerType = "MmSplitView"; | |
| orientation = "horizontal"; | |
| children = | |
| ( | |
| { | |
| viewerType = "MmBoxView"; | |
| orientation = "vertical"; | |
| defaultSize = 200; | |
| autoresize = 0; | |
| children = | |
| ( | |
| { | |
| viewerType = "MmLabelView"; | |
| label = "Correspondence"; | |
| }, | |
| { viewerType = "MmSeparatorView"; }, | |
| { | |
| identifier = "correspondenceOutline"; | |
| viewerType = "MmMessagesOutlineView"; | |
| minWidth = 100; | |
| sources = ( { sourceIdentifier = "mainOutline"; } ); | |
| selectionSources = ( { sourceIdentifier = "mainOutline"; } ); | |
| // FIXME: The transformation does not work 'per' message, i.e., it tries to combine any 'from' with any 'to' in $mainOutline. | |
| // mailmate does not always honor thread-id found in references so we try | |
| // and make it pickup other threads by using the subject body to find | |
| // the related threads. Has the advantage to also find forwarded mails | |
| // or separate mails that have 'broken' off the thread. | |
| transformation = "$ALL_MESSAGES.filter(#thread-id = $mainOutline.#thread-id or subject.body = $mainOutline.subject.body)"; | |
| // transformation = "$ALL_MESSAGES.filter((from.address = $mainOutline.from.address and #recipient.address = $mainOutline.#recipient.address) or (from.address = $mainOutline.#recipient.address and #recipient.address = $mainOutline.from.address))"; | |
| defaultColumns = ( "subject", "relativeDate" ); | |
| outlineColumn = "subject"; | |
| }, | |
| ); | |
| toggleMenuTitle = "Correspondence View"; | |
| toggleKeyEquivalent = "^~@c"; | |
| }, | |
| { | |
| // FIXME: Currently a copy of the messageView.plist which is not a robust solution. | |
| // It's needed to change the sourceIdentifier. Maybe drop messageView.plist again? | |
| viewerType = "MmBoxView"; | |
| orientation = "vertical"; | |
| children = | |
| ( | |
| { | |
| identifier = "tagsEditor"; | |
| viewerType = "MmTagsEditor"; | |
| sources = ( { sourceIdentifier = "correspondenceOutline"; } ); | |
| }, | |
| { viewerType = "MmSeparatorView"; showWithViews = ( "tagsEditor" ); }, | |
| { | |
| viewerType = "MmMultiMessageView"; | |
| identifier = "messageView"; | |
| minHeight = 150; | |
| minWidth = 250; | |
| sources = ( { sourceIdentifier = "correspondenceOutline"; } ); | |
| }, | |
| ); | |
| } | |
| ); | |
| toggleMenuTitle = "Message View"; | |
| toggleKeyEquivalent = "^~@h"; | |
| }, | |
| ); | |
| }, | |
| ); | |
| }; | |
| } | 
hey there! is there a way to easily make this compatible with the latest beta? thanks so much.
Unfortunately didn't work for me on MM version 5964 :-(
Quick workaround for newer betas, remove every MmSeparatorView. It's been working well for me on build 5964 like that ๐
Quick workaround for newer betas, remove every
MmSeparatorView. It's been working well for me on build 5964 like that ๐
That worked on version 5964. Thank you sir!
This is great, thanks!
I'm looking to modify the thread selection code, which I assume is the line
transformation = "$ALL_MESSAGES.filter(#thread-id = $mainOutline.#thread-id or subject.body = $mainOutline.subject.body)";
I'm looking to group similar but not identical subjects from my monitoring system by filtering out the non-identical words. Here's an example:
** PROBLEM Service Alert: foobar is WARNING **** RECOVERY Service Alert: foobar is OK **
Can someone point me in the right direction for the documentation for the filter syntax? Hoping i can do something like a regex on the subject.
This is fantastic!