Feature: Add Dynamic Task editing in add ticket and add recurring ticket, recurring tickets now have their own task table as well

This commit is contained in:
johnnyq
2026-07-29 17:48:41 -04:00
parent 74a5359b80
commit e74307eaea
14 changed files with 787 additions and 504 deletions

View File

@@ -35,6 +35,9 @@ ob_start();
<li class="nav-item">
<a class="nav-link active" data-toggle="pill" href="#pills-add-details"><i class="fa fa-fw fa-life-ring mr-2"></i>Details</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="pill" href="#pills-add-tasks"><i class="fa fa-fw fa-tasks mr-2"></i>Tasks</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="pill" href="#pills-add-relationships"><i class="fa fa-fw fa-desktop mr-2"></i>Assignment</a>
</li>
@@ -86,45 +89,7 @@ ob_start();
</div>
</div>
<div class="form-group">
<label>Template</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-cube"></i></span>
</div>
<select class="form-control select2" id="ticket_template_select" name="ticket_template_id" required>
<option value="0">- Choose a Template -</option>
<?php
$sql_ticket_templates = mysqli_query($mysqli, "
SELECT tt.ticket_template_id,
tt.ticket_template_name,
tt.ticket_template_subject,
tt.ticket_template_details,
COUNT(ttt.task_template_id) as task_count
FROM ticket_templates tt
LEFT JOIN task_templates ttt
ON tt.ticket_template_id = ttt.task_template_ticket_template_id
WHERE tt.ticket_template_archived_at IS NULL
GROUP BY tt.ticket_template_id
ORDER BY tt.ticket_template_name ASC
");
while ($row = mysqli_fetch_assoc($sql_ticket_templates)) {
$ticket_template_id_select = intval($row['ticket_template_id']);
$ticket_template_name_select = escapeHtml($row['ticket_template_name']);
$ticket_template_subject_select = escapeHtml($row['ticket_template_subject']);
$ticket_template_details_select = escapeHtml($row['ticket_template_details']);
$task_count = intval($row['task_count']);
?>
<option value="<?= $ticket_template_id_select ?>"
data-subject="<?= $ticket_template_subject_select ?>"
data-details="<?= $ticket_template_details_select ?>">
<?= $ticket_template_name_select ?> (<?= $task_count ?> tasks)
</option>
<?php } ?>
</select>
</div>
</div>
<?php require_once '../../includes/inc_ticket_template_select.php'; ?>
<div class="form-group">
<label>Subject <strong class="text-danger">*</strong></label>
@@ -240,6 +205,12 @@ ob_start();
</div>
<div class="tab-pane fade" id="pills-add-tasks">
<?php require_once '../../includes/inc_ticket_tasks_section.php'; ?>
</div>
<div class="tab-pane fade" id="pills-add-relationships">
<div class="form-group">
@@ -339,33 +310,14 @@ ob_start();
</form>
<!-- Ticket Templates -->
<script>
$(document).on('change', '#ticket_template_select', function () {
const $opt = $(this).find(':selected');
const templateSubject = $opt.data('subject') || '';
const templateDetails = $opt.data('details') || '';
$('#subjectInput').val(templateSubject);
if (window.tinymce) {
const editor = tinymce.get('detailsInput');
if (editor) {
editor.setContent(templateDetails);
} else {
$('#detailsInput').val(templateDetails);
}
} else {
$('#detailsInput').val(templateDetails);
}
});
</script>
<!-- Ticket Client/Contact JS -->
<link rel="stylesheet" href="/libs/jquery-ui/jquery-ui.min.css">
<script src="/libs/jquery-ui/jquery-ui.min.js"></script>
<script src="/agent/js/tickets_add_modal.js"></script>
<script src="/agent/js/ticket_tasks_modal.js"></script>
<?php
require_once '../../../includes/modal_footer.php';