emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master cc0d02a 1/2: Excorporate: Prompt for meeting reply message


From: Thomas Fitzsimmons
Subject: [elpa] master cc0d02a 1/2: Excorporate: Prompt for meeting reply messages
Date: Mon, 5 Oct 2020 20:51:42 -0400 (EDT)

branch: master
commit cc0d02ac2adb4f0dee9e74df03b93f2ab5f7daca
Author: Thomas Fitzsimmons <fitzsim@fitzsim.org>
Commit: Thomas Fitzsimmons <fitzsim@fitzsim.org>

    Excorporate: Prompt for meeting reply messages
    
    * packages/excorporate/excorporate-org.el
    (exco-org--reply-to-meeting): Change PROMPT-FOR-MESSAGE to
    DO-NOT-PROMPT-FOR-MESSAGE.
    (exco-org-accept-meeting-request): Prompt for message unless a
    prefix argument is given.
    (exco-org-decline-meeting-request): Likewise.
    (exco-org-tentatively-accept-meeting-request): Likewise.
    (exco-org-delete-appointment): Take a prefix argument to
    force-delete a calendar item.
    * packages/excorporate/excorporate.texi (Usage): Move appt
    documentation to just after excorporate-diary-enable.  Adjust
    exco-org- function documentation regarding prefix arguments.
    * packages/excorporate/excorporate.info: Regenerate.
---
 packages/excorporate/excorporate-org.el | 38 ++++++++++++++++++++-------------
 packages/excorporate/excorporate.info   | 34 +++++++++++++++++------------
 packages/excorporate/excorporate.texi   | 32 +++++++++++++++------------
 3 files changed, 61 insertions(+), 43 deletions(-)

