diff -upr stable/ticketing/ticket.admin.group.inc development/ticketing/ticket.admin.group.inc
--- stable/ticketing/ticket.admin.group.inc 2008-11-26 16:13:23.000000000 +0200
+++ development/ticketing/ticket.admin.group.inc 2009-04-08 15:16:20.000000000 +0300
@@ -477,6 +477,32 @@ function _ticket_admin_email_form($def =
'#required' => false,
);
+ $form['queued'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Queued request notification').':',
+ '#collapsible' => TRUE,
+ '#collapsed' => false
+ );
+
+ $form['queued']['qsubject'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Queued request e-mail subject'),
+ '#description' => t("Format of outgoing mail subject. Characters to use: a-z A-Z 0-9 ,.-+*/%[]{}() Special macros: %qid - Queue id, %g - Group, %tc - Ticket creator, %pri - Priority, %sc - Scope, %si - Site, %cd - Create date, %ss - Short summary, %dt - Detail. If you don't want notification leave this field empty.'"),
+ '#default_value' => isset($def['qsubject']) ? $def['qsubject'] : NULL,
+ '#size' => 60,
+ '#maxlength' => 50,
+ '#required' => true,
+ );
+
+ $form['queued']['qtemplate'] = array(
+ '#type' => 'textarea',
+ '#title' => t('Queued request body template'),
+ '#default_value' => isset($def['qtemplate']) ? $def['qtemplate'] : NULL,
+ '#description' => t("Characters to use: a-z A-Z 0-9 ,.-+*/%[]{}() Special macros: the same as in case of queued request e-mail subject. If you don't want notification leave this field empty."),
+ '#rows' => '8',
+ '#required' => false,
+ );
+
return $form;
}
@@ -529,9 +555,9 @@ function ticket_admin_group_template_edi
function ticket_admin_group_template_edit_submit($form, &$form_state) {
/** e-mail jellemzok szerkesztese */
$SQL = "UPDATE {ticket_template} SET mail_address = '%s', sender_address = '%s', tsubject = '%s', esubject = '%s', asubject = '%s'";
- $SQL .= ", usubject = '%s', sep = '%s', e_type = %d, e_pos = %d, unchanged_day = %d, tt_header = '%s', tt_body = '%s'";
- $SQL .= ", tt_footer = '%s', etemplate = '%s', atemplate = '%s', utemplate = '%s' WHERE gid = %d";
- db_query($SQL, $form_state['values']['mail_address'], $form_state['values']['sender_address'], $form_state['values']['tsubject'], $form_state['values']['esubject'], $form_state['values']['asubject'], $form_state['values']['usubject'], $form_state['values']['sep'], $form_state['values']['e_type'], $form_state['values']['e_pos'], $form_state['values']['unchanged_day'], $form_state['values']['tt_header'], $form_state['values']['tt_body'], $form_state['values']['tt_footer'], $form_state['values']['etemplate'], $form_state['values']['atemplate'], $form_state['values']['utemplate'], $form_state['values']['gid']);
+ $SQL .= ", usubject = '%s', qsubject = '%s', sep = '%s', e_type = %d, e_pos = %d, unchanged_day = %d, tt_header = '%s', tt_body = '%s'";
+ $SQL .= ", tt_footer = '%s', etemplate = '%s', atemplate = '%s', utemplate = '%s', qtemplate = '%s' WHERE gid = %d";
+ db_query($SQL, $form_state['values']['mail_address'], $form_state['values']['sender_address'], $form_state['values']['tsubject'], $form_state['values']['esubject'], $form_state['values']['asubject'], $form_state['values']['usubject'], $form_state['values']['qsubject'], $form_state['values']['sep'], $form_state['values']['e_type'], $form_state['values']['e_pos'], $form_state['values']['unchanged_day'], $form_state['values']['tt_header'], $form_state['values']['tt_body'], $form_state['values']['tt_footer'], $form_state['values']['etemplate'], $form_state['values']['atemplate'], $form_state['values']['utemplate'], $form_state['values']['qtemplate'], $form_state['values']['gid']);
}
/************************************************************
diff -upr stable/ticketing/ticket.mail.inc development/ticketing/ticket.mail.inc
--- stable/ticketing/ticket.mail.inc 2008-11-26 16:13:23.000000000 +0200
+++ development/ticketing/ticket.mail.inc 2009-04-08 15:46:02.000000000 +0300
@@ -14,7 +14,20 @@ function _ticket_mail_header(&$message,
$message['headers']['Sender'] = $message['headers']['Return-Path'] =
$message['headers']['Errors-To'] = $params['template']['mail_address'];
- if ($message['id'] != 'ticket_new_assigned') {
+ if ($message['id'] == 'ticket_add_queue') {
+ $SQL = "SELECT mailto, email_name FROM {ticket_email} WHERE gid=%d";
+ $result = db_query($SQL, $params['gid']);
+ $mailto = array();
+ while ($row = db_fetch_array($result)) {
+ $mailto[] = $row['email_name'].' <'.$row['mailto'].'>';
+ }
+ $message['to'] = implode(', ', $mailto);
+ } elseif ($message['id'] == 'ticket_new_assigned') {
+ $SQL = "SELECT u.mail FROM {ticket_event} te, {users} u WHERE te.eid = %d AND te.reassigned = u.uid";
+ $result = db_query($SQL, $params['eid']);
+ $mail = db_fetch_array($result);
+ $message['to'] = $mail['mail'];
+ } else {
// akik masolatot kapnak a levelrol
$result = db_query("SELECT cc FROM {ticket_ticket} WHERE tid = %d", $params['tid']);
$row = db_fetch_array($result);
@@ -31,11 +44,6 @@ function _ticket_mail_header(&$message,
$mailto[] = $row['email_name'].' <'.$row['mailto'].'>';
}
$message['to'] = implode(', ', $mailto);
- } elseif ($message['id'] == 'ticket_new_assigned') {
- $SQL = "SELECT u.mail FROM {ticket_event} te, {users} u WHERE te.eid = %d AND te.reassigned = u.uid";
- $result = db_query($SQL, $params['eid']);
- $mail = db_fetch_array($result);
- $message['to'] = $mail['mail'];
}
}
@@ -264,3 +272,24 @@ function _ticket_mail_template_assigned(
}
}
+function _ticket_mail_template_queued(&$params) {
+ $SQL = 'SELECT tq.qid, u.name, u.mail, tg.group_name, tp.priority_name, tsc.scope_name, tst.site_name, tq.created, tq.summary, tq.detail';
+ $SQL .= ' FROM {ticket_queue} tq, {users} u, {ticket_group} tg, {ticket_priority} tp, {ticket_scope} tsc, {ticket_site} tst';
+ $SQL .= ' WHERE tq.qid = %d AND tq.uid = u.uid AND tq.gid = tg.gid AND tq.priority_id=tp.priority_id AND tq.scope_id = tsc.scope_id AND tq.site_id = tst.site_id';
+ $result = db_query($SQL, $params['qid']);
+ if ($row = db_fetch_array($result)) {
+ $params['template']['var']['%qid'] = $row['qid'];
+ $params['template']['var']['%g'] = $row['group_name'];
+ $params['template']['var']['%tc'] = $row['name'] . ' <' . $row['mail'] . '>';
+ $params['template']['var']['%pri'] = $row['priority_name'];
+ $params['template']['var']['%sc'] = $row['scope_name'];
+ $params['template']['var']['%si'] = $row['site_name'];
+ $params['template']['var']['%cd'] = $row['created'];
+ $params['template']['var']['%ss'] = $row['summary'];
+ $params['template']['var']['%dt'] = $row['detail'];
+
+ // tokens substitution
+ $params['template']['qtemplate'] = strtr($params['template']['qtemplate'], $params['template']['var']);
+ $params['template']['qsubject'] = strtr($params['template']['qsubject'], $params['template']['var']);
+ }
+}
diff -upr stable/ticketing/ticket.module development/ticketing/ticket.module
--- stable/ticketing/ticket.module 2009-03-11 17:24:24.000000000 +0200
+++ development/ticketing/ticket.module 2009-04-08 14:28:15.000000000 +0300
@@ -1028,6 +1028,21 @@ function ticket_mail($key, &$message, $p
}
}
break;
+
+ case 'add_queue':
+ _ticket_mail_template_queued($params);
+ if ( ! empty($params['template']['qsubject']) ) {
+ $message['subject'] = $params['template']['qsubject'];
+ $message['body'] = drupal_wrap_mail($params['template']['qtemplate']);
+
+ $message['result'] = drupal_mail_send($message);
+ // Log errors
+ if (!$message['result']) {
+ watchdog('mail', 'Error sending e-mail (from %from to %to).', array('%from' => $message['from'], '%to' => $message['to']), WATCHDOG_ERROR);
+ drupal_set_message(t('Unable to send e-mail. Please contact the site admin, if the problem persists.'), 'error');
+ }
+ }
+ break;
}
}
}
diff -upr stable/ticketing/ticket.pages.inc development/ticketing/ticket.pages.inc
--- stable/ticketing/ticket.pages.inc 2009-03-11 17:24:24.000000000 +0200
+++ development/ticketing/ticket.pages.inc 2009-04-08 14:24:22.000000000 +0300
@@ -993,6 +993,16 @@ function ticket_add_queue_submit($form,
$SQL = "INSERT INTO {ticket_queue} (uid, gid, priority_id, scope_id, site_id, created, summary, detail)";
$SQL .= " VALUES (%d, %d, %d, %d, %d, %d, '%s', '%s')";
db_query($SQL, $user->uid, $form_state['values']['gid'], $form_state['values']['priority'], $form_state['values']['scope'], $form_state['values']['site'], time(), $form_state['values']['summary'], $form_state['values']['detail']);
+
+ // send notification
+ $qid = db_last_insert_id('{ticket_queue}', 'qid');
+ $result = db_query("SELECT * FROM {ticket_template} WHERE gid = %d", $form_state['values']['gid']);
+ $template = db_fetch_array($result);
+ if ( !empty($template['mail_address'] ) ) {
+ drupal_mail('ticket', 'add_queue', '', language_default(), array('qid' => $qid, 'gid' => $form_state['values']['gid'], 'template' => $template), NULL, FALSE);
+ }
+
+ drupal_set_message(t('Thank you! Your request queued.'), 'status');
drupal_goto('ticket/'.$form_state['values']['u_id'].'/'.$form_state['values']['gid']);
}