1(function( $ ) { 2 'use strict'; 3 4 $.fn.serializeFormJSON = function () { 5 var o = {}, 6 a = this.serializeArray(); 7 $.each(a, function () { 8 if (o[this.name]) { 9 if (!o[this.name].push) { 10 o[this.name] = [o[this.name]]; 11 } 12 o[this.name].push(this.value || ''); 13 } else { 14 o[this.name] = this.value || ''; 15 } 16 }); 17 return o; 18 }; 19 20 /** 21 * @return {string} 22 */ 23 function GetFullDateTime(){ 24 var now = new Date(); 25 return [[now.getFullYear(), AddZero(now.getMonth() + 1), AddZero(now.getDate())].join("-"), [AddZero(now.getHours()), AddZero(now.getMinutes()), AddZero(now.getSeconds())].join(":")].join(" "); 26 } 27 28 $(document).ready(function(){ 29 var start,end; 30 var visibility; 31 var count = 0; 32 var changedTime = 0; 33 34 //Tab Visibility Change AJAX 35 $(document).on('visibilitychange', function(){ 36 if (document.hidden) { 37 start = Date.now(); 38 } else { 39 count ++; 40 end = Date.now(); 41 visibility = end - start; 42 var data = {}; 43 44 data.visibility = visibility; 45 data.action = 'get_track_users_hidden_tab'; 46 47 $.ajax({ 48 url: quiz_maker_track_users_public_ajax.ajax_url, 49 method: 'post', 50 dataType: 'json', 51 data: data, 52 success: function (response) { 53 if(response.status){ 54 changedTime += response.result; 55 $(document).find('.ays_quiz_track_users').attr('data-hidden',changedTime); 56 $(document).find('.ays_quiz_track_users').attr('data-count',count); 57 } 58 } 59 }); 60 } 61 }); 62 63 //Start Button AJAX 64 $(document).on('click', '.start_button', function(){ 65 var startDate = GetFullDateTime(); 66 var form = $(this).parents('form'); 67 var data = form.serializeFormJSON(); 68 var quizId = data.quiz_id; 69 var userDataStart = {}; 70 var parents = $(this).parents('.ays-quiz-container'); 71 72 userDataStart.quiz_Id = quizId; 73 userDataStart.start_date = startDate; 74 userDataStart.action = 'get_track_users_start_quiz_date'; 75 $.ajax({ 76 url: quiz_maker_track_users_public_ajax.ajax_url, 77 method: 'post', 78 dataType: 'json', 79 data: userDataStart, 80 success: function (response) { 81 if(response.status){ 82 var hiddenInput = '<input type="hidden" class="ays_quiz_track_users" data-id="'+response.last_inserted_id+'" data-quiz="'+response.quiz_id+'">'; 83 parents.append(hiddenInput); 84 } 85 } 86 }); 87 }); 88 89 //Finish Quiz AJAX 90 $(document).find('form[id^="ays_finish_quiz_"]').on('getResultId', function(event){ 91 var endDate = GetFullDateTime(); 92 var form = $(this); 93 var data = form.serializeFormJSON(); 94 var quizId = data.quiz_id; 95 var resultId = event.detail.resultId; 96 var userDataEnd = {}; 97 var hiddenTab = $(this).parents('.ays-quiz-container').find('.ays_quiz_track_users').attr('data-hidden'); 98 var hiddenTabCount = $(this).parents('.ays-quiz-container').find('.ays_quiz_track_users').attr('data-count'); 99 var copyCount = $(this).parents('.ays-quiz-container').find('.ays_quiz_track_users').attr('data-copy'); 100 var hintCount = $(this).parents('.ays-quiz-container').find('.ays_quiz_track_users').attr('data-hint'); 101 102 userDataEnd.quiz_Id = quizId; 103 userDataEnd.end_date = endDate; 104 userDataEnd.hidden_tab = hiddenTab; 105 userDataEnd.hidden_tab_count = hiddenTabCount; 106 userDataEnd.copy_count = copyCount; 107 userDataEnd.hint_count = hintCount; 108 userDataEnd.result_id = resultId; 109 userDataEnd.action = 'get_track_users_end_quiz_date'; 110 111 $.ajax({ 112 url: quiz_maker_track_users_public_ajax.ajax_url, 113 method: 'post', 114 dataType: 'json', 115 data: userDataEnd, 116 success: function (response) { 117 if(response.status){ 118 119 } 120 } 121 }); 122 123 }); 124 }); 125 126})( jQuery );
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.