From d8375c0c5fcb8b2d81035d2a524f4a82492e9bba Mon Sep 17 00:00:00 2001 From: james Date: Thu, 11 Feb 2010 15:58:26 +0000 Subject: [PATCH] Add ability to cancel emails in the queue to be sent --- admin/communication.php | 8 ++++++++ admin/communication_send_status.php | 6 ++++++ db/db.code.version.txt | 2 +- db/db.update.162.sql | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 db/db.update.162.sql diff --git a/admin/communication.php b/admin/communication.php index ff380f62..d729b1b6 100644 --- a/admin/communication.php +++ b/admin/communication.php @@ -616,6 +616,14 @@ case "email_get_list": } echo ""; exit; + + case 'cancel': + if($_GET['cancel']) { + mysql_query("UPDATE emailqueue SET finished=NOW() WHERE id='".intval($_GET['cancel'])."'"); + mysql_query("UPDATE emailqueue_recipients SET result='cancelled' WHERE emailqueue_id='".intval($_GET['cancel'])."' AND sent IS NULL AND result IS NULL"); + echo "ok"; + } + exit; } include "communication.inc.php"; diff --git a/admin/communication_send_status.php b/admin/communication_send_status.php index d0bf0547..eb104d86 100644 --- a/admin/communication_send_status.php +++ b/admin/communication_send_status.php @@ -48,6 +48,7 @@ echo " ".i18n("Progress")."\n"; echo " ".i18n("Duration")."\n"; echo " ".i18n("ETA")."\n"; + echo " ".i18n("Cancel")."\n"; echo "\n"; while($r=mysql_fetch_object($q)) { @@ -73,6 +74,7 @@ echo "Unknown"; } echo ""; + echo "id)\">".i18n("cancel").""; echo "\n"; } echo ""; @@ -143,6 +145,10 @@ } } + function cancelQueue(id) { + $("#debug").load("communication.php?action=cancel&cancel="+id,null,function() { if(!refreshTimeout) refreshStatus(); }); + } + "; diff --git a/db/db.code.version.txt b/db/db.code.version.txt index 9386c220..0234b515 100644 --- a/db/db.code.version.txt +++ b/db/db.code.version.txt @@ -1 +1 @@ -161 +162 diff --git a/db/db.update.162.sql b/db/db.update.162.sql new file mode 100644 index 00000000..c047d0a8 --- /dev/null +++ b/db/db.update.162.sql @@ -0,0 +1 @@ +ALTER TABLE `emailqueue_recipients` CHANGE `result` `result` ENUM( 'ok', 'failed', 'cancelled', 'bounced' ) NULL DEFAULT NULL;