1jQuery('#gb_report_table').ready(function() { 2 gb_user_report_loaded(); 3}); 4function gb_user_report_loaded() { 5 6 if (jQuery('#gb_report_table').length) { 7 8 var Paginate = false; 9 if(parseInt(total_xapi_contents) > 50){ 10 Paginate = true; 11 } 12 var table = jQuery('#gb_report_table').DataTable({ 13 responsive: true, 14 bFilter: true, 15 bInfo: false, 16 pageLength: 50, 17 bAutoWidth: false, 18 bPaginate: Paginate, 19 bLengthChange: Paginate, 20 language: gb_profile.datatables_language 21 }); 22 23 jQuery('#gb_report_table').closest("input").addClass('search-input'); 24 25 var default_filter = jQuery("#gb_result_filter").data("default"); 26 if(default_filter != "all") { 27 default_filter = (typeof gb_profile[default_filter] == "string")? gb_profile[default_filter]:gb_profile.attempted; 28 jQuery("#gb_result_filter").val(default_filter); 29 setTimeout(function() { 30 jQuery("#gb_result_filter").trigger("change"); 31 }, 10); 32 } 33 } 34 35 jQuery('#gb_result_filter').on('change', function() { 36 37 var table = jQuery('#gb_report_table').DataTable(); 38 39 var filter_text = jQuery("#gb_result_filter option:selected").text(); 40 var filter_val = jQuery("#gb_result_filter option:selected").val(); 41 if (filter_val == 'all') 42 filter_val = ''; 43 if (filter_val == gb_profile.attempted) 44 filter_val = '\s?[^-|^\u2011|^\u2012|^\u2013|^\u2014]\s?'; 45 table 46 .column(3) 47 .search( filter_val, true, true ) 48 .draw(); 49 }); 50} 51function gb_get_score(content_id,user_id,expandall) { 52 53 if (typeof(expandall)==='undefined') 54 expandall = false; 55 56 var key = 'attempts_'+content_id+'_'+user_id; 57 58 var attempts = JSON.parse(gb_content_attempts[key]); 59 60 if (attempts != '') { 61 if (jQuery("#score_row"+content_id).length == 0) { 62 63 var scoreTD = ''; 64 var headTD = '<th>'+gb_profile.date+'</th>\ 65 <th>'+gb_profile.score+'</th>\ 66 <th>'+gb_profile.status+'</th>\ 67 <th>'+gb_profile.timespent+'</th>'; 68 69 if (gb_content_quiz_enable[content_id]) { 70 headTD += '<th>'+gb_profile.quiz_report+'</th>'; 71 } 72 73 jQuery.each(attempts, function (index, value) { 74 var tr_class = (index % 2 == 1)? 'tr_odd':'tr_even'; 75 76 var content_td = '<td scope="row" data-label="'+gb_profile.date+'">'+value.timestamp+'</td>\ 77 <td data-label="'+gb_profile.score+'">'+value.percentage+'</td>\ 78 <td data-label="'+gb_profile.status+'">'+value.status+'</td>\ 79 <td data-label="'+gb_profile.timespent+'">'+value.timespent+'</td>'; 80 81 var statement = JSON.parse(value.statement); 82 var registration = statement.context.registration; 83 if (gb_content_quiz_enable[content_id]) { 84 content_td += '<td data-label="'+gb_profile.quiz_report+'">\ 85 <a onclick="return get_gb_quiz_report('+content_id+','+user_id+',\''+registration+'\');">\ 86 <img class="gb-icon-img" src="'+gb_profile.plugin_dir_url+'/img/stats.png" width="20px">\ 87 </a>\ 88 </td>'; 89 } 90 scoreTD += '<tr class='+tr_class+'>'+content_td+'</tr>'; 91 }); 92 93 var HTML = '<tr id="score_row'+content_id+'" style="display: none;">\ 94 <td colspan="6">\ 95 <div class="grassblade_table" id="attempts'+content_id+'" style="display: none;">\ 96 <table id="sub_report_tbl" style="margin-bottom: 0px !important;">\ 97 <thead>\ 98 <tr>\ 99 '+headTD+'\ 100 </tr>\ 101 </thead>\ 102 <tbody>\ 103 '+scoreTD+'\ 104 </tbody>\ 105 </table>\ 106 </div>\ 107 </td>\ 108 </tr>'; 109 } 110 111 if(jQuery(".row-details-open"+content_id).length > 0 && expandall == false){ 112 jQuery("#attempts"+content_id).slideUp(1000,'swing', function(){jQuery("#score_row"+content_id).hide();}); 113 jQuery('#score_row'+content_id).addClass("row-details-close"+content_id).removeClass("row-details-open"+content_id); 114 } else { 115 jQuery("#gb_row_"+content_id).after(HTML); 116 jQuery('#score_row'+content_id).addClass("row-details-open"+content_id).removeClass("row-details-close"+content_id); 117 jQuery("#score_row"+content_id).show(); 118 jQuery("#attempts"+content_id).slideDown(1000); 119 } 120 } 121} 122 123function gb_expand_attempts(user_id){
124 if (jQuery('#gb_expand_btn.gb-collapsed').length > 0) { 125 jQuery('#gb_expand_btn').addClass("gb-expanded").removeClass('gb-collapsed'); 126 jQuery.each(gb_content_quiz_enable,function (index, value) { 127 gb_get_score(index,user_id,true); 128 }); 129 } else { 130 jQuery('#gb_expand_btn').addClass("gb-collapsed").removeClass('gb-expanded'); 131 jQuery.each(gb_content_quiz_enable,function (index, value) { 132 jQuery("#attempts"+index).slideUp(1000,'swing', function(){jQuery("#score_row"+index).hide();}); 133 jQuery('#score_row'+index).addClass("row-details-close"+index).removeClass("row-details-open"+index); 134 }); 135 } 136}
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.