diff --git a/packages/excorporate/excorporate-org.el 
b/packages/excorporate/excorporate-org.el
index 5b9a3da..868fe72 100644
--- a/packages/excorporate/excorporate-org.el
+++ b/packages/excorporate/excorporate-org.el
@@ -116,12 +116,12 @@ operated on."
        (let ((inhibit-read-only t))
          (apply #'delete-region region))))))
 
-(defun exco-org--reply-to-meeting (acceptance prompt-for-message)
+(defun exco-org--reply-to-meeting (acceptance do-not-prompt-for-message)
   "Reply to a meeting.
 ACCEPTANCE is a symbol, one of `accept', `tentatively-accept', or
-`decline'.  PROMPT-FOR-MESSAGE is non-nil to prompt the user for
-a message to include in the reply or nil to not include a
-message."
+`decline'.  If DO-NOT-PROMPT-FOR-MESSAGE is non-nil, do not
+prompt for or include a reply message, otherwise prompt for the
+reply message."
   (let (prompt success failure)
     (cl-ecase acceptance
       (accept
@@ -136,7 +136,8 @@ message."
        (setq prompt "Declination message: ")
        (setq success "declined")
        (setq failure "decline")))
-    (let ((message (when prompt-for-message (read-from-minibuffer prompt)))
+    (let ((message (when (not do-not-prompt-for-message)
+                    (read-from-minibuffer prompt)))
          (identifier (exco-org--connection-identifier-at-point))
          (item-identifier (exco-org--item-identifier-at-point)))
       (exco-calendar-item-meeting-reply
@@ -147,22 +148,23 @@ message."
 
 (defun exco-org-accept-meeting-request (&optional argument)
   "Accept the meeting at point.
-With a prefix argument, ARGUMENT, prompts for response message
-text."
+With a prefix argument, ARGUMENT, do not prompt for acceptance
+message text, and do not send an acceptance response."
   (interactive "P")
   (exco-org--reply-to-meeting 'accept argument))
 
 (defun exco-org-decline-meeting-request (&optional argument)
   "Decline the meeting at point.
-With a prefix argument, ARGUMENT, prompts for response message
-text."
+With a prefix argument, ARGUMENT, do not prompt for declination
+message text, and do not send a declination message."
   (interactive "P")
   (exco-org--reply-to-meeting 'decline argument))
 
 (defun exco-org-tentatively-accept-meeting-request (&optional argument)
   "Tentatively accept the meeting at point.
-With a prefix argument, ARGUMENT, prompts for response message
-text."
+With a prefix argument, ARGUMENT, do not prompt for tentative
+acceptance message text, and do not send a tentative acceptance
+message."
   (interactive "P")
   (exco-org--reply-to-meeting 'tentatively-accept argument))
 
@@ -189,10 +191,16 @@ text."
          "cancelled meeting" "cancel meeting"
          (exco-org--remove-calendar-item)))))))
 
-(defun exco-org-delete-appointment ()
-  "Delete the appointment at point."
-  (interactive)
-  (when (exco-org--is-meeting)
+(defun exco-org-delete-appointment (&optional argument)
+  "Delete the appointment at point.
+With a prefix argument, ARGUMENT, force-delete this calendar item
+without first checking if it is a meeting.  This is required
+sometimes, for example as a way to delete meetings for which one
+is the organizer and the sole invitee, since the server will
+refuse to send a meeting cancellation message to the organizer."
+  (interactive "P")
+  (when (and (not argument)
+            (exco-org--is-meeting))
     (error "This looks like a meeting, try `exco-org-cancel-meeting' instead"))
   (let ((identifier (exco-org--connection-identifier-at-point))
        (item-identifier (exco-org--item-identifier-at-point)))
diff --git a/packages/excorporate/excorporate.info 
b/packages/excorporate/excorporate.info
index 77b3867..9214a8d 100644
--- a/packages/excorporate/excorporate.info
+++ b/packages/excorporate/excorporate.info
@@ -121,6 +121,14 @@ this support, do:
 
    'M-x excorporate-diary-enable'
 
+   Excorporate's diary front-end will retrieve today's meetings.
+Subsequently 'appt' will pop up a reminder window several minutes prior
+to each meeting.
+
+   If you leave Emacs running overnight, at 12:01 AM 'appt' (via
+Excorporate) will retrieve your meetings and display your diary so that
+you see the day's events first thing in the morning.
+
 Open the calendar with:
 
    'M-x calendar'
@@ -136,11 +144,11 @@ retrieved events.  By default, 
'excorporate-calendar-show-day-function'
 is set to 'exco-org-show-day' which displays meetings in a temporary
 read-only Org Mode buffer named '*Excorporate*'.
 
-   In the '*Excorporate*' buffer, you can run 'M-x
+   In the Org Mode '*Excorporate*' buffer, you can run 'M-x
 exco-org-decline-meeting-request' to decline a meeting request.  To
-provide a response message, 'C-u M-x exco-org-decline-meeting-request'.
-Likewise for accepting ('exco-org-accept-meeting-request')or tentatively
-accepting ('exco-org-accept-meeting-request') meeting requests.
+accept, use ('exco-org-accept-meeting-request') or, to tentatively
+accept, invoke ('exco-org-tentatively-accept-meeting-request').  Pass a
+prefix argument to these functions to omit a reply message.
 
    A meeting is a calendar event to which at least one other person is
 invited.  To cancel a meeting (or an occurence of a recurring meeting)
@@ -148,18 +156,16 @@ that you organized, use 'M-x exco-org-cancel-meeting'.
 
    An appointment is a calendar item that has no invitees.  To delete an
 appointment that you created, type 'M-x exco-org-delete-appointment'.
+With a prefix argument, 'M-x exco-org-delete-appointment' can be used to
+force-delete calendar items, whether they be meetings or appointments.
+One example where this is necessary is when "cancelling" a meeting with
+a single invitee, you, the organizer.  The server will reject an attempt
+to cancel such a meeting because it refuses to send the organizer a
+cancellation message.
 
    If you prefer, you can install the 'calfw' package, and set
 'excorporate-calendar-show-day-function' to 'exco-calfw-show-day'.
 
-   After you've retrieved today's meetings, 'appt' will warn you several
-minutes before your next meeting starts by popping up a window with the
-meeting details.
-
-   If you leave Emacs running overnight, at 12:01 AM 'appt' (via
-Excorporate) will retrieve your meetings and display your diary so that
-you see the day's events first thing in the morning.
-
 
 File: excorporate.info,  Node: Troubleshooting,  Next: API Usage,  Prev: 
Usage,  Up: Top
 
@@ -729,8 +735,8 @@ Node: Reporting Bugs2399
 Node: Installation2723
 Node: Configuration2997
 Node: Usage4017
-Node: Troubleshooting6106
-Node: API Usage8974
+Node: Troubleshooting6476
+Node: API Usage9344
 
 End Tag Table
 
diff --git a/packages/excorporate/excorporate.texi 
b/packages/excorporate/excorporate.texi
index 4ea50ae..c9e943e 100644
--- a/packages/excorporate/excorporate.texi
+++ b/packages/excorporate/excorporate.texi
@@ -130,6 +130,14 @@ enable this support, do:
 
 @code{M-x excorporate-diary-enable}
 
+Excorporate's diary front-end will retrieve today's meetings.
+Subsequently @code{appt} will pop up a reminder window several minutes
+prior to each meeting.
+
+If you leave Emacs running overnight, at 12:01 AM @code{appt} (via
+Excorporate) will retrieve your meetings and display your diary so
+that you see the day's events first thing in the morning.
+
 @noindent
 Open the calendar with:
 
@@ -148,12 +156,11 @@ view of retrieved events.  By default,
 @code{exco-org-show-day} which displays meetings in a temporary
 read-only Org Mode buffer named @code{*Excorporate*}.
 
-In the @code{*Excorporate*} buffer, you can run @kbd{M-x
+In the Org Mode @code{*Excorporate*} buffer, you can run @kbd{M-x
 exco-org-decline-meeting-request} to decline a meeting request.  To
-provide a response message, @kbd{C-u M-x
-exco-org-decline-meeting-request}.  Likewise for accepting
-(@code{exco-org-accept-meeting-request})or tentatively accepting
-(@code{exco-org-accept-meeting-request}) meeting requests.
+accept, use (@code{exco-org-accept-meeting-request}) or, to tentatively
+accept, invoke (@code{exco-org-tentatively-accept-meeting-request}).
+Pass a prefix argument to these functions to omit a reply message.
 
 A meeting is a calendar event to which at least one other person is
 invited.  To cancel a meeting (or an occurence of a recurring meeting)
@@ -161,20 +168,17 @@ that you organized, use @kbd{M-x exco-org-cancel-meeting}.
 
 An appointment is a calendar item that has no invitees.  To delete an
 appointment that you created, type @kbd{M-x
-exco-org-delete-appointment}.
+exco-org-delete-appointment}.  With a prefix argument, @kbd{M-x
+exco-org-delete-appointment} can be used to force-delete calendar items,
+whether they be meetings or appointments.  One example where this is
+necessary is when ``cancelling'' a meeting with a single invitee, you,
+the organizer.  The server will reject an attempt to cancel such a
+meeting because it refuses to send the organizer a cancellation message.
 
 If you prefer, you can install the @code{calfw} package, and set
 @code{excorporate-calendar-show-day-function} to
 @code{exco-calfw-show-day}.
 
-After you've retrieved today's meetings, @code{appt} will warn you
-several minutes before your next meeting starts by popping up a window
-with the meeting details.
-
-If you leave Emacs running overnight, at 12:01 AM @code{appt} (via
-Excorporate) will retrieve your meetings and display your diary so
-that you see the day's events first thing in the morning.
-
 @node Troubleshooting
 @chapter Troubleshooting
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]