[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/kdepim/enterprise/kdepim/korganizer
From:       Allen Winter <winter () kde ! org>
Date:       2010-10-18 17:01:25
Message-ID: 20101018170125.A2A97AC896 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1187218 by winterz:

fix mailing a status update for task modifications to the organizer
kolab/issue4360

also implement notifying the organizer if a participant removes themselves from a task.
MERGE: trunk


 M  +34 -5     kogroupware.cpp  


--- branches/kdepim/enterprise/kdepim/korganizer/kogroupware.cpp #1187217:1187218
@@ -517,20 +517,49 @@
       return true;
     }
   } else if( incidence->type() == "Todo" ) {
-    if( method == Scheduler::Request )
-      // This is an update to be sent to the organizer
+    QString txt;
+    if ( method == Scheduler::Request ) {
+      txt = i18n( "Do you want to send a status update to the organizer of this task?" );
       method = Scheduler::Reply;
+      if ( useLastDialogAnswer ) {
+        rc = lastUsedDialogAnswer;
+      } else {
+        lastUsedDialogAnswer = rc = KMessageBox::questionYesNo(
+          parent, txt, i18n( "Group Scheduling Email" ),
+          KGuiItem( i18n( "Send Update" ) ), KGuiItem( i18n( "Do Not Send" ) ) );
+      }
+    } else {
+      if ( action == KOGlobals::INCIDENCEDELETED ) {
+        const QStringList myEmails = KOPrefs::instance()->allEmails();
+        bool askConfirmation = false;
+        for ( QStringList::ConstIterator it = myEmails.begin(); it != myEmails.end(); ++it ) {
+          QString email = *it;
+          Attendee *me = incidence->attendeeByMail(email);
+          if ( me &&
+               ( me->status() == KCal::Attendee::Accepted ||
+                 me->status() == KCal::Attendee::Delegated ) ) {
+            askConfirmation = true;
+            break;
+          }
+        }
 
+        if ( !askConfirmation ) {
+          return true;
+        }
+
+        txt = i18n( "You had previously accepted your participation in this task. "
+                    "Do you want to send an updated response to the organizer "
+                    "removing yourself from the task?" );
     if ( useLastDialogAnswer ) {
       rc = lastUsedDialogAnswer;
     } else {
-      // Ask if the user wants to tell the organizer about the current status
-      const QString txt =
-        i18n( "Do you want to send a status update to the organizer of this task?" );
       lastUsedDialogAnswer = rc = KMessageBox::questionYesNo(
         parent, txt, i18n( "Group Scheduling Email" ),
         KGuiItem( i18n( "Send Update" ) ), KGuiItem( i18n( "Do Not Send" ) ) );
+          setDoNotNotify( rc == KMessageBox::No );
     }
+      }
+    }
   } else if ( incidence->type() == "Event" ) {
     QString txt;
     if ( attendeeStatusChanged && method == Scheduler::Request ) {
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic