1jQuery(document).on('click', "#download_pdf_results_ajax", function (event ) { 2 event.preventDefault(); 3 let pdf_nonce = jQuery(this).attr('data-wpnonce'); 4 let quizID = jQuery(this).attr('data-quizId'); 5 let resultId = jQuery(this).attr('data-result_id'); 6 let result = jQuery('.qsm-results-page .qsm_questions_answers_section'); 7 result.append('<div class="qsm-spinner-loader" style="margin: 0 20px;"></div>'); 8 qsmAjaxGeneratePDF(pdf_nonce, quizID, resultId); 9}); 10 11 12function qsmAjaxGeneratePDF(pdf_nonce, quizID, resultId) { 13 jQuery.ajax({ 14 url: qmn_ajax_object.ajaxurl, 15 data: { 16 'action':'qsm_download_pdf_results_ajax', 17 'quiz_id': quizID, 18 'result_id': resultId, 19 'quiz_name': qmn_quiz_data[quizID]["quiz_name"], 20 'save_response': qsm_results_data[quizID]['save_response'], 21 'result_unique_id': qsm_results_data[quizID]['id'], 22 'pdf_nonce': pdf_nonce 23 }, 24 type: 'POST', 25 success: function (response) { 26 response=JSON.parse(response); 27 jQuery('.qsm-spinner-loader').remove(); 28 if (response.status){ 29 qsmOpenPDF(response); 30 } else { 31 alert('Unable to generate PDF'); 32 } 33 } 34 }); 35} 36 37function qsmOpenPDF(response){ 38 window.open(response.pdf,"_blank"); 39 qsmDeletePDF(response); 40} 41 42function qsmDeletePDF(response){ 43 jQuery.ajax({ 44 url: qmn_ajax_object.ajaxurl, 45 data: { 46 'action':'qsm_pdf_cleanup', 47 'file': response.file, 48 'file_nonce': response.file_nonce 49 }, 50 type: 'POST', 51 success: function (response) { 52 response=JSON.parse(response); 53 if(!response.status){ 54 console.log("Unable to delete the pdf"); 55 } 56 } 57 }); 58}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.