Skip to content

Commit

Permalink
Added settings for time tracking pause option in ticket settings
Browse files Browse the repository at this point in the history
  • Loading branch information
whatinthemeh committed Feb 21, 2025
1 parent 9ea41c6 commit 5db65b1
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 2 deletions.
7 changes: 7 additions & 0 deletions admin_settings_ticket.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,13 @@
</div>
<?php } ?>

<div class="form-group">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" name="config_ticket_timer_default_no_autostart" <?php if ($config_ticket_timer_default_no_autostart == 1) { echo "checked"; } ?> value="1" id="ticketTimerSwitch">
<label class="custom-control-label" for="ticketTimerSwitch">Default to pause ticket timer <small class="text-secondary">(This will prevent the timer from starting automatically and pause when leaving ticket focus)</small></label>
</div>
</div>

<div class="form-group">
<label>Number of hours to auto close resolved tickets</label>
<div class="input-group">
Expand Down
1 change: 1 addition & 0 deletions db.sql
Original file line number Diff line number Diff line change
Expand Up @@ -1704,6 +1704,7 @@ CREATE TABLE `settings` (
`config_ticket_autoclose_hours` int(5) NOT NULL DEFAULT 72,
`config_ticket_new_ticket_notification_email` varchar(200) DEFAULT NULL,
`config_ticket_default_billable` tinyint(1) NOT NULL DEFAULT 0,
`config_ticket_timer_default_no_autostart` tinyint(1) NOT NULL DEFAULT 0,
`config_enable_cron` tinyint(1) NOT NULL DEFAULT 0,
`config_recurring_auto_send_invoice` tinyint(1) NOT NULL DEFAULT 1,
`config_enable_alert_domain_expire` tinyint(1) NOT NULL DEFAULT 1,
Expand Down
1 change: 1 addition & 0 deletions get_settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
$config_ticket_autoclose_hours = intval($row['config_ticket_autoclose_hours']);
$config_ticket_new_ticket_notification_email = $row['config_ticket_new_ticket_notification_email'];
$config_ticket_default_billable = intval($row['config_ticket_default_billable']);
$config_ticket_timer_default_no_autostart = intval($row['config_ticket_timer_default_no_autostart']);

// Cron
$config_enable_cron = intval($row['config_enable_cron']);
Expand Down
7 changes: 6 additions & 1 deletion js/ticket_time_tracking.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@
document.addEventListener("DOMContentLoaded", function() {
// Initialize variables
var timerInterval = null;
var isPaused = false;
//var isPaused = false;
var ticketID = getCurrentTicketID();
var elapsedSecs = getElapsedSeconds();

//get database setting for autostart ticket Timer and pause if true
var isPaused = noAutoStart === 1 ? true : false;
if (isPaused === true) pauseTimer();
//end get timer pause setting

function getCurrentTicketID() {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get('ticket_id');
Expand Down
3 changes: 2 additions & 1 deletion post/admin/admin_settings_ticket.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@
$config_ticket_email_parse = intval($_POST['config_ticket_email_parse'] ?? 0);
$config_ticket_email_parse_unknown_senders = intval($_POST['config_ticket_email_parse_unknown_senders'] ?? 0);
$config_ticket_default_billable = intval($_POST['config_ticket_default_billable'] ?? 0);
$config_ticket_timer_default_no_autostart = intval($_POST['config_ticket_timer_default_no_autostart'] ?? 0);
$config_ticket_autoclose_hours = intval($_POST['config_ticket_autoclose_hours']);
$config_ticket_new_ticket_notification_email = '';
if (filter_var($_POST['config_ticket_new_ticket_notification_email'], FILTER_VALIDATE_EMAIL)) {
$config_ticket_new_ticket_notification_email = sanitizeInput($_POST['config_ticket_new_ticket_notification_email']);
}

mysqli_query($mysqli,"UPDATE settings SET config_ticket_prefix = '$config_ticket_prefix', config_ticket_next_number = $config_ticket_next_number, config_ticket_email_parse = $config_ticket_email_parse, config_ticket_email_parse_unknown_senders = $config_ticket_email_parse_unknown_senders, config_ticket_autoclose_hours = $config_ticket_autoclose_hours, config_ticket_new_ticket_notification_email = '$config_ticket_new_ticket_notification_email', config_ticket_default_billable = $config_ticket_default_billable WHERE company_id = 1");
mysqli_query($mysqli,"UPDATE settings SET config_ticket_prefix = '$config_ticket_prefix', config_ticket_next_number = $config_ticket_next_number, config_ticket_email_parse = $config_ticket_email_parse, config_ticket_email_parse_unknown_senders = $config_ticket_email_parse_unknown_senders, config_ticket_autoclose_hours = $config_ticket_autoclose_hours, config_ticket_new_ticket_notification_email = '$config_ticket_new_ticket_notification_email', config_ticket_default_billable = $config_ticket_default_billable, config_ticket_timer_default_no_autostart = $config_ticket_timer_default_no_autostart WHERE company_id = 1");

// Logging
logAction("Settings", "Edit", "$session_name edited ticket settings");
Expand Down
6 changes: 6 additions & 0 deletions ticket.php
Original file line number Diff line number Diff line change
Expand Up @@ -461,6 +461,12 @@

</div> <!-- Card Header -->

<!-- create js variable related to ticket timer setting -->
<script type="text/javascript">
var noAutoStart = <?php echo json_encode($config_ticket_timer_default_no_autostart); ?>;
</script>


<div class="card-body pt-3 pb-0">
<div class="row">
<div class="col-sm-4">
Expand Down

0 comments on commit 5db65b1

Please sign in to comment.