diff --git a/js/ticket_collision_detection.js b/js/ticket_collision_detection.js new file mode 100644 index 00000000..f1b98e41 --- /dev/null +++ b/js/ticket_collision_detection.js @@ -0,0 +1,33 @@ +// Collision detection +// Adds a "view" entry of the current ticket every 2 mins into the database +// Updates the currently viewing (ticket_collision_viewing) element with anyone that's looked at this ticket in the last two mins +function ticket_collision_detection() { + + // Get the page ticket id + var ticket_id = document.getElementById("ticket_id").value; + + //Send a GET request to ajax.php as ajax.php?ticket_add_view=true&ticket_id=NUMBER + jQuery.get( + "ajax.php", + {ticket_add_view: 'true', ticket_id: ticket_id}, + function(data) { + // We don't care about a response + } + ); + + //Send a GET request to ajax.php as ajax.php?ticket_query_views=true&ticket_id=NUMBER + jQuery.get( + "ajax.php", + {ticket_query_views: 'true', ticket_id: ticket_id}, + function(data) { + //If we get a response from ajax.php, parse it as JSON + const ticket_view_data = JSON.parse(data); + document.getElementById("ticket_collision_viewing").innerText = ticket_view_data.message; + } + ); +} +// Call on page load +ticket_collision_detection(); + +// Run every 2 mins +setInterval(ticket_collision_detection, 120*1000); \ No newline at end of file diff --git a/js/ticket_time_tracking.js b/js/ticket_time_tracking.js new file mode 100644 index 00000000..7c2b2ef1 --- /dev/null +++ b/js/ticket_time_tracking.js @@ -0,0 +1,49 @@ +// Ticket time tracking + +// Default values +var hours = 0; +var minutes = 0; +var seconds = 0; +setInterval(countTime, 1000); + +// Counter +function countTime() +{ + ++seconds; + if (seconds == 60) { + seconds = 0; + minutes++; + } + if (minutes == 60) { + minutes = 0; + hours++; + } + + // Total timeworked + var time_worked = pad(hours) + ":" + pad(minutes) + ":" + pad(seconds); + document.getElementById("time_worked").value = time_worked; +} + +// Allows manually adjusting the timer +function setTime() +{ + var time_as_text = document.getElementById("time_worked").value; + const time_text_array = time_as_text.split(":"); + hours = parseInt(time_text_array[0]); + minutes = parseInt(time_text_array[1]); + seconds = parseInt(time_text_array[2]); +} + +// This function "pads" out the values, adding zeros if they are required +function pad(val) +{ + var valString = val + ""; + if (valString.length < 2) + { + return "0" + valString; + } + else + { + return valString; + } +} \ No newline at end of file diff --git a/ticket.php b/ticket.php index 79341129..ad940591 100644 --- a/ticket.php +++ b/ticket.php @@ -476,8 +476,7 @@ if (isset($_GET['ticket_id'])) {
0 ) { - ?> + if ($ticket_asset_count > 0 ) { ?> @@ -519,7 +518,6 @@ if (isset($_GET['ticket_id'])) { - - - - - - - - - - // Collision detection - // Adds a "view" entry of the current ticket every 2 mins into the database - // Updates the currently viewing (ticket_collision_viewing) element with anyone that's looked at this ticket in the last two mins - function ticket_collision_detection() { - - // Get the page ticket id - var ticket_id = document.getElementById("ticket_id").value; - - //Send a GET request to ajax.php as ajax.php?ticket_add_view=true&ticket_id=NUMBER - jQuery.get( - "ajax.php", - {ticket_add_view: 'true', ticket_id: ticket_id}, - function(data) { - // We don't care about a response - } - ); - - //Send a GET request to ajax.php as ajax.php?ticket_query_views=true&ticket_id=NUMBER - jQuery.get( - "ajax.php", - {ticket_query_views: 'true', ticket_id: ticket_id}, - function(data) { - //If we get a response from ajax.php, parse it as JSON - const ticket_view_data = JSON.parse(data); - document.getElementById("ticket_collision_viewing").innerText = ticket_view_data.message; - } - ); - } - // Call on page load - ticket_collision_detection(); - - // Run every 2 mins - setInterval(ticket_collision_detection, 120*1000); - + + \ No newline at end of file