diff --git a/admin/delete_tickets.php b/admin/delete_tickets.php
index e7b7390a..52b1f774 100644
--- a/admin/delete_tickets.php
+++ b/admin/delete_tickets.php
@@ -1,7 +1,7 @@
array('value' => 0, 'text' => $hesklang['critical'], 'formatted' => ''.$hesklang['critical'].''),
+ 'high' => array('value' => 1, 'text' => $hesklang['high'], 'formatted' => ''.$hesklang['high'].''),
+ 'medium' => array('value' => 2, 'text' => $hesklang['medium'], 'formatted' => ''.$hesklang['medium'].''),
+ 'low' => array('value' => 3, 'text' => $hesklang['low'], 'formatted' => $hesklang['low']),
+);
+
+// Change priority
+if ( array_key_exists($_POST['a'], $priorities) )
+{
+ // A security check
+ hesk_token_check('POST');
+
+ // Priority info
+ $priority = $priorities[$_POST['a']];
+
+ foreach ($_POST['id'] as $this_id)
+ {
+ if ( is_array($this_id) )
+ {
+ continue;
+ }
+
+ $this_id = intval($this_id) or hesk_error($hesklang['id_not_valid']);
+ $result = hesk_dbQuery("SELECT `priority`, `category` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `id`={$this_id} LIMIT 1");
+ if (hesk_dbNumRows($result) != 1)
+ {
+ continue;
+ }
+ $ticket = hesk_dbFetchAssoc($result);
+
+ if ($ticket['priority'] == $priority['value'])
+ {
+ continue;
+ }
+
+ hesk_okCategory($ticket['category']);
+
+ $revision = sprintf($hesklang['thist8'],hesk_date(),$priority['formatted'],$_SESSION['name'].' ('.$_SESSION['user'].')');
+ hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` SET `priority`='{$priority['value']}', `history`=CONCAT(`history`,'".hesk_dbEscape($revision)."') WHERE `id`={$this_id} LIMIT 1");
+
+ $i++;
+ }
+
+ hesk_process_messages($hesklang['pri_set_to'].' '.$priority['formatted'],$referer,'SUCCESS');
+}
+
/* DELETE */
-if ($_POST['a']=='delete')
+elseif ($_POST['a']=='delete')
{
/* Check permissions for this feature */
hesk_checkPermission('can_del_tickets');
@@ -123,6 +171,14 @@ if ($_POST['a']=='delete')
/* A security check */
hesk_token_check('POST');
+ // Will we need ticket notifications?
+ if ($hesk_settings['notify_closed'])
+ {
+ require(HESK_PATH . 'inc/email_functions.inc.php');
+ }
+
+ $revision = sprintf($hesklang['thist3'],hesk_date(),$_SESSION['name'].' ('.$_SESSION['user'].')');
+
foreach ($_POST['id'] as $this_id)
{
if ( is_array($this_id) )
@@ -246,8 +302,16 @@ else
$closedStatusRS = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `IsStaffClosedOption` = 1");
$closedStatus = hesk_dbFetchAssoc($closedStatusRS);
- hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` SET `status`='".$closedStatus['ID']."', `history`=CONCAT(`history`,'".hesk_dbEscape($revision)."') WHERE `id`='".intval($this_id)."' LIMIT 1");
+ hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` SET `status`='".$closedStatus['ID']."', `closedat`=NOW(), `closedby`=".intval($_SESSION['id']).", `history`=CONCAT(`history`,'".hesk_dbEscape($revision)."') WHERE `id`='".intval($this_id)."' LIMIT 1");
$i++;
+
+ // Notify customer of closed ticket?
+ if ($hesk_settings['notify_closed'])
+ {
+ $ticket['dt'] = hesk_date($ticket['dt'], true);
+ $ticket['lastchange'] = hesk_date($ticket['lastchange'], true);
+ hesk_notifyCustomer('ticket_closed');
+ }
}
hesk_process_messages(sprintf($hesklang['num_tickets_closed'],$i),$referer,'SUCCESS');
@@ -285,6 +349,9 @@ function hesk_fullyDeleteTicket()
/* Delete ticket notes */
hesk_dbQuery("DELETE FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."notes` WHERE `ticket`='".intval($ticket['id'])."'");
+ /* Delete ticket reply drafts */
+ hesk_dbQuery("DELETE FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."reply_drafts` WHERE `ticket`=".intval($ticket['id']));
+
return true;
}
?>