Add Ticket Category UI for Recurring Tickets
This commit is contained in:
@@ -16,6 +16,7 @@ $recurring_ticket_next_run = nullable_htmlentities($row['recurring_ticket_next_r
|
|||||||
$recurring_ticket_assigned_to = intval($row['recurring_ticket_assigned_to']);
|
$recurring_ticket_assigned_to = intval($row['recurring_ticket_assigned_to']);
|
||||||
$recurring_ticket_contact_id = intval($row['recurring_ticket_contact_id']);
|
$recurring_ticket_contact_id = intval($row['recurring_ticket_contact_id']);
|
||||||
$recurring_ticket_asset_id = intval($row['recurring_ticket_asset_id']);
|
$recurring_ticket_asset_id = intval($row['recurring_ticket_asset_id']);
|
||||||
|
$recurring_ticket_category = intval($row['recurring_ticket_category']);
|
||||||
$recurring_ticket_billable = intval($row['recurring_ticket_billable']);
|
$recurring_ticket_billable = intval($row['recurring_ticket_billable']);
|
||||||
|
|
||||||
// Additional Assets Selected
|
// Additional Assets Selected
|
||||||
@@ -75,17 +76,53 @@ ob_start();
|
|||||||
<textarea class="form-control tinymce" name="details"><?php echo $recurring_ticket_details; ?></textarea>
|
<textarea class="form-control tinymce" name="details"><?php echo $recurring_ticket_details; ?></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="row">
|
||||||
<label>Priority <strong class="text-danger">*</strong></label>
|
<div class="col">
|
||||||
<div class="input-group">
|
<div class="form-group">
|
||||||
<div class="input-group-prepend">
|
<label>Priority <strong class="text-danger">*</strong></label>
|
||||||
<span class="input-group-text"><i class="fa fa-fw fa-thermometer-half"></i></span>
|
<div class="input-group">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text"><i class="fa fa-fw fa-thermometer-half"></i></span>
|
||||||
|
</div>
|
||||||
|
<select class="form-control select2" name="priority" required>
|
||||||
|
<option <?php if ($recurring_ticket_priority == "Low") { echo "selected"; } ?> >Low</option>
|
||||||
|
<option <?php if ($recurring_ticket_priority == "Medium") { echo "selected"; } ?> >Medium</option>
|
||||||
|
<option <?php if ($recurring_ticket_priority == "High") { echo "selected"; } ?> >High</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Category</label>
|
||||||
|
<div class="input-group">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text"><i class="fa fa-fw fa-layer-group"></i></span>
|
||||||
|
</div>
|
||||||
|
<select class="form-control select2" name="category">
|
||||||
|
<option value="0">- Uncategorized -</option>
|
||||||
|
<?php
|
||||||
|
$sql_categories = mysqli_query($mysqli, "SELECT category_id, category_name FROM categories WHERE category_type = 'Ticket' AND category_archived_at IS NULL ORDER BY category_name ASC");
|
||||||
|
while ($row = mysqli_fetch_array($sql_categories)) {
|
||||||
|
$category_id = intval($row['category_id']);
|
||||||
|
$category_name = nullable_htmlentities($row['category_name']);
|
||||||
|
|
||||||
|
?>
|
||||||
|
<option <?php if ($recurring_ticket_category == $category_id) {echo "selected";} ?> value="<?php echo $category_id; ?>"><?php echo $category_name; ?></option>
|
||||||
|
<?php } ?>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<button class="btn btn-secondary" type="button"
|
||||||
|
data-toggle="ajax-modal"
|
||||||
|
data-modal-size="sm"
|
||||||
|
data-ajax-url="ajax/ajax_category_add.php?category=Ticket">
|
||||||
|
<i class="fas fa-fw fa-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<select class="form-control select2" name="priority" required>
|
|
||||||
<option <?php if ($recurring_ticket_priority == "Low") { echo "selected"; } ?> >Low</option>
|
|
||||||
<option <?php if ($recurring_ticket_priority == "Medium") { echo "selected"; } ?> >Medium</option>
|
|
||||||
<option <?php if ($recurring_ticket_priority == "High") { echo "selected"; } ?> >High</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -50,18 +50,56 @@
|
|||||||
<textarea class="form-control tinymceTicket<?php if($config_ai_enable) { echo "AI"; } ?>" name="details"></textarea>
|
<textarea class="form-control tinymceTicket<?php if($config_ai_enable) { echo "AI"; } ?>" name="details"></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="row">
|
||||||
<label>Priority <strong class="text-danger">*</strong></label>
|
|
||||||
<div class="input-group">
|
<div class="col">
|
||||||
<div class="input-group-prepend">
|
<div class="form-group">
|
||||||
<span class="input-group-text"><i class="fa fa-fw fa-thermometer-half"></i></span>
|
<label>Priority <strong class="text-danger">*</strong></label>
|
||||||
|
<div class="input-group">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text"><i class="fa fa-fw fa-thermometer-half"></i></span>
|
||||||
|
</div>
|
||||||
|
<select class="form-control select2" name="priority" required>
|
||||||
|
<option>Low</option>
|
||||||
|
<option>Medium</option>
|
||||||
|
<option>High</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<select class="form-control select2" name="priority" required>
|
|
||||||
<option>Low</option>
|
|
||||||
<option>Medium</option>
|
|
||||||
<option>High</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Category</label>
|
||||||
|
<div class="input-group">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text"><i class="fa fa-fw fa-layer-group"></i></span>
|
||||||
|
</div>
|
||||||
|
<select class="form-control select2" name="category">
|
||||||
|
<option value="0">- Not Categorized -</option>
|
||||||
|
<?php
|
||||||
|
$sql_categories = mysqli_query($mysqli, "SELECT category_id, category_name FROM categories WHERE category_type = 'Ticket' AND category_archived_at IS NULL ORDER BY category_name ASC");
|
||||||
|
while ($row = mysqli_fetch_array($sql_categories)) {
|
||||||
|
$category_id = intval($row['category_id']);
|
||||||
|
$category_name = nullable_htmlentities($row['category_name']);
|
||||||
|
|
||||||
|
?>
|
||||||
|
<option value="<?php echo $category_id; ?>"><?php echo $category_name; ?></option>
|
||||||
|
<?php } ?>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<button class="btn btn-secondary" type="button"
|
||||||
|
data-toggle="ajax-modal"
|
||||||
|
data-modal-size="sm"
|
||||||
|
data-ajax-url="ajax/ajax_category_add.php?category=Ticket">
|
||||||
|
<i class="fas fa-fw fa-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|||||||
@@ -2101,7 +2101,7 @@ if (isset($_POST['add_recurring_ticket'])) {
|
|||||||
|
|
||||||
$start_date = sanitizeInput($_POST['start_date']);
|
$start_date = sanitizeInput($_POST['start_date']);
|
||||||
|
|
||||||
mysqli_query($mysqli, "INSERT INTO recurring_tickets SET recurring_ticket_subject = '$subject', recurring_ticket_details = '$details', recurring_ticket_priority = '$priority', recurring_ticket_frequency = '$frequency', recurring_ticket_billable = $billable, recurring_ticket_start_date = '$start_date', recurring_ticket_next_run = '$start_date', recurring_ticket_assigned_to = $assigned_to, recurring_ticket_created_by = $session_user_id, recurring_ticket_client_id = $client_id, recurring_ticket_contact_id = $contact_id, recurring_ticket_asset_id = $asset_id");
|
mysqli_query($mysqli, "INSERT INTO recurring_tickets SET recurring_ticket_subject = '$subject', recurring_ticket_details = '$details', recurring_ticket_priority = '$priority', recurring_ticket_frequency = '$frequency', recurring_ticket_billable = $billable, recurring_ticket_start_date = '$start_date', recurring_ticket_next_run = '$start_date', recurring_ticket_assigned_to = $assigned_to, recurring_ticket_created_by = $session_user_id, recurring_ticket_client_id = $client_id, recurring_ticket_contact_id = $contact_id, recurring_ticket_asset_id = $asset_id, recurring_ticket_category = $category");
|
||||||
|
|
||||||
$recurring_ticket_id = mysqli_insert_id($mysqli);
|
$recurring_ticket_id = mysqli_insert_id($mysqli);
|
||||||
|
|
||||||
@@ -2130,7 +2130,7 @@ if (isset($_POST['edit_recurring_ticket'])) {
|
|||||||
$recurring_ticket_id = intval($_POST['recurring_ticket_id']);
|
$recurring_ticket_id = intval($_POST['recurring_ticket_id']);
|
||||||
$next_run_date = sanitizeInput($_POST['next_date']);
|
$next_run_date = sanitizeInput($_POST['next_date']);
|
||||||
|
|
||||||
mysqli_query($mysqli, "UPDATE recurring_tickets SET recurring_ticket_subject = '$subject', recurring_ticket_details = '$details', recurring_ticket_priority = '$priority', recurring_ticket_frequency = '$frequency', recurring_ticket_billable = $billable, recurring_ticket_next_run = '$next_run_date', recurring_ticket_assigned_to = $assigned_to, recurring_ticket_asset_id = $asset_id, recurring_ticket_contact_id = $contact_id WHERE recurring_ticket_id = $recurring_ticket_id");
|
mysqli_query($mysqli, "UPDATE recurring_tickets SET recurring_ticket_subject = '$subject', recurring_ticket_details = '$details', recurring_ticket_priority = '$priority', recurring_ticket_frequency = '$frequency', recurring_ticket_billable = $billable, recurring_ticket_next_run = '$next_run_date', recurring_ticket_assigned_to = $assigned_to, recurring_ticket_asset_id = $asset_id, recurring_ticket_contact_id = $contact_id, recurring_ticket_category = $category WHERE recurring_ticket_id = $recurring_ticket_id");
|
||||||
|
|
||||||
// Add Additional Assets
|
// Add Additional Assets
|
||||||
if (isset($_POST['additional_assets'])) {
|
if (isset($_POST['additional_assets'])) {
|
||||||
@@ -2171,6 +2171,7 @@ if (isset($_GET['force_recurring_ticket'])) {
|
|||||||
$contact_id = intval($row['recurring_ticket_contact_id']);
|
$contact_id = intval($row['recurring_ticket_contact_id']);
|
||||||
$client_id = intval($row['recurring_ticket_client_id']);
|
$client_id = intval($row['recurring_ticket_client_id']);
|
||||||
$asset_id = intval($row['recurring_ticket_asset_id']);
|
$asset_id = intval($row['recurring_ticket_asset_id']);
|
||||||
|
$category = intval($row['recurring_ticket_category']);
|
||||||
$url_key = randomString(156);
|
$url_key = randomString(156);
|
||||||
|
|
||||||
$ticket_status = 1; // Default
|
$ticket_status = 1; // Default
|
||||||
@@ -2190,7 +2191,7 @@ if (isset($_GET['force_recurring_ticket'])) {
|
|||||||
mysqli_query($mysqli, "UPDATE settings SET config_ticket_next_number = $new_config_ticket_next_number WHERE company_id = 1");
|
mysqli_query($mysqli, "UPDATE settings SET config_ticket_next_number = $new_config_ticket_next_number WHERE company_id = 1");
|
||||||
|
|
||||||
// Raise the ticket
|
// Raise the ticket
|
||||||
mysqli_query($mysqli, "INSERT INTO tickets SET ticket_prefix = '$config_ticket_prefix', ticket_number = $ticket_number, ticket_subject = '$subject', ticket_details = '$details', ticket_priority = '$priority', ticket_status = '$ticket_status', ticket_billable = $billable, ticket_url_key = '$url_key', ticket_created_by = $created_id, ticket_assigned_to = $assigned_id, ticket_contact_id = $contact_id, ticket_client_id = $client_id, ticket_asset_id = $asset_id, ticket_recurring_ticket_id = $recurring_ticket_id");
|
mysqli_query($mysqli, "INSERT INTO tickets SET ticket_prefix = '$config_ticket_prefix', ticket_number = $ticket_number, ticket_subject = '$subject', ticket_details = '$details', ticket_priority = '$priority', ticket_status = '$ticket_status', ticket_billable = $billable, ticket_url_key = '$url_key', ticket_created_by = $created_id, ticket_assigned_to = $assigned_id, ticket_contact_id = $contact_id, ticket_client_id = $client_id, ticket_asset_id = $asset_id, ticket_category = $category, ticket_recurring_ticket_id = $recurring_ticket_id");
|
||||||
$id = mysqli_insert_id($mysqli);
|
$id = mysqli_insert_id($mysqli);
|
||||||
|
|
||||||
// Copy Additional Assets from Recurring ticket to new ticket
|
// Copy Additional Assets from Recurring ticket to new ticket
|
||||||
|
|||||||
@@ -7,18 +7,7 @@ $priority = sanitizeInput($_POST['priority']);
|
|||||||
$details = mysqli_real_escape_string($mysqli, $_POST['details']);
|
$details = mysqli_real_escape_string($mysqli, $_POST['details']);
|
||||||
$frequency = sanitizeInput($_POST['frequency']);
|
$frequency = sanitizeInput($_POST['frequency']);
|
||||||
$billable = intval($_POST['billable'] ?? 0);
|
$billable = intval($_POST['billable'] ?? 0);
|
||||||
|
$asset_id = intval($_POST['asset'] ?? 0);
|
||||||
$asset_id = "0";
|
$contact_id = intval($_POST['contact'] ?? 0);
|
||||||
if (isset($_POST['asset'])) {
|
$assigned_to = intval($_POST['assigned_to'] ?? 0);
|
||||||
$asset_id = intval($_POST['asset']);
|
$category = intval($_POST['category'] ?? 0);
|
||||||
}
|
|
||||||
|
|
||||||
$contact_id = "0";
|
|
||||||
if (isset($_POST['contact'])) {
|
|
||||||
$contact_id = intval($_POST['contact']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$assigned_to = "0";
|
|
||||||
if (isset($_POST['assigned_to'])) {
|
|
||||||
$assigned_to = intval($_POST['assigned_to']);
|
|
||||||
}
|
|
||||||
@@ -31,8 +31,9 @@ $url_query_strings_sort = http_build_query($get_copy);
|
|||||||
$sql = mysqli_query(
|
$sql = mysqli_query(
|
||||||
$mysqli,
|
$mysqli,
|
||||||
"SELECT SQL_CALC_FOUND_ROWS * FROM recurring_tickets
|
"SELECT SQL_CALC_FOUND_ROWS * FROM recurring_tickets
|
||||||
LEFT JOIN clients on recurring_ticket_client_id = client_id
|
LEFT JOIN clients ON recurring_ticket_client_id = client_id
|
||||||
WHERE recurring_tickets.recurring_ticket_subject LIKE '%$q%'
|
LEFT JOIN categories ON category_id = recurring_ticket_category
|
||||||
|
WHERE (recurring_tickets.recurring_ticket_subject LIKE '%$q%' OR category_name LIKE '%$q%')
|
||||||
$rec_ticket_permission_snippet
|
$rec_ticket_permission_snippet
|
||||||
$client_query
|
$client_query
|
||||||
ORDER BY
|
ORDER BY
|
||||||
@@ -127,6 +128,11 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||||||
Subject <?php if ($sort == 'recurring_ticket_subject') { echo $order_icon; } ?>
|
Subject <?php if ($sort == 'recurring_ticket_subject') { echo $order_icon; } ?>
|
||||||
</a>
|
</a>
|
||||||
</th>
|
</th>
|
||||||
|
<th>
|
||||||
|
<a class="text-secondary" href="?<?php echo $url_query_strings_sort; ?>&sort=category_name&order=<?php echo $disp; ?>">
|
||||||
|
Category <?php if ($sort == 'category_name') { echo $order_icon; } ?>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
<th>
|
<th>
|
||||||
<a class="text-secondary" href="?<?php echo $url_query_strings_sort; ?>&sort=recurring_ticket_priority&order=<?php echo $disp; ?>">
|
<a class="text-secondary" href="?<?php echo $url_query_strings_sort; ?>&sort=recurring_ticket_priority&order=<?php echo $disp; ?>">
|
||||||
Priority <?php if ($sort == 'recurring_ticket_priority') { echo $order_icon; } ?>
|
Priority <?php if ($sort == 'recurring_ticket_priority') { echo $order_icon; } ?>
|
||||||
@@ -159,6 +165,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||||||
$recurring_ticket_priority = nullable_htmlentities($row['recurring_ticket_priority']);
|
$recurring_ticket_priority = nullable_htmlentities($row['recurring_ticket_priority']);
|
||||||
$recurring_ticket_frequency = nullable_htmlentities($row['recurring_ticket_frequency']);
|
$recurring_ticket_frequency = nullable_htmlentities($row['recurring_ticket_frequency']);
|
||||||
$recurring_ticket_next_run = nullable_htmlentities($row['recurring_ticket_next_run']);
|
$recurring_ticket_next_run = nullable_htmlentities($row['recurring_ticket_next_run']);
|
||||||
|
$recurring_ticket_category = getFallBack(nullable_htmlentities($row['category_name']));
|
||||||
$recurring_ticket_client_name = nullable_htmlentities($row['client_name']);
|
$recurring_ticket_client_name = nullable_htmlentities($row['client_name']);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
@@ -184,11 +191,9 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||||||
<?php echo $recurring_ticket_subject ?>
|
<?php echo $recurring_ticket_subject ?>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
|
<td><?php echo $recurring_ticket_category ?></td>
|
||||||
<td><?php echo $recurring_ticket_priority ?></td>
|
<td><?php echo $recurring_ticket_priority ?></td>
|
||||||
|
|
||||||
<td><?php echo $recurring_ticket_frequency ?></td>
|
<td><?php echo $recurring_ticket_frequency ?></td>
|
||||||
|
|
||||||
<td class="text-bold"><?php echo $recurring_ticket_next_run ?></td>
|
<td class="text-bold"><?php echo $recurring_ticket_next_run ?></td>
|
||||||
|
|
||||||
<?php if (lookupUserPermission("module_support") >= 2) { ?>
|
<?php if (lookupUserPermission("module_support") >= 2) { ?>
|
||||||
|
|||||||
@@ -319,6 +319,7 @@ if (mysqli_num_rows($sql_recurring_tickets) > 0) {
|
|||||||
$client_id = intval($row['recurring_ticket_client_id']);
|
$client_id = intval($row['recurring_ticket_client_id']);
|
||||||
$contact_id = intval($row['recurring_ticket_contact_id']);
|
$contact_id = intval($row['recurring_ticket_contact_id']);
|
||||||
$asset_id = intval($row['recurring_ticket_asset_id']);
|
$asset_id = intval($row['recurring_ticket_asset_id']);
|
||||||
|
$category = intval($row['recurring_ticket_category']);
|
||||||
|
|
||||||
$ticket_status = 1; // Default
|
$ticket_status = 1; // Default
|
||||||
if ($assigned_id > 0) {
|
if ($assigned_id > 0) {
|
||||||
@@ -334,7 +335,7 @@ if (mysqli_num_rows($sql_recurring_tickets) > 0) {
|
|||||||
mysqli_query($mysqli, "UPDATE settings SET config_ticket_next_number = $new_config_ticket_next_number WHERE company_id = 1");
|
mysqli_query($mysqli, "UPDATE settings SET config_ticket_next_number = $new_config_ticket_next_number WHERE company_id = 1");
|
||||||
|
|
||||||
// Raise the ticket
|
// Raise the ticket
|
||||||
mysqli_query($mysqli, "INSERT INTO tickets SET ticket_prefix = '$config_ticket_prefix', ticket_number = $ticket_number, ticket_source = 'Recurring', ticket_subject = '$subject', ticket_details = '$details', ticket_priority = '$priority', ticket_status = '$ticket_status', ticket_billable = $billable, ticket_created_by = $created_id, ticket_assigned_to = $assigned_id, ticket_contact_id = $contact_id, ticket_client_id = $client_id, ticket_asset_id = $asset_id, ticket_recurring_ticket_id = $recurring_ticket_id");
|
mysqli_query($mysqli, "INSERT INTO tickets SET ticket_prefix = '$config_ticket_prefix', ticket_number = $ticket_number, ticket_source = 'Recurring', ticket_subject = '$subject', ticket_details = '$details', ticket_priority = '$priority', ticket_status = '$ticket_status', ticket_billable = $billable, ticket_created_by = $created_id, ticket_assigned_to = $assigned_id, ticket_contact_id = $contact_id, ticket_client_id = $client_id, ticket_asset_id = $asset_id, ticket_category = $category, ticket_recurring_ticket_id = $recurring_ticket_id");
|
||||||
$id = mysqli_insert_id($mysqli);
|
$id = mysqli_insert_id($mysqli);
|
||||||
|
|
||||||
// Copy Additional Assets from Recurring ticket to new ticket
|
// Copy Additional Assets from Recurring ticket to new ticket
|
||||||
|
|||||||
Reference in New Issue
Block a user