File manager - Edit - /home/autoph/public_html/projects/tickets-autohub/public/js/ticket/showMyAssignedTicket.js
Back
(function () { "use strict"; var message = null; var url = window.location.href; var id = url.match(/\/(\d+)$/)[1]; var lastMessageId = null; var suppId = null; let intervalClose; let ajaxRequestInProgress = false; let intervalPicked; var stars = null; var options = { max_value: 5, step_size: 1, } // Get the timer element var timerElement = document.getElementById('timer'); // Set the initial time to 00:00:00 function getFileNameFromUrl(url) { var filename = url.substring(url.lastIndexOf('/') + 1); return decodeURIComponent(filename); } function closeTicket() { $('#_ticketClosePrompt').on('click', (e) => { e.preventDefault(); swal.fire({ title: 'Confirmation', text: 'Are you sure you want to close this ticket?', icon: 'warning', showDenyButton: true, // showCancelButton: true, confirmButtonText: 'Confirm', denyButtonText: 'Cancel', }).then((result) => { if (result.isConfirmed) { checkElapsedTime(); $('#solutionsBlade2').modal('show'); } else if (result.isDenied) { $('#send-chat').attr("disabled", false); } }); }); } $("#submit_solution2").on('click', function (e) { e.preventDefault(); $('#submit_solution2').prop('disabled', true).text('Loading...'); if ($("#_userSolution").val().length < 10) { swal.fire({ icon: 'error', title: 'Please provide at least 10 or more character in solution input.', }); $('#submit_solution2').prop('disabled', false).text('Submit & Close ticket'); return; } $.ajax({ type: "POST", url: "/ticket/close-ticket/" + id, dataType: 'json', data: { solution: $('#_userSolution').val() }, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (result) { console.log(result); if(result.status ==1) { // toastRWithTime("success",result.message); swal.fire({ icon: 'success', title: result.message, }); $('#submit_solution2').prop('disabled', false).text('Submit & Close ticket'); $('#solutionsBlade2').modal('hide'); location.reload(); // setTimeout(function() { // window.location.href = "/ticket/my-assigned-tickets/"+$id; // }, 1000); // 2000 } // toastRWithTime("success",'success'); // window.location.href = "/ticket/assigned-tickets"; }, error: function (error) { $('#submit_solution2').prop('disabled', false).text('Submit & Close ticket'); } }); }); function transferTicket() { $('#_ticketTransferPrompt').on('click', function (e) { e.preventDefault(); swal.fire({ title: 'Confirmation', text: 'Are you sure you want to transfer this ticket?', icon: 'warning', showDenyButton: true, // showCancelButton: true, confirmButtonText: 'Confirm', denyButtonText: 'Cancel' }).then((result) => { if (result.isConfirmed) { $('#assignModal').modal('show'); // $.ajax({ // type: "POST", // url: "/ticket/transfer-ticket/" + id, // dataType: 'json', // data: null, // headers: { // 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') // }, // success: function(result){ // toastRWithTime("success",'success'); // window.location.href = "/ticket/assigned-tickets"; // }, // error: function(error){ // } // }); } else { } }); }); } // function sendChat(){ // } function checkMessages() { $.ajax({ type: "GET", url: "/ticket/fetch-messages/" + id, dataType: 'json', data: null, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, // success: function (result) { // let Mclass = null; // var sender = ""; // var newMessage; // result.message.forEach(function (message) { // if (message.sender != result.id) { // Mclass = "received"; // sender = message.name; // } else { // Mclass = "sent"; // sender = "You"; // } // if (lastMessageId === null || message.id > lastMessageId) { // if (message.content.includes("files/tickets/messages/")) { // newMessage = $('<div>').addClass('message').html(`<div class="row align-items-center"> // <div class="col-sm-3 text-center"> // <button class="download-button border-0 mt-auto bg-transparent" id="download-button" style="color:black; bakground-color:transparent;"><span class="fa fa-download"></span></button> // </div> // <div class="col-sm-9"> // ${message.content.replace("files/tickets/messages/", "")} // </div> // </div> // `); // // Add an event listener to the download button if needed // newMessage.find('.download-button').on('click', function () { // var baseUrl = window.location.origin; // var fileUrl = baseUrl + '/' + message.content; // // var fileUrl = baseUrl + '/' + 'files/tickets/messages/' + $(this).text(); // var link = document.createElement('a'); // link.href = fileUrl; // link.download = getFileNameFromUrl(fileUrl); // link.style.display = 'none'; // document.body.appendChild(link); // link.click(); // document.body.removeChild(link); // }); // } else { // newMessage = $('<div>').addClass('message').text(message.content); // } // var messageContainer = $('<div style="width:30%">').addClass('message-container ' + Mclass).css({ // 'max-width': '30% !important', // Override 30% issue // // 'width': 'auto', // Allow flexibility // 'display': 'flex', // 'justify-content': Mclass === 'sent' ? 'flex-end' : 'flex-start' // }); // var timestamp = $('<small class="mt-n3 ml-5">').addClass('timestamp').text(moment(message.created_at).calendar() + " || " + sender); // messageContainer.append(newMessage); // messageContainer.append(timestamp); // Append the timestamp inside the message container // $('.chat-messages').append(messageContainer); // $('#chat-message').val(''); // lastMessageId = message.id; // var chatMessagesContainer = $('.chat-messages'); // chatMessagesContainer.scrollTop(chatMessagesContainer.prop("scrollHeight")); // } // }); // }, success: function (result) { let Mclass = null; var sender = ""; var sender_name = ""; var sender_lastname = ""; result.message.forEach(function (message) { if (message.sender != result.id) { Mclass = "received"; sender = message.name; sender_name = message.f_name; sender_lastname = message.l_name; } else { Mclass = "sent"; sender = "You"; sender_name = message.f_name; sender_lastname = message.l_name; } if (lastMessageId === null || message.id > lastMessageId) { var newMessage; if (message.content.includes("files/tickets/messages/")) { newMessage = $('<div>').addClass('message').html(` <div class="row align-items-center"> <div class="col-sm-3 text-center"> <button class="download-button border-0 mt-auto bg-transparent"> <span class="fa fa-download"></span> </button> </div> <div class="col-sm-9"> ${message.content.replace("files/tickets/messages/", "")} </div> </div> `); newMessage.find('.download-button').on('click', function () { var baseUrl = window.location.origin; var fileUrl = baseUrl + '/' + message.content; var link = document.createElement('a'); link.href = fileUrl; link.download = getFileNameFromUrl(fileUrl); document.body.appendChild(link); link.click(); document.body.removeChild(link); }); } else { newMessage = $('<div>').addClass('message').text(message.content); } var messageContainer = $('<div>').addClass('message-container ' + Mclass); var avatar = $('<div>').addClass('avatar-sender').text( sender_name.charAt(0).toUpperCase() + sender_lastname.charAt(0).toUpperCase() ); var messageContent = $('<div>').addClass('message-content'); var senderInfo = $('<div>').addClass('sender-info').text(sender); var timestamp = $('<span>').addClass('timestamp').text(moment(message.created_at).calendar()); if (Mclass === 'received') { senderInfo.prepend(avatar); senderInfo.append(timestamp); } else { senderInfo.append(timestamp); senderInfo.prepend(avatar); } messageContent.append(senderInfo); messageContent.append(newMessage); messageContainer.append(messageContent); $('.chat-messages').append(messageContainer); $('#chat-message').val(''); lastMessageId = message.id; // 🔹 Ensure proper scrolling var chatMessages = $('.chat-messages')[0]; chatMessages.scrollTop = chatMessages.scrollHeight; } }); }, complete: function () { checkMessages(); }, error: function (error) { } }) } function loadSupports() { $('#loadSupports').on('click', (e) => { $.ajax({ type: "GET", url: "/ticket/fetch-supports", dataType: 'json', data: null, processData: false, contentType: false, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (result) { var $selectionSupport = $('.selection-support'); result.forEach(function (key, value) { // Check if a checkbox with the same value already exists var existingCheckbox = $selectionSupport.find('input[type="checkbox"][value="' + key.id + '"]'); if (existingCheckbox.length > 0) { return; // Skip appending if a duplicate exists } var checkbox = $('<input type="checkbox" class="mt-3 mr-2">') .val(key.id) .on('change', function () { if ($(this).is(':checked')) { // Check if totalTicket is equal to or more than 5 if (key.totalTicket >= 5) { // Display SweetAlert confirmation swal.fire({ title: 'Confirmation', text: 'Total ticket count assigned is more than 5. Are you sure you want to proceed?', icon: 'warning', showCancelButton: true, confirmButtonText: 'Confirm', }).then((result) => { if (result.isConfirmed) { // User clicked Proceed, check the checkbox $selectionSupport.find('input[type="checkbox"]').not(this).prop('checked', false); var label = $(this).closest('.form-group').find('label').text(); toastRWithTime(key.f_name + ' ' + key.l_name + ' has been selected', 'success'); suppId = $(this).val(); } else { // User clicked Cancel, uncheck the checkbox $(this).prop('checked', false); } }); } else { // totalTicket is less than 5, proceed without confirmation $selectionSupport.find('input[type="checkbox"]').not(this).prop('checked', false); var label = $(this).closest('.form-group').find('label').text(); toastRWithTime(key.f_name + ' ' + key.l_name + ' has been selected', 'success'); suppId = $(this).val(); } } else { // Checkbox is unchecked // Do something } }); var label = $('<label class="form-check-label mb-2">') .text(key.f_name + " " + key.l_name + " (" + key.totalTicket + " tickets assigned)") .prepend(checkbox); var formGroup = $('<div class="form-group form-check mb-n2">') .append(label); $selectionSupport.append(formGroup); }); }, error: function (error) { } }); }); } function assignTransferTicket() { $('#_assignBtn').on('click', (e) => { e.preventDefault(); $.ajax({ type: "POST", url: "/ticket/transfer-ticket/" + id, dataType: 'json', data: { suppId: suppId, }, // processData: false, // contentType: false, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (result) { $('#assignModal').modal('hide'); window.location.href = "/ticket/assigned-tickets"; }, error: function (error) { } }); }); } function checkStars() { $('.user-feedback').rate(options); $('.user-feedback').on('change', function (e, data) { stars = data.to; $('#_userRemarks').trigger('focus'); }); } function checkElapsedTime() { $('#submit_solution2').prop('disabled', true).text('Loading...'); $.ajax({ type: "POST", url: "/ticket/getTicketSLAutilization/" + id, dataType: 'json', data: null, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (result) { console.log(result); $('#loading-spinner').hide(); $("#modal-content").show(); $('#submit_solution2').prop('disabled', false).text('Submit & Close ticket'); // if (result['creator'] === AuthUserid) { console.log('asdfadsf'); // if(current_user_role !=3){ // $('#staticBackdropLabel').text(result.ticket['ticket_no']); // $('#slaContent').text(result['sla'] + " MIN/S."); // $('#timeElapsed').text(result['time_elapsed']); // $('#compliance').text(result['compliance'] + "%"); // $('#support').text(result['support_person']); // if(current_user_role ==3){ // $('#remarksBlade').modal('show'); // $('#remarksBlade').on('shown.bs.modal', function () { // checkStars(); // }); // } // } else { // console.log('check'); $('#staticBackdropLabelSolution2').text(result.ticket['ticket_no']); $('#slaContentSolution2').text(result['sla'] + " MIN/S."); $('#timeElapsedSolution2').text(result['time_elapsed']); $('#complianceSolution2').text(result['compliance'] + "%"); $('#supportSolution2').text(result['support_person']); $('#solutionsBlade2').modal('show'); // window.location.href = "/ticket/department/tickets"; // } }, error: function (error) { } }); } // function checkCloseTicket() { // var responseData; // $.ajax({ // type: "POST", // url: "/ticket/ticketClosed/" + id, // dataType: 'json', // data: null, // headers: { // 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') // }, // success: function (result) { // responseData = result; // if (result.status == 1) { // $('#_requestClosePrompt').attr('disabled', true); // toastRWithTime("Your ticket has been closed", 'error') // if (result.stars === null) { // checkElapsedTime(); // return; // } // } // }, // complete: function () { // if (responseData.status == 1) { // return; // } else { // checkCloseTicket() // } // }, // error: function (error) { // } // }) // } function checkPickedTicket() { var responseData; $.ajax({ type: "POST", url: "/ticket/ticketPicked/" + id, dataType: 'json', data: null, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (result) { responseData = result; if (result.status == 1) { if (result.uid == parseInt(AuthUserid)) { clearInterval(intervalPicked); toastRWithTime("A support personnel has been assigned to you", 'info') } } }, complete: function () { if (responseData.status == 1) { return; } else { checkPickedTicket() } }, error: function (error) { } }) } function submitReview() { $('#submit_review').on('click', function (e) { e.preventDefault(); var formData = new FormData(); if (!stars) { swal.fire({ icon: 'error', title: 'Please give us your rating', }); return; } formData.append('stars', stars); formData.append('remarks', $('#_userRemarks').val()); $.ajax({ type: "POST", url: "/ticket/reviewTicket/" + id, dataType: 'json', data: formData, processData: false, contentType: false, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (result) { swal.fire({ icon: 'success', title: 'Review Submitted', }); $('#remarksBlade').modal('hide'); window.location.href = "/ticket"; }, error: function (error) { swal.fire({ icon: 'error', title: error.responseJSON.message, }); } }) }); } function submitSolution() { $('#submit_solution').on('click', function (e) { e.preventDefault(); $.ajax({ type: "POST", url: "/ticket/ticketSolution/" + id, dataType: 'json', data: { solution: $('#_userSolution').val() }, // processData: false, // contentType: false, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (result) { swal.fire({ icon: 'success', title: 'Solution Submitted', }); $('#solutionsBlade').modal('hide'); window.location.href = "/ticket"; }, error: function (error) { swal.fire({ icon: 'error', title: error.responseJSON.message, }); } }) }); } $(function () { const fileInput = $('#file-input'); const selectedFiles = $('#selected-files'); let selectedFileDetails = []; // Store file details, not File objects let originalFiles = []; // Store the original File objects // Function to update the selected files display and button state function updateSelectedFiles() { selectedFiles.empty(); // Clear the display selectedFileDetails.forEach((fileDetails, index) => { const fileContainer = $('<div>').addClass('file-container'); const fileName = fileDetails.name; const fileNameElement = $('<span>').addClass('file-name').text(fileName); const removeButton = $('<button>').addClass('btn btn-light text-danger').text('X'); removeButton.data('index', index); // Handle remove button click removeButton.on('click', function () { const indexToRemove = $(this).data('index'); selectedFileDetails.splice(indexToRemove, 1); // Remove from details array originalFiles.splice(indexToRemove, 1); // Remove from original files array updateSelectedFiles(); // Update the display }); fileContainer.append(fileNameElement, removeButton); selectedFiles.append(fileContainer); }); // Check if there are files in selectedFileDetails if (selectedFileDetails.length > 0) { $('#send-chat').prop('disabled', false); } else { $('#send-chat').prop('disabled', true); } } // Update the selected files display and button state when a file is selected fileInput.on('change', function () { selectedFileDetails = Array.from(this.files).map(file => ({ name: file.name, type: file.type, })); originalFiles = Array.from(this.files); updateSelectedFiles(); }); // Initial update of selected files display and button state updateSelectedFiles(); $('#send-chat').on('click', (e) => { e.preventDefault(); var formData = new FormData(); message = $('#chat-message').val(); formData.append('message', message); // Append files to FormData if (originalFiles) { for (var i = 0; i < originalFiles.length; i++) { formData.append('files[]', originalFiles[i]); } } $.ajax({ type: "POST", url: "/ticket/ticket-message/" + id, dataType: 'json', processData: false, contentType: false, data: formData, // data: { // message: message, // }, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (result) { // Clear the input field $('#chat-message').val(''); $('#chat-message').focus(); updateSelectedFiles() }, error: function (error) { console.log(error); } }); }); $('#open_file_explorer').on('click', function () { fileInput.trigger('click'); }); $('#send-chat').prop('disabled', true); $('#chat-message').on('input', function () { // Enable the send button if there's a message, otherwise disable it if ($(this).val().trim() !== '') { $('#send-chat').prop('disabled', false); } else { $('#send-chat').prop('disabled', true); } }); $('#chat-message').on('keydown', function (event) { if (event.which === 13 && !event.shiftKey) { // Enter key without Shift event.preventDefault(); // Prevent the default behavior (new line) var message = $(this).val().trim(); if ((message !== '') || (selectedFileArray.length > 0)) { var formData = new FormData(); // Append message to FormData formData.append('message', message); // Append files to FormData if (originalFiles) { for (var i = 0; i < originalFiles.length; i++) { formData.append('files[]', originalFiles[i]); } } $.ajax({ type: "POST", url: "/ticket/ticket-message/" + id, dataType: 'json', processData: false, contentType: false, data: formData, // data: { // file:selectedFileArray, // message: message, // }, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (result) { // Clear the input field $('#chat-message').val(''); $('#chat-message').focus(); $('#send-chat').prop('disabled', true); selectedFiles.empty(); }, error: function (error) { swal.fire({ icon: 'error', text: "This ticket has been closed" }); } }); } } }); // intervalClose = setInterval(() => { // checkCloseTicket(); // }, 1000); // intervalPicked = setInterval(() => { // checkPickedTicket(); // }, 1000); checkPickedTicket(); // checkCloseTicket(); closeTicket(); transferTicket(); assignTransferTicket(); loadSupports(); submitReview(); checkMessages(); submitSolution(); // setInterval(() => { // checkMessages(); // }, 2000); // setInterval(function() { // // Increment the current time by 1 second // currentTime.add(1, 'second'); // // Format the time as desired (e.g., HH:mm:ss) // var formattedTime = currentTime.format('HH:mm:ss'); // // Update the timer element with the formatted time // timerElement.textContent = formattedTime; // }, 1000); // console.log('user role'+current_user_role); if (sndr_id !== AuthUserid && (current_user_role ==3)) { // if(current_user_role !==3)//user access // { $('.btn-option').hide(); //rating modal } $('#_downloadAttachment').on('click', function (e) { var filename = $('#_ticketAttachment').val(); if (!filename) { toastRWithTime("No file to download", 'error'); return; } var baseUrl = window.location.origin; var fileUrl = baseUrl + '/' + filename; var link = document.createElement('a'); link.href = fileUrl; link.download = getFileNameFromUrl(fileUrl); link.style.display = 'none'; document.body.appendChild(link); link.click(); document.body.removeChild(link); }); $('#_requestClosePrompt').on('click', function (e) { $('#send-chat').attr("disabled", true); e.preventDefault(); swal.fire({ title: 'Confirmation', text: 'Are you sure you want to close this ticket?', icon: 'warning', iconColor: 'red', showDenyButton: true, confirmButtonColor: '#3085d6', confirmButtonText: 'Confirm', denyButtonText: 'Cancel', }).then((result) => { if (result.isConfirmed) { $('#chat-message').val($(this).data('value')); $('#send-chat').trigger('click'); } else if (result.isDenied) { $('.btn-option').attr("disabled", false); $('#send-chat').attr("disabled", false); } }); }); }); })();
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0 |
proxy
|
phpinfo
|
Settings