Merge pull request #1079 from itflow-org/custom-actions

Add custom event handler
This commit is contained in:
Johnny
2024-10-02 12:34:45 -04:00
committed by GitHub
12 changed files with 160 additions and 17 deletions

View File

@@ -10,7 +10,6 @@ if (isset($_POST['add_contact'])) {
require_once 'post/user/contact_model.php';
// Set password
if (!empty($_POST['contact_password'])) {
$password_hash = password_hash(trim($_POST['contact_password']), PASSWORD_DEFAULT);
@@ -58,6 +57,8 @@ if (isset($_POST['add_contact'])) {
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Contact', log_action = 'Create', log_description = '$session_name created contact $name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $contact_id");
customAction('contact_create', $contact_id);
$_SESSION['alert_message'] = "Contact <strong>$name</strong> created";
header("Location: " . $_SERVER["HTTP_REFERER"]);
@@ -173,6 +174,8 @@ if (isset($_POST['edit_contact'])) {
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Contact', log_action = 'Modify', log_description = '$session_name modified contact $name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $contact_id");
customAction('contact_update', $contact_id);
$_SESSION['alert_message'] = "Contact <strong>$name</strong> updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
@@ -313,6 +316,8 @@ if (isset($_POST['bulk_edit_contact_role'])) {
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Contact', log_action = 'Modify', log_description = '$session_name updated $contact_name role', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $contact_id");
customAction('contact_update', $contact_id);
} // End Assign Location Loop
$_SESSION['alert_message'] = "You updated roles for <b>$contact_count</b> contacts";

View File

@@ -31,6 +31,8 @@ if (isset($_POST['add_invoice'])) {
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Invoice', log_action = 'Create', log_description = '$config_invoice_prefix$invoice_number', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
customAction('invoice_create', $invoice_id);
$_SESSION['alert_message'] = "Invoice added";
header("Location: invoice.php?invoice_id=$invoice_id");
@@ -117,6 +119,8 @@ if (isset($_POST['add_invoice_copy'])) {
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Invoice', log_action = 'Create', log_description = 'Copied Invoice', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
customAction('invoice_create', $new_invoice_id);
$_SESSION['alert_message'] = "Invoice copied";
header("Location: invoice.php?invoice_id=$new_invoice_id");
@@ -748,6 +752,8 @@ if (isset($_POST['add_payment'])) {
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Payment', log_action = 'Create', log_description = '$payment_amount', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $payment_id");
customAction('invoice_pay', $invoice_id);
if ($email_receipt == 1) {
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Payment', log_action = 'Email', log_description = 'Payment receipt for invoice $invoice_prefix$invoice_number queued to $contact_email Email ID: $email_id', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $payment_id");
}
@@ -834,9 +840,9 @@ if (isset($_POST['add_bulk_payment'])) {
mysqli_query($mysqli, $add_history_query);
// Add to Email Body Invoice Portion
$email_body_invoices .= "<br>Invoice <a href=\'https://$config_base_url/guest_view_invoice.php?invoice_id=$invoice_id&url_key=$invoice_url_key\'>$invoice_prefix$invoice_number</a> - Outstanding Amount: " . numfmt_format_currency($currency_format, $invoice_balance, $currency_code) . " - Payment Applied: " . numfmt_format_currency($currency_format, $payment_amount, $currency_code) . " - New Balance: " . numfmt_format_currency($currency_format, $remaining_invoice_balance, $currency_code);
customAction('invoice_pay', $invoice_id);
} // End Invoice Loop
@@ -1209,6 +1215,8 @@ if (isset($_GET['force_recurring'])) {
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Invoice', log_action = 'Create', log_description = '$session_name forced recurring invoice into an invoice', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $new_invoice_id");
customAction('invoice_create', $new_invoice_id);
$_SESSION['alert_message'] = "Recurring Invoice Forced";
header("Location: " . $_SERVER["HTTP_REFERER"]);

View File

@@ -29,6 +29,8 @@ if (isset($_POST['add_quote'])) {
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Quote', log_action = 'Create', log_description = '$quote_prefix$quote_number', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
customAction('quote_create', $quote_id);
$_SESSION['alert_message'] = "Quote added";
header("Location: quote.php?quote_id=$quote_id");
@@ -86,6 +88,8 @@ if (isset($_POST['add_quote_copy'])) {
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Quote', log_action = 'Create', log_description = 'Copied Quote', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id");
customAction('quote_create', $new_quote_id);
$_SESSION['alert_message'] = "Quote copied";
header("Location: quote.php?quote_id=$new_quote_id");
@@ -145,6 +149,8 @@ if (isset($_POST['add_quote_to_invoice'])) {
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Quote', log_action = 'Create', log_description = 'Quote copied to Invoice', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
customAction('invoice_create', $new_invoice_id);
$_SESSION['alert_message'] = "Quote copied to Invoice";
header("Location: invoice.php?invoice_id=$new_invoice_id");
@@ -345,6 +351,8 @@ if (isset($_GET['accept_quote'])) {
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Quote', log_action = 'Modify', log_description = 'Accepted Quote $quote_id', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
customAction('quote_accept', $quote_id);
$_SESSION['alert_message'] = "Quote accepted";
header("Location: " . $_SERVER["HTTP_REFERER"]);
@@ -361,6 +369,8 @@ if (isset($_GET['decline_quote'])) {
mysqli_query($mysqli,"INSERT INTO history SET history_status = 'Cancelled', history_description = 'Quote declined!', history_quote_id = $quote_id");
customAction('quote_decline', $quote_id);
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Quote', log_action = 'Modify', log_description = 'Declined Quote $quote_id', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");

View File

@@ -176,6 +176,9 @@ if (isset($_POST['add_ticket'])) {
}
}
// Custom action/notif handler
customAction('ticket_create', $ticket_id);
// Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Create', log_description = '$session_name created ticket $config_ticket_prefix$ticket_number - $ticket_subject', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id");
@@ -259,6 +262,9 @@ if (isset($_POST['edit_ticket'])) {
addToMailQueue($mysqli, $data);
}
// Custom action/notif handler
customAction('ticket_update', $ticket_id);
//Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name modified ticket $ticket_number - $subject', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id");
@@ -280,6 +286,8 @@ if (isset($_POST['edit_ticket_priority'])) {
//Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name edited ticket priority', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id");
customAction('ticket_update', $ticket_id);
$_SESSION['alert_message'] = "Ticket priority updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
@@ -350,6 +358,9 @@ if (isset($_POST['edit_ticket_contact'])) {
addToMailQueue($mysqli, $data);
}
// Custom action/notif handler
customAction('ticket_update', $ticket_id);
//Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name changed contact for ticket $ticket_number', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id");
@@ -523,9 +534,14 @@ if (isset($_POST['edit_ticket_priority'])) {
//Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name edited ticket priority', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id");
// Custom action/notif handler
customAction('ticket_update', $ticket_id);
$_SESSION['alert_message'] = "Ticket priority updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
customAction('ticket_update', $ticket_id);
}
if (isset($_POST['assign_ticket'])) {
@@ -622,6 +638,8 @@ if (isset($_POST['assign_ticket'])) {
}
}
customAction('ticket_assign', $ticket_id);
$_SESSION['alert_message'] = "Ticket <strong>$ticket_prefix$ticket_number</strong> assigned to <strong>$agent_name</strong>";
header("Location: " . $_SERVER["HTTP_REFERER"]);
@@ -661,6 +679,8 @@ if (isset($_GET['delete_ticket'])) {
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Ticket <strong>$ticket_prefix$ticket_number</strong> along with all replies deleted";
customAction('ticket_delete', $ticket_id);
header("Location: tickets.php");
}
}
@@ -723,6 +743,8 @@ if (isset($_POST['bulk_assign_ticket'])) {
// Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', log_description = '$session_name reassigned ticket $ticket_prefix$ticket_number - $ticket_subject to $agent_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id");
customAction('ticket_assign', $ticket_id);
$tickets_assigned_body .= "$ticket_prefix$ticket_number - $ticket_subject<br>";
} // End For Each Ticket ID Loop
@@ -796,6 +818,8 @@ if (isset($_POST['bulk_edit_ticket_priority'])) {
// Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', log_description = '$session_name updated the priority on ticket $ticket_prefix$ticket_number - $ticket_subject from $current_ticket_priority to $priority', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id");
customAction('ticket_update', $ticket_id);
} // End For Each Ticket ID Loop
}
@@ -850,6 +874,9 @@ if (isset($_POST['bulk_merge_tickets'])) {
// Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Merged', log_description = 'Merged ticket $ticket_prefix$ticket_number into $ticket_prefix$merge_into_ticket_number', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
// Custom action/notif handler
customAction('ticket_merge', $ticket_id);
}
} // End For Each Ticket ID Loop
}
@@ -901,6 +928,8 @@ if (isset($_POST['bulk_resolve_tickets'])) {
// Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Resolve', log_description = '$session_name resolved $ticket_prefix$ticket_number - $ticket_subject in a bulk action', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id");
customAction('ticket_resolve', $ticket_id);
// Client notification email
if (!empty($config_smtp_host) && $config_ticket_client_general_notifications == 1 && $private_note == 0) {
@@ -1012,15 +1041,23 @@ if (isset($_POST['bulk_ticket_reply'])) {
// Update Ticket Status
mysqli_query($mysqli, "UPDATE tickets SET ticket_status = '$ticket_status' WHERE ticket_id = $ticket_id");
// Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket Reply', log_action = 'Create', log_description = '$session_name replied to ticket $ticket_prefix$ticket_number - $ticket_subject and was a $ticket_reply_type reply', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_reply_id");
// Custom action/notif handler
if ($ticket_reply_type == 'Internal') {
customAction('ticket_reply_agent_internal', $ticket_id);
} else {
customAction('reply_reply_agent_public', $ticket_id);
}
// Resolve the ticket, if set
if ($ticket_status == 4) {
mysqli_query($mysqli, "UPDATE tickets SET ticket_resolved_at = NOW() WHERE ticket_id = $ticket_id");
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Resolved', log_description = 'Ticket ID $ticket_id resolved', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, log_entity_id = $ticket_id");
customAction('ticket_resolve', $ticket_id);
}
// Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket Reply', log_action = 'Create', log_description = '$session_name replied to ticket $ticket_prefix$ticket_number - $ticket_subject and was a $ticket_reply_type reply', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_reply_id");
// Get Contact Details
$sql = mysqli_query(
$mysqli,
@@ -1109,7 +1146,7 @@ if (isset($_POST['bulk_ticket_reply'])) {
}
// Currenly not UI Frontend for this
// Currently not UI Frontend for this
if (isset($_POST['bulk_add_ticket_project'])) {
enforceUserPermission('module_support', 2);
@@ -1290,6 +1327,13 @@ if (isset($_POST['add_ticket_reply'])) {
mysqli_query($mysqli, "INSERT INTO notifications SET notification_type = 'Ticket', notification = '$session_name updated Ticket $ticket_prefix$ticket_number - Subject: $ticket_subject that you opened', notification_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id, notification_user_id = $ticket_created_by");
}
// Custom action/notif handler
if ($ticket_reply_type == 'Internal') {
customAction('ticket_reply_agent_internal', $ticket_id);
} else {
customAction('reply_reply_agent_public', $ticket_id);
}
// Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket Reply', log_action = 'Create', log_description = '$session_name replied to ticket $ticket_prefix$ticket_number - $ticket_subject and was a $ticket_reply_type reply', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_reply_id");
@@ -1394,6 +1438,8 @@ if (isset($_POST['merge_ticket'])) {
// Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Merged', log_description = 'Merged ticket $ticket_prefix$ticket_number into $ticket_prefix$merge_into_ticket_number', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
customAction('ticket_merge', $ticket_id);
$_SESSION['alert_message'] = "Ticket merged into $ticket_prefix$merge_into_ticket_number";
header("Location: " . $_SERVER["HTTP_REFERER"]);
@@ -1416,6 +1462,8 @@ if (isset($_POST['change_client_ticket'])) {
//Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket Reply', log_action = 'Modify', log_description = '$session_name modified ticket - client changed', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id");
customAction('ticket_update', $ticket_id);
$_SESSION['alert_message'] = "Ticket client updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
@@ -1435,6 +1483,8 @@ if (isset($_GET['resolve_ticket'])) {
//Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Resolved', log_description = 'Ticket ID $ticket_id resolved', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, log_entity_id = $ticket_id");
customAction('ticket_resolve', $ticket_id);
// Client notification email
if (!empty($config_smtp_host) && $config_ticket_client_general_notifications == 1) {
@@ -1529,6 +1579,8 @@ if (isset($_GET['close_ticket'])) {
//Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Closed', log_description = 'Ticket ID $ticket_id Closed', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, log_entity_id = $ticket_id");
customAction('ticket_close', $ticket_id);
// Client notification email
if (!empty($config_smtp_host) && $config_ticket_client_general_notifications == 1) {
@@ -1615,6 +1667,8 @@ if (isset($_GET['reopen_ticket'])) {
//Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Reopened', log_description = 'Ticket ID $ticket_id reopened', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, log_entity_id = $ticket_id");
customAction('ticket_update', $ticket_id);
$_SESSION['alert_message'] = "Ticket re-opened";
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
@@ -2079,6 +2133,8 @@ if (isset($_POST['edit_ticket_schedule'])) {
log_entity_id = $ticket_id"
);
customAction('ticket_schedule', $ticket_id);
if (empty($conflicting_tickets)) {
$_SESSION['alert_message'] = "Ticket scheduled for $email_datetime";
@@ -2226,6 +2282,8 @@ if (isset($_GET['cancel_ticket_schedule'])) {
//Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name cancelled ticket schedule', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, log_entity_id = $ticket_id");
customAction('ticket_unschedule', $ticket_id);
$_SESSION['alert_message'] = "Ticket schedule cancelled";
header("Location: " . $_SERVER["HTTP_REFERER"]);