[O] mac-message for Growl 2

2013-08-04 Thread Iain Houston
I encountered a few problems with org-mac-mail bundled with emacs 24.3.1; some 
errors interfacing with Growl (2.1) so the patch below works for me and I 
wondered whether it would be of use to anyone else.

I adapted the insertion of flagged mail to look at all active mail accounts 
rather than having to name any particular one.

This is how I use org-mac-message: and below is the patch.

(require 'org)
(load org-mac-message)
(global-set-key [(shift f10)] (lambda() (interactive)
(progn
  (find-file-noselect 
~/Dropbox/org/refile.org)
  (org-mac-message-insert-flagged refile.org 
Flagged mail


diff --git a/org-mac-message.el b/org-mac-message.el
index 5df68f5..be2a654 100644
--- a/org-mac-message.el
+++ b/org-mac-message.el
@@ -95,86 +95,89 @@ This will use the command `open' with the message URL.
 return theLinkList as string\n
 end tell)))
 
-(defun as-get-flagged-mail ()
-  AppleScript to create links to flagged messages in Mail.app.
-  (do-applescript
-   (concat
-;; Is Growl installed?
-tell application \System Events\\n
-set growlHelpers to the name of every process whose creator type contains 
\GRRR\\n
-if (count of growlHelpers)  0 then\n
-set growlHelperApp to item 1 of growlHelpers\n
-else\n
-set growlHelperApp to \\\n
-end if\n
-end tell\n
-
-;; Get links
-tell application \Mail\\n
-set theMailboxes to every mailbox of account \ org-mac-mail-account 
\\n
-set theLinkList to {}\n
-repeat with aMailbox in theMailboxes\n
-set theSelection to (every message in aMailbox whose flagged status = 
true)\n
-repeat with theMessage in theSelection\n
-set theID to message id of theMessage\n
-set theSubject to subject of theMessage\n
-set theLink to \message://\  theID  \::split::\  theSubject  
\\n\\n
-copy theLink to end of theLinkList\n
-
-;; Report progress through Growl
-;; This double tell idiom is described in detail at
-;; http://macscripter.net/viewtopic.php?id=24570 The
-;; script compiler needs static knowledge of the
-;; growlHelperApp.  Hmm, since we're compiling
-;; on-the-fly here, this is likely to be way less
-;; portable than I'd hoped.  It'll work when the name
-;; is still GrowlHelperApp, though.
-if growlHelperApp is not \\ then\n
-tell application \GrowlHelperApp\\n
-tell application growlHelperApp\n
-set the allNotificationsList to {\FlaggedMail\}\n
-set the enabledNotificationsList to allNotificationsList\n
-register as application \FlaggedMail\ all notifications 
allNotificationsList default notifications enabledNotificationsList icon of 
application \Mail\\n
-notify with name \FlaggedMail\ title \Importing flagged message\ 
description theSubject application name \FlaggedMail\\n
-end tell\n
-end tell\n
-end if\n
-end repeat\n
-end repeat\n
-return theLinkList as string\n
-end tell)))
+(defun  as-get-flagged-mail ()
+ AppleScript to create links to flagged messages in all Mail.app accounts
+ ;; Revised use of Growl interface and no need for variable 
org-mac-mail-account
+ (do-applescript
+  (concat
+   ;; Is Growl running? Use API as recommended at 
http://growl.info/documentation/applescript-support.php 
+   tell application \System Events\\n
+   set growlIsRunning to (count of (every process whose bundle identifier 
is \com.Growl.GrowlHelperApp\))  0\n
+   end tell\n
+
+   set theLinkList to {}\n
+   set isNotRegisteredToGrowl to true\n
+   tell application \Mail\\n
+   set theAccountList to the name of every account\n
+   repeat with theMailAccount in theAccountList\n
+   set theMailboxes to every mailbox of account theMailAccount\n
+   repeat with aMailbox in theMailboxes\n
+   set theSelection to (every message in aMailbox whose flagged status = 
true)\n
+   repeat with theMessage in theSelection\n
+   set theID to message id of theMessage\n
+   set theSubject to subject of theMessage\n
+   set theLink to \message://\  theID  \::split::\  theSubject  
\\n\\n
+   copy theLink to end of theLinkList\n
+   
+   if growlIsRunning then\n
+   tell application id \com.Growl.GrowlHelperApp\\n
+   if isNotRegisteredToGrowl then\n
+   set the allNotificationsList to {\FlaggedMail\}\n
+   set the enabledNotificationsList to allNotificationsList\n
+   register as application \FlaggedMail\ all notifications 
allNotificationsList default notifications enabledNotificationsList icon of 
application \Mail\\n
+   set isNotRegisteredToGrowl to false\n
+   end if\n
+   notify with name \FlaggedMail\ title \Importing flagged message\ 
description theSubject application name \FlaggedMail\\n
+   end tell\n
+   end if\n
+   
+   end repeat\n
+   end repeat\n
+   end repeat\n
+   

[O] Missing Mobile TODO questions

2011-08-19 Thread Iain Houston
I'd be very grateful for some help setting up Mobile Org.

This is what I have defined right now:

(setq org-mobile-directory /Volumes/iainhouston/org)

(setq org-agenda-files 
  (list ~/Documents/org/gtd.org 
;; more to add
)
)

These are my issues:

1. When I push, no Agenda file is created as document says it should
The generated index.org links to agendas.org but no such file has been created 
even though I have an agenda after C-c a a l

3. Linked files are not copied as described in the Mobile Org webpage for 
sync-ing
in gtd.org I have:
[[file:~/Documents/org/maybe.org][Someday / Maybe tasks]]
which is ignored when pushed but is a valid link in emacs.

4. Missing TODO states
In emacs I can cycle through my TODO states:

(setq org-todo-keywords
   '((sequence TODO MAYBE WAITING NEXT | DONE ABANDONED))
)

but when sync'd with MobileOrg my TODO items are reported as having a TODO 
state of none with only the option to move to DONEARCHIVE state or